diff --git a/charts/incubator/babybuddy/.helmignore b/charts/incubator/babybuddy/.helmignore new file mode 100644 index 00000000000..0e8a0eb36f4 --- /dev/null +++ b/charts/incubator/babybuddy/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/incubator/babybuddy/CHANGELOG.md b/charts/incubator/babybuddy/CHANGELOG.md new file mode 100644 index 00000000000..66beb5afa53 --- /dev/null +++ b/charts/incubator/babybuddy/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### babybuddy-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/babybuddy/CONFIG.md b/charts/incubator/babybuddy/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/babybuddy/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/babybuddy/Chart.yaml b/charts/incubator/babybuddy/Chart.yaml new file mode 100644 index 00000000000..1b0ad5b71e8 --- /dev/null +++ b/charts/incubator/babybuddy/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: "1.9.0" +kubeVersion: '>=1.16.0-0' +version: 0.0.1 +name: babybuddy +description: Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work. +type: application +home: "https://github.com/truecharts/apps/tree/main/charts/babybuddy" +icon: "https://github.com/babybuddy/babybuddy/raw/master/babybuddy/static_src/logo/icon.png" +keywords: + - baby + - buddy + - tracker + - parents + - parenting +sources: + - https://github.com/babybuddy/babybuddy + - https://github.com/nicholaswilde/docker-babybuddy +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/babybuddy/README.md b/charts/incubator/babybuddy/README.md new file mode 100644 index 00000000000..13bb11ba5c3 --- /dev/null +++ b/charts/incubator/babybuddy/README.md @@ -0,0 +1,41 @@ +# Introduction + +Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/babybuddy/SCALE/item.yaml b/charts/incubator/babybuddy/SCALE/item.yaml new file mode 100644 index 00000000000..97094676fcb --- /dev/null +++ b/charts/incubator/babybuddy/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: "https://github.com/babybuddy/babybuddy/raw/master/babybuddy/static_src/logo/icon.png" diff --git a/charts/incubator/babybuddy/SCALE/questions.yaml b/charts/incubator/babybuddy/SCALE/questions.yaml new file mode 100644 index 00000000000..dec20e44a4d --- /dev/null +++ b/charts/incubator/babybuddy/SCALE/questions.yaml @@ -0,0 +1,648 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36153 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/babybuddy/app-changelog.md b/charts/incubator/babybuddy/app-changelog.md new file mode 100644 index 00000000000..e866339a6d9 --- /dev/null +++ b/charts/incubator/babybuddy/app-changelog.md @@ -0,0 +1,7 @@ + + +### babybuddy-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/babybuddy/app-readme.md b/charts/incubator/babybuddy/app-readme.md new file mode 100644 index 00000000000..fb7ff0664b2 --- /dev/null +++ b/charts/incubator/babybuddy/app-readme.md @@ -0,0 +1,3 @@ +Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/babybuddy/helm-values.md b/charts/incubator/babybuddy/helm-values.md new file mode 100644 index 00000000000..f06781e81af --- /dev/null +++ b/charts/incubator/babybuddy/helm-values.md @@ -0,0 +1,40 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | `{}` | | +| envTpl.DB_ENGINE | string | `"django.db.backends.postgresql"` | | +| envTpl.DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DB_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"ghcr.io/linuxserver/babybuddy"` | | +| image.tag | string | `"1.9.0@sha256:bb608fb4cf5c8ef5aea15215ae0ada7cf40ff7047e150bf053807436ded22bfb"` | | +| persistence.config.enabled | bool | `true` | | +| persistence.config.mountPath | string | `"/config"` | | +| persistence.varrun.enabled | bool | `true` | | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"babybuddy"` | | +| postgresql.postgresqlUsername | string | `"babybuddy"` | | +| securityContext.allowPrivilegeEscalation | bool | `true` | | +| securityContext.readOnlyRootFilesystem | bool | `true` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service.main.ports.main.port | int | `8000` | | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/babybuddy/templates/common.yaml b/charts/incubator/babybuddy/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/babybuddy/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/babybuddy/values.yaml b/charts/incubator/babybuddy/values.yaml new file mode 100644 index 00000000000..5afa7b2fc47 --- /dev/null +++ b/charts/incubator/babybuddy/values.yaml @@ -0,0 +1,54 @@ +image: + repository: ghcr.io/linuxserver/babybuddy + pullPolicy: IfNotPresent + tag: 1.9.0@sha256:bb608fb4cf5c8ef5aea15215ae0ada7cf40ff7047e150bf053807436ded22bfb + +# See more environment variables in the babybuddy documentation +# https://github.com/linuxserver/docker-babybuddy#parameters +env: {} + # TZ: + +envTpl: + DB_ENGINE: "django.db.backends.postgresql" + DB_NAME: "{{ .Values.postgresql.postgresqlDatabase }}" + DB_USER: "{{ .Values.postgresql.postgresqlUsername }}" + DB_PORT: "5432" + +envValueFrom: + DB_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + DB_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + +securityContext: + readOnlyRootFilesystem: true + allowPrivilegeEscalation: true + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 8000 + +persistence: + config: + enabled: true + mountPath: /config + varrun: + enabled: true + +# Enabled postgres +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: babybuddy + postgresqlDatabase: babybuddy diff --git a/charts/incubator/dsmr-reader/.helmignore b/charts/incubator/dsmr-reader/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/dsmr-reader/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/dsmr-reader/CHANGELOG.md b/charts/incubator/dsmr-reader/CHANGELOG.md new file mode 100644 index 00000000000..10fb3e61a90 --- /dev/null +++ b/charts/incubator/dsmr-reader/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### dsmr-reader-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/dsmr-reader/CONFIG.md b/charts/incubator/dsmr-reader/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/dsmr-reader/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/dsmr-reader/Chart.yaml b/charts/incubator/dsmr-reader/Chart.yaml new file mode 100644 index 00000000000..cb4c2f3a944 --- /dev/null +++ b/charts/incubator/dsmr-reader/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: "latest-202" +description: DSMR-protocol reader, telegram data storage and energy consumption visualizer. +name: dsmr-reader +version: 0.0.1 +kubeVersion: ">=1.16.0-0" +keywords: +- dsmr-reader +- energy +home: https://github.com/truecharts/apps/tree/master/charts/stable/dsmr-reader +icon: https://avatars2.githubusercontent.com/u/57727360?s=400&v=4 +sources: +- https://github.com/dsmrreader/dsmr-reader +- https://github.com/xirixiz/dsmr-reader-docker +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/dsmr-reader/README.md b/charts/incubator/dsmr-reader/README.md new file mode 100644 index 00000000000..611b68e009a --- /dev/null +++ b/charts/incubator/dsmr-reader/README.md @@ -0,0 +1,41 @@ +# Introduction + +DSMR-protocol reader, telegram data storage and energy consumption visualizer. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/dsmr-reader/SCALE/item.yaml b/charts/incubator/dsmr-reader/SCALE/item.yaml new file mode 100644 index 00000000000..aa8b1cb9e9f --- /dev/null +++ b/charts/incubator/dsmr-reader/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://avatars2.githubusercontent.com/u/57727360?s=400PLACEHOLDERICONv=4 diff --git a/charts/incubator/dsmr-reader/SCALE/questions.yaml b/charts/incubator/dsmr-reader/SCALE/questions.yaml new file mode 100644 index 00000000000..4ca8cf3630e --- /dev/null +++ b/charts/incubator/dsmr-reader/SCALE/questions.yaml @@ -0,0 +1,648 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36154 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/dsmr-reader/app-changelog.md b/charts/incubator/dsmr-reader/app-changelog.md new file mode 100644 index 00000000000..6c812619556 --- /dev/null +++ b/charts/incubator/dsmr-reader/app-changelog.md @@ -0,0 +1,7 @@ + + +### dsmr-reader-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/dsmr-reader/app-readme.md b/charts/incubator/dsmr-reader/app-readme.md new file mode 100644 index 00000000000..3af1f0a8d0b --- /dev/null +++ b/charts/incubator/dsmr-reader/app-readme.md @@ -0,0 +1,3 @@ +DSMR-protocol reader, telegram data storage and energy consumption visualizer. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/dsmr-reader/helm-values.md b/charts/incubator/dsmr-reader/helm-values.md new file mode 100644 index 00000000000..066713ce2c0 --- /dev/null +++ b/charts/incubator/dsmr-reader/helm-values.md @@ -0,0 +1,35 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [image docs](https://github.com/xirixiz/dsmr-reader-docker#dsmr-reader---environment-variables) for more details. | +| env.TZ | string | `"UTC"` | Set the container timezone | +| envTpl.DJANGO_DATABASE_ENGINE | string | `"django.db.backends.postgresql"` | | +| envTpl.DJANGO_DATABASE_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DJANGO_DATABASE_PORT | string | `"5432"` | | +| envTpl.DJANGO_DATABASE_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envTpl.DJANGO_TIME_ZONE | string | `"{{ .Values.env.TZ }}"` | | +| envValueFrom.DJANGO_DATABASE_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DJANGO_DATABASE_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DJANGO_DATABASE_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DJANGO_DATABASE_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"xirixiz/dsmr-reader-docker"` | image repository | +| image.tag | string | `"latest-2021.09.02-amd64@sha256:4858edb1ae63a20639a0ef9c51c7b2cf599686db5c582ead7b37b2a288122935"` | image tag | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/dsmr-reader/templates/common.yaml b/charts/incubator/dsmr-reader/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/dsmr-reader/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/dsmr-reader/values.yaml b/charts/incubator/dsmr-reader/values.yaml new file mode 100644 index 00000000000..ce5383cee43 --- /dev/null +++ b/charts/incubator/dsmr-reader/values.yaml @@ -0,0 +1,54 @@ +image: + # -- image repository + repository: xirixiz/dsmr-reader-docker + # -- image tag + tag: latest-2021.09.02-amd64@sha256:4858edb1ae63a20639a0ef9c51c7b2cf599686db5c582ead7b37b2a288122935 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [image docs](https://github.com/xirixiz/dsmr-reader-docker#dsmr-reader---environment-variables) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +envTpl: + DJANGO_TIME_ZONE: "{{ .Values.env.TZ }}" + DJANGO_DATABASE_ENGINE: "django.db.backends.postgresql" + DJANGO_DATABASE_NAME: "{{ .Values.postgresql.postgresqlDatabase }}" + DJANGO_DATABASE_USER: "{{ .Values.postgresql.postgresqlUsername }}" + DJANGO_DATABASE_PORT: "5432" + +envValueFrom: + DJANGO_DATABASE_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + DJANGO_DATABASE_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + +# -- Enable and configure postgresql database subchart under this key. +# @default -- See values.yaml +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: dsmr-reader + postgresqlDatabase: dsmr-reader diff --git a/charts/incubator/etherpad/.helmignore b/charts/incubator/etherpad/.helmignore new file mode 100644 index 00000000000..0e8a0eb36f4 --- /dev/null +++ b/charts/incubator/etherpad/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/incubator/etherpad/CHANGELOG.md b/charts/incubator/etherpad/CHANGELOG.md new file mode 100644 index 00000000000..f347936e7da --- /dev/null +++ b/charts/incubator/etherpad/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### etherpad-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/etherpad/CONFIG.md b/charts/incubator/etherpad/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/etherpad/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/etherpad/Chart.yaml b/charts/incubator/etherpad/Chart.yaml new file mode 100644 index 00000000000..898cf16084a --- /dev/null +++ b/charts/incubator/etherpad/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +appVersion: "1.8.14" +version: 0.0.1 +kubeVersion: '>=1.16.0-0' +name: etherpad +description: A real-time collaborative editor scalable to thousands of simultaneous real time users. +type: application +home: "https://github.com/truecharts/apps/tree/main/charts/etherpad" +icon: "https://github.com/truecharts/apps/raw/main/images/etherpad.jpg" +keywords: + - etherpad + - editor + - notepad + - pad +sources: + - https://etherpad.org/ + - https://github.com/ether/etherpad-lite + - https://hub.docker.com/r/nicholaswilde/etherpad +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/etherpad/README.md b/charts/incubator/etherpad/README.md new file mode 100644 index 00000000000..6fb0d86491a --- /dev/null +++ b/charts/incubator/etherpad/README.md @@ -0,0 +1,42 @@ +# Introduction + +A real-time collaborative editor scalable to thousands of simultaneous real time users. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/etherpad/SCALE/item.yaml b/charts/incubator/etherpad/SCALE/item.yaml new file mode 100644 index 00000000000..b54747ea90f --- /dev/null +++ b/charts/incubator/etherpad/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: "https://github.com/truecharts/apps/raw/main/images/etherpad.jpg" diff --git a/charts/incubator/etherpad/SCALE/questions.yaml b/charts/incubator/etherpad/SCALE/questions.yaml new file mode 100644 index 00000000000..d9e654c9a97 --- /dev/null +++ b/charts/incubator/etherpad/SCALE/questions.yaml @@ -0,0 +1,796 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9001 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 9001 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36156 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/opt/etherpad-lite/var" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: app + label: "App Storage" + description: "Stores the Application." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/opt/etherpad-lite/app" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/etherpad/app-changelog.md b/charts/incubator/etherpad/app-changelog.md new file mode 100644 index 00000000000..7169b9fd54a --- /dev/null +++ b/charts/incubator/etherpad/app-changelog.md @@ -0,0 +1,7 @@ + + +### etherpad-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/etherpad/app-readme.md b/charts/incubator/etherpad/app-readme.md new file mode 100644 index 00000000000..a3f1e180e71 --- /dev/null +++ b/charts/incubator/etherpad/app-readme.md @@ -0,0 +1,3 @@ +A real-time collaborative editor scalable to thousands of simultaneous real time users. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/etherpad/helm-values.md b/charts/incubator/etherpad/helm-values.md new file mode 100644 index 00000000000..f63c11d581c --- /dev/null +++ b/charts/incubator/etherpad/helm-values.md @@ -0,0 +1,45 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | `{}` | | +| envTpl.DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_TYPE | string | `"postgres"` | | +| envTpl.DB_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DB_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASS.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASS.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"ghcr.io/nicholaswilde/etherpad"` | | +| image.tag | string | `"version-1.8.14@sha256:cd35863f12695934a55d60e6cd2ee70489e14445af1b84ade79333a524265323"` | | +| persistence.app.accessMode | string | `"ReadWriteOnce"` | | +| persistence.app.enabled | bool | `true` | | +| persistence.app.mountPath | string | `"/opt/etherpad-lite/app"` | | +| persistence.app.size | string | `"1Gi"` | | +| persistence.data.accessMode | string | `"ReadWriteOnce"` | | +| persistence.data.enabled | bool | `true` | | +| persistence.data.mountPath | string | `"/opt/etherpad-lite/var"` | | +| persistence.data.size | string | `"1Gi"` | | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"etherpad"` | | +| postgresql.postgresqlUsername | string | `"etherpad"` | | +| secret | object | `{}` | | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service.main.ports.main.port | int | `9001` | | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/etherpad/templates/common.yaml b/charts/incubator/etherpad/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/etherpad/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/etherpad/values.yaml b/charts/incubator/etherpad/values.yaml new file mode 100644 index 00000000000..b32c721afe4 --- /dev/null +++ b/charts/incubator/etherpad/values.yaml @@ -0,0 +1,60 @@ +image: + repository: ghcr.io/nicholaswilde/etherpad + pullPolicy: IfNotPresent + tag: version-1.8.14@sha256:cd35863f12695934a55d60e6cd2ee70489e14445af1b84ade79333a524265323 + +secret: {} + +# See more environment variables in the etherpad documentation +# https://github.com/ether/etherpad-lite/blob/develop/doc/docker.md +# For Mariadb, use DB_TYPE: mysql https://github.com/ether/etherpad-lite/issues/4214 +env: {} + +envTpl: + DB_TYPE: "postgres" + DB_NAME: "{{ .Values.postgresql.postgresqlDatabase }}" + DB_USER: "{{ .Values.postgresql.postgresqlUsername }}" + DB_PORT: "5432" + +envValueFrom: + DB_PASS: + secretKeyRef: + name: dbcreds + key: postgresql-password + DB_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 9001 + +persistence: + data: + enabled: true + mountPath: /opt/etherpad-lite/var + accessMode: ReadWriteOnce + size: 1Gi + app: + enabled: true + mountPath: /opt/etherpad-lite/app + accessMode: ReadWriteOnce + size: 1Gi + +# Enabled postgres +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: etherpad + postgresqlDatabase: etherpad diff --git a/charts/incubator/firefox-syncserver/.helmignore b/charts/incubator/firefox-syncserver/.helmignore new file mode 100644 index 00000000000..0e8a0eb36f4 --- /dev/null +++ b/charts/incubator/firefox-syncserver/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/incubator/firefox-syncserver/CHANGELOG.md b/charts/incubator/firefox-syncserver/CHANGELOG.md new file mode 100644 index 00000000000..be650adbb21 --- /dev/null +++ b/charts/incubator/firefox-syncserver/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### firefox-syncserver-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/firefox-syncserver/CONFIG.md b/charts/incubator/firefox-syncserver/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/firefox-syncserver/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/firefox-syncserver/Chart.yaml b/charts/incubator/firefox-syncserver/Chart.yaml new file mode 100644 index 00000000000..0146fe1f98e --- /dev/null +++ b/charts/incubator/firefox-syncserver/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: "1.8.0" +version: 0.0.1 +kubeVersion: '>=1.16.0-0' +name: firefox-syncserver +description: This is an all-in-one package for running a self-hosted Firefox Sync server. +type: application +home: "https://github.com/truecharts/apps/tree/main/charts/firefox-syncserver" +icon: "https://upload.wikimedia.org/wikipedia/en/0/01/Firefox_Sync_logo.png" +keywords: + - server + - sync + - syncserver + - firefox +sources: + - https://moz-services-docs.readthedocs.io/en/latest/howtos/run-sync-1.5.html + - https://hub.docker.com/r/crazymax/firefox-syncserver +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/firefox-syncserver/README.md b/charts/incubator/firefox-syncserver/README.md new file mode 100644 index 00000000000..0bcdd250dd6 --- /dev/null +++ b/charts/incubator/firefox-syncserver/README.md @@ -0,0 +1,41 @@ +# Introduction + +This is an all-in-one package for running a self-hosted Firefox Sync server. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/firefox-syncserver/SCALE/item.yaml b/charts/incubator/firefox-syncserver/SCALE/item.yaml new file mode 100644 index 00000000000..bbaa7923552 --- /dev/null +++ b/charts/incubator/firefox-syncserver/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: "https://upload.wikimedia.org/wikipedia/en/0/01/Firefox_Sync_logo.png" diff --git a/charts/incubator/firefox-syncserver/SCALE/questions.yaml b/charts/incubator/firefox-syncserver/SCALE/questions.yaml new file mode 100644 index 00000000000..de353dbae65 --- /dev/null +++ b/charts/incubator/firefox-syncserver/SCALE/questions.yaml @@ -0,0 +1,701 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + type: dict + attrs: + - variable: FF_SYNCSERVER_SECRET + label: "FF_SYNCSERVER_SECRET" + description: "Sets the FF_SYNCSERVER_SECRET env var" + schema: + type: string + default: "changeme" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: FF_SYNCSERVER_PUBLIC_URL + label: "FF_SYNCSERVER_PUBLIC_URL" + description: "Sets the FF_SYNCSERVER_PUBLIC_URL env var" + schema: + type: string + default: "" + - variable: FF_SYNCSERVER_FORCE_WSGI_ENVIRON + label: "FF_SYNCSERVER_FORCE_WSGI_ENVIRON" + description: "Sets the FF_SYNCSERVER_FORCE_WSGI_ENVIRON env var" + schema: + type: boolean + default: true + - variable: FF_SYNCSERVER_ACCESSLOG + label: "FF_SYNCSERVER_ACCESSLOG" + description: "Sets the FF_SYNCSERVER_ACCESSLOG env var" + schema: + type: boolean + default: false + - variable: FF_SYNCSERVER_LOGLEVEL + label: "FF_SYNCSERVER_LOGLEVEL" + description: "Sets the FF_SYNCSERVER_LOGLEVEL env var" + schema: + type: string + default: "info" + - variable: FF_SYNCSERVER_ALLOW_NEW_USERS + label: "FF_SYNCSERVER_ALLOW_NEW_USERS" + description: "Sets the FF_SYNCSERVER_ALLOW_NEW_USERS env var" + schema: + type: boolean + default: true + - variable: FF_SYNCSERVER_FORWARDED_ALLOW_IPS + label: "FF_SYNCSERVER_FORWARDED_ALLOW_IPS" + description: "Sets the FF_SYNCSERVER_FORWARDED_ALLOW_IPS env var" + schema: + type: string + default: "*" +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 5000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36157 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/firefox-syncserver/app-changelog.md b/charts/incubator/firefox-syncserver/app-changelog.md new file mode 100644 index 00000000000..fd28a0414d5 --- /dev/null +++ b/charts/incubator/firefox-syncserver/app-changelog.md @@ -0,0 +1,7 @@ + + +### firefox-syncserver-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/firefox-syncserver/app-readme.md b/charts/incubator/firefox-syncserver/app-readme.md new file mode 100644 index 00000000000..809374d6d1a --- /dev/null +++ b/charts/incubator/firefox-syncserver/app-readme.md @@ -0,0 +1,3 @@ +This is an all-in-one package for running a self-hosted Firefox Sync server. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/firefox-syncserver/helm-values.md b/charts/incubator/firefox-syncserver/helm-values.md new file mode 100644 index 00000000000..d86b1b4c712 --- /dev/null +++ b/charts/incubator/firefox-syncserver/helm-values.md @@ -0,0 +1,35 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env.FF_SYNCSERVER_FORCE_WSGI_ENVIRON | string | `"true"` | | +| env.FF_SYNCSERVER_PUBLIC_URL | string | `"firefox-syncserver.192.168.1.189.nip.io"` | | +| env.PUID | string | `"568"` | | +| env.TZ | string | `"America/Los_Angeles"` | | +| envValueFrom.DB_HOST.secretKeyRef.key | string | `"url"` | | +| envValueFrom.DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"ghcr.io/crazy-max/firefox-syncserver"` | | +| image.tag | string | `"1.8.0@sha256:15aeaaec65295711260807fe49020b2e446e60d6e094d60a1cfd96c7ebf2b9ce"` | | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"firefox-syncserver"` | | +| postgresql.postgresqlUsername | string | `"firefox-syncserver"` | | +| secret.FF_SYNCSERVER_SECRET | string | `"5up3rS3kr1t"` | | +| securityContext.allowPrivilegeEscalation | bool | `true` | | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service.main.ports.main.port | int | `5000` | | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/firefox-syncserver/templates/common.yaml b/charts/incubator/firefox-syncserver/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/firefox-syncserver/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/firefox-syncserver/values.yaml b/charts/incubator/firefox-syncserver/values.yaml new file mode 100644 index 00000000000..560a9273cd1 --- /dev/null +++ b/charts/incubator/firefox-syncserver/values.yaml @@ -0,0 +1,47 @@ +image: + repository: ghcr.io/crazy-max/firefox-syncserver + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: 1.8.0@sha256:15aeaaec65295711260807fe49020b2e446e60d6e094d60a1cfd96c7ebf2b9ce + +secret: + FF_SYNCSERVER_SECRET: "changeme" + +securityContext: + readOnlyRootFilesystem: false + allowPrivilegeEscalation: true + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + TZ: "America/Los_Angeles" + PUID: 568 + FF_SYNCSERVER_PUBLIC_URL: "firefox-syncserver.192.168.1.189.nip.io" + FF_SYNCSERVER_FORCE_WSGI_ENVIRON: true + FF_SYNCSERVER_ACCESSLOG: false + FF_SYNCSERVER_LOGLEVEL: "info" + FF_SYNCSERVER_ALLOW_NEW_USERS: true + FF_SYNCSERVER_FORWARDED_ALLOW_IPS: "*" + +envValueFrom: + DB_HOST: + secretKeyRef: + name: dbcreds + key: url + +service: + main: + ports: + main: + port: 5000 + +# Enabled postgres +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: firefox-syncserver + postgresqlDatabase: firefox-syncserver diff --git a/charts/incubator/gotify/.helmignore b/charts/incubator/gotify/.helmignore new file mode 100644 index 00000000000..0e8a0eb36f4 --- /dev/null +++ b/charts/incubator/gotify/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/incubator/gotify/CHANGELOG.md b/charts/incubator/gotify/CHANGELOG.md new file mode 100644 index 00000000000..3a1f1697121 --- /dev/null +++ b/charts/incubator/gotify/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### gotify-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/gotify/CONFIG.md b/charts/incubator/gotify/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/gotify/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/gotify/Chart.yaml b/charts/incubator/gotify/Chart.yaml new file mode 100644 index 00000000000..6709f3d536a --- /dev/null +++ b/charts/incubator/gotify/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: "2.1.0" +version: 0.0.1 +kubeVersion: '>=1.16.0-0' +name: gotify +description: a simple server for sending and receiving messages +type: application +home: "https://github.com/truecharts/apps/tree/main/charts/gotify" +keywords: + - server + - gotify + - messages +icon: https://gotify.net/img/logo.png +sources: + - https://gotify.net/ + - https://github.com/gotify/server + - https://hub.docker.com/r/gotify/server +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/gotify/README.md b/charts/incubator/gotify/README.md new file mode 100644 index 00000000000..ae6584cb501 --- /dev/null +++ b/charts/incubator/gotify/README.md @@ -0,0 +1,42 @@ +# Introduction + +a simple server for sending and receiving messages + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/gotify/SCALE/item.yaml b/charts/incubator/gotify/SCALE/item.yaml new file mode 100644 index 00000000000..5acbf87f9b5 --- /dev/null +++ b/charts/incubator/gotify/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://gotify.net/img/logo.png diff --git a/charts/incubator/gotify/SCALE/questions.yaml b/charts/incubator/gotify/SCALE/questions.yaml new file mode 100644 index 00000000000..7d382a398c0 --- /dev/null +++ b/charts/incubator/gotify/SCALE/questions.yaml @@ -0,0 +1,722 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + type: dict + attrs: + - variable: user + label: "user" + description: "Sets the user env var" + schema: + type: string + default: "admin" + - variable: pass + label: "pass" + description: "Sets the pass env var" + schema: + type: string + default: "changeme" + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: GOTIFY_SERVER_PORT + label: "GOTIFY_SERVER_PORT" + description: "Sets the GOTIFY_SERVER_PORT env var" + schema: + type: int + required: true + hidden: true + default: 8080 + - variable: GOTIFY_SERVER_KEEPALIVEPERIODSECONDS + label: "GOTIFY_SERVER_KEEPALIVEPERIODSECONDS" + description: "Sets the GOTIFY_SERVER_KEEPALIVEPERIODSECONDS env var" + schema: + type: int + default: 0 + - variable: GOTIFY_SERVER_LISTENADDR + label: "GOTIFY_SERVER_LISTENADDR" + description: "Sets the GOTIFY_SERVER_LISTENADDR env var" + schema: + type: string + default: "" + - variable: GOTIFY_SERVER_SSL_ENABLED + label: "GOTIFY_SERVER_SSL_ENABLED" + description: "Sets the GOTIFY_SERVER_SSL_ENABLED env var" + schema: + type: boolean + default: false + - variable: GOTIFY_SERVER_RESPONSEHEADERS + label: "GOTIFY_SERVER_RESPONSEHEADERS" + description: "Sets the GOTIFY_SERVER_RESPONSEHEADERS env var" + schema: + type: string + default: "X-Custom-Header: \"custom value\"" + - variable: GOTIFY_SERVER_STREAM_PINGPERIODSECONDS + label: "GOTIFY_SERVER_STREAM_PINGPERIODSECONDS" + description: "Sets the GOTIFY_SERVER_STREAM_PINGPERIODSECONDS env var" + schema: + type: int + default: 45 + - variable: GOTIFY_PASSSTRENGTH + label: "GOTIFY_PASSSTRENGTH" + description: "Sets the GOTIFY_PASSSTRENGTH env var" + schema: + type: int + default: 10 + - variable: GOTIFY_UPLOADEDIMAGESDIR + label: "GOTIFY_UPLOADEDIMAGESDIR" + description: "Sets the GOTIFY_UPLOADEDIMAGESDIR env var" + schema: + type: string + default: "data/images" + - variable: GOTIFY_PLUGINSDIR + label: "GOTIFY_PLUGINSDIR" + description: "Sets the GOTIFY_PLUGINSDIR env var" + schema: + type: string + default: "data/plugins" + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36158 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/app/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/gotify/app-changelog.md b/charts/incubator/gotify/app-changelog.md new file mode 100644 index 00000000000..3bb80f3cfde --- /dev/null +++ b/charts/incubator/gotify/app-changelog.md @@ -0,0 +1,7 @@ + + +### gotify-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/gotify/app-readme.md b/charts/incubator/gotify/app-readme.md new file mode 100644 index 00000000000..939ac824198 --- /dev/null +++ b/charts/incubator/gotify/app-readme.md @@ -0,0 +1,3 @@ +a simple server for sending and receiving messages + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/gotify/helm-values.md b/charts/incubator/gotify/helm-values.md new file mode 100644 index 00000000000..8aa4929d6ad --- /dev/null +++ b/charts/incubator/gotify/helm-values.md @@ -0,0 +1,40 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env.GOTIFY_PASSSTRENGTH | string | `"10"` | | +| env.GOTIFY_PLUGINSDIR | string | `"data/plugins"` | | +| env.GOTIFY_SERVER_KEEPALIVEPERIODSECONDS | string | `"0"` | | +| env.GOTIFY_SERVER_LISTENADDR | string | `""` | | +| env.GOTIFY_SERVER_PORT | string | `"8080"` | | +| env.GOTIFY_SERVER_RESPONSEHEADERS | string | `"X-Custom-Header: \"custom value\""` | | +| env.GOTIFY_SERVER_SSL_ENABLED | string | `"false"` | | +| env.GOTIFY_SERVER_STREAM_PINGPERIODSECONDS | string | `"45"` | | +| env.GOTIFY_UPLOADEDIMAGESDIR | string | `"data/images"` | | +| env.TZ | string | `"America/Los_Angeles"` | | +| envFrom[0].configMapRef.name | string | `"gotifyenv"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"gotify/server"` | | +| image.tag | string | `"2.1.0@sha256:57aa2aabac035c16118f625dd6d3d2c3ca421b43b28cb27512f3212193d65771"` | | +| persistence.data.accessMode | string | `"ReadWriteOnce"` | | +| persistence.data.enabled | bool | `true` | | +| persistence.data.mountPath | string | `"/app/data"` | | +| persistence.data.size | string | `"1Gi"` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"gotify"` | | +| postgresql.postgresqlUsername | string | `"gotify"` | | +| secret.pass | string | `"admin"` | | +| secret.user | string | `"admin"` | | +| service.main.ports.main.port | int | `8080` | | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/gotify/templates/_configmap.tpl b/charts/incubator/gotify/templates/_configmap.tpl new file mode 100644 index 00000000000..bae2ecdb399 --- /dev/null +++ b/charts/incubator/gotify/templates/_configmap.tpl @@ -0,0 +1,13 @@ +{{- define "gotify.configmap" }} +{{ $url := ( .Values.postgresql.url.plain | trimAll "\"" ) }} +{{ $password := ( .Values.postgresql.postgresqlPassword | trimAll "\"" ) }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: gotifyenv +data: + GOTIFY_DATABASE_CONNECTION: "host={{ $url }} port=5432 user={{ .Values.postgresql.postgresqlUsername }} dbname={{ .Values.postgresql.postgresqlDatabase }} password={{ $password }} sslmode=disable" + GOTIFY_DATABASE_DIALECT: "postgres" + +{{- end }} diff --git a/charts/incubator/gotify/templates/common.yaml b/charts/incubator/gotify/templates/common.yaml new file mode 100644 index 00000000000..c041f992862 --- /dev/null +++ b/charts/incubator/gotify/templates/common.yaml @@ -0,0 +1,7 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.setup" . }} + +{{/* Render configmap for nextcloud */}} +{{- include "gotify.configmap" . }} + +{{ include "common.postSetup" . }} diff --git a/charts/incubator/gotify/values.yaml b/charts/incubator/gotify/values.yaml new file mode 100644 index 00000000000..d73da8d5475 --- /dev/null +++ b/charts/incubator/gotify/values.yaml @@ -0,0 +1,53 @@ +image: + repository: gotify/server + pullPolicy: IfNotPresent + tag: 2.1.0@sha256:57aa2aabac035c16118f625dd6d3d2c3ca421b43b28cb27512f3212193d65771 + +secret: + user: "admin" + pass: "admin" + +# See more environment variables in the gotify documentation +# https://gotify.net/docs/config#environment-variables +env: + # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + TZ: "America/Los_Angeles" + GOTIFY_SERVER_PORT: 8080 + GOTIFY_SERVER_KEEPALIVEPERIODSECONDS: 0 + GOTIFY_SERVER_LISTENADDR: "" + GOTIFY_SERVER_SSL_ENABLED: false + # lists are a little weird but do-able (: + # GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS: "- mydomain.tld\n- myotherdomain.tld" + GOTIFY_SERVER_RESPONSEHEADERS: "X-Custom-Header: \"custom value\"" + # GOTIFY_SERVER_CORS_ALLOWORIGINS: "- \".+.example.com\"\n- \"otherdomain.com\"" + # GOTIFY_SERVER_CORS_ALLOWMETHODS: "- \"GET\"\n- \"POST\"" + # GOTIFY_SERVER_CORS_ALLOWHEADERS: "- \"Authorization\"\n- \"content-type\"" + # GOTIFY_SERVER_STREAM_ALLOWEDORIGINS: "- \".+.example.com\"\n- \"otherdomain.com\"" + GOTIFY_SERVER_STREAM_PINGPERIODSECONDS: 45 + GOTIFY_PASSSTRENGTH: 10 + GOTIFY_UPLOADEDIMAGESDIR: "data/images" + GOTIFY_PLUGINSDIR: "data/plugins" + +envFrom: + - configMapRef: + name: gotifyenv + +service: + main: + ports: + main: + port: 8080 + +persistence: + data: + enabled: true + mountPath: /app/data + accessMode: ReadWriteOnce + size: 1Gi + +# Enabled postgres +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: gotify + postgresqlDatabase: gotify diff --git a/charts/incubator/joplin-server/.helmignore b/charts/incubator/joplin-server/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/joplin-server/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/joplin-server/CHANGELOG.md b/charts/incubator/joplin-server/CHANGELOG.md new file mode 100644 index 00000000000..b4ab063b6f9 --- /dev/null +++ b/charts/incubator/joplin-server/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### joplin-server-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/joplin-server/CONFIG.md b/charts/incubator/joplin-server/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/joplin-server/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/joplin-server/Chart.yaml b/charts/incubator/joplin-server/Chart.yaml new file mode 100644 index 00000000000..75112d0ff08 --- /dev/null +++ b/charts/incubator/joplin-server/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: "2.5.1" +description: This server allows you to sync any Joplin client +name: joplin-server +version: 0.0.1 +kubeVersion: '>=1.16.0-0' +keywords: + - joplin + - notes +home: https://github.com/truecharts/apps/tree/master/charts/stable/jopplin-server +icon: https://raw.githubusercontent.com/laurent22/joplin/master/Assets/LinuxIcons/256x256.png?raw=true +sources: + - https://github.com/laurent22/joplin/tree/dev/packages/server + - https://github.com/laurent22/joplin + - https://hub.docker.com/r/joplin/server +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/joplin-server/README.md b/charts/incubator/joplin-server/README.md new file mode 100644 index 00000000000..a4e5e6ee34a --- /dev/null +++ b/charts/incubator/joplin-server/README.md @@ -0,0 +1,42 @@ +# Introduction + +This server allows you to sync any Joplin client + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/joplin-server/SCALE/item.yaml b/charts/incubator/joplin-server/SCALE/item.yaml new file mode 100644 index 00000000000..c4f9d3bc5f5 --- /dev/null +++ b/charts/incubator/joplin-server/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://raw.githubusercontent.com/laurent22/joplin/master/Assets/LinuxIcons/256x256.png?raw=true diff --git a/charts/incubator/joplin-server/SCALE/questions.yaml b/charts/incubator/joplin-server/SCALE/questions.yaml new file mode 100644 index 00000000000..85bb7224a0b --- /dev/null +++ b/charts/incubator/joplin-server/SCALE/questions.yaml @@ -0,0 +1,662 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: APP_BASE_URL + label: "APP_BASE_URL" + description: "Sets the APP_BASE_URL env var" + schema: + type: string + default: "" + - variable: APP_PORT + label: "APP_PORT" + description: "Sets the APP_BASE_URL env var" + schema: + type: int + required: true + hidden: true + default: 22300 + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 22300 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 22300 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36159 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/joplin-server/app-changelog.md b/charts/incubator/joplin-server/app-changelog.md new file mode 100644 index 00000000000..cf5c18ff785 --- /dev/null +++ b/charts/incubator/joplin-server/app-changelog.md @@ -0,0 +1,7 @@ + + +### joplin-server-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/joplin-server/app-readme.md b/charts/incubator/joplin-server/app-readme.md new file mode 100644 index 00000000000..1da1e03cb60 --- /dev/null +++ b/charts/incubator/joplin-server/app-readme.md @@ -0,0 +1,3 @@ +This server allows you to sync any Joplin client + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/joplin-server/helm-values.md b/charts/incubator/joplin-server/helm-values.md new file mode 100644 index 00000000000..b6bc7564a9f --- /dev/null +++ b/charts/incubator/joplin-server/helm-values.md @@ -0,0 +1,36 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [image docs](https://github.com/laurent22/joplin) for more details. | +| env.APP_BASE_URL | string | `"https://joplin.domain"` | joplin-server base URL | +| env.APP_PORT | int | `22300` | joplin-server listening port (same as Service port) | +| env.TZ | string | `"UTC"` | Set the container timezone | +| envTpl.DB_CLIENT | string | `"pg"` | | +| envTpl.POSTGRES_DATABASE | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.POSTGRES_PORT | string | `"5432"` | | +| envTpl.POSTGRES_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.POSTGRES_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.POSTGRES_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"joplin/server"` | image repository | +| image.tag | string | `"2.5.1@sha256:5bd976f19f883352bacad74767237471941cb35b2ded96a1afeeb7168b1e08d8"` | image tag | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/joplin-server/templates/common.yaml b/charts/incubator/joplin-server/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/joplin-server/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/joplin-server/values.yaml b/charts/incubator/joplin-server/values.yaml new file mode 100644 index 00000000000..84ecde36a9d --- /dev/null +++ b/charts/incubator/joplin-server/values.yaml @@ -0,0 +1,57 @@ +image: + # -- image repository + repository: joplin/server + # -- image tag + tag: 2.5.1@sha256:5bd976f19f883352bacad74767237471941cb35b2ded96a1afeeb7168b1e08d8 + # -- image pull policy + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +# -- environment variables. See [image docs](https://github.com/laurent22/joplin) for more details. +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + # -- joplin-server base URL + APP_BASE_URL: https://joplin.domain + # -- joplin-server listening port (same as Service port) + APP_PORT: 22300 + +envTpl: + DB_CLIENT: "pg" + POSTGRES_DATABASE: "{{ .Values.postgresql.postgresqlDatabase }}" + POSTGRES_USER: "{{ .Values.postgresql.postgresqlUsername }}" + POSTGRES_PORT: "5432" + +envValueFrom: + POSTGRES_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + POSTGRES_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 22300 + +# -- Enable and configure postgresql database subchart under this key. +# @default -- See values.yaml +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: joplin + postgresqlDatabase: joplin diff --git a/charts/incubator/kanboard/.helmignore b/charts/incubator/kanboard/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/kanboard/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/kanboard/CHANGELOG.md b/charts/incubator/kanboard/CHANGELOG.md new file mode 100644 index 00000000000..1f8b19b1432 --- /dev/null +++ b/charts/incubator/kanboard/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### kanboard-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/kanboard/CONFIG.md b/charts/incubator/kanboard/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/kanboard/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/kanboard/Chart.yaml b/charts/incubator/kanboard/Chart.yaml new file mode 100644 index 00000000000..2196df1f7ae --- /dev/null +++ b/charts/incubator/kanboard/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: "1.2.20" +description: Kanboard is a free and open source Kanban project management software. +name: kanboard +version: 0.0.1 +kubeVersion: ">=1.16.0-0" +keywords: +- kanboard +- kanban +home: https://github.com/truecharts/apps/tree/master/charts/stable/kanboard +icon: https://raw.githubusercontent.com/kanboard/website/master/assets/img/icon.svg +sources: +- https://github.com/kanboard/kanboard +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/kanboard/README.md b/charts/incubator/kanboard/README.md new file mode 100644 index 00000000000..9ae6db65006 --- /dev/null +++ b/charts/incubator/kanboard/README.md @@ -0,0 +1,40 @@ +# Introduction + +Kanboard is a free and open source Kanban project management software. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/kanboard/SCALE/item.yaml b/charts/incubator/kanboard/SCALE/item.yaml new file mode 100644 index 00000000000..02556b7683a --- /dev/null +++ b/charts/incubator/kanboard/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://raw.githubusercontent.com/kanboard/website/master/assets/img/icon.svg diff --git a/charts/incubator/kanboard/SCALE/questions.yaml b/charts/incubator/kanboard/SCALE/questions.yaml new file mode 100644 index 00000000000..0f4beb20083 --- /dev/null +++ b/charts/incubator/kanboard/SCALE/questions.yaml @@ -0,0 +1,807 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: MAIL_CONFIGURATION + label: "MAIL_CONFIGURATION" + description: "Sets the MAIL_CONFIGURATION env var" + schema: + type: boolean + default: false + - variable: LOG_DRIVER + label: "LOG_DRIVER" + description: "Sets the LOG_DRIVER env var" + schema: + type: string + default: "stdout" +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36160 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/www/app/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: ssl + label: "App SSL Storage" + description: "Stores the Application SSL." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/etc/nginx/ssl" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/kanboard/app-changelog.md b/charts/incubator/kanboard/app-changelog.md new file mode 100644 index 00000000000..95ca9016f28 --- /dev/null +++ b/charts/incubator/kanboard/app-changelog.md @@ -0,0 +1,7 @@ + + +### kanboard-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/kanboard/app-readme.md b/charts/incubator/kanboard/app-readme.md new file mode 100644 index 00000000000..f3fe30ec5db --- /dev/null +++ b/charts/incubator/kanboard/app-readme.md @@ -0,0 +1,3 @@ +Kanboard is a free and open source Kanban project management software. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/kanboard/helm-values.md b/charts/incubator/kanboard/helm-values.md new file mode 100644 index 00000000000..0f2738fc701 --- /dev/null +++ b/charts/incubator/kanboard/helm-values.md @@ -0,0 +1,37 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below (only deviations from the default settings are specified) | environment variables. See [image docs](https://docs.kanboard.org/en/latest/admin_guide/docker.html#environment-variables) and [application docs](# https://docs.kanboard.org/en/latest/admin_guide/config_file.html) for more details. | +| env.LOG_DRIVER | string | `"stdout"` | log driver: syslog, stderr, stdout or file | +| env.MAIL_CONFIGURATION | string | `"false"` | Enable/disable email configuration from the user interface | +| env.TZ | string | `"UTC"` | Set the container timezone | +| envTpl.DB_DRIVER | string | `"postgres"` | | +| envTpl.DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_USERNAME | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DB_HOSTNAME.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOSTNAME.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"kanboard/kanboard"` | image repository | +| image.tag | string | `"v1.2.20@sha256:d6d3bab5ca3f079ca782a7dc63e370e0ee3a006c596ba51ff6beb24d051528fc"` | image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/kanboard/templates/common.yaml b/charts/incubator/kanboard/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/kanboard/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/kanboard/values.yaml b/charts/incubator/kanboard/values.yaml new file mode 100644 index 00000000000..c13780bba22 --- /dev/null +++ b/charts/incubator/kanboard/values.yaml @@ -0,0 +1,68 @@ +image: + # -- image repository + repository: kanboard/kanboard + # -- image tag + tag: v1.2.20@sha256:d6d3bab5ca3f079ca782a7dc63e370e0ee3a006c596ba51ff6beb24d051528fc + # -- image pull policy + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +# -- environment variables. See [image docs](https://docs.kanboard.org/en/latest/admin_guide/docker.html#environment-variables) +# and [application docs](# https://docs.kanboard.org/en/latest/admin_guide/config_file.html) for more details. +# @default -- See below (only deviations from the default settings are specified) +env: + # -- Set the container timezone + TZ: UTC + # -- Enable/disable email configuration from the user interface + MAIL_CONFIGURATION: false + # -- log driver: syslog, stderr, stdout or file + LOG_DRIVER: stdout + +envTpl: + DB_DRIVER: "postgres" + DB_NAME: "{{ .Values.postgresql.postgresqlDatabase }}" + DB_USERNAME: "{{ .Values.postgresql.postgresqlUsername }}" + DB_PORT: "5432" + +envValueFrom: + DB_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + DB_HOSTNAME: + secretKeyRef: + name: dbcreds + key: plainhost + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + mountPath: /var/www/app/data + ssl: + enabled: true + mountPath: /etc/nginx/ssl + +# -- Enable and configure postgresql database subchart under this key. +# @default -- See values.yaml +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: kanboard + postgresqlDatabase: kanboard diff --git a/charts/incubator/librespeed/.helmignore b/charts/incubator/librespeed/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/librespeed/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/librespeed/CHANGELOG.md b/charts/incubator/librespeed/CHANGELOG.md new file mode 100644 index 00000000000..faf3eabd7fd --- /dev/null +++ b/charts/incubator/librespeed/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### [librespeed-0.0.1](https://github.com/truecharts/apps/compare/librespeed-3.0.10...librespeed-0.0.1) (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/librespeed/CONFIG.md b/charts/incubator/librespeed/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/librespeed/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/librespeed/Chart.yaml b/charts/incubator/librespeed/Chart.yaml new file mode 100644 index 00000000000..c897ac2a2a4 --- /dev/null +++ b/charts/incubator/librespeed/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: "5.2.4" +description: Librespeed is a HTML5 webpage to test upload and download speeds +name: librespeed +version: 0.0.1 +kubeVersion: ">=1.16.0-0" +keywords: +- librespeed +- speedtest +home: https://github.com/truecharts/apps/tree/master/charts/stable/librespeed +icon: https://github.com/librespeed/speedtest/blob/master/.logo/icon_huge.png?raw=true +sources: +- https://github.com/librespeed/speedtest +- https://hub.docker.com/r/linuxserver/librespeed +- https://github.com/truecharts/apps/tree/master/charts/librespeed +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/librespeed/README.md b/charts/incubator/librespeed/README.md new file mode 100644 index 00000000000..88af1fab544 --- /dev/null +++ b/charts/incubator/librespeed/README.md @@ -0,0 +1,42 @@ +# Introduction + +Librespeed is a HTML5 webpage to test upload and download speeds + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/librespeed/SCALE/item.yaml b/charts/incubator/librespeed/SCALE/item.yaml new file mode 100644 index 00000000000..7e89d2309f0 --- /dev/null +++ b/charts/incubator/librespeed/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://github.com/librespeed/speedtest/blob/master/.logo/icon_huge.png?raw=true diff --git a/charts/incubator/librespeed/SCALE/questions.yaml b/charts/incubator/librespeed/SCALE/questions.yaml new file mode 100644 index 00000000000..cec63795c19 --- /dev/null +++ b/charts/incubator/librespeed/SCALE/questions.yaml @@ -0,0 +1,682 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + type: dict + attrs: + - variable: PASSWORD + label: "PASSWORD" + description: "Sets the PASSWORD env var" + schema: + type: string + default: "changeme" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: CUSTOM_RESULTS + label: "CUSTOM_RESULTS" + description: "Sets the CUSTOM_RESULTS env var" + schema: + type: boolean + default: false +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36161 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: varrun + label: "varrun Storage" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + hidden: true + default: true + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/librespeed/app-changelog.md b/charts/incubator/librespeed/app-changelog.md new file mode 100644 index 00000000000..164b69faea9 --- /dev/null +++ b/charts/incubator/librespeed/app-changelog.md @@ -0,0 +1,7 @@ + + +### [librespeed-0.0.1](https://github.com/truecharts/apps/compare/librespeed-3.0.10...librespeed-0.0.1) (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/librespeed/app-readme.md b/charts/incubator/librespeed/app-readme.md new file mode 100644 index 00000000000..0fc19b18dda --- /dev/null +++ b/charts/incubator/librespeed/app-readme.md @@ -0,0 +1,3 @@ +Librespeed is a HTML5 webpage to test upload and download speeds + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/librespeed/helm-values.md b/charts/incubator/librespeed/helm-values.md new file mode 100644 index 00000000000..20f0af7caf9 --- /dev/null +++ b/charts/incubator/librespeed/helm-values.md @@ -0,0 +1,32 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [image docs](https://hub.docker.com/r/linuxserver/librespeed) for more details. | +| env.PUID | string | `"568"` | Specify the user ID the application will run as | +| env.TZ | string | `"UTC"` | Set the container timezone | +| envTpl.DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_TYPE | string | `"postgresql"` | | +| envTpl.DB_USERNAME | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DB_HOSTNAME.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOSTNAME.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"ghcr.io/linuxserver/librespeed"` | image repository | +| image.tag | string | `"5.2.4@sha256:6a8a801f5531de520ff07fa123cabbb7a39c4bba05a093be4832cd85e18e2489"` | image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| postgresql | object | Enabled (see values.yaml for more details) | Enable and configure postgresql database subchart under this key. | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/librespeed/templates/common.yaml b/charts/incubator/librespeed/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/librespeed/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/librespeed/values.yaml b/charts/incubator/librespeed/values.yaml new file mode 100644 index 00000000000..a7f9887b960 --- /dev/null +++ b/charts/incubator/librespeed/values.yaml @@ -0,0 +1,69 @@ +image: + # -- image repository + repository: ghcr.io/linuxserver/librespeed + # -- image tag + tag: 5.2.4@sha256:6a8a801f5531de520ff07fa123cabbb7a39c4bba05a093be4832cd85e18e2489 + # -- image pull policy + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + + +# -- environment variables. See [image docs](https://hub.docker.com/r/linuxserver/librespeed) for more details. +# @default -- See below +secret: + PASSWORD: "changeme" + +env: + # -- Set the container timezone + TZ: UTC + # -- Specify the user ID the application will run as + PUID: "568" + CUSTOM_RESULTS: false + +envTpl: + DB_TYPE: "postgresql" + DB_NAME: "{{ .Values.postgresql.postgresqlDatabase }}" + DB_USERNAME: "{{ .Values.postgresql.postgresqlUsername }}" + DB_PORT: "5432" + +envValueFrom: + DB_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + DB_HOSTNAME: + secretKeyRef: + name: dbcreds + key: plainhost + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + mountPath: /config + varrun: + enabled: true + +# -- Enable and configure postgresql database subchart under this key. +# @default -- Enabled (see values.yaml for more details) +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlDatabase: librespeed + postgresqlUsername: librespeed diff --git a/charts/incubator/miniflux/.helmignore b/charts/incubator/miniflux/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/miniflux/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/miniflux/CHANGELOG.md b/charts/incubator/miniflux/CHANGELOG.md new file mode 100644 index 00000000000..dc9055166d4 --- /dev/null +++ b/charts/incubator/miniflux/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### miniflux-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/miniflux/CONFIG.md b/charts/incubator/miniflux/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/miniflux/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/miniflux/Chart.yaml b/charts/incubator/miniflux/Chart.yaml new file mode 100644 index 00000000000..0396268c32a --- /dev/null +++ b/charts/incubator/miniflux/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: "2.0.33" +description: Miniflux is a minimalist and opinionated feed reader. +name: miniflux +version: 0.0.1 +kubeVersion: ">=1.16.0-0" +keywords: +- miniflux +- rss +- news +home: https://github.com/truecharts/apps/tree/master/charts/miniflux +icon: https://raw.githubusercontent.com/miniflux/logo/master/icon.svg +sources: +- https://github.com/miniflux/v2 +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/miniflux/README.md b/charts/incubator/miniflux/README.md new file mode 100644 index 00000000000..376317edb44 --- /dev/null +++ b/charts/incubator/miniflux/README.md @@ -0,0 +1,40 @@ +# Introduction + +Miniflux is a minimalist and opinionated feed reader. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/miniflux/SCALE/item.yaml b/charts/incubator/miniflux/SCALE/item.yaml new file mode 100644 index 00000000000..232b60ad89f --- /dev/null +++ b/charts/incubator/miniflux/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://raw.githubusercontent.com/miniflux/logo/master/icon.svg diff --git a/charts/incubator/miniflux/SCALE/questions.yaml b/charts/incubator/miniflux/SCALE/questions.yaml new file mode 100644 index 00000000000..e5a921cd6b0 --- /dev/null +++ b/charts/incubator/miniflux/SCALE/questions.yaml @@ -0,0 +1,677 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + type: dict + attrs: + - variable: ADMIN_USERNAME + label: "ADMIN_USERNAME" + description: "Sets the ADMIN_USERNAME env var" + schema: + type: string + default: "admin" + - variable: ADMIN_PASSWORD + label: "ADMIN_PASSWORD" + description: "Sets the ADMIN_PASSWORD env var" + schema: + type: string + default: "changeme" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: RUN_MIGRATIONS + label: "RUN_MIGRATIONS" + description: "Sets the RUN_MIGRATIONS env var" + schema: + type: int + default: 1 + - variable: CREATE_ADMIN + label: "CREATE_ADMIN" + description: "Sets the CREATE_ADMIN env var" + schema: + type: int + default: 1 + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36162 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/miniflux/app-changelog.md b/charts/incubator/miniflux/app-changelog.md new file mode 100644 index 00000000000..3f4adb24f55 --- /dev/null +++ b/charts/incubator/miniflux/app-changelog.md @@ -0,0 +1,7 @@ + + +### miniflux-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/miniflux/app-readme.md b/charts/incubator/miniflux/app-readme.md new file mode 100644 index 00000000000..61a86733a8d --- /dev/null +++ b/charts/incubator/miniflux/app-readme.md @@ -0,0 +1,3 @@ +Miniflux is a minimalist and opinionated feed reader. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/miniflux/helm-values.md b/charts/incubator/miniflux/helm-values.md new file mode 100644 index 00000000000..4e21bb23975 --- /dev/null +++ b/charts/incubator/miniflux/helm-values.md @@ -0,0 +1,28 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [miniflux docs](https://miniflux.app/docs/configuration.html) for more details. | +| env.ADMIN_PASSWORD | string | `"changeme"` | Admin user password, it's used only if `CREATE_ADMIN` is enabled. | +| env.ADMIN_USERNAME | string | `"admin"` | Admin user login, it's used only if `CREATE_ADMIN` is enabled. | +| env.CREATE_ADMIN | string | `"1"` | Set to `1` to create an admin user from environment variables. | +| env.RUN_MIGRATIONS | string | `"1"` | Set to `1` to run database migrations during application startup. | +| env.TZ | string | `"UTC"` | Set the container timezone. | +| envValueFrom.DATABASE_URL | object | `{"secretKeyRef":{"key":"urlnossl","name":"dbcreds"}}` | Postgresql connection parameters. See [lib/pq](https://pkg.go.dev/github.com/lib/pq#hdr-Connection_String_Parameters) for more details. | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"miniflux/miniflux"` | | +| image.tag | string | `"2.0.33@sha256:fb6f88fd9e41cf6feefaaa11e41a23c6e5dca4a9f6c35fadd34d02d9ca249a9d"` | | +| postgresql | object | Enabled (see values.yaml for more details) | Enable and configure postgresql database subchart under this key. | +| probes | object | See values.yaml | Configures the probes for the main Pod. | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/miniflux/templates/common.yaml b/charts/incubator/miniflux/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/miniflux/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/miniflux/values.yaml b/charts/incubator/miniflux/values.yaml new file mode 100644 index 00000000000..0ade84e1c2f --- /dev/null +++ b/charts/incubator/miniflux/values.yaml @@ -0,0 +1,57 @@ +image: + repository: miniflux/miniflux + tag: 2.0.33@sha256:fb6f88fd9e41cf6feefaaa11e41a23c6e5dca4a9f6c35fadd34d02d9ca249a9d + pullPolicy: IfNotPresent + +# -- environment variables. See [miniflux docs](https://miniflux.app/docs/configuration.html) for more details. +# @default -- See below +secret: + # -- Admin user login, it's used only if `CREATE_ADMIN` is enabled. + ADMIN_USERNAME: "admin" + # -- Admin user password, it's used only if `CREATE_ADMIN` is enabled. + ADMIN_PASSWORD: "changeme" +env: + # -- Set the container timezone. + TZ: UTC + # -- Set to `1` to run database migrations during application startup. + RUN_MIGRATIONS: 1 + # -- Set to `1` to create an admin user from environment variables. + CREATE_ADMIN: 1 + +envValueFrom: + # -- Postgresql connection parameters. See [lib/pq](https://pkg.go.dev/github.com/lib/pq#hdr-Connection_String_Parameters) for more details. + DATABASE_URL: + secretKeyRef: + name: dbcreds + key: urlnossl + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + +# -- Configures the probes for the main Pod. +# @default -- See values.yaml +probes: + liveness: + enabled: true + custom: true + spec: + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + httpGet: + path: /healthcheck + port: 8080 + +# -- Enable and configure postgresql database subchart under this key. +# @default -- Enabled (see values.yaml for more details) +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlDatabase: miniflux + postgresqlUsername: miniflux diff --git a/charts/incubator/odoo/.helmignore b/charts/incubator/odoo/.helmignore new file mode 100644 index 00000000000..0e8a0eb36f4 --- /dev/null +++ b/charts/incubator/odoo/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/incubator/odoo/CHANGELOG.md b/charts/incubator/odoo/CHANGELOG.md new file mode 100644 index 00000000000..8cb4b64671e --- /dev/null +++ b/charts/incubator/odoo/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### odoo-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/odoo/CONFIG.md b/charts/incubator/odoo/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/odoo/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/odoo/Chart.yaml b/charts/incubator/odoo/Chart.yaml new file mode 100644 index 00000000000..7bb36917529 --- /dev/null +++ b/charts/incubator/odoo/Chart.yaml @@ -0,0 +1,32 @@ +apiVersion: v2 +appVersion: "14.0" +version: 0.0.1 +kubeVersion: '>=1.16.0-0' +name: odoo +description: All-in-one business software. Beautiful. Easy-to-use. CRM, Accounting, PM, HR, Procurement, Point of Sale, MRP, Marketing, etc. +type: application +home: "https://github.com/truecharts/apps/tree/main/charts/odoo" +icon: "https://pbs.twimg.com/profile_images/970608340014419969/1bpCWJhS_400x400.jpg" +keywords: + - odoo + - crm + - pm + - hr + - accounting + - mrp + - marketing +sources: + - https://www.odoo.com/ + - https://hub.docker.com/repository/docker/nicholaswilde/odoo +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/odoo/README.md b/charts/incubator/odoo/README.md new file mode 100644 index 00000000000..ba3c5b2504e --- /dev/null +++ b/charts/incubator/odoo/README.md @@ -0,0 +1,41 @@ +# Introduction + +All-in-one business software. Beautiful. Easy-to-use. CRM, Accounting, PM, HR, Procurement, Point of Sale, MRP, Marketing, etc. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/odoo/SCALE/item.yaml b/charts/incubator/odoo/SCALE/item.yaml new file mode 100644 index 00000000000..661b360aa38 --- /dev/null +++ b/charts/incubator/odoo/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: "https://pbs.twimg.com/profile_images/970608340014419969/1bpCWJhS_400x400.jpg" diff --git a/charts/incubator/odoo/SCALE/questions.yaml b/charts/incubator/odoo/SCALE/questions.yaml new file mode 100644 index 00000000000..71df65a7e11 --- /dev/null +++ b/charts/incubator/odoo/SCALE/questions.yaml @@ -0,0 +1,941 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8069 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8069 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36163 + - variable: odoo + label: "Odoo Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: odoo-1 + label: "Odoo-1 Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8071 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8071 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36164 + - variable: odoo-2 + label: "Odoo-2 Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8072 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8072 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36165 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: odoo + label: "App Storage" + description: "Stores the Application." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/var/lib/odoo" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: addons + label: "App Addons Storage" + description: "Stores the Application addons." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/mnt/extra-addons" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/odoo/app-changelog.md b/charts/incubator/odoo/app-changelog.md new file mode 100644 index 00000000000..21acd3460d5 --- /dev/null +++ b/charts/incubator/odoo/app-changelog.md @@ -0,0 +1,7 @@ + + +### odoo-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/odoo/app-readme.md b/charts/incubator/odoo/app-readme.md new file mode 100644 index 00000000000..3b60987ba89 --- /dev/null +++ b/charts/incubator/odoo/app-readme.md @@ -0,0 +1,3 @@ +All-in-one business software. Beautiful. Easy-to-use. CRM, Accounting, PM, HR, Procurement, Point of Sale, MRP, Marketing, etc. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/odoo/helm-values.md b/charts/incubator/odoo/helm-values.md new file mode 100644 index 00000000000..6f445eea6c4 --- /dev/null +++ b/charts/incubator/odoo/helm-values.md @@ -0,0 +1,42 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | `{}` | | +| envTpl.USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"ghcr.io/nicholaswilde/odoo"` | | +| image.tag | string | `"version-14.0@sha256:f66aa76c1070f1d71da0e96a8b1dd1e41ab00d4ae61692d7dfc2267b6f1f1244"` | | +| persistence.addons.accessMode | string | `"ReadWriteOnce"` | | +| persistence.addons.enabled | bool | `true` | | +| persistence.addons.mountPath | string | `"/mnt/extra-addons"` | | +| persistence.addons.size | string | `"1Gi"` | | +| persistence.odoo.accessMode | string | `"ReadWriteOnce"` | | +| persistence.odoo.enabled | bool | `true` | | +| persistence.odoo.mountPath | string | `"/var/lib/odoo"` | | +| persistence.odoo.size | string | `"1Gi"` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"postgres"` | | +| postgresql.postgresqlUsername | string | `"odoo"` | | +| secret | object | `{}` | | +| service.main.ports.main.port | int | `8069` | | +| service.odoo.ports.odoo-1.port | int | `8071` | | +| service.odoo.ports.odoo-1.protocol | string | `"TCP"` | | +| service.odoo.ports.odoo-2.port | int | `8072` | | +| service.odoo.ports.odoo-2.protocol | string | `"TCP"` | | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/odoo/templates/common.yaml b/charts/incubator/odoo/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/odoo/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/odoo/values.yaml b/charts/incubator/odoo/values.yaml new file mode 100644 index 00000000000..f728d5612cb --- /dev/null +++ b/charts/incubator/odoo/values.yaml @@ -0,0 +1,59 @@ +image: + repository: ghcr.io/nicholaswilde/odoo + pullPolicy: IfNotPresent + tag: version-14.0@sha256:f66aa76c1070f1d71da0e96a8b1dd1e41ab00d4ae61692d7dfc2267b6f1f1244 + +secret: {} + # USER: "odoo" + # PASSWORD: "myodoo" + +# See more environment variables in the odoo documentation +# https://github.com/nicholaswilde/docker-odoo +env: {} + # HOST: "odoo-db" + +envTpl: + USER: "{{ .Values.postgresql.postgresqlUsername }}" + +envValueFrom: + PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + HOST: + secretKeyRef: + name: dbcreds + key: plainhost + +service: + main: + ports: + main: + port: 8069 + odoo: + ports: + odoo-1: + port: 8071 + protocol: TCP + odoo-2: + port: 8072 + protocol: TCP + +persistence: + odoo: + enabled: true + mountPath: /var/lib/odoo + accessMode: ReadWriteOnce + size: 1Gi + addons: + enabled: true + mountPath: /mnt/extra-addons + accessMode: ReadWriteOnce + size: 1Gi + +# Enabled postgres +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: odoo + postgresqlDatabase: postgres diff --git a/charts/incubator/openkm/.helmignore b/charts/incubator/openkm/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/openkm/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/openkm/CHANGELOG.md b/charts/incubator/openkm/CHANGELOG.md new file mode 100644 index 00000000000..605cfad28ce --- /dev/null +++ b/charts/incubator/openkm/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### openkm-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/openkm/CONFIG.md b/charts/incubator/openkm/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/openkm/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/openkm/Chart.yaml b/charts/incubator/openkm/Chart.yaml new file mode 100644 index 00000000000..69f8ad03d2c --- /dev/null +++ b/charts/incubator/openkm/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: "6.3.11" +description: OpenKM integrates all essential documents management, collaboration and an advanced search functionality into one easy to use solution. +name: openkm +version: 0.0.1 +kubeVersion: ">=1.16.0-0" +keywords: +- openkm +- documentation management +- docs +home: https://github.com/truecharts/apps/tree/master/charts/stable/openkm +icon: https://raw.githubusercontent.com/openkm/document-management-system/master/src/main/webapp/img/logo_favicon.ico +sources: +- https://www.openkm.com/ +- https://github.com/openkm/document-management-system +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/openkm/README.md b/charts/incubator/openkm/README.md new file mode 100644 index 00000000000..c8c146ea733 --- /dev/null +++ b/charts/incubator/openkm/README.md @@ -0,0 +1,41 @@ +# Introduction + +OpenKM integrates all essential documents management, collaboration and an advanced search functionality into one easy to use solution. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/openkm/SCALE/item.yaml b/charts/incubator/openkm/SCALE/item.yaml new file mode 100644 index 00000000000..5d68277f48b --- /dev/null +++ b/charts/incubator/openkm/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://raw.githubusercontent.com/openkm/document-management-system/master/src/main/webapp/img/logo_favicon.ico diff --git a/charts/incubator/openkm/SCALE/questions.yaml b/charts/incubator/openkm/SCALE/questions.yaml new file mode 100644 index 00000000000..19e20d7ac79 --- /dev/null +++ b/charts/incubator/openkm/SCALE/questions.yaml @@ -0,0 +1,648 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36166 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/opt/tomcat/repository" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/openkm/app-changelog.md b/charts/incubator/openkm/app-changelog.md new file mode 100644 index 00000000000..a10b84ec332 --- /dev/null +++ b/charts/incubator/openkm/app-changelog.md @@ -0,0 +1,7 @@ + + +### openkm-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/openkm/app-readme.md b/charts/incubator/openkm/app-readme.md new file mode 100644 index 00000000000..e57fff3a57a --- /dev/null +++ b/charts/incubator/openkm/app-readme.md @@ -0,0 +1,3 @@ +OpenKM integrates all essential documents management, collaboration and an advanced search functionality into one easy to use solution. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/openkm/helm-values.md b/charts/incubator/openkm/helm-values.md new file mode 100644 index 00000000000..6aa277fc777 --- /dev/null +++ b/charts/incubator/openkm/helm-values.md @@ -0,0 +1,36 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See more environment variables in the [openkm documentation](https://openkm.org/docs). | +| env.TZ | string | `"UTC"` | Set the container timezone | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"openkm/openkm-ce"` | image repository | +| image.tag | string | `"6.3.11@sha256:15bf6110539b02795a52f4472d95511736cfbdedef8396baf24c65a3aae28814"` | image tag | +| initContainers.init.command[0] | string | `"/config/init/init.sh"` | | +| initContainers.init.image | string | `"{{ .Values.alpineImage.repository }}:{{ .Values.alpineImage.tag }}"` | | +| initContainers.init.volumeMounts[0].mountPath | string | `"/config/init"` | | +| initContainers.init.volumeMounts[0].name | string | `"init"` | | +| initContainers.init.volumeMounts[1].mountPath | string | `"/opt/tomcat"` | | +| initContainers.init.volumeMounts[1].name | string | `"config"` | | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"openkm"` | | +| postgresql.postgresqlUsername | string | `"openkm"` | | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/openkm/templates/_configmap.tpl b/charts/incubator/openkm/templates/_configmap.tpl new file mode 100644 index 00000000000..a66fbec64ad --- /dev/null +++ b/charts/incubator/openkm/templates/_configmap.tpl @@ -0,0 +1,92 @@ +{{/* Define the configmap */}} +{{- define "openkm.configmap" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }}-init +data: + init.sh: |- + #!/bin/sh + mkdir /opt/tomcat/conf || echo "cannot create conf folder, most likely it already exists..." + if [ ! -f "/config/OpenKM.cfg.default" ]; then + cp /config/init/OpenKM.cfg.default /opt/tomcat/OpenKM.cfg + fi + if [ ! -f "/config/server.xml.default" ]; then + cp /config/init/server.xml.default /opt/tomcat/conf/server.xml + fi + + OpenKM.cfg.default: |- + # OpenKM Hibernate configuration values + hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect + hibernate.hbm2ddl=create + + # Logback configuration file + logback.config=logback.xml + server.xml.default: |- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{{- end -}} diff --git a/charts/incubator/openkm/templates/common.yaml b/charts/incubator/openkm/templates/common.yaml new file mode 100644 index 00000000000..24a9b365b53 --- /dev/null +++ b/charts/incubator/openkm/templates/common.yaml @@ -0,0 +1,22 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.setup" . }} + +{{/* Render configmap for openkm */}} +{{- include "openkm.configmap" . }} + +{{/* Append the general secret volumes to the volumes */}} +{{- define "openkm.initvolume" -}} +enabled: "true" +mountPath: "/config/init" +readOnly: true +type: "custom" +volumeSpec: + configMap: + name: {{ include "common.names.fullname" . }}-init + defaultMode: 0777 +{{- end -}} + +{{- $_ := set .Values.persistence "init" (include "openkm.initvolume" . | fromYaml) -}} + +{{/* Render the templates */}} +{{ include "common.postSetup" . }} diff --git a/charts/incubator/openkm/values.yaml b/charts/incubator/openkm/values.yaml new file mode 100644 index 00000000000..2b39884c612 --- /dev/null +++ b/charts/incubator/openkm/values.yaml @@ -0,0 +1,53 @@ +image: + # -- image repository + repository: openkm/openkm-ce + # -- image tag + tag: 6.3.11@sha256:15bf6110539b02795a52f4472d95511736cfbdedef8396baf24c65a3aae28814 + # -- image pull policy + pullPolicy: IfNotPresent + +initContainers: + init: + image: "{{ .Values.alpineImage.repository }}:{{ .Values.alpineImage.tag }}" + command: ["/config/init/init.sh"] + volumeMounts: + - name: init + mountPath: /config/init + - name: config + mountPath: /opt/tomcat + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +# -- environment variables. See more environment variables in the [openkm documentation](https://openkm.org/docs). +# @default -- See below +env: + # -- Set the container timezone + TZ: UTC + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + enabled: true + ports: + main: + port: 8080 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + config: + enabled: true + mountPath: /opt/tomcat/repository + +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: openkm + postgresqlDatabase: openkm diff --git a/charts/incubator/recipes/.helmignore b/charts/incubator/recipes/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/recipes/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/recipes/CHANGELOG.md b/charts/incubator/recipes/CHANGELOG.md new file mode 100644 index 00000000000..6f71c37ae02 --- /dev/null +++ b/charts/incubator/recipes/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### recipes-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/recipes/CONFIG.md b/charts/incubator/recipes/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/recipes/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/recipes/Chart.yaml b/charts/incubator/recipes/Chart.yaml new file mode 100644 index 00000000000..73b765e915e --- /dev/null +++ b/charts/incubator/recipes/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: "0.17.2" +description: Recipes is a Django application to manage, tag and search recipes using either built in models or external storage providers hosting PDF's, Images or other files. +name: recipes +version: 0.0.1 +kubeVersion: ">=1.16.0-0" +keywords: +- recipes +- cooking +home: https://github.com/truecharts/apps/tree/master/charts/stable/recipes +icon: https://raw.githubusercontent.com/vabene1111/recipes/develop/docs/logo_color.svg +sources: +- https://github.com/vabene1111/recipes +- https://hub.docker.com/r/vabene1111/recipes +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/recipes/README.md b/charts/incubator/recipes/README.md new file mode 100644 index 00000000000..891b6b3233e --- /dev/null +++ b/charts/incubator/recipes/README.md @@ -0,0 +1,41 @@ +# Introduction + +Recipes is a Django application to manage, tag and search recipes using either built in models or external storage providers hosting PDF's, Images or other files. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/recipes/SCALE/item.yaml b/charts/incubator/recipes/SCALE/item.yaml new file mode 100644 index 00000000000..4888a9453c7 --- /dev/null +++ b/charts/incubator/recipes/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://raw.githubusercontent.com/vabene1111/recipes/develop/docs/logo_color.svg diff --git a/charts/incubator/recipes/SCALE/questions.yaml b/charts/incubator/recipes/SCALE/questions.yaml new file mode 100644 index 00000000000..fb3a4e81735 --- /dev/null +++ b/charts/incubator/recipes/SCALE/questions.yaml @@ -0,0 +1,843 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + type: dict + attrs: + - variable: SECRET_KEY + label: "SECRET_KEY" + description: "Sets the SECRET_KEY env var" + schema: + type: string + default: "changeme" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: DEBUG + label: "DEBUG" + description: "Sets the DEBUG env var" + schema: + type: int + default: 0 + - variable: ALLOWED_HOSTS + label: "ALLOWED_HOSTS" + description: "Sets the ALLOWED_HOSTS env var" + schema: + type: string + default: "*" + - variable: GUNICORN_MEDIA + label: "GUNICORN_MEDIA" + description: "Sets the GUNICORN_MEDIA env var" + schema: + type: int + default: 0 + - variable: FRACTION_PREF_DEFAULT + label: "FRACTION_PREF_DEFAULT" + description: "Sets the FRACTION_PREF_DEFAULT env var" + schema: + type: int + default: 0 + - variable: COMMENT_PREF_DEFAULT + label: "COMMENT_PREF_DEFAULT" + description: "Sets the COMMENT_PREF_DEFAULT env var" + schema: + type: int + default: 1 + - variable: SHOPPING_MIN_AUTOSYNC_INTERVAL + label: "SHOPPING_MIN_AUTOSYNC_INTERVAL" + description: "Sets the SHOPPING_MIN_AUTOSYNC_INTERVAL env var" + schema: + type: int + default: 5 + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36167 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: media + label: "App Media Storage" + description: "Stores the Application media." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/opt/recipes/mediafiles" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: static + label: "App Staticfiles Storage" + description: "Stores the Application staticfiles." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/opt/recipes/staticfiles" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/recipes/app-changelog.md b/charts/incubator/recipes/app-changelog.md new file mode 100644 index 00000000000..8d98201b64f --- /dev/null +++ b/charts/incubator/recipes/app-changelog.md @@ -0,0 +1,7 @@ + + +### recipes-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/recipes/app-readme.md b/charts/incubator/recipes/app-readme.md new file mode 100644 index 00000000000..b9136ac97a6 --- /dev/null +++ b/charts/incubator/recipes/app-readme.md @@ -0,0 +1,3 @@ +Recipes is a Django application to manage, tag and search recipes using either built in models or external storage providers hosting PDF's, Images or other files. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/recipes/helm-values.md b/charts/incubator/recipes/helm-values.md new file mode 100644 index 00000000000..09badb896f7 --- /dev/null +++ b/charts/incubator/recipes/helm-values.md @@ -0,0 +1,51 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| additionalContainers.nginx.image | string | `"{{ .Values.nginxImage.repository }}:{{ .Values.nginxImage.tag }}"` | | +| additionalContainers.nginx.name | string | `"nginx"` | | +| additionalContainers.nginx.ports[0].containerPort | int | `80` | | +| additionalContainers.nginx.ports[0].name | string | `"main"` | | +| additionalContainers.nginx.volumeMounts[0].mountPath | string | `"/etc/nginx/nginx.conf"` | | +| additionalContainers.nginx.volumeMounts[0].name | string | `"recipes-config"` | | +| additionalContainers.nginx.volumeMounts[0].readOnly | bool | `true` | | +| additionalContainers.nginx.volumeMounts[0].subPath | string | `"nginx-config"` | | +| additionalContainers.nginx.volumeMounts[1].mountPath | string | `"/media"` | | +| additionalContainers.nginx.volumeMounts[1].name | string | `"media"` | | +| additionalContainers.nginx.volumeMounts[2].mountPath | string | `"/static"` | | +| additionalContainers.nginx.volumeMounts[2].name | string | `"static"` | | +| env | object | See below | environment variables. See [project docs](https://raw.githubusercontent.com/vabene1111/recipes/master/.env.template) for more details. | +| envTpl.DB_ENGINE | string | `"django.db.backends.postgresql"` | | +| envTpl.POSTGRES_DB | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.POSTGRES_PORT | string | `"5432"` | | +| envTpl.POSTGRES_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.POSTGRES_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.POSTGRES_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"vabene1111/recipes"` | image repository | +| image.tag | string | `"0.17.2@sha256:01e5f436ac192ee1cca996e628a3dee1029b99f7b4489bdeeaaf74aaf923538e"` | image tag | +| nginxImage.repository | string | `"nginx"` | nginx sidecar image repository | +| nginxImage.tag | string | `"1.21.3@sha256:7250923ba3543110040462388756ef099331822c6172a050b12c7a38361ea46f"` | nginx sidecar image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"recipes"` | | +| postgresql.postgresqlUsername | string | `"recipes"` | | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/recipes/templates/common.yaml b/charts/incubator/recipes/templates/common.yaml new file mode 100644 index 00000000000..710aed0f01e --- /dev/null +++ b/charts/incubator/recipes/templates/common.yaml @@ -0,0 +1,18 @@ +{{- include "common.setup" . }} + +{{/* Append the hardcoded settings */}} +{{- define "recipes.harcodedValues" -}} +persistence: + recipes-config: + enabled: "true" + mountPath: "/app/config.json" + subPath: "config.json" + type: "custom" + volumeSpec: + configMap: + name: {{ printf "%v-config" (include "common.names.fullname" .) }} +{{- end -}} +{{- $_ := mergeOverwrite .Values (include "recipes.harcodedValues" . | fromYaml) -}} + +{{/* Render the templates */}} +{{ include "common.postSetup" . }} diff --git a/charts/incubator/recipes/templates/configmap.yaml b/charts/incubator/recipes/templates/configmap.yaml new file mode 100644 index 00000000000..449b0d71f71 --- /dev/null +++ b/charts/incubator/recipes/templates/configmap.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }}-config + labels: + {{- include "common.labels" . | nindent 4 }} +data: + nginx-config: |- + events { + worker_connections 1024; + } + http { + include /etc/nginx/mime.types; + server { + listen 80; + server_name _; + client_max_body_size 16M; + # serve media files + location /media/ { + alias /media/; + } + # serve static files + location /static/ { + alias /static/; + } + # pass requests for dynamic content to gunicorn + location / { + proxy_set_header Host $host; + proxy_pass http://localhost:8080; + } + } + } diff --git a/charts/incubator/recipes/values.yaml b/charts/incubator/recipes/values.yaml new file mode 100644 index 00000000000..e3dc282afd1 --- /dev/null +++ b/charts/incubator/recipes/values.yaml @@ -0,0 +1,92 @@ +image: + # -- image repository + repository: vabene1111/recipes + # -- image tag + tag: 0.17.2@sha256:01e5f436ac192ee1cca996e628a3dee1029b99f7b4489bdeeaaf74aaf923538e + # -- image pull policy + pullPolicy: IfNotPresent + +nginxImage: + # -- nginx sidecar image repository + repository: nginx + # -- nginx sidecar image tag + tag: 1.21.3@sha256:7250923ba3543110040462388756ef099331822c6172a050b12c7a38361ea46f + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +# -- environment variables. See [project docs](https://raw.githubusercontent.com/vabene1111/recipes/master/.env.template) for more details. +# @default -- See below +env: + TIMEZONE: UTC + DEBUG: 0 + ALLOWED_HOSTS: "*" + SECRET_KEY: "changeme" + GUNICORN_MEDIA: 0 + FRACTION_PREF_DEFAULT: 0 + COMMENT_PREF_DEFAULT: 1 + SHOPPING_MIN_AUTOSYNC_INTERVAL: 5 + +envTpl: + DB_ENGINE: "django.db.backends.postgresql" + POSTGRES_DB: "{{ .Values.postgresql.postgresqlDatabase }}" + POSTGRES_USER: "{{ .Values.postgresql.postgresqlUsername }}" + POSTGRES_PORT: "5432" + +envValueFrom: + POSTGRES_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + POSTGRES_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + +additionalContainers: + nginx: + name: nginx + image: "{{ .Values.nginxImage.repository }}:{{ .Values.nginxImage.tag }}" + ports: + - containerPort: 80 + name: main + volumeMounts: + - name: recipes-config + mountPath: /etc/nginx/nginx.conf + subPath: nginx-config + readOnly: true + - name: media + mountPath: '/media' + - name: static + mountPath: '/static' + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 80 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + media: + enabled: true + mountPath: /opt/recipes/mediafiles + static: + enabled: true + type: emptyDir + mountPath: /opt/recipes/staticfiles + +# Enabled postgres +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: recipes + postgresqlDatabase: recipes diff --git a/charts/incubator/shiori/.helmignore b/charts/incubator/shiori/.helmignore new file mode 100644 index 00000000000..0e8a0eb36f4 --- /dev/null +++ b/charts/incubator/shiori/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/incubator/shiori/CHANGELOG.md b/charts/incubator/shiori/CHANGELOG.md new file mode 100644 index 00000000000..97d8f1d5af4 --- /dev/null +++ b/charts/incubator/shiori/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### shiori-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/shiori/CONFIG.md b/charts/incubator/shiori/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/shiori/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/shiori/Chart.yaml b/charts/incubator/shiori/Chart.yaml new file mode 100644 index 00000000000..ccbd05007ea --- /dev/null +++ b/charts/incubator/shiori/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: "1.5.0" +version: 0.0.1 +kubeVersion: '>=1.16.0-0' +name: shiori +description: A simple bookmark manager built with Go +type: application +home: "https://github.com/truecharts/apps/tree/main/charts/shiori" +icon: "https://github.com/go-shiori/shiori/raw/master/internal/view/res/apple-touch-icon-152x152.png" +keywords: + - shiori + - bookmark + - bookmark-manager + - web-interface +sources: + - https://github.com/go-shiori/shiori + - https://github.com/nicholaswilde/docker-shiori +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/shiori/README.md b/charts/incubator/shiori/README.md new file mode 100644 index 00000000000..70de4718c81 --- /dev/null +++ b/charts/incubator/shiori/README.md @@ -0,0 +1,41 @@ +# Introduction + +A simple bookmark manager built with Go + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/shiori/SCALE/item.yaml b/charts/incubator/shiori/SCALE/item.yaml new file mode 100644 index 00000000000..5b60c407264 --- /dev/null +++ b/charts/incubator/shiori/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: "https://github.com/go-shiori/shiori/raw/master/internal/view/res/apple-touch-icon-152x152.png" diff --git a/charts/incubator/shiori/SCALE/questions.yaml b/charts/incubator/shiori/SCALE/questions.yaml new file mode 100644 index 00000000000..aacc56147c9 --- /dev/null +++ b/charts/incubator/shiori/SCALE/questions.yaml @@ -0,0 +1,665 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36168 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" + - variable: varrun + label: "varrun override for S6 Readonly Root" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "" + schema: + type: boolean + default: true + hidden: true +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/shiori/app-changelog.md b/charts/incubator/shiori/app-changelog.md new file mode 100644 index 00000000000..42f62ed4372 --- /dev/null +++ b/charts/incubator/shiori/app-changelog.md @@ -0,0 +1,7 @@ + + +### shiori-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/shiori/app-readme.md b/charts/incubator/shiori/app-readme.md new file mode 100644 index 00000000000..9f84e5f83b3 --- /dev/null +++ b/charts/incubator/shiori/app-readme.md @@ -0,0 +1,3 @@ +A simple bookmark manager built with Go + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/shiori/helm-values.md b/charts/incubator/shiori/helm-values.md new file mode 100644 index 00000000000..56e822c4fc1 --- /dev/null +++ b/charts/incubator/shiori/helm-values.md @@ -0,0 +1,41 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env.PUID | int | `568` | | +| envTpl.SHIORI_PG_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.SHIORI_PG_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.SHIORI_PG_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.SHIORI_PG_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.SHIORI_PG_PASS.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.SHIORI_PG_PASS.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"ghcr.io/nicholaswilde/shiori"` | | +| image.tag | string | `"version-v1.5.0@sha256:399e73a1c5a99bd2ccd46314918b6f189ec865405a09219fe99b5663ab4c1dbe"` | | +| persistence.data.accessMode | string | `"ReadWriteOnce"` | | +| persistence.data.enabled | bool | `true` | | +| persistence.data.mountPath | string | `"/data"` | | +| persistence.data.size | string | `"1Gi"` | | +| persistence.varrun.enabled | bool | `true` | | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"shiori"` | | +| postgresql.postgresqlUsername | string | `"shiori"` | | +| secret | object | `{}` | | +| securityContext.allowPrivilegeEscalation | bool | `true` | | +| securityContext.readOnlyRootFilesystem | bool | `true` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service.main.ports.main.port | int | `8080` | | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/shiori/templates/common.yaml b/charts/incubator/shiori/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/shiori/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/shiori/values.yaml b/charts/incubator/shiori/values.yaml new file mode 100644 index 00000000000..a7c794da26d --- /dev/null +++ b/charts/incubator/shiori/values.yaml @@ -0,0 +1,55 @@ +image: + repository: ghcr.io/nicholaswilde/shiori + pullPolicy: IfNotPresent + tag: version-v1.5.0@sha256:399e73a1c5a99bd2ccd46314918b6f189ec865405a09219fe99b5663ab4c1dbe + +securityContext: + readOnlyRootFilesystem: true + allowPrivilegeEscalation: true + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +# See more environment variables in the shiori documentation +# https://github.com/go-shiori/shiori/wiki/Configuration#database +env: + # TZ: + PUID: 568 + +envTpl: + SHIORI_PG_NAME: "{{ .Values.postgresql.postgresqlDatabase }}" + SHIORI_PG_USER: "{{ .Values.postgresql.postgresqlUsername }}" + +envValueFrom: + SHIORI_PG_PASS: + secretKeyRef: + name: dbcreds + key: postgresql-password + SHIORI_PG_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + +service: + main: + ports: + main: + port: 8080 + +persistence: + data: + enabled: true + mountPath: /data + accessMode: ReadWriteOnce + size: 1Gi + varrun: + enabled: true + +# Enabled postgres +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: shiori + postgresqlDatabase: shiori diff --git a/charts/incubator/statping/.helmignore b/charts/incubator/statping/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/statping/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/statping/CHANGELOG.md b/charts/incubator/statping/CHANGELOG.md new file mode 100644 index 00000000000..ccfa2e5bc9a --- /dev/null +++ b/charts/incubator/statping/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### statping-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/statping/CONFIG.md b/charts/incubator/statping/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/statping/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/statping/Chart.yaml b/charts/incubator/statping/Chart.yaml new file mode 100644 index 00000000000..0cf040a25fd --- /dev/null +++ b/charts/incubator/statping/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: "0.90.74" +description: Status page for monitoring your websites and applications +name: statping +version: 0.0.1 +kubeVersion: ">=1.16.0-0" +keywords: +- statping +- status +- status-page +home: https://github.com/truecharts/apps/tree/master/charts/stable/statping +icon: https://avatars.githubusercontent.com/u/61949049?s=200&v=4 +sources: +- https://github.com/statping/statping +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/statping/README.md b/charts/incubator/statping/README.md new file mode 100644 index 00000000000..1985e57128e --- /dev/null +++ b/charts/incubator/statping/README.md @@ -0,0 +1,40 @@ +# Introduction + +Status page for monitoring your websites and applications + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/statping/SCALE/item.yaml b/charts/incubator/statping/SCALE/item.yaml new file mode 100644 index 00000000000..ba83fbb36b2 --- /dev/null +++ b/charts/incubator/statping/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://avatars.githubusercontent.com/u/61949049?s=200PLACEHOLDERICONv=4 diff --git a/charts/incubator/statping/SCALE/questions.yaml b/charts/incubator/statping/SCALE/questions.yaml new file mode 100644 index 00000000000..124fa4b55ed --- /dev/null +++ b/charts/incubator/statping/SCALE/questions.yaml @@ -0,0 +1,700 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + type: dict + attrs: + - variable: ADMIN_USER + label: "ADMIN_USER" + description: "Sets the ADMIN_USER env var" + schema: + type: string + default: "admin" + - variable: ADMIN_PASSWORD + label: "ADMIN_PASSWORD" + description: "Sets the ADMIN_PASSWORD env var" + schema: + type: string + default: "changeme" + - variable: ADMIN_EMAIL + label: "ADMIN_EMAIL" + description: "Sets the ADMIN_EMAIL env var" + schema: + type: string + default: "" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: NAME + label: "NAME" + description: "Sets the NAME env var" + schema: + type: string + default: "Statping Example" + - variable: DESCRIPTION + label: "DESCRIPTION" + description: "Sets the DESCRIPTION env var" + schema: + type: string + default: "This is a Statping instance deployed as Helm chart" + - variable: VIRTUAL_HOST + label: "VIRTUAL_HOST" + description: "Sets the VIRTUAL_HOST env var" + schema: + type: string + default: "" + - variable: USE_CDN + label: "USE_CDN" + description: "Sets the USE_CDN env var" + schema: + type: boolean + default: false + - variable: DISABLE_LOGS + label: "DISABLE_LOGS" + description: "Sets the DISABLE_LOGS env var" + schema: + type: boolean + default: false +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36169 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/app" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/statping/app-changelog.md b/charts/incubator/statping/app-changelog.md new file mode 100644 index 00000000000..036eee94480 --- /dev/null +++ b/charts/incubator/statping/app-changelog.md @@ -0,0 +1,7 @@ + + +### statping-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/statping/app-readme.md b/charts/incubator/statping/app-readme.md new file mode 100644 index 00000000000..ea3dd65f563 --- /dev/null +++ b/charts/incubator/statping/app-readme.md @@ -0,0 +1,3 @@ +Status page for monitoring your websites and applications + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/statping/helm-values.md b/charts/incubator/statping/helm-values.md new file mode 100644 index 00000000000..800b5688562 --- /dev/null +++ b/charts/incubator/statping/helm-values.md @@ -0,0 +1,37 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [application docs](https://github.com/statping/statping/wiki/Config-with-.env-File) for more details. | +| env.DESCRIPTION | string | `"This is a Statping instance deployed as Helm chart"` | Description of the Statping instance | +| env.DISABLE_LOGS | bool | `false` | Disable logs from appearing and writing to disk | +| env.NAME | string | `"Statping Example"` | Name of the Statping instance | +| env.TZ | string | `"UTC"` | Set the container timezone | +| env.USE_CDN | bool | `false` | Use CDN for static context from third-parties | +| env.VIRTUAL_HOST | string | `""` | External URL you use to connect to the statping (the one you enter in your browser) | +| envTpl.DB_CONN | string | `"postgres"` | | +| envTpl.DB_DATABASE | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envTpl.POSTGRES_SSLMODE | string | `"disable"` | | +| envValueFrom.DB_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASS.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASS.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"statping/statping"` | image repository | +| image.tag | string | `"v0.90.74@sha256:d55c3ea8b64411199f7952fc6e00b2090bb6f1691a1d197a2a7e237e92384523"` | image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/statping/templates/common.yaml b/charts/incubator/statping/templates/common.yaml new file mode 100644 index 00000000000..86e494807ae --- /dev/null +++ b/charts/incubator/statping/templates/common.yaml @@ -0,0 +1,12 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.setup" . }} + +{{/* Append the hardcoded settings */}} +{{- define "statping.hardcodedValues" -}} +env: + VIRTUAL_PORT: {{ .Values.service.main.ports.main.port }} +{{- end -}} +{{- $_ := mergeOverwrite .Values (include "statping.hardcodedValues" . | fromYaml) -}} + +{{/* Render the templates */}} +{{ include "common.postSetup" . }} diff --git a/charts/incubator/statping/values.yaml b/charts/incubator/statping/values.yaml new file mode 100644 index 00000000000..60e0968b022 --- /dev/null +++ b/charts/incubator/statping/values.yaml @@ -0,0 +1,73 @@ +image: + # -- image repository + repository: statping/statping + # -- image tag + tag: v0.90.74@sha256:d55c3ea8b64411199f7952fc6e00b2090bb6f1691a1d197a2a7e237e92384523 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [application docs](https://github.com/statping/statping/wiki/Config-with-.env-File) for more details. +# @default -- See below +secret: + # -- dashboard admin user (needed to edit) + ADMIN_USER: "admin" + # -- dashboard admin password (needed to edit) + ADMIN_PASSWORD: "changeme" + # -- dashboard admin email + ADMIN_EMAIL: "info@example.com" +env: + # -- Set the container timezone + TZ: UTC + # -- Name of the Statping instance + NAME: "Statping Example" + # -- Description of the Statping instance + DESCRIPTION: "This is a Statping instance deployed as Helm chart" + # -- External URL you use to connect to the statping (the one you enter in your browser) + VIRTUAL_HOST: "" + # -- Use CDN for static context from third-parties + USE_CDN: false + # -- Disable logs from appearing and writing to disk + DISABLE_LOGS: false + + +envTpl: + DB_CONN: "postgres" + DB_DATABASE: "{{ .Values.postgresql.postgresqlDatabase }}" + DB_USER: "{{ .Values.postgresql.postgresqlUsername }}" + DB_PORT: "5432" + POSTGRES_SSLMODE: "disable" + +envValueFrom: + DB_PASS: + secretKeyRef: + name: dbcreds + key: postgresql-password + DB_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + mountPath: /app + +# -- Enable and configure postgresql database subchart under this key. +# @default -- See values.yaml +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: postgres + postgresqlDatabase: postgres diff --git a/charts/incubator/teedy/.helmignore b/charts/incubator/teedy/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/teedy/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/teedy/CHANGELOG.md b/charts/incubator/teedy/CHANGELOG.md new file mode 100644 index 00000000000..de6faad5bd2 --- /dev/null +++ b/charts/incubator/teedy/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### teedy-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/teedy/CONFIG.md b/charts/incubator/teedy/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/teedy/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/teedy/Chart.yaml b/charts/incubator/teedy/Chart.yaml new file mode 100644 index 00000000000..84b8d1ea80e --- /dev/null +++ b/charts/incubator/teedy/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +appVersion: "1.9" +description: Teedy is an open source, lightweight document management system for individuals and businesses. +name: teedy +version: 0.0.1 +kubeVersion: ">=1.16.0-0" +keywords: +- teedy +- documents +- management +home: https://github.com/truecharts/apps/tree/master/charts/stable/teedy +icon: https://raw.githubusercontent.com/sismics/docs/v1.9/docs-web/src/main/resources/image/logo.png +sources: +- https://github.com/sismics/docs +- https://github.com/truecharts/apps/tree/master/charts/teedy +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/teedy/README.md b/charts/incubator/teedy/README.md new file mode 100644 index 00000000000..a7b79809b86 --- /dev/null +++ b/charts/incubator/teedy/README.md @@ -0,0 +1,41 @@ +# Introduction + +Teedy is an open source, lightweight document management system for individuals and businesses. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/teedy/SCALE/item.yaml b/charts/incubator/teedy/SCALE/item.yaml new file mode 100644 index 00000000000..37ea29836db --- /dev/null +++ b/charts/incubator/teedy/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://raw.githubusercontent.com/sismics/docs/v1.9/docs-web/src/main/resources/image/logo.png diff --git a/charts/incubator/teedy/SCALE/questions.yaml b/charts/incubator/teedy/SCALE/questions.yaml new file mode 100644 index 00000000000..8fa37be3e45 --- /dev/null +++ b/charts/incubator/teedy/SCALE/questions.yaml @@ -0,0 +1,702 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + type: dict + attrs: + - variable: DOCS_ADMIN_EMAIL_INIT + label: "DOCS_ADMIN_EMAIL_INIT" + description: "Sets the DOCS_ADMIN_EMAIL_INIT env var" + schema: + type: string + default: "" + - variable: DOCS_ADMIN_PASSWORD_INIT + label: "DOCS_ADMIN_PASSWORD_INIT" + description: "Sets the DOCS_ADMIN_PASSWORD_INIT env var" + schema: + type: string + default: "" + - variable: DOCS_SMTP_USERNAME + label: "DOCS_SMTP_USERNAME" + description: "Sets the DOCS_SMTP_USERNAME env var" + schema: + type: string + default: "" + - variable: DOCS_SMTP_PASSWORD + label: "DOCS_SMTP_PASSWORD" + description: "Sets the DOCS_SMTP_PASSWORD env var" + schema: + type: string + default: "" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: DOCS_DEFAULT_LANGUAGE + label: "DOCS_DEFAULT_LANGUAGE" + description: "Sets the DOCS_DEFAULT_LANGUAGE env var" + schema: + type: string + default: "eng" + - variable: DOCS_BASE_URL + label: "DOCS_BASE_URL" + description: "Sets the DOCS_BASE_URL env var" + schema: + type: string + default: "" + - variable: DOCS_SMTP_HOSTNAME + label: "DOCS_SMTP_HOSTNAME" + description: "Sets the DOCS_SMTP_HOSTNAME env var" + schema: + type: string + default: "" + - variable: DOCS_SMTP_PORT + label: "DOCS_SMTP_PORT" + description: "Sets the DOCS_SMTP_PORT env var" + schema: + type: int + default: 0 + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36170 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/teedy/app-changelog.md b/charts/incubator/teedy/app-changelog.md new file mode 100644 index 00000000000..84dd57265f8 --- /dev/null +++ b/charts/incubator/teedy/app-changelog.md @@ -0,0 +1,7 @@ + + +### teedy-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/teedy/app-readme.md b/charts/incubator/teedy/app-readme.md new file mode 100644 index 00000000000..320460af371 --- /dev/null +++ b/charts/incubator/teedy/app-readme.md @@ -0,0 +1,3 @@ +Teedy is an open source, lightweight document management system for individuals and businesses. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/teedy/helm-values.md b/charts/incubator/teedy/helm-values.md new file mode 100644 index 00000000000..6f733c36d0e --- /dev/null +++ b/charts/incubator/teedy/helm-values.md @@ -0,0 +1,39 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [application docs](https://github.com/sismics/docs) for more details. | +| env.DATABASE_PASSWORD | string | `nil` | The password to be used for the database connection. | +| env.DATABASE_URL | string | `nil` | The jdbc connection string to be used by hibernate | +| env.DATABASE_USER | string | `nil` | The user which should be used for the database connection | +| env.DOCS_ADMIN_EMAIL_INIT | string | `nil` | Defines the e-mail-address the admin user should have upon initialization | +| env.DOCS_ADMIN_PASSWORD_INIT | string | `nil` | Defines the password the admin user should have upon initialization. Needs to be a bcrypt hash. | +| env.DOCS_BASE_URL | string | `nil` | The base url used by the application | +| env.DOCS_DEFAULT_LANGUAGE | string | `"eng"` | The language which will be used as default | +| env.DOCS_SMTP_HOSTNAME | string | `nil` | Hostname of the SMTP-Server to be used by Teedy | +| env.DOCS_SMTP_PASSWORD | string | `nil` | The password of the SMTP-Server which should be used | +| env.DOCS_SMTP_PORT | string | `nil` | The port of the SMTP-Server which should be used | +| env.DOCS_SMTP_USERNAME | string | `nil` | The username of the SMTP-Server which should be used | +| env.TZ | string | `"UTC"` | Set the container timezone | +| envTpl.DATABASE_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DATABASE_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DATABASE_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DATABASE_URL.secretKeyRef.key | string | `"jdbc"` | | +| envValueFrom.DATABASE_URL.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"sismics/docs"` | image repository | +| image.tag | string | `"v1.9@sha256:bd52127b6509da4b07d7bbc48c7cc82dcbdc59ceab28d9239c591d0d0732f7af"` | image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/teedy/templates/common.yaml b/charts/incubator/teedy/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/teedy/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/teedy/values.yaml b/charts/incubator/teedy/values.yaml new file mode 100644 index 00000000000..54f955add1c --- /dev/null +++ b/charts/incubator/teedy/values.yaml @@ -0,0 +1,68 @@ +image: + # -- image repository + repository: sismics/docs + # -- image tag + tag: v1.9@sha256:bd52127b6509da4b07d7bbc48c7cc82dcbdc59ceab28d9239c591d0d0732f7af + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See [application docs](https://github.com/sismics/docs) for more details. +# @default -- See below +secret: + # -- Defines the e-mail-address the admin user should have upon initialization + DOCS_ADMIN_EMAIL_INIT: "" + # -- Defines the password the admin user should have upon initialization. Needs to be a bcrypt hash. + DOCS_ADMIN_PASSWORD_INIT: "" + # -- The username of the SMTP-Server which should be used + DOCS_SMTP_USERNAME: "" + # -- The password of the SMTP-Server which should be used + DOCS_SMTP_PASSWORD: "" +env: + # -- Set the container timezone + TZ: UTC + # -- The language which will be used as default + DOCS_DEFAULT_LANGUAGE: "eng" + # -- The base url used by the application + DOCS_BASE_URL: "" + # -- Hostname of the SMTP-Server to be used by Teedy + DOCS_SMTP_HOSTNAME: "" + # -- The port of the SMTP-Server which should be used + DOCS_SMTP_PORT: 0 + + +envTpl: + DATABASE_USER: "{{ .Values.postgresql.postgresqlUsername }}" + +envValueFrom: + DATABASE_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + DATABASE_URL: + secretKeyRef: + name: dbcreds + key: jdbc + + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8080 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + mountPath: /data + +# -- Enable and configure postgresql database subchart under this key. +# @default -- See values.yaml +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: teedyuser + postgresqlDatabase: teedydb diff --git a/charts/incubator/traccar/.helmignore b/charts/incubator/traccar/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/traccar/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/traccar/CHANGELOG.md b/charts/incubator/traccar/CHANGELOG.md new file mode 100644 index 00000000000..988d2668c40 --- /dev/null +++ b/charts/incubator/traccar/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### traccar-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/traccar/CONFIG.md b/charts/incubator/traccar/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/traccar/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/traccar/Chart.yaml b/charts/incubator/traccar/Chart.yaml new file mode 100644 index 00000000000..514dbbb17b5 --- /dev/null +++ b/charts/incubator/traccar/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: "4.14" +description: Traccar is an open source GPS tracking system. +name: traccar +version: 0.0.1 +kubeVersion: ">=1.16.0-0" +keywords: +- traccar +- gps +home: https://github.com/truecharts/apps/tree/master/charts/stable/traccar +icon: "https://github.com/traccar/traccar-web/raw/master/web/icon.png" +sources: +- https://github.com/traccar/traccar +- https://hub.docker.com/r/traccar/traccar +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/traccar/README.md b/charts/incubator/traccar/README.md new file mode 100644 index 00000000000..a2b5a850a2b --- /dev/null +++ b/charts/incubator/traccar/README.md @@ -0,0 +1,41 @@ +# Introduction + +Traccar is an open source GPS tracking system. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/traccar/SCALE/item.yaml b/charts/incubator/traccar/SCALE/item.yaml new file mode 100644 index 00000000000..6b519be0378 --- /dev/null +++ b/charts/incubator/traccar/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: "https://github.com/traccar/traccar-web/raw/master/web/icon.png" diff --git a/charts/incubator/traccar/SCALE/questions.yaml b/charts/incubator/traccar/SCALE/questions.yaml new file mode 100644 index 00000000000..8c1fd9c1b04 --- /dev/null +++ b/charts/incubator/traccar/SCALE/questions.yaml @@ -0,0 +1,660 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: CONFIG_USE_ENVIRONMENT_VARIABLES + label: "CONFIG_USE_ENVIRONMENT_VARIABLES" + description: "Sets the CONFIG_USE_ENVIRONMENT_VARIABLES env var" + schema: + type: boolean + default: true + - variable: LOGGER_CONSOLE + label: "LOGGER_CONSOLE" + description: "Sets the LOGGER_CONSOLE env var" + schema: + type: boolean + default: true + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8082 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8082 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36171 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/opt/traccar/data" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/traccar/app-changelog.md b/charts/incubator/traccar/app-changelog.md new file mode 100644 index 00000000000..fd42b4b5198 --- /dev/null +++ b/charts/incubator/traccar/app-changelog.md @@ -0,0 +1,7 @@ + + +### traccar-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/traccar/app-readme.md b/charts/incubator/traccar/app-readme.md new file mode 100644 index 00000000000..ef5808a3762 --- /dev/null +++ b/charts/incubator/traccar/app-readme.md @@ -0,0 +1,3 @@ +Traccar is an open source GPS tracking system. + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/traccar/helm-values.md b/charts/incubator/traccar/helm-values.md new file mode 100644 index 00000000000..b4fe836d901 --- /dev/null +++ b/charts/incubator/traccar/helm-values.md @@ -0,0 +1,33 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See more environment variables in the [traccar documentation](https://www.traccar.org/configuration-file/) | +| env.CONFIG_USE_ENVIRONMENT_VARIABLES | bool | `true` | Set application to read environment variables | +| env.LOGGER_CONSOLE | bool | `true` | Set application to log to stdout | +| envTpl.DATABASE_DRIVER | string | `"org.postgresql.Driver"` | | +| envTpl.DATABASE_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DATABASE_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DATABASE_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DATABASE_URL.secretKeyRef.key | string | `"jdbc"` | | +| envValueFrom.DATABASE_URL.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"traccar/traccar"` | image repository | +| image.tag | string | `"4.14@sha256:35e733a6a3cab6089cd7b28749ba3483f26d43d392a2606e416409d97d360a55"` | image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"traccar"` | | +| postgresql.postgresqlUsername | string | `"traccar"` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/traccar/templates/common.yaml b/charts/incubator/traccar/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/traccar/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/traccar/values.yaml b/charts/incubator/traccar/values.yaml new file mode 100644 index 00000000000..3b285f6fbd0 --- /dev/null +++ b/charts/incubator/traccar/values.yaml @@ -0,0 +1,51 @@ +image: + # -- image repository + repository: traccar/traccar + # -- image tag + tag: 4.14@sha256:35e733a6a3cab6089cd7b28749ba3483f26d43d392a2606e416409d97d360a55 + # -- image pull policy + pullPolicy: IfNotPresent + +# -- environment variables. See more environment variables in the [traccar documentation](https://www.traccar.org/configuration-file/) +# @default -- See below +env: + # -- Set application to read environment variables + CONFIG_USE_ENVIRONMENT_VARIABLES: true + # -- Set application to log to stdout + LOGGER_CONSOLE: true + +envTpl: + DATABASE_DRIVER: "org.postgresql.Driver" + DATABASE_USER: "{{ .Values.postgresql.postgresqlUsername }}" + +envValueFrom: + DATABASE_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + DATABASE_URL: + secretKeyRef: + name: dbcreds + key: jdbc + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 8082 + +# -- Configure persistence settings for the chart under this key. +# @default -- See values.yaml +persistence: + data: + enabled: true + mountPath: /opt/traccar/data + +# Enabled postgres +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: traccar + postgresqlDatabase: traccar diff --git a/charts/incubator/tt-rss/.helmignore b/charts/incubator/tt-rss/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/tt-rss/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/tt-rss/CHANGELOG.md b/charts/incubator/tt-rss/CHANGELOG.md new file mode 100644 index 00000000000..0c5d9c83f77 --- /dev/null +++ b/charts/incubator/tt-rss/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### tt-rss-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/tt-rss/CONFIG.md b/charts/incubator/tt-rss/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/tt-rss/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/tt-rss/Chart.yaml b/charts/incubator/tt-rss/Chart.yaml new file mode 100644 index 00000000000..9ae689fb649 --- /dev/null +++ b/charts/incubator/tt-rss/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +appVersion: "1.9027.0" +description: Tiny Tiny RSS is a free and open source web-based news feed (RSS/Atom) reader and aggregator +name: tt-rss +version: 0.0.1 +kubeVersion: ">=1.16.0-0" +keywords: +- tt-rss +home: https://github.com/truecharts/apps/tree/master/charts/stable/tt-rss +icon: https://git.tt-rss.org/fox/tt-rss/raw/branch/master/images/favicon-72px.png +sources: +- https://git.tt-rss.org/fox/tt-rss +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/tt-rss/README.md b/charts/incubator/tt-rss/README.md new file mode 100644 index 00000000000..e1ebe88719b --- /dev/null +++ b/charts/incubator/tt-rss/README.md @@ -0,0 +1,40 @@ +# Introduction + +Tiny Tiny RSS is a free and open source web-based news feed (RSS/Atom) reader and aggregator + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/tt-rss/SCALE/item.yaml b/charts/incubator/tt-rss/SCALE/item.yaml new file mode 100644 index 00000000000..0c446c930cd --- /dev/null +++ b/charts/incubator/tt-rss/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://git.tt-rss.org/fox/tt-rss/raw/branch/master/images/favicon-72px.png diff --git a/charts/incubator/tt-rss/SCALE/questions.yaml b/charts/incubator/tt-rss/SCALE/questions.yaml new file mode 100644 index 00000000000..3bcd9e05c0e --- /dev/null +++ b/charts/incubator/tt-rss/SCALE/questions.yaml @@ -0,0 +1,653 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: TTRSS_SELF_URL_PATH + label: "TTRSS_SELF_URL_PATH" + description: "Sets the TTRSS_SELF_URL_PATH env var" + schema: + type: string + default: "" +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36172 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/tt-rss/app-changelog.md b/charts/incubator/tt-rss/app-changelog.md new file mode 100644 index 00000000000..608cd785a02 --- /dev/null +++ b/charts/incubator/tt-rss/app-changelog.md @@ -0,0 +1,7 @@ + + +### tt-rss-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/tt-rss/app-readme.md b/charts/incubator/tt-rss/app-readme.md new file mode 100644 index 00000000000..c973b9c469a --- /dev/null +++ b/charts/incubator/tt-rss/app-readme.md @@ -0,0 +1,3 @@ +Tiny Tiny RSS is a free and open source web-based news feed (RSS/Atom) reader and aggregator + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/tt-rss/helm-values.md b/charts/incubator/tt-rss/helm-values.md new file mode 100644 index 00000000000..31c485551a3 --- /dev/null +++ b/charts/incubator/tt-rss/helm-values.md @@ -0,0 +1,36 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below. | See more environment variables in the tt-rss documentation https://git.tt-rss.org/fox/tt-rss/src/branch/master/classes/config.php#L9 | +| env.TTRSS_SELF_URL_PATH | string | `""` | External URL you use to connect to the RSS (the one you enter in your browser) | +| envTpl.TTRSS_DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.TTRSS_DB_PORT | string | `"5432"` | | +| envTpl.TTRSS_DB_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.TTRSS_DB_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.TTRSS_DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.TTRSS_DB_PASS.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.TTRSS_DB_PASS.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"ghcr.io/k8s-at-home/tt-rss"` | image repository | +| image.tag | string | `"v1.9027.0@sha256:f095b43364f4ceaefd82648778e3cef2d0aec19c183fbdae98e6804c2139b495"` | image tag | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"tt-rss"` | Postgres database password | +| postgresql.postgresqlUsername | string | `"tt-rss"` | Postgres database user name | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See below. | Configure the services for the chart here. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/tt-rss/templates/common.yaml b/charts/incubator/tt-rss/templates/common.yaml new file mode 100644 index 00000000000..1826eaca3da --- /dev/null +++ b/charts/incubator/tt-rss/templates/common.yaml @@ -0,0 +1,2 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.all" . }} diff --git a/charts/incubator/tt-rss/values.yaml b/charts/incubator/tt-rss/values.yaml new file mode 100644 index 00000000000..532e9db6eb0 --- /dev/null +++ b/charts/incubator/tt-rss/values.yaml @@ -0,0 +1,55 @@ +image: + # -- image repository + repository: ghcr.io/k8s-at-home/tt-rss + # -- image pull policy + pullPolicy: IfNotPresent + # -- image tag + tag: v1.9027.0@sha256:f095b43364f4ceaefd82648778e3cef2d0aec19c183fbdae98e6804c2139b495 + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +# -- See more environment variables in the tt-rss documentation +# https://git.tt-rss.org/fox/tt-rss/src/branch/master/classes/config.php#L9 +# @default -- See below. +env: + # -- External URL you use to connect to the RSS (the one you enter in your browser) + TTRSS_SELF_URL_PATH: "" + +envTpl: + TTRSS_DB_NAME: "{{ .Values.postgresql.postgresqlDatabase }}" + TTRSS_DB_USER: "{{ .Values.postgresql.postgresqlUsername }}" + TTRSS_DB_PORT: "5432" + +envValueFrom: + TTRSS_DB_PASS: + secretKeyRef: + name: dbcreds + key: postgresql-password + TTRSS_DB_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + +# -- Configure the services for the chart here. +# @default -- See below. +service: + main: + ports: + main: + port: 8080 + +# @default -- see bellow +# Enabled postgres +postgresql: + enabled: true + existingSecret: "dbcreds" + # -- Postgres database user name + postgresqlUsername: tt-rss + # -- Postgres database password + postgresqlDatabase: tt-rss diff --git a/charts/incubator/wikijs/.helmignore b/charts/incubator/wikijs/.helmignore new file mode 100644 index 00000000000..4379e2b3014 --- /dev/null +++ b/charts/incubator/wikijs/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/incubator/wikijs/CHANGELOG.md b/charts/incubator/wikijs/CHANGELOG.md new file mode 100644 index 00000000000..db6aede5cc5 --- /dev/null +++ b/charts/incubator/wikijs/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### wikijs-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/wikijs/CONFIG.md b/charts/incubator/wikijs/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/charts/incubator/wikijs/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/incubator/wikijs/Chart.yaml b/charts/incubator/wikijs/Chart.yaml new file mode 100644 index 00000000000..6462104a8a4 --- /dev/null +++ b/charts/incubator/wikijs/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: "2.5" +description: Make documentation a joy to write using Wiki.js's beautiful and intuitive interface! +name: wikijs +version: 0.0.1 +kubeVersion: ">=1.16.0-0" +keywords: +- wiki +- wikijs +home: https://github.com/truecharts/apps/tree/master/charts/stable/wikijs +icon: https://static.requarks.io/logo/wikijs-butterfly.svg +sources: +- https://hub.docker.com/r/linuxserver/wikijs/ +- https://github.com/Requarks/wiki +dependencies: +- name: common + repository: https://truecharts.org + version: 8.3.12 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 3.0.18 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: truecharts.org diff --git a/charts/incubator/wikijs/README.md b/charts/incubator/wikijs/README.md new file mode 100644 index 00000000000..652157f69fb --- /dev/null +++ b/charts/incubator/wikijs/README.md @@ -0,0 +1,41 @@ +# Introduction + +Make documentation a joy to write using Wiki.js's beautiful and intuitive interface! + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/wikijs/SCALE/item.yaml b/charts/incubator/wikijs/SCALE/item.yaml new file mode 100644 index 00000000000..72521f661d5 --- /dev/null +++ b/charts/incubator/wikijs/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - media +icon_url: https://static.requarks.io/logo/wikijs-butterfly.svg diff --git a/charts/incubator/wikijs/SCALE/questions.yaml b/charts/incubator/wikijs/SCALE/questions.yaml new file mode 100644 index 00000000000..2bee4fc2802 --- /dev/null +++ b/charts/incubator/wikijs/SCALE/questions.yaml @@ -0,0 +1,653 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3000 + editable: false + hidden: true + - variable: port + label: "Container Port" + schema: + type: int + default: 3000 + editable: true + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36155 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + + - variable: dnsPolicy + group: "Networking and Services" + label: "dnsPolicy" + schema: + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "ClusterFirst" + description: "ClusterFirst" + - value: "ClusterFirstWithHostNet" + description: "ClusterFirstWithHostNet" + - value: "None" + description: "None" + + - variable: dnsConfig + label: "DNS Configuration" + group: "Networking and Services" + description: "Specify custom DNS configuration which will be applied to the pod" + schema: + type: dict + attrs: + - variable: nameservers + label: "Nameservers" + schema: + default: [] + type: list + items: + - variable: nameserver + label: "Nameserver" + schema: + type: string + - variable: options + label: "options" + schema: + default: [] + type: list + items: + - variable: option + label: "Option Entry" + schema: + type: string + - variable: searches + label: "Searches" + schema: + default: [] + type: list + items: + - variable: search + label: "Search Entry" + schema: + type: string + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "pvc" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: " Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "(Advanced) Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true + + - variable: expert + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + +# Include{ingressList} + + - variable: securityContext + group: "Security and Permissions" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/wikijs/app-changelog.md b/charts/incubator/wikijs/app-changelog.md new file mode 100644 index 00000000000..9079ad162ef --- /dev/null +++ b/charts/incubator/wikijs/app-changelog.md @@ -0,0 +1,7 @@ + + +### wikijs-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/charts/incubator/wikijs/app-readme.md b/charts/incubator/wikijs/app-readme.md new file mode 100644 index 00000000000..342b0239f3c --- /dev/null +++ b/charts/incubator/wikijs/app-readme.md @@ -0,0 +1,3 @@ +Make documentation a joy to write using Wiki.js's beautiful and intuitive interface! + +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/incubator/wikijs/helm-values.md b/charts/incubator/wikijs/helm-values.md new file mode 100644 index 00000000000..0645b6c5859 --- /dev/null +++ b/charts/incubator/wikijs/helm-values.md @@ -0,0 +1,37 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [image docs](https://docs.linuxserver.io/images/docker-wikijs#environment-variables-e) for more details. | +| env.PUID | int | `568` | Set the container timezone | +| envTpl.DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_TYPE | string | `"postgres"` | | +| envTpl.DB_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DB_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASS.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASS.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"requarks/wiki"` | image repository | +| image.tag | string | `"2.5@sha256:22660a3f33a8719d69cb62b6eb520dfcf1d3cfc5b787b88cc444bd969ca7533a"` | image tag | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"wikijs"` | | +| postgresql.postgresqlUsername | string | `"wikijs"` | | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/charts/incubator/wikijs/templates/common.yaml b/charts/incubator/wikijs/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/wikijs/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/wikijs/values.yaml b/charts/incubator/wikijs/values.yaml new file mode 100644 index 00000000000..6143401e08e --- /dev/null +++ b/charts/incubator/wikijs/values.yaml @@ -0,0 +1,53 @@ +image: + # -- image repository + repository: requarks/wiki + # -- image tag + tag: 2.5@sha256:22660a3f33a8719d69cb62b6eb520dfcf1d3cfc5b787b88cc444bd969ca7533a + # -- image pull policy + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +# -- environment variables. See [image docs](https://docs.linuxserver.io/images/docker-wikijs#environment-variables-e) for more details. +# @default -- See below +env: + # -- Set the container timezone + PUID: 568 + TZ: UTC + +envTpl: + DB_TYPE: "postgres" + DB_NAME: "{{ .Values.postgresql.postgresqlDatabase }}" + DB_USER: "{{ .Values.postgresql.postgresqlUsername }}" + DB_PORT: "5432" + +envValueFrom: + DB_PASS: + secretKeyRef: + name: dbcreds + key: postgresql-password + DB_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + +# -- Configures service settings for the chart. +# @default -- See values.yaml +service: + main: + ports: + main: + port: 3000 + +# Enabled postgres +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: wikijs + postgresqlDatabase: wikijs diff --git a/docs/apps/dev/babybuddy/CHANGELOG.md b/docs/apps/dev/babybuddy/CHANGELOG.md new file mode 100644 index 00000000000..66beb5afa53 --- /dev/null +++ b/docs/apps/dev/babybuddy/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### babybuddy-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/babybuddy/CONFIG.md b/docs/apps/dev/babybuddy/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/babybuddy/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/babybuddy/helm-values.md b/docs/apps/dev/babybuddy/helm-values.md new file mode 100644 index 00000000000..f06781e81af --- /dev/null +++ b/docs/apps/dev/babybuddy/helm-values.md @@ -0,0 +1,40 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | `{}` | | +| envTpl.DB_ENGINE | string | `"django.db.backends.postgresql"` | | +| envTpl.DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DB_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"ghcr.io/linuxserver/babybuddy"` | | +| image.tag | string | `"1.9.0@sha256:bb608fb4cf5c8ef5aea15215ae0ada7cf40ff7047e150bf053807436ded22bfb"` | | +| persistence.config.enabled | bool | `true` | | +| persistence.config.mountPath | string | `"/config"` | | +| persistence.varrun.enabled | bool | `true` | | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"babybuddy"` | | +| postgresql.postgresqlUsername | string | `"babybuddy"` | | +| securityContext.allowPrivilegeEscalation | bool | `true` | | +| securityContext.readOnlyRootFilesystem | bool | `true` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service.main.ports.main.port | int | `8000` | | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/babybuddy/index.md b/docs/apps/dev/babybuddy/index.md new file mode 100644 index 00000000000..13bb11ba5c3 --- /dev/null +++ b/docs/apps/dev/babybuddy/index.md @@ -0,0 +1,41 @@ +# Introduction + +Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/dsmr-reader/CHANGELOG.md b/docs/apps/dev/dsmr-reader/CHANGELOG.md new file mode 100644 index 00000000000..10fb3e61a90 --- /dev/null +++ b/docs/apps/dev/dsmr-reader/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### dsmr-reader-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/dsmr-reader/CONFIG.md b/docs/apps/dev/dsmr-reader/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/dsmr-reader/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/dsmr-reader/helm-values.md b/docs/apps/dev/dsmr-reader/helm-values.md new file mode 100644 index 00000000000..066713ce2c0 --- /dev/null +++ b/docs/apps/dev/dsmr-reader/helm-values.md @@ -0,0 +1,35 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [image docs](https://github.com/xirixiz/dsmr-reader-docker#dsmr-reader---environment-variables) for more details. | +| env.TZ | string | `"UTC"` | Set the container timezone | +| envTpl.DJANGO_DATABASE_ENGINE | string | `"django.db.backends.postgresql"` | | +| envTpl.DJANGO_DATABASE_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DJANGO_DATABASE_PORT | string | `"5432"` | | +| envTpl.DJANGO_DATABASE_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envTpl.DJANGO_TIME_ZONE | string | `"{{ .Values.env.TZ }}"` | | +| envValueFrom.DJANGO_DATABASE_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DJANGO_DATABASE_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DJANGO_DATABASE_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DJANGO_DATABASE_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"xirixiz/dsmr-reader-docker"` | image repository | +| image.tag | string | `"latest-2021.09.02-amd64@sha256:4858edb1ae63a20639a0ef9c51c7b2cf599686db5c582ead7b37b2a288122935"` | image tag | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/dsmr-reader/index.md b/docs/apps/dev/dsmr-reader/index.md new file mode 100644 index 00000000000..611b68e009a --- /dev/null +++ b/docs/apps/dev/dsmr-reader/index.md @@ -0,0 +1,41 @@ +# Introduction + +DSMR-protocol reader, telegram data storage and energy consumption visualizer. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/etherpad/CHANGELOG.md b/docs/apps/dev/etherpad/CHANGELOG.md new file mode 100644 index 00000000000..f347936e7da --- /dev/null +++ b/docs/apps/dev/etherpad/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### etherpad-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/etherpad/CONFIG.md b/docs/apps/dev/etherpad/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/etherpad/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/etherpad/helm-values.md b/docs/apps/dev/etherpad/helm-values.md new file mode 100644 index 00000000000..f63c11d581c --- /dev/null +++ b/docs/apps/dev/etherpad/helm-values.md @@ -0,0 +1,45 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | `{}` | | +| envTpl.DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_TYPE | string | `"postgres"` | | +| envTpl.DB_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DB_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASS.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASS.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"ghcr.io/nicholaswilde/etherpad"` | | +| image.tag | string | `"version-1.8.14@sha256:cd35863f12695934a55d60e6cd2ee70489e14445af1b84ade79333a524265323"` | | +| persistence.app.accessMode | string | `"ReadWriteOnce"` | | +| persistence.app.enabled | bool | `true` | | +| persistence.app.mountPath | string | `"/opt/etherpad-lite/app"` | | +| persistence.app.size | string | `"1Gi"` | | +| persistence.data.accessMode | string | `"ReadWriteOnce"` | | +| persistence.data.enabled | bool | `true` | | +| persistence.data.mountPath | string | `"/opt/etherpad-lite/var"` | | +| persistence.data.size | string | `"1Gi"` | | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"etherpad"` | | +| postgresql.postgresqlUsername | string | `"etherpad"` | | +| secret | object | `{}` | | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service.main.ports.main.port | int | `9001` | | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/etherpad/index.md b/docs/apps/dev/etherpad/index.md new file mode 100644 index 00000000000..6fb0d86491a --- /dev/null +++ b/docs/apps/dev/etherpad/index.md @@ -0,0 +1,42 @@ +# Introduction + +A real-time collaborative editor scalable to thousands of simultaneous real time users. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/firefox-syncserver/CHANGELOG.md b/docs/apps/dev/firefox-syncserver/CHANGELOG.md new file mode 100644 index 00000000000..be650adbb21 --- /dev/null +++ b/docs/apps/dev/firefox-syncserver/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### firefox-syncserver-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/firefox-syncserver/CONFIG.md b/docs/apps/dev/firefox-syncserver/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/firefox-syncserver/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/firefox-syncserver/helm-values.md b/docs/apps/dev/firefox-syncserver/helm-values.md new file mode 100644 index 00000000000..d86b1b4c712 --- /dev/null +++ b/docs/apps/dev/firefox-syncserver/helm-values.md @@ -0,0 +1,35 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env.FF_SYNCSERVER_FORCE_WSGI_ENVIRON | string | `"true"` | | +| env.FF_SYNCSERVER_PUBLIC_URL | string | `"firefox-syncserver.192.168.1.189.nip.io"` | | +| env.PUID | string | `"568"` | | +| env.TZ | string | `"America/Los_Angeles"` | | +| envValueFrom.DB_HOST.secretKeyRef.key | string | `"url"` | | +| envValueFrom.DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"ghcr.io/crazy-max/firefox-syncserver"` | | +| image.tag | string | `"1.8.0@sha256:15aeaaec65295711260807fe49020b2e446e60d6e094d60a1cfd96c7ebf2b9ce"` | | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"firefox-syncserver"` | | +| postgresql.postgresqlUsername | string | `"firefox-syncserver"` | | +| secret.FF_SYNCSERVER_SECRET | string | `"5up3rS3kr1t"` | | +| securityContext.allowPrivilegeEscalation | bool | `true` | | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service.main.ports.main.port | int | `5000` | | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/firefox-syncserver/index.md b/docs/apps/dev/firefox-syncserver/index.md new file mode 100644 index 00000000000..0bcdd250dd6 --- /dev/null +++ b/docs/apps/dev/firefox-syncserver/index.md @@ -0,0 +1,41 @@ +# Introduction + +This is an all-in-one package for running a self-hosted Firefox Sync server. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/gotify/CHANGELOG.md b/docs/apps/dev/gotify/CHANGELOG.md new file mode 100644 index 00000000000..3a1f1697121 --- /dev/null +++ b/docs/apps/dev/gotify/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### gotify-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/gotify/CONFIG.md b/docs/apps/dev/gotify/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/gotify/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/gotify/helm-values.md b/docs/apps/dev/gotify/helm-values.md new file mode 100644 index 00000000000..8aa4929d6ad --- /dev/null +++ b/docs/apps/dev/gotify/helm-values.md @@ -0,0 +1,40 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env.GOTIFY_PASSSTRENGTH | string | `"10"` | | +| env.GOTIFY_PLUGINSDIR | string | `"data/plugins"` | | +| env.GOTIFY_SERVER_KEEPALIVEPERIODSECONDS | string | `"0"` | | +| env.GOTIFY_SERVER_LISTENADDR | string | `""` | | +| env.GOTIFY_SERVER_PORT | string | `"8080"` | | +| env.GOTIFY_SERVER_RESPONSEHEADERS | string | `"X-Custom-Header: \"custom value\""` | | +| env.GOTIFY_SERVER_SSL_ENABLED | string | `"false"` | | +| env.GOTIFY_SERVER_STREAM_PINGPERIODSECONDS | string | `"45"` | | +| env.GOTIFY_UPLOADEDIMAGESDIR | string | `"data/images"` | | +| env.TZ | string | `"America/Los_Angeles"` | | +| envFrom[0].configMapRef.name | string | `"gotifyenv"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"gotify/server"` | | +| image.tag | string | `"2.1.0@sha256:57aa2aabac035c16118f625dd6d3d2c3ca421b43b28cb27512f3212193d65771"` | | +| persistence.data.accessMode | string | `"ReadWriteOnce"` | | +| persistence.data.enabled | bool | `true` | | +| persistence.data.mountPath | string | `"/app/data"` | | +| persistence.data.size | string | `"1Gi"` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"gotify"` | | +| postgresql.postgresqlUsername | string | `"gotify"` | | +| secret.pass | string | `"admin"` | | +| secret.user | string | `"admin"` | | +| service.main.ports.main.port | int | `8080` | | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/gotify/index.md b/docs/apps/dev/gotify/index.md new file mode 100644 index 00000000000..ae6584cb501 --- /dev/null +++ b/docs/apps/dev/gotify/index.md @@ -0,0 +1,42 @@ +# Introduction + +a simple server for sending and receiving messages + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/joplin-server/CHANGELOG.md b/docs/apps/dev/joplin-server/CHANGELOG.md new file mode 100644 index 00000000000..b4ab063b6f9 --- /dev/null +++ b/docs/apps/dev/joplin-server/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### joplin-server-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/joplin-server/CONFIG.md b/docs/apps/dev/joplin-server/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/joplin-server/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/joplin-server/helm-values.md b/docs/apps/dev/joplin-server/helm-values.md new file mode 100644 index 00000000000..b6bc7564a9f --- /dev/null +++ b/docs/apps/dev/joplin-server/helm-values.md @@ -0,0 +1,36 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [image docs](https://github.com/laurent22/joplin) for more details. | +| env.APP_BASE_URL | string | `"https://joplin.domain"` | joplin-server base URL | +| env.APP_PORT | int | `22300` | joplin-server listening port (same as Service port) | +| env.TZ | string | `"UTC"` | Set the container timezone | +| envTpl.DB_CLIENT | string | `"pg"` | | +| envTpl.POSTGRES_DATABASE | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.POSTGRES_PORT | string | `"5432"` | | +| envTpl.POSTGRES_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.POSTGRES_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.POSTGRES_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"joplin/server"` | image repository | +| image.tag | string | `"2.5.1@sha256:5bd976f19f883352bacad74767237471941cb35b2ded96a1afeeb7168b1e08d8"` | image tag | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/joplin-server/index.md b/docs/apps/dev/joplin-server/index.md new file mode 100644 index 00000000000..a4e5e6ee34a --- /dev/null +++ b/docs/apps/dev/joplin-server/index.md @@ -0,0 +1,42 @@ +# Introduction + +This server allows you to sync any Joplin client + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/kanboard/CHANGELOG.md b/docs/apps/dev/kanboard/CHANGELOG.md new file mode 100644 index 00000000000..1f8b19b1432 --- /dev/null +++ b/docs/apps/dev/kanboard/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### kanboard-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/kanboard/CONFIG.md b/docs/apps/dev/kanboard/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/kanboard/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/kanboard/helm-values.md b/docs/apps/dev/kanboard/helm-values.md new file mode 100644 index 00000000000..0f2738fc701 --- /dev/null +++ b/docs/apps/dev/kanboard/helm-values.md @@ -0,0 +1,37 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below (only deviations from the default settings are specified) | environment variables. See [image docs](https://docs.kanboard.org/en/latest/admin_guide/docker.html#environment-variables) and [application docs](# https://docs.kanboard.org/en/latest/admin_guide/config_file.html) for more details. | +| env.LOG_DRIVER | string | `"stdout"` | log driver: syslog, stderr, stdout or file | +| env.MAIL_CONFIGURATION | string | `"false"` | Enable/disable email configuration from the user interface | +| env.TZ | string | `"UTC"` | Set the container timezone | +| envTpl.DB_DRIVER | string | `"postgres"` | | +| envTpl.DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_USERNAME | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DB_HOSTNAME.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOSTNAME.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"kanboard/kanboard"` | image repository | +| image.tag | string | `"v1.2.20@sha256:d6d3bab5ca3f079ca782a7dc63e370e0ee3a006c596ba51ff6beb24d051528fc"` | image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/kanboard/index.md b/docs/apps/dev/kanboard/index.md new file mode 100644 index 00000000000..9ae6db65006 --- /dev/null +++ b/docs/apps/dev/kanboard/index.md @@ -0,0 +1,40 @@ +# Introduction + +Kanboard is a free and open source Kanban project management software. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/librespeed/CHANGELOG.md b/docs/apps/dev/librespeed/CHANGELOG.md new file mode 100644 index 00000000000..faf3eabd7fd --- /dev/null +++ b/docs/apps/dev/librespeed/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### [librespeed-0.0.1](https://github.com/truecharts/apps/compare/librespeed-3.0.10...librespeed-0.0.1) (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/librespeed/CONFIG.md b/docs/apps/dev/librespeed/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/librespeed/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/librespeed/helm-values.md b/docs/apps/dev/librespeed/helm-values.md new file mode 100644 index 00000000000..20f0af7caf9 --- /dev/null +++ b/docs/apps/dev/librespeed/helm-values.md @@ -0,0 +1,32 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [image docs](https://hub.docker.com/r/linuxserver/librespeed) for more details. | +| env.PUID | string | `"568"` | Specify the user ID the application will run as | +| env.TZ | string | `"UTC"` | Set the container timezone | +| envTpl.DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_TYPE | string | `"postgresql"` | | +| envTpl.DB_USERNAME | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DB_HOSTNAME.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOSTNAME.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"ghcr.io/linuxserver/librespeed"` | image repository | +| image.tag | string | `"5.2.4@sha256:6a8a801f5531de520ff07fa123cabbb7a39c4bba05a093be4832cd85e18e2489"` | image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| postgresql | object | Enabled (see values.yaml for more details) | Enable and configure postgresql database subchart under this key. | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/librespeed/index.md b/docs/apps/dev/librespeed/index.md new file mode 100644 index 00000000000..88af1fab544 --- /dev/null +++ b/docs/apps/dev/librespeed/index.md @@ -0,0 +1,42 @@ +# Introduction + +Librespeed is a HTML5 webpage to test upload and download speeds + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/miniflux/CHANGELOG.md b/docs/apps/dev/miniflux/CHANGELOG.md new file mode 100644 index 00000000000..dc9055166d4 --- /dev/null +++ b/docs/apps/dev/miniflux/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### miniflux-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/miniflux/CONFIG.md b/docs/apps/dev/miniflux/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/miniflux/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/miniflux/helm-values.md b/docs/apps/dev/miniflux/helm-values.md new file mode 100644 index 00000000000..4e21bb23975 --- /dev/null +++ b/docs/apps/dev/miniflux/helm-values.md @@ -0,0 +1,28 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [miniflux docs](https://miniflux.app/docs/configuration.html) for more details. | +| env.ADMIN_PASSWORD | string | `"changeme"` | Admin user password, it's used only if `CREATE_ADMIN` is enabled. | +| env.ADMIN_USERNAME | string | `"admin"` | Admin user login, it's used only if `CREATE_ADMIN` is enabled. | +| env.CREATE_ADMIN | string | `"1"` | Set to `1` to create an admin user from environment variables. | +| env.RUN_MIGRATIONS | string | `"1"` | Set to `1` to run database migrations during application startup. | +| env.TZ | string | `"UTC"` | Set the container timezone. | +| envValueFrom.DATABASE_URL | object | `{"secretKeyRef":{"key":"urlnossl","name":"dbcreds"}}` | Postgresql connection parameters. See [lib/pq](https://pkg.go.dev/github.com/lib/pq#hdr-Connection_String_Parameters) for more details. | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"miniflux/miniflux"` | | +| image.tag | string | `"2.0.33@sha256:fb6f88fd9e41cf6feefaaa11e41a23c6e5dca4a9f6c35fadd34d02d9ca249a9d"` | | +| postgresql | object | Enabled (see values.yaml for more details) | Enable and configure postgresql database subchart under this key. | +| probes | object | See values.yaml | Configures the probes for the main Pod. | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/miniflux/index.md b/docs/apps/dev/miniflux/index.md new file mode 100644 index 00000000000..376317edb44 --- /dev/null +++ b/docs/apps/dev/miniflux/index.md @@ -0,0 +1,40 @@ +# Introduction + +Miniflux is a minimalist and opinionated feed reader. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/odoo/CHANGELOG.md b/docs/apps/dev/odoo/CHANGELOG.md new file mode 100644 index 00000000000..8cb4b64671e --- /dev/null +++ b/docs/apps/dev/odoo/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### odoo-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/odoo/CONFIG.md b/docs/apps/dev/odoo/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/odoo/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/odoo/helm-values.md b/docs/apps/dev/odoo/helm-values.md new file mode 100644 index 00000000000..6f445eea6c4 --- /dev/null +++ b/docs/apps/dev/odoo/helm-values.md @@ -0,0 +1,42 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | `{}` | | +| envTpl.USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"ghcr.io/nicholaswilde/odoo"` | | +| image.tag | string | `"version-14.0@sha256:f66aa76c1070f1d71da0e96a8b1dd1e41ab00d4ae61692d7dfc2267b6f1f1244"` | | +| persistence.addons.accessMode | string | `"ReadWriteOnce"` | | +| persistence.addons.enabled | bool | `true` | | +| persistence.addons.mountPath | string | `"/mnt/extra-addons"` | | +| persistence.addons.size | string | `"1Gi"` | | +| persistence.odoo.accessMode | string | `"ReadWriteOnce"` | | +| persistence.odoo.enabled | bool | `true` | | +| persistence.odoo.mountPath | string | `"/var/lib/odoo"` | | +| persistence.odoo.size | string | `"1Gi"` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"postgres"` | | +| postgresql.postgresqlUsername | string | `"odoo"` | | +| secret | object | `{}` | | +| service.main.ports.main.port | int | `8069` | | +| service.odoo.ports.odoo-1.port | int | `8071` | | +| service.odoo.ports.odoo-1.protocol | string | `"TCP"` | | +| service.odoo.ports.odoo-2.port | int | `8072` | | +| service.odoo.ports.odoo-2.protocol | string | `"TCP"` | | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/odoo/index.md b/docs/apps/dev/odoo/index.md new file mode 100644 index 00000000000..ba3c5b2504e --- /dev/null +++ b/docs/apps/dev/odoo/index.md @@ -0,0 +1,41 @@ +# Introduction + +All-in-one business software. Beautiful. Easy-to-use. CRM, Accounting, PM, HR, Procurement, Point of Sale, MRP, Marketing, etc. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/openkm/CHANGELOG.md b/docs/apps/dev/openkm/CHANGELOG.md new file mode 100644 index 00000000000..605cfad28ce --- /dev/null +++ b/docs/apps/dev/openkm/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### openkm-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/openkm/CONFIG.md b/docs/apps/dev/openkm/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/openkm/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/openkm/helm-values.md b/docs/apps/dev/openkm/helm-values.md new file mode 100644 index 00000000000..6aa277fc777 --- /dev/null +++ b/docs/apps/dev/openkm/helm-values.md @@ -0,0 +1,36 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See more environment variables in the [openkm documentation](https://openkm.org/docs). | +| env.TZ | string | `"UTC"` | Set the container timezone | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"openkm/openkm-ce"` | image repository | +| image.tag | string | `"6.3.11@sha256:15bf6110539b02795a52f4472d95511736cfbdedef8396baf24c65a3aae28814"` | image tag | +| initContainers.init.command[0] | string | `"/config/init/init.sh"` | | +| initContainers.init.image | string | `"{{ .Values.alpineImage.repository }}:{{ .Values.alpineImage.tag }}"` | | +| initContainers.init.volumeMounts[0].mountPath | string | `"/config/init"` | | +| initContainers.init.volumeMounts[0].name | string | `"init"` | | +| initContainers.init.volumeMounts[1].mountPath | string | `"/opt/tomcat"` | | +| initContainers.init.volumeMounts[1].name | string | `"config"` | | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"openkm"` | | +| postgresql.postgresqlUsername | string | `"openkm"` | | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/openkm/index.md b/docs/apps/dev/openkm/index.md new file mode 100644 index 00000000000..c8c146ea733 --- /dev/null +++ b/docs/apps/dev/openkm/index.md @@ -0,0 +1,41 @@ +# Introduction + +OpenKM integrates all essential documents management, collaboration and an advanced search functionality into one easy to use solution. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/recipes/CHANGELOG.md b/docs/apps/dev/recipes/CHANGELOG.md new file mode 100644 index 00000000000..6f71c37ae02 --- /dev/null +++ b/docs/apps/dev/recipes/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### recipes-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/recipes/CONFIG.md b/docs/apps/dev/recipes/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/recipes/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/recipes/helm-values.md b/docs/apps/dev/recipes/helm-values.md new file mode 100644 index 00000000000..09badb896f7 --- /dev/null +++ b/docs/apps/dev/recipes/helm-values.md @@ -0,0 +1,51 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| additionalContainers.nginx.image | string | `"{{ .Values.nginxImage.repository }}:{{ .Values.nginxImage.tag }}"` | | +| additionalContainers.nginx.name | string | `"nginx"` | | +| additionalContainers.nginx.ports[0].containerPort | int | `80` | | +| additionalContainers.nginx.ports[0].name | string | `"main"` | | +| additionalContainers.nginx.volumeMounts[0].mountPath | string | `"/etc/nginx/nginx.conf"` | | +| additionalContainers.nginx.volumeMounts[0].name | string | `"recipes-config"` | | +| additionalContainers.nginx.volumeMounts[0].readOnly | bool | `true` | | +| additionalContainers.nginx.volumeMounts[0].subPath | string | `"nginx-config"` | | +| additionalContainers.nginx.volumeMounts[1].mountPath | string | `"/media"` | | +| additionalContainers.nginx.volumeMounts[1].name | string | `"media"` | | +| additionalContainers.nginx.volumeMounts[2].mountPath | string | `"/static"` | | +| additionalContainers.nginx.volumeMounts[2].name | string | `"static"` | | +| env | object | See below | environment variables. See [project docs](https://raw.githubusercontent.com/vabene1111/recipes/master/.env.template) for more details. | +| envTpl.DB_ENGINE | string | `"django.db.backends.postgresql"` | | +| envTpl.POSTGRES_DB | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.POSTGRES_PORT | string | `"5432"` | | +| envTpl.POSTGRES_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.POSTGRES_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.POSTGRES_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"vabene1111/recipes"` | image repository | +| image.tag | string | `"0.17.2@sha256:01e5f436ac192ee1cca996e628a3dee1029b99f7b4489bdeeaaf74aaf923538e"` | image tag | +| nginxImage.repository | string | `"nginx"` | nginx sidecar image repository | +| nginxImage.tag | string | `"1.21.3@sha256:7250923ba3543110040462388756ef099331822c6172a050b12c7a38361ea46f"` | nginx sidecar image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"recipes"` | | +| postgresql.postgresqlUsername | string | `"recipes"` | | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/recipes/index.md b/docs/apps/dev/recipes/index.md new file mode 100644 index 00000000000..891b6b3233e --- /dev/null +++ b/docs/apps/dev/recipes/index.md @@ -0,0 +1,41 @@ +# Introduction + +Recipes is a Django application to manage, tag and search recipes using either built in models or external storage providers hosting PDF's, Images or other files. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/shiori/CHANGELOG.md b/docs/apps/dev/shiori/CHANGELOG.md new file mode 100644 index 00000000000..97d8f1d5af4 --- /dev/null +++ b/docs/apps/dev/shiori/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### shiori-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/shiori/CONFIG.md b/docs/apps/dev/shiori/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/shiori/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/shiori/helm-values.md b/docs/apps/dev/shiori/helm-values.md new file mode 100644 index 00000000000..56e822c4fc1 --- /dev/null +++ b/docs/apps/dev/shiori/helm-values.md @@ -0,0 +1,41 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env.PUID | int | `568` | | +| envTpl.SHIORI_PG_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.SHIORI_PG_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.SHIORI_PG_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.SHIORI_PG_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.SHIORI_PG_PASS.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.SHIORI_PG_PASS.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"ghcr.io/nicholaswilde/shiori"` | | +| image.tag | string | `"version-v1.5.0@sha256:399e73a1c5a99bd2ccd46314918b6f189ec865405a09219fe99b5663ab4c1dbe"` | | +| persistence.data.accessMode | string | `"ReadWriteOnce"` | | +| persistence.data.enabled | bool | `true` | | +| persistence.data.mountPath | string | `"/data"` | | +| persistence.data.size | string | `"1Gi"` | | +| persistence.varrun.enabled | bool | `true` | | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"shiori"` | | +| postgresql.postgresqlUsername | string | `"shiori"` | | +| secret | object | `{}` | | +| securityContext.allowPrivilegeEscalation | bool | `true` | | +| securityContext.readOnlyRootFilesystem | bool | `true` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service.main.ports.main.port | int | `8080` | | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/shiori/index.md b/docs/apps/dev/shiori/index.md new file mode 100644 index 00000000000..70de4718c81 --- /dev/null +++ b/docs/apps/dev/shiori/index.md @@ -0,0 +1,41 @@ +# Introduction + +A simple bookmark manager built with Go + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/statping/CHANGELOG.md b/docs/apps/dev/statping/CHANGELOG.md new file mode 100644 index 00000000000..ccfa2e5bc9a --- /dev/null +++ b/docs/apps/dev/statping/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### statping-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/statping/CONFIG.md b/docs/apps/dev/statping/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/statping/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/statping/helm-values.md b/docs/apps/dev/statping/helm-values.md new file mode 100644 index 00000000000..800b5688562 --- /dev/null +++ b/docs/apps/dev/statping/helm-values.md @@ -0,0 +1,37 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [application docs](https://github.com/statping/statping/wiki/Config-with-.env-File) for more details. | +| env.DESCRIPTION | string | `"This is a Statping instance deployed as Helm chart"` | Description of the Statping instance | +| env.DISABLE_LOGS | bool | `false` | Disable logs from appearing and writing to disk | +| env.NAME | string | `"Statping Example"` | Name of the Statping instance | +| env.TZ | string | `"UTC"` | Set the container timezone | +| env.USE_CDN | bool | `false` | Use CDN for static context from third-parties | +| env.VIRTUAL_HOST | string | `""` | External URL you use to connect to the statping (the one you enter in your browser) | +| envTpl.DB_CONN | string | `"postgres"` | | +| envTpl.DB_DATABASE | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envTpl.POSTGRES_SSLMODE | string | `"disable"` | | +| envValueFrom.DB_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASS.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASS.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"statping/statping"` | image repository | +| image.tag | string | `"v0.90.74@sha256:d55c3ea8b64411199f7952fc6e00b2090bb6f1691a1d197a2a7e237e92384523"` | image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/statping/index.md b/docs/apps/dev/statping/index.md new file mode 100644 index 00000000000..1985e57128e --- /dev/null +++ b/docs/apps/dev/statping/index.md @@ -0,0 +1,40 @@ +# Introduction + +Status page for monitoring your websites and applications + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/teedy/CHANGELOG.md b/docs/apps/dev/teedy/CHANGELOG.md new file mode 100644 index 00000000000..de6faad5bd2 --- /dev/null +++ b/docs/apps/dev/teedy/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### teedy-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/teedy/CONFIG.md b/docs/apps/dev/teedy/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/teedy/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/teedy/helm-values.md b/docs/apps/dev/teedy/helm-values.md new file mode 100644 index 00000000000..6f733c36d0e --- /dev/null +++ b/docs/apps/dev/teedy/helm-values.md @@ -0,0 +1,39 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [application docs](https://github.com/sismics/docs) for more details. | +| env.DATABASE_PASSWORD | string | `nil` | The password to be used for the database connection. | +| env.DATABASE_URL | string | `nil` | The jdbc connection string to be used by hibernate | +| env.DATABASE_USER | string | `nil` | The user which should be used for the database connection | +| env.DOCS_ADMIN_EMAIL_INIT | string | `nil` | Defines the e-mail-address the admin user should have upon initialization | +| env.DOCS_ADMIN_PASSWORD_INIT | string | `nil` | Defines the password the admin user should have upon initialization. Needs to be a bcrypt hash. | +| env.DOCS_BASE_URL | string | `nil` | The base url used by the application | +| env.DOCS_DEFAULT_LANGUAGE | string | `"eng"` | The language which will be used as default | +| env.DOCS_SMTP_HOSTNAME | string | `nil` | Hostname of the SMTP-Server to be used by Teedy | +| env.DOCS_SMTP_PASSWORD | string | `nil` | The password of the SMTP-Server which should be used | +| env.DOCS_SMTP_PORT | string | `nil` | The port of the SMTP-Server which should be used | +| env.DOCS_SMTP_USERNAME | string | `nil` | The username of the SMTP-Server which should be used | +| env.TZ | string | `"UTC"` | Set the container timezone | +| envTpl.DATABASE_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DATABASE_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DATABASE_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DATABASE_URL.secretKeyRef.key | string | `"jdbc"` | | +| envValueFrom.DATABASE_URL.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"sismics/docs"` | image repository | +| image.tag | string | `"v1.9@sha256:bd52127b6509da4b07d7bbc48c7cc82dcbdc59ceab28d9239c591d0d0732f7af"` | image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/teedy/index.md b/docs/apps/dev/teedy/index.md new file mode 100644 index 00000000000..a7b79809b86 --- /dev/null +++ b/docs/apps/dev/teedy/index.md @@ -0,0 +1,41 @@ +# Introduction + +Teedy is an open source, lightweight document management system for individuals and businesses. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/traccar/CHANGELOG.md b/docs/apps/dev/traccar/CHANGELOG.md new file mode 100644 index 00000000000..988d2668c40 --- /dev/null +++ b/docs/apps/dev/traccar/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### traccar-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/traccar/CONFIG.md b/docs/apps/dev/traccar/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/traccar/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/traccar/helm-values.md b/docs/apps/dev/traccar/helm-values.md new file mode 100644 index 00000000000..b4fe836d901 --- /dev/null +++ b/docs/apps/dev/traccar/helm-values.md @@ -0,0 +1,33 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See more environment variables in the [traccar documentation](https://www.traccar.org/configuration-file/) | +| env.CONFIG_USE_ENVIRONMENT_VARIABLES | bool | `true` | Set application to read environment variables | +| env.LOGGER_CONSOLE | bool | `true` | Set application to log to stdout | +| envTpl.DATABASE_DRIVER | string | `"org.postgresql.Driver"` | | +| envTpl.DATABASE_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DATABASE_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DATABASE_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DATABASE_URL.secretKeyRef.key | string | `"jdbc"` | | +| envValueFrom.DATABASE_URL.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"traccar/traccar"` | image repository | +| image.tag | string | `"4.14@sha256:35e733a6a3cab6089cd7b28749ba3483f26d43d392a2606e416409d97d360a55"` | image tag | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"traccar"` | | +| postgresql.postgresqlUsername | string | `"traccar"` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/traccar/index.md b/docs/apps/dev/traccar/index.md new file mode 100644 index 00000000000..a2b5a850a2b --- /dev/null +++ b/docs/apps/dev/traccar/index.md @@ -0,0 +1,41 @@ +# Introduction + +Traccar is an open source GPS tracking system. + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/tt-rss/CHANGELOG.md b/docs/apps/dev/tt-rss/CHANGELOG.md new file mode 100644 index 00000000000..0c5d9c83f77 --- /dev/null +++ b/docs/apps/dev/tt-rss/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### tt-rss-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/tt-rss/CONFIG.md b/docs/apps/dev/tt-rss/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/tt-rss/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/tt-rss/helm-values.md b/docs/apps/dev/tt-rss/helm-values.md new file mode 100644 index 00000000000..31c485551a3 --- /dev/null +++ b/docs/apps/dev/tt-rss/helm-values.md @@ -0,0 +1,36 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below. | See more environment variables in the tt-rss documentation https://git.tt-rss.org/fox/tt-rss/src/branch/master/classes/config.php#L9 | +| env.TTRSS_SELF_URL_PATH | string | `""` | External URL you use to connect to the RSS (the one you enter in your browser) | +| envTpl.TTRSS_DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.TTRSS_DB_PORT | string | `"5432"` | | +| envTpl.TTRSS_DB_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.TTRSS_DB_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.TTRSS_DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.TTRSS_DB_PASS.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.TTRSS_DB_PASS.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"ghcr.io/k8s-at-home/tt-rss"` | image repository | +| image.tag | string | `"v1.9027.0@sha256:f095b43364f4ceaefd82648778e3cef2d0aec19c183fbdae98e6804c2139b495"` | image tag | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"tt-rss"` | Postgres database password | +| postgresql.postgresqlUsername | string | `"tt-rss"` | Postgres database user name | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See below. | Configure the services for the chart here. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/tt-rss/index.md b/docs/apps/dev/tt-rss/index.md new file mode 100644 index 00000000000..e1ebe88719b --- /dev/null +++ b/docs/apps/dev/tt-rss/index.md @@ -0,0 +1,40 @@ +# Introduction + +Tiny Tiny RSS is a free and open source web-based news feed (RSS/Atom) reader and aggregator + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/wikijs/CHANGELOG.md b/docs/apps/dev/wikijs/CHANGELOG.md new file mode 100644 index 00000000000..db6aede5cc5 --- /dev/null +++ b/docs/apps/dev/wikijs/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog
+ + + +### wikijs-0.0.1 (2021-10-16) + +#### Feat + +* Add more Apps using postgresql diff --git a/docs/apps/dev/wikijs/CONFIG.md b/docs/apps/dev/wikijs/CONFIG.md new file mode 100644 index 00000000000..fc9b2fa2d5f --- /dev/null +++ b/docs/apps/dev/wikijs/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide: +https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/docs/apps/dev/wikijs/helm-values.md b/docs/apps/dev/wikijs/helm-values.md new file mode 100644 index 00000000000..0645b6c5859 --- /dev/null +++ b/docs/apps/dev/wikijs/helm-values.md @@ -0,0 +1,37 @@ +# Default Helm-Values + +TrueCharts is primarily build to supply TrueNAS SCALE Apps. +However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. + +Most of our Apps also consume our "common" Helm Chart. +If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. +You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See below | environment variables. See [image docs](https://docs.linuxserver.io/images/docker-wikijs#environment-variables-e) for more details. | +| env.PUID | int | `568` | Set the container timezone | +| envTpl.DB_NAME | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | | +| envTpl.DB_PORT | string | `"5432"` | | +| envTpl.DB_TYPE | string | `"postgres"` | | +| envTpl.DB_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | | +| envValueFrom.DB_HOST.secretKeyRef.key | string | `"plainhost"` | | +| envValueFrom.DB_HOST.secretKeyRef.name | string | `"dbcreds"` | | +| envValueFrom.DB_PASS.secretKeyRef.key | string | `"postgresql-password"` | | +| envValueFrom.DB_PASS.secretKeyRef.name | string | `"dbcreds"` | | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"requarks/wiki"` | image repository | +| image.tag | string | `"2.5@sha256:22660a3f33a8719d69cb62b6eb520dfcf1d3cfc5b787b88cc444bd969ca7533a"` | image tag | +| podSecurityContext.runAsGroup | int | `0` | | +| podSecurityContext.runAsUser | int | `0` | | +| postgresql.enabled | bool | `true` | | +| postgresql.existingSecret | string | `"dbcreds"` | | +| postgresql.postgresqlDatabase | string | `"wikijs"` | | +| postgresql.postgresqlUsername | string | `"wikijs"` | | +| securityContext.readOnlyRootFilesystem | bool | `false` | | +| securityContext.runAsNonRoot | bool | `false` | | +| service | object | See values.yaml | Configures service settings for the chart. | + +All Rights Reserved - The TrueCharts Project diff --git a/docs/apps/dev/wikijs/index.md b/docs/apps/dev/wikijs/index.md new file mode 100644 index 00000000000..652157f69fb --- /dev/null +++ b/docs/apps/dev/wikijs/index.md @@ -0,0 +1,41 @@ +# Introduction + +Make documentation a joy to write using Wiki.js's beautiful and intuitive interface! + + + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://truecharts.org/ | postgresql | 3.0.16 | +| https://truecharts.org | common | 8.3.9 | + +## Installing the Chart + +To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). + +## Uninstalling the Chart + +To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). + +## Support + +- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. +- See the [Wiki](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +--- +All Rights Reserved - The TrueCharts Project diff --git a/docs/manual/default-ports.md b/docs/manual/default-ports.md index 2eebecedd0f..6bd0e44ed8e 100644 --- a/docs/manual/default-ports.md +++ b/docs/manual/default-ports.md @@ -173,5 +173,25 @@ These defaults can ofcoarse be changed, but as we guarantee "sane, working defau | Tdarr-node | main | 36150 | | | | Tdarr | main | 36151 | | | | Tdarr | comm | 36152 | | | +| Babybuddy | main | 36153 | | | +| Dsmr-reader | main | 36154 | | | +| WIkijs | main | 36155 | | | +| Etherpad | main | 36156 | | | +| Firefox-syncserver | main | 36157 | | | +| Gotify | main | 36158 | | | +| Joplin-server | main | 36159 | | | +| Kanboard | main | 36160 | | | +| Librespeed | main | 36161 | | | +| Miniflux | main | 36162 | | | +| Odoo | main | 36163 | | | +| Odoo | odoo-1 | 36164 | | | +| Odoo | odoo-2 | 36165 | | | +| Openkm | main | 36166 | | | +| Recipes | main | 36167 | | | +| Shiori | main | 36168 | | | +| Statping | main | 36169 | | | +| Teedy | main | 36170 | | | +| Traccar | main | 36171 | | | +| Tt-rss | main | 36172 | | | ##### Note: TCP and UPD ports that are the same in each App, are not by mistake. diff --git a/tools/build-release-windows-local.sh b/tools/build-release-windows-local.sh new file mode 100644 index 00000000000..d723d176c1f --- /dev/null +++ b/tools/build-release-windows-local.sh @@ -0,0 +1,586 @@ +#!/usr/bin/env bash + +# Copyright The Helm Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -o errexit +set -o nounset +set -o pipefail + +DEFAULT_CHART_RELEASER_VERSION=v1.2.1 + +show_help() { +cat << EOF +Usage: $(basename "$0") + -h, --help Display help + -v, --version The chart-releaser version to use (default: $DEFAULT_CHART_RELEASER_VERSION)" + --config The path to the chart-releaser config file + -d, --charts-dir The charts directory (default: charts) + -u, --charts-repo-url The GitHub Pages URL to the charts repo (default: https://.github.io/) + -o, --owner The repo owner + -r, --repo The repo name + -p, --production Enables uploading releases to github releases + -s, --standalone Disables Chart Releaser and Catalog Validation, for local generation +EOF +} + +main() { + local version="$DEFAULT_CHART_RELEASER_VERSION" + local config= + local standalone= + local charts_dir=charts/** + local owner= + local repo= + local production= + local charts_repo_url= + local token=${CR_TOKEN:-false} + + parse_command_line "$@" + if [ "${token}" == "false" ]; then + echo "env #cr_TOKEN not found, defaulting to production=false" + production="false" + fi + + local repo_root + repo_root=$(git rev-parse --show-toplevel) + pushd "$repo_root" > /dev/null + + echo 'Looking up latest tag...' + local latest_tag + latest_tag=$(lookup_latest_tag) + + echo "Discovering changed charts since '$latest_tag'..." + local changed_charts=() + readarray -t changed_charts <<< "$(lookup_changed_charts "$latest_tag")" + copy_general_docs + if [[ -n "${changed_charts[*]}" ]]; then + + rm -rf .cr-release-packages + mkdir -p .cr-release-packages + + rm -rf .cr-index + mkdir -p .cr-index + + prep_helm + for chart in "${changed_charts[@]}"; do + if [[ -d "$chart" ]]; then + chartversion=$(cat ${chart}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }') + chartname=$(basename ${chart}) + train=$(basename $(dirname "$chart")) + sync_tag "$chart" "$chartname" "$train" "$chartversion" + create_changelog "$chart" "$chartname" "$train" "$chartversion" + generate_docs "$chart" "$chartname" "$train" "$chartversion" + copy_docs "$chart" "$chartname" "$train" "$chartversion" + helm dependency update "${chart}" --skip-refresh + package_chart "$chart" + if [[ -f "${chart}/SCALE/item.yaml" ]]; then + clean_apps "$chart" "$chartname" "$train" "$chartversion" + copy_apps "$chart" "$chartname" "$train" "$chartversion" + patch_apps "$chart" "$chartname" "$train" "$chartversion" + include_questions "$chart" "$chartname" "$train" "$chartversion" + clean_catalog "$chart" "$chartname" "$train" "$chartversion" + else + echo "Skipping chart ${chart}, no correct SCALE compatibility layer detected" + fi + else + echo "Chart '$chart' no longer exists in repo. Skipping it..." + fi + done + pre_commit + validate_catalog + if [ "${production}" == "true" ]; then + release_charts + update_index + fi + for chart in "${changed_charts[@]}"; do + if [[ -d "$chart" ]]; then + chartversion=$(cat ${chart}/Chart.yaml | grep "^version: " | awk -F" " '{ print $2 }') + chartname=$(basename ${chart}) + train=$(basename $(dirname "$chart")) + edit_release "$chart" "$chartname" "$train" "$chartversion" + fi + done + else + echo "Nothing to do. No chart changes detected." + fi + + popd > /dev/null +} + +include_questions(){ + local chart="$1" + local chartname="$2" + local train="$3" + local chartversion="$4" + local target="catalog/${train}/${chartname}/${chartversion}" + echo "Including standardised questions.yaml includes for: ${chartname}" + + # Replace # Include{groups} with the standard groups codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{groups}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{fixedEnv} with the standard fixedEnv codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{fixedEnv}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{controllerExpert} with the standard controllerExpert codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{controllerExpert}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{containerConfig} with the standard containerConfig codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{containerConfig}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{serviceExpert} with the standard serviceExpert codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{serviceExpert}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{serviceList} with the standard serviceList codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{serviceList}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{persistenceList} with the standard persistenceList codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{persistenceList}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{ingressDefault} with the standard ingressDefault codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{ingressDefault}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{ingressTLS} with the standard ingressTLS codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{ingressTLS}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{ingressTraefik} with the standard ingressTraefik codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{ingressTraefik}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{ingressExpert} with the standard ingressExpert codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{ingressExpert}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{ingressList} with the standard ingressList codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{ingressList}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{addons} with the standard addons codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{addons}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{advanced} with the standard advanced codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{advanced}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{resources} with the standard resources codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{resources}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + } + +clean_catalog() { + local chart="$1" + local chartname="$2" + local train="$3" + local chartversion="$4" + cd catalog/${train}/${chartname} + local majorversions=$( (find . -mindepth 1 -maxdepth 1 -type d \( ! -iname ".*" \) | sed 's|^\./||g') | sort -Vr | cut -c1 | uniq) + echo "Removing old versions for: ${chartname}" + for majorversion in ${majorversions}; do + local maxofmajor=$( (find . -mindepth 1 -maxdepth 1 -type d \( -iname "${majorversion}.*" \) | sed 's|^\./||g') | sort -Vr | head -n1 ) + local rmversions=$( (find . -mindepth 1 -maxdepth 1 -type d \( -iname "${majorversion}.*" \) \( ! -iname "${maxofmajor}" \) | sed 's|^\./||g') | sort -Vr ) + rm -Rf ${rmversions} + done + cd - + } + +# Designed to ensure the appversion in Chart.yaml is in sync with the primary App tag if found +sync_tag() { + local chart="$1" + local chartname="$2" + local train="$3" + local chartversion="$4" + echo "Attempting to sync primary tag with appversion for: ${chartname}" + local tag="$(cat ${chart}/values.yaml | grep '^ tag: ' | awk -F" " '{ print $2 }' | head -1)" + tag="${tag%%@*}" + tag="${tag:-auto}" + tag=$(echo $tag | sed "s/release-//g") + tag=$(echo $tag | sed "s/release_//g") + tag=$(echo $tag | sed "s/version-//g") + tag=$(echo $tag | sed "s/version_//g") + tag="${tag#*V.}" + tag="${tag#*v-}" + tag="${tag#*v}" + tag="${tag%-*}" + tag="${tag:0:10}" + tag="${tag%-}" + tag="${tag%_}" + tag="${tag%.}" + sed -i -e "s|appVersion: .*|appVersion: \"${tag}\"|" "${chart}/Chart.yaml" + } + +pre_commit() { + #if [[ -z "$standalone" ]]; then + echo "Running pre-commit test-and-cleanup..." + pre-commit run --all ||: + # Fix sh files to always be executable + find . -name '*.sh' | xargs chmod +x + #fi + } + +edit_release() { + local chart="$1" + local chartname="$2" + local train="$3" + local chartversion="$4" + # In here we can in the future add code to edit the release notes of the github releases + # For example: using the github API: https://docs.github.com/en/rest/reference/repos#update-a-release + } + +create_changelog() { + local chart="$1" + local chartname="$2" + local train="$3" + local chartversion="$4" + local prevversion="$(git tag -l "${chartname}-*" --sort=-v:refname | head -n 1)" + #if [[ -z "$standalone" ]]; then + echo "Generating changelogs for: ${chartname}" + # SCALE "Changelog" containing only last change + git-chglog --next-tag ${chartname}-${chartversion} --tag-filter-pattern ${chartname} --path ${chart} -o ${chart}/app-changelog.md ${chartname}-${chartversion} + # Append SCALE changelog to actual changelog + + if [[ -f "${chart}/CHANGELOG.md" ]]; then + true + else + touch ${chart}/CHANGELOG.md + fi + sed -i '1d' ${chart}/CHANGELOG.md + cat ${chart}/app-changelog.md | cat - ${chart}/CHANGELOG.md > temp && mv temp ${chart}/CHANGELOG.md + sed -i '1s/^/# Changelog
\n\n/' ${chart}/CHANGELOG.md + #fi + } + +copy_general_docs() { + yes | cp -rf index.yaml docs/index.yaml 2>/dev/null || : + yes | cp -rf .github/README.md docs/index.md 2>/dev/null || : + sed -i '1s/^/---\nhide:\n - navigation\n - toc\n---\n/' docs/index.md + sed -i 's~~~g' docs/index.md + yes | cp -rf .github/CODE_OF_CONDUCT docs/about/code_of_conduct.md 2>/dev/null || : + yes | cp -rf .github/CONTRIBUTING docs/development/contributing.md 2>/dev/null || : + yes | cp -rf .github/SUPPORT.md docs/manual/SUPPORT.md 2>/dev/null || : + yes | cp -rf LICENSE docs/about/legal/LICENSE.md 2>/dev/null || : + sed -i '1s/^/# License
\n\n/' docs/about/legal/LICENSE.md + yes | cp -rf NOTICE docs/about/legal/NOTICE.md 2>/dev/null || : + sed -i '1s/^/# NOTICE
\n\n/' docs/about/legal/NOTICE.md + } + +generate_docs() { + local chart="$1" + local chartname="$2" + local train="$3" + local chartversion="$4" + #if [[ -z "$standalone" ]]; then + echo "Generating Docs" + if [ "${chartname}" == "common" ]; then + helm-docs \ + --ignore-file=".helmdocsignore" \ + --output-file="README.md" \ + --template-files="/../../templates/docs/common-README.md.gotmpl" \ + --chart-search-root="${chart}" + helm-docs \ + --ignore-file=".helmdocsignore" \ + --output-file="helm-values.md" \ + --template-files="/../../templates/docs/common-helm-values.md.gotmpl" \ + --chart-search-root="${chart}" + else + helm-docs \ + --ignore-file=".helmdocsignore" \ + --output-file="README.md" \ + --template-files="templates/docs/README.md.gotmpl" \ + --chart-search-root="${chart}" + helm-docs \ + --ignore-file=".helmdocsignore" \ + --output-file="CONFIG.md" \ + --template-files="templates/docs/CONFIG.md.gotmpl" \ + --chart-search-root="${chart}" + helm-docs \ + --ignore-file=".helmdocsignore" \ + --output-file="app-readme.md" \ + --template-files="templates/docs/app-readme.md.gotmpl" \ + --chart-search-root="${chart}" + helm-docs \ + --ignore-file=".helmdocsignore" \ + --output-file="helm-values.md" \ + --template-files="templates/docs/helm-values.md.gotmpl" \ + --chart-search-root="${chart}" + fi + #fi + } + + +copy_docs() { + local chart="$1" + local chartname="$2" + local train="$3" + local chartversion="$4" + echo "Copying docs for: ${chart}" + if [ "${chartname}" == "common" ]; then + mkdir -p docs/apps/common || : + yes | cp -rf charts/library/common/README.md docs/apps/common/index.md 2>/dev/null || : + yes | cp -rf charts/library/common/helm-values.md docs/apps/common/helm-values.md 2>/dev/null || : + else + mkdir -p docs/apps/${train}/${chartname} || echo "app path already exists, continuing..." + yes | cp -rf ${chart}/README.md docs/apps/${train}/${chartname}/index.md 2>/dev/null || : + yes | cp -rf ${chart}/CHANGELOG.md docs/apps/${train}/${chartname}/CHANGELOG.md 2>/dev/null || : + yes | cp -rf ${chart}/CONFIG.md docs/apps/${train}/${chartname}/CONFIG.md 2>/dev/null || : + yes | cp -rf ${chart}/helm-values.md docs/apps/${train}/${chartname}/helm-values.md 2>/dev/null || : + rm docs/apps/${train}/${chartname}/LICENSE.md 2>/dev/null || : + yes | cp -rf ${chart}/LICENSE docs/apps/${train}/${chartname}/LICENSE.md 2>/dev/null || : + sed -i '1s/^/# License
\n\n/' docs/apps/${train}/${chartname}/LICENSE.md 2>/dev/null || : + fi + } + +prep_helm() { + #if [[ -z "$standalone" ]]; then + helm repo add truecharts https://truecharts.org + helm repo add bitnami https://charts.bitnami.com/bitnami + helm repo update + #fi + } + +clean_apps() { + local chart="$1" + local chartname="$2" + local train="$3" + local chartversion="$4" + echo "Cleaning SCALE catalog for App: ${chartname}" + rm -Rf catalog/${train}/${chartname}/${chartversion} 2>/dev/null || : + rm -Rf catalog/${train}/${chartname}/item.yaml 2>/dev/null || : +} + +patch_apps() { + local chart="$1" + local chartname="$2" + local train="$3" + local chartversion="$4" + local target="catalog/${train}/${chartname}/${chartversion}" + echo "Applying SCALE patches for App: ${chartname}" + rm -rf ${target}/CHANGELOG.md 2>/dev/null || : + mv ${target}/app-changelog.md ${target}/CHANGELOG.md 2>/dev/null || : + mv ${target}/SCALE/ix_values.yaml ${target}/ 2>/dev/null || : + mv ${target}/SCALE/questions.yaml ${target}/ 2>/dev/null || : + cp -rf ${target}/SCALE/templates/* ${target}/templates 2>/dev/null || : + mv ${target}/SCALE/item.yaml catalog/${train}/${chartname}/item.yaml + rm -rf ${target}/SCALE 2>/dev/null || : + mv ${target}/values.yaml ${target}/test_values.yaml 2>/dev/null || : + touch ${target}/values.yaml +} + +copy_apps() { + local chart="$1" + local chartname="$2" + local train="$3" + local chartversion="$4" + echo "Copying App to Catalog: ${2}" + mkdir -p catalog/${train}/${chartname}/${chartversion} + cp -Rf ${chart}/* catalog/${train}/${chartname}/${chartversion}/ + +} + +validate_catalog() { + if [[ -z "$standalone" ]]; then + echo "Starting Catalog Validation" + /usr/local/bin/catalog_validate validate --path "${PWD}/catalog" + fi +} + + +parse_command_line() { + while :; do + case "${1:-}" in + -h|--help) + show_help + exit + ;; + --config) + if [[ -n "${2:-}" ]]; then + config="$2" + shift + else + config=".github/cr.yaml" + shift + fi + ;; + -v|--version) + if [[ -n "${2:-}" ]]; then + version="$2" + shift + else + echo "ERROR: '-v|--version' cannot be empty." >&2 + show_help + exit 1 + fi + ;; + -d|--charts-dir) + if [[ -n "${2:-}" ]]; then + charts_dir="$2" + shift + else + echo "ERROR: '-d|--charts-dir' cannot be empty." >&2 + show_help + exit 1 + fi + ;; + -u|--charts-repo-url) + if [[ -n "${2:-}" ]]; then + charts_repo_url="$2" + shift + else + echo "ERROR: '-u|--charts-repo-url' cannot be empty." >&2 + show_help + exit 1 + fi + ;; + -o|--owner) + if [[ -n "${2:-}" ]]; then + owner="$2" + shift + else + echo "ERROR: '--owner' cannot be empty." >&2 + show_help + exit 1 + fi + ;; + -r|--repo) + if [[ -n "${2:-}" ]]; then + repo="$2" + shift + else + echo "ERROR: '--repo' cannot be empty." >&2 + show_help + exit 1 + fi + ;; + -p|--production) + production="true" + ;; + -s|--standalone) + standalone="true" + ;; + *) + break + ;; + esac + + shift + done + + if [[ -z "$owner" ]]; then + echo "No owner configured, defaulting to truecharts" >&2 + owner="truecharts" + fi + + if [[ -z "$repo" ]]; then + echo "No repo configured, defaulting to apps" >&2 + repo="apps" + fi + + if [[ -z "$charts_repo_url" ]]; then + charts_repo_url="https://$owner.github.io/$repo" + fi +} + +lookup_latest_tag() { + git fetch --tags > /dev/null 2>&1 + + if ! git describe --tags --abbrev=0 2> /dev/null; then + git rev-list --max-parents=0 --first-parent HEAD + fi +} + +filter_charts() { + while read -r chart; do + [[ ! -d "$chart" ]] && continue + if [[ $(git diff $latest_tag $chart/Chart.yaml | grep "+version") ]]; then + echo "$chart" + else + echo "Version not bumped. Skipping." 1>&2 + fi + done +} + +lookup_changed_charts() { + local commit="$1" + + local changed_files + changed_files=$(git diff --find-renames --name-only "$commit" -- "$charts_dir" | grep "Chart.yaml") + + local depth=$(( $(tr "/" "\n" <<< "$charts_dir" | sed '/^\(\.\)*$/d' | wc -l) + 1 )) + local fields="1-${depth}" + + cut -d '/' -f "$fields" <<< "$changed_files" | uniq | filter_charts +} + +package_chart() { + local chart="$1" + local args=("$chart" --package-path .cr-release-packages) + if [[ -n "$config" ]]; then + args+=(--config "$config") + fi + + if [[ -z "$standalone" ]]; then + echo "Packaging chart '$chart'..." + cr package "${args[@]}" + fi +} + +release_charts() { + local args=(-o "$owner" -r "$repo" -c "$(git rev-parse HEAD)") + if [[ -n "$config" ]]; then + args+=(--config "$config") + fi + + if [[ -z "$standalone" ]]; then + echo 'Releasing charts...' + cr upload "${args[@]}" + fi +} + +update_index() { + local args=(-o "$owner" -r "$repo" -c "$charts_repo_url") + if [[ -n "$config" ]]; then + args+=(--config "$config") + fi + + if [[ -z "$standalone" ]]; then + echo 'Updating charts repo index...' + cr index "${args[@]}" + fi +} + +main "$@" diff --git a/tools/process.sh b/tools/process.sh index 3389fce219c..06b224d4354 100755 --- a/tools/process.sh +++ b/tools/process.sh @@ -2,7 +2,7 @@ set -eu # This script will do some basic processing from k8s-at-home to TrueCharts -nodeport=3700 +nodeport=36150 for chart in input/*; do if [ -d "${chart}" ]; then nodeport=$((nodeport+1)) @@ -24,17 +24,7 @@ for chart in input/*; do port=$(cat ${chart}/values.yaml | grep -m 1 port: ) && port=${port/ port: /} sed -i "s|PLACEHOLDERPORT|${port}|g" output/${basename}/SCALE/questions.yaml sed -i "s|PLACEHOLDERNODEPORT|${nodeport}|g" output/${basename}/SCALE/questions.yaml - sed -i "/^version:/c\version: 1.0.0" output/${basename}/Chart.yaml - sed -i "/^appVersion:/c\appVersion: 'auto'" output/${basename}/Chart.yaml - sed -i "s|library-charts.k8s-at-home.com|truecharts.org|g" output/${basename}/Chart.yaml - sed -i "/name: commonc\- name2: common" output/${basename}/Chart.yaml - sed -i "/- name:/c\- name: truecharts" output/${basename}/Chart.yaml - sed -i "/name2: commonc\- name: common" output/${basename}/Chart.yaml - sed -i "/email:/c\ email: info@truecharts.org - url: https://truecharts.org" output/${basename}/Chart.yaml - sed -i "/ version:/c\ version: 6.4.6" output/${basename}/Chart.yaml - sed -i "s|github.com/k8s-at-home/charts|github.com/truechartsapps|g" output/${basename}/Chart.yaml - sed -i "s|charts/stable|charts/incubator|g" output/${basename}/Chart.yaml - sed -i "s|http:|main:|g" output/${basename}/values.yaml + + fi done