From 0480e97a35c20fbec899b6f0d5e2c36a3934e963 Mon Sep 17 00:00:00 2001 From: sonicaj Date: Wed, 30 Aug 2023 11:24:37 +0000 Subject: [PATCH] Publish new changes in catalog --- community/planka/1.0.0/Chart.lock | 6 + community/planka/1.0.0/Chart.yaml | 26 ++ community/planka/1.0.0/README.md | 8 + community/planka/1.0.0/app-readme.md | 8 + .../planka/1.0.0/charts/common-1.1.0.tgz | Bin 0 -> 61699 bytes community/planka/1.0.0/ci/basic-values.yaml | 22 + community/planka/1.0.0/ci/extra-values.yaml | 29 ++ community/planka/1.0.0/ci/hostNet-values.yaml | 23 ++ community/planka/1.0.0/ix_values.yaml | 58 +++ community/planka/1.0.0/metadata.yaml | 8 + community/planka/1.0.0/questions.yaml | 377 ++++++++++++++++++ community/planka/1.0.0/templates/NOTES.txt | 1 + .../planka/1.0.0/templates/_configuration.tpl | 53 +++ .../planka/1.0.0/templates/_persistence.tpl | 88 ++++ community/planka/1.0.0/templates/_planka.tpl | 56 +++ community/planka/1.0.0/templates/_portal.tpl | 33 ++ .../planka/1.0.0/templates/_postgres.tpl | 6 + community/planka/1.0.0/templates/_service.tpl | 26 ++ community/planka/1.0.0/templates/common.yaml | 13 + community/planka/item.yaml | 9 + 20 files changed, 850 insertions(+) create mode 100644 community/planka/1.0.0/Chart.lock create mode 100644 community/planka/1.0.0/Chart.yaml create mode 100644 community/planka/1.0.0/README.md create mode 100644 community/planka/1.0.0/app-readme.md create mode 100644 community/planka/1.0.0/charts/common-1.1.0.tgz create mode 100644 community/planka/1.0.0/ci/basic-values.yaml create mode 100644 community/planka/1.0.0/ci/extra-values.yaml create mode 100644 community/planka/1.0.0/ci/hostNet-values.yaml create mode 100644 community/planka/1.0.0/ix_values.yaml create mode 100644 community/planka/1.0.0/metadata.yaml create mode 100644 community/planka/1.0.0/questions.yaml create mode 100644 community/planka/1.0.0/templates/NOTES.txt create mode 100644 community/planka/1.0.0/templates/_configuration.tpl create mode 100644 community/planka/1.0.0/templates/_persistence.tpl create mode 100644 community/planka/1.0.0/templates/_planka.tpl create mode 100644 community/planka/1.0.0/templates/_portal.tpl create mode 100644 community/planka/1.0.0/templates/_postgres.tpl create mode 100644 community/planka/1.0.0/templates/_service.tpl create mode 100644 community/planka/1.0.0/templates/common.yaml create mode 100644 community/planka/item.yaml diff --git a/community/planka/1.0.0/Chart.lock b/community/planka/1.0.0/Chart.lock new file mode 100644 index 0000000000..00de9a457d --- /dev/null +++ b/community/planka/1.0.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.1.0 +digest: sha256:752ce76025f5b61094bd2b18ca11693eb9d26d0dde4eb2e63cd2330cbffe9e73 +generated: "2023-08-29T19:19:05.323162098+03:00" diff --git a/community/planka/1.0.0/Chart.yaml b/community/planka/1.0.0/Chart.yaml new file mode 100644 index 0000000000..87c35d10da --- /dev/null +++ b/community/planka/1.0.0/Chart.yaml @@ -0,0 +1,26 @@ +name: planka +description: Planka is an Elegant open source project tracking +annotations: + title: Planka +type: application +version: 1.0.0 +apiVersion: v2 +appVersion: 1.12.0 +kubeVersion: '>=1.16.0-0' +maintainers: + - name: truenas + url: https://www.truenas.com/ + email: dev@ixsystems.com +dependencies: + - name: common + repository: file://../../../common + version: 1.1.0 +home: https://github.com/plankanban/planka +icon: https://github.com/plankanban/planka/blob/master/client/public/logo512.png?raw=true +sources: + - https://github.com/truenas/charts/tree/master/library/ix-dev/community/planka + - https://github.com/plankanban/planka +keywords: + - project + - task + - kanban diff --git a/community/planka/1.0.0/README.md b/community/planka/1.0.0/README.md new file mode 100644 index 0000000000..05934c7f49 --- /dev/null +++ b/community/planka/1.0.0/README.md @@ -0,0 +1,8 @@ +# Planka + +[Planka](https://github.com/plankanban/planka) is an Elegant open source project tracking + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `Planka` directories. +> Afterward, the `Planka` container will run as a **non**-root user (`1000`). +> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user. diff --git a/community/planka/1.0.0/app-readme.md b/community/planka/1.0.0/app-readme.md new file mode 100644 index 0000000000..05934c7f49 --- /dev/null +++ b/community/planka/1.0.0/app-readme.md @@ -0,0 +1,8 @@ +# Planka + +[Planka](https://github.com/plankanban/planka) is an Elegant open source project tracking + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `Planka` directories. +> Afterward, the `Planka` container will run as a **non**-root user (`1000`). +> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user. diff --git a/community/planka/1.0.0/charts/common-1.1.0.tgz b/community/planka/1.0.0/charts/common-1.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3c6e66db7de230d5621db065c44518059692db7c GIT binary patch literal 61699 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 literal 0 HcmV?d00001 diff --git a/community/planka/1.0.0/ci/basic-values.yaml b/community/planka/1.0.0/ci/basic-values.yaml new file mode 100644 index 0000000000..8b46e21b02 --- /dev/null +++ b/community/planka/1.0.0/ci/basic-values.yaml @@ -0,0 +1,22 @@ +plankaNetwork: + webPort: 31000 + +plankaConfig: + baseURL: http://localhost:31000 + +plankaStorage: + avatars: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/avatars + backgroundImages: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/bg-img + attachments: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/attachments + pgData: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/pgData + pgBackup: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/pgBackup diff --git a/community/planka/1.0.0/ci/extra-values.yaml b/community/planka/1.0.0/ci/extra-values.yaml new file mode 100644 index 0000000000..3d4f54dddd --- /dev/null +++ b/community/planka/1.0.0/ci/extra-values.yaml @@ -0,0 +1,29 @@ +plankaNetwork: + webPort: 31000 + +plankaConfig: + baseURL: http://localhost:31000 + +plankaStorage: + avatars: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/avatars + backgroundImages: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/bg-img + attachments: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/attachments + pgData: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/pgData + pgBackup: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/pgBackup + additionalStorages: + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data1 + mountPath: /data1 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data2 + mountPath: /data2 diff --git a/community/planka/1.0.0/ci/hostNet-values.yaml b/community/planka/1.0.0/ci/hostNet-values.yaml new file mode 100644 index 0000000000..bff0e81903 --- /dev/null +++ b/community/planka/1.0.0/ci/hostNet-values.yaml @@ -0,0 +1,23 @@ +plankaNetwork: + webPort: 30000 + hostNetwork: true + +plankaConfig: + baseURL: http://localhost:30000 + +plankaStorage: + avatars: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/avatars + backgroundImages: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/bg-img + attachments: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/attachments + pgData: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/pgData + pgBackup: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/pgBackup diff --git a/community/planka/1.0.0/ix_values.yaml b/community/planka/1.0.0/ix_values.yaml new file mode 100644 index 0000000000..61e79d1fe8 --- /dev/null +++ b/community/planka/1.0.0/ix_values.yaml @@ -0,0 +1,58 @@ +image: + repository: ghcr.io/plankanban/planka + pullPolicy: IfNotPresent + tag: 1.12.0 + +resources: + limits: + cpu: 4000m + memory: 8Gi + +plankaConfig: + trustProxy: false + baseURL: http://localhost:30062 + additionalEnvs: [] + +plankaNetwork: + webPort: 30062 + hostNetwork: false + +plankaStorage: + avatars: + type: ixVolume + datasetName: avatars + backgroundImages: + type: ixVolume + datasetName: bg-img + attachments: + type: ixVolume + datasetName: attachments + additionalStorages: [] + pgData: + type: ixVolume + datasetName: pgData + pgBackup: + type: ixVolume + datasetName: pgBackup + +notes: + custom: | + Default credentials: + - Username: `demo@demo.demo` + - Password: `demo` + + ## Database + You can connect to the database using the pgAdmin App from the catalog + +
+ Database Details + + - Database: `planka` + - Username: `planka` + - Password: `{{ .Values.plankaDbPass }}` + - Host: `{{ .Values.plankaDbHost }}.{{ .Release.Namespace }}.svc.cluster.local` + - Port: `5432` + +
+ {{- $_ := unset .Values "plankaDbPass" }} + {{- $_ := unset .Values "plankaDbHost" }} diff --git a/community/planka/1.0.0/metadata.yaml b/community/planka/1.0.0/metadata.yaml new file mode 100644 index 0000000000..2cd5098952 --- /dev/null +++ b/community/planka/1.0.0/metadata.yaml @@ -0,0 +1,8 @@ +runAsContext: + - userName: planka + groupName: planka + gid: 1000 + uid: 1000 + description: Planka can runs as a non-root user. +capabilities: [] +hostMounts: [] diff --git a/community/planka/1.0.0/questions.yaml b/community/planka/1.0.0/questions.yaml new file mode 100644 index 0000000000..f21bb366d0 --- /dev/null +++ b/community/planka/1.0.0/questions.yaml @@ -0,0 +1,377 @@ +groups: + - name: Planka Configuration + description: Configure Planka + - name: Network Configuration + description: Configure Network for Planka + - name: Storage Configuration + description: Configure Storage for Planka + - name: Resources Configuration + description: Configure Resources for Planka + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "$kubernetes-resource_configmap_portal_path" + +questions: + - variable: plankaConfig + label: "" + group: Planka Configuration + schema: + type: dict + attrs: + - variable: baseURL + label: BaseURL + description: | + The URL that Planka will be accessible from.
+ Example:
+ http://server.ip:30062
+ https://planka.example.com + schema: + type: uri + default: "" + required: true + - variable: trustProxy + label: Trust Proxy + description: Trust the reverse proxy when Planka is behind a reverse proxy. + schema: + type: boolean + default: false + - variable: additionalEnvs + label: Additional Environment Variables + description: Configure additional environment variables for Planka. + schema: + type: list + default: [] + items: + - variable: env + label: Environment Variable + schema: + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + + - variable: plankaNetwork + label: "" + group: Network Configuration + schema: + type: dict + attrs: + - variable: webPort + label: Web Port + description: The port for the Planka Web UI. + schema: + type: int + default: 30062 + min: 9000 + max: 65535 + required: true + - variable: hostNetwork + label: Host Network + description: | + Bind to the host network. It's recommended to keep this disabled.
+ schema: + type: boolean + default: false + + - variable: plankaStorage + label: "" + group: Storage Configuration + schema: + type: dict + attrs: + - variable: avatars + label: Planka Avatars Storage + description: The path to store Planka Avatars. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + default: "ixVolume" + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - variable: datasetName + label: Dataset Name + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + hidden: true + immutable: true + default: "avatars" + $ref: + - "normalize/ixVolume" + - variable: hostPath + label: Host Path + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + immutable: true + required: true + - variable: backgroundImages + label: Planka Background Images Storage + description: The path to store Planka Background Images. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + default: "ixVolume" + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - variable: datasetName + label: Dataset Name + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + hidden: true + immutable: true + default: "bg-img" + $ref: + - "normalize/ixVolume" + - variable: hostPath + label: Host Path + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + immutable: true + required: true + - variable: attachments + label: Planka Attachments Storage + description: The path to store Planka Attachments. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + default: "ixVolume" + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - variable: datasetName + label: Dataset Name + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + hidden: true + immutable: true + default: "attachments" + $ref: + - "normalize/ixVolume" + - variable: hostPath + label: Host Path + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + immutable: true + required: true + - variable: pgData + label: Postgres Data Storage + description: The path to store Postgres Data. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + default: "ixVolume" + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - variable: datasetName + label: Dataset Name + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + hidden: true + immutable: true + default: "pgData" + $ref: + - "normalize/ixVolume" + - variable: hostPath + label: Host Path + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + immutable: true + required: true + - variable: pgBackup + label: Postgres Backup Storage + description: The path to store Postgres Backup. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + default: "ixVolume" + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - variable: datasetName + label: Dataset Name + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + hidden: true + immutable: true + default: "pgBackup" + $ref: + - "normalize/ixVolume" + - variable: hostPath + label: Host Path + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + immutable: true + required: true + - variable: additionalStorages + label: Additional Storage + description: Additional storage for Planka. + schema: + type: list + default: [] + items: + - variable: storageEntry + label: Storage Entry + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + default: "ixVolume" + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - variable: mountPath + label: Mount Path + description: The path inside the container to mount the storage. + schema: + type: path + required: true + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + required: true + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + immutable: true + default: "storage_entry" + $ref: + - "normalize/ixVolume" + + - variable: resources + group: Resources Configuration + label: "" + schema: + type: dict + attrs: + - variable: limits + label: Limits + schema: + type: dict + attrs: + - variable: cpu + label: CPU + description: CPU limit for Planka. + schema: + type: string + max_length: 6 + valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$' + valid_chars_error: | + Valid CPU limit formats are
+ - Plain Integer - eg. 1
+ - Float - eg. 0.5
+ - Milicpu - eg. 500m + default: "4000m" + required: true + - variable: memory + label: Memory + description: Memory limit for Planka. + schema: + type: string + max_length: 12 + valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$' + valid_chars_error: | + Valid Memory limit formats are
+ - Suffixed with E/P/T/G/M/K - eg. 1G
+ - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
+ - Plain Integer in bytes - eg. 1024
+ - Exponent - eg. 134e6 + default: "8Gi" + required: true diff --git a/community/planka/1.0.0/templates/NOTES.txt b/community/planka/1.0.0/templates/NOTES.txt new file mode 100644 index 0000000000..ba4e01146c --- /dev/null +++ b/community/planka/1.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{ include "ix.v1.common.lib.chart.notes" $ }} diff --git a/community/planka/1.0.0/templates/_configuration.tpl b/community/planka/1.0.0/templates/_configuration.tpl new file mode 100644 index 0000000000..ceec088d6f --- /dev/null +++ b/community/planka/1.0.0/templates/_configuration.tpl @@ -0,0 +1,53 @@ +{{- define "planka.configuration" -}} + {{- $fullname := (include "ix.v1.common.lib.chart.names.fullname" $) -}} + + {{- $secretKey := randAlphaNum 32 -}} + {{- with (lookup "v1" "Secret" .Release.Namespace (printf "%s-planka" $fullname)) -}} + {{- $secretKey = ((index .data "SECRET_KEY") | b64dec) -}} + {{- end -}} + + {{- $dbHost := (printf "%s-postgres" $fullname) -}} + {{- $dbUser := "planka" -}} + {{- $dbName := "planka" -}} + + {{- $dbPass := (randAlphaNum 32) -}} + {{- with (lookup "v1" "Secret" .Release.Namespace (printf "%s-postgres-creds" $fullname)) -}} + {{- $dbPass = ((index .data "POSTGRES_PASSWORD") | b64dec) -}} + {{- end -}} + + {{- $dbURL := (printf "%s:%s@%s:5432/%s?sslmode=disable" $dbUser $dbPass $dbHost $dbName) -}} + {{/* Temporary set dynamic db details on values, + so we can print them on the notes */}} + {{- $_ := set .Values "plankaDbPass" $dbPass -}} + {{- $_ := set .Values "plankaDbHost" $dbHost }} + +secret: + planka: + enabled: true + data: + SECRET_KEY: {{ $secretKey }} + DATABASE_URL: {{ printf "postgresql://%s" $dbURL }} + + postgres-creds: + enabled: true + data: + POSTGRES_USER: {{ $dbUser }} + POSTGRES_DB: {{ $dbName }} + POSTGRES_PASSWORD: {{ $dbPass }} + POSTGRES_HOST: {{ $dbHost }} + POSTGRES_URL: {{ printf "postgres://%s" $dbURL }} + +{{- if and + (not (hasPrefix "http://" .Values.plankaConfig.baseURL)) + (not (hasPrefix "https://" .Values.plankaConfig.baseURL)) -}} + {{- fail "Planka - Expected [Base URL] to start with [http://] or [https://]" -}} +{{- end }} + +configmap: + planka: + enabled: true + data: + NODE_ENV: production + BASE_URL: {{ .Values.plankaConfig.baseURL }} + TRUST_PROXY: {{ ternary "1" "0" .Values.plankaConfig.trustProxy | quote }} +{{- end -}} diff --git a/community/planka/1.0.0/templates/_persistence.tpl b/community/planka/1.0.0/templates/_persistence.tpl new file mode 100644 index 0000000000..78b580fac2 --- /dev/null +++ b/community/planka/1.0.0/templates/_persistence.tpl @@ -0,0 +1,88 @@ +{{- define "planka.persistence" -}} +persistence: + avatars: + enabled: true + type: {{ .Values.plankaStorage.avatars.type }} + datasetName: {{ .Values.plankaStorage.avatars.datasetName | default "" }} + hostPath: {{ .Values.plankaStorage.avatars.hostPath | default "" }} + targetSelector: + planka: + planka: + mountPath: /app/public/user-avatars + 01-permissions: + mountPath: /mnt/directories/user-avatars + bg-img: + enabled: true + type: {{ .Values.plankaStorage.backgroundImages.type }} + datasetName: {{ .Values.plankaStorage.backgroundImages.datasetName | default "" }} + hostPath: {{ .Values.plankaStorage.backgroundImages.hostPath | default "" }} + targetSelector: + planka: + planka: + mountPath: /app/public/project-background-images + 01-permissions: + mountPath: /mnt/directories/project-background-images + attachments: + enabled: true + type: {{ .Values.plankaStorage.attachments.type }} + datasetName: {{ .Values.plankaStorage.attachments.datasetName | default "" }} + hostPath: {{ .Values.plankaStorage.attachments.hostPath | default "" }} + targetSelector: + planka: + planka: + mountPath: /app/private/attachments + 01-permissions: + mountPath: /mnt/directories/attachments + tmp: + enabled: true + type: emptyDir + targetSelector: + planka: + planka: + mountPath: /tmp + {{- range $idx, $storage := .Values.plankaStorage.additionalStorages }} + {{ printf "planka-%v" (int $idx) }}: + enabled: true + type: {{ $storage.type }} + datasetName: {{ $storage.datasetName | default "" }} + hostPath: {{ $storage.hostPath | default "" }} + targetSelector: + planka: + planka: + mountPath: {{ $storage.mountPath }} + 01-permissions: + mountPath: /mnt/directories{{ $storage.mountPath }} + {{- end }} + + {{/* Database */}} + postgresdata: + enabled: true + type: {{ .Values.plankaStorage.pgData.type }} + datasetName: {{ .Values.plankaStorage.pgData.datasetName | default "" }} + hostPath: {{ .Values.plankaStorage.pgData.hostPath | default "" }} + targetSelector: + # Postgres pod + postgres: + # Postgres container + postgres: + mountPath: /var/lib/postgresql/data + # Postgres - Permissions container + # Different than the 01-permissions + permissions: + mountPath: /mnt/directories/postgres_data + postgresbackup: + enabled: true + type: {{ .Values.plankaStorage.pgBackup.type }} + datasetName: {{ .Values.plankaStorage.pgBackup.datasetName | default "" }} + hostPath: {{ .Values.plankaStorage.pgBackup.hostPath | default "" }} + targetSelector: + # Postgres backup pod + postgresbackup: + # Postgres backup container + postgresbackup: + mountPath: /postgres_backup + # Postgres - Permissions container + # Different than the 01-permissions + permissions: + mountPath: /mnt/directories/postgres_backup +{{- end -}} diff --git a/community/planka/1.0.0/templates/_planka.tpl b/community/planka/1.0.0/templates/_planka.tpl new file mode 100644 index 0000000000..aad4179228 --- /dev/null +++ b/community/planka/1.0.0/templates/_planka.tpl @@ -0,0 +1,56 @@ +{{- define "planka.workload" -}} +workload: + planka: + enabled: true + primary: true + type: Deployment + podSpec: + hostNetwork: {{ .Values.plankaNetwork.hostNetwork }} + containers: + planka: + enabled: true + primary: true + imageSelector: image + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + readOnlyRootFilesystem: false + env: + PORT: {{ .Values.plankaNetwork.webPort }} + envFrom: + - secretRef: + name: planka + - configMapRef: + name: planka + {{ with .Values.plankaConfig.additionalEnvs }} + envList: + {{ range $env := . }} + - name: {{ $env.name }} + value: {{ $env.value }} + {{ end }} + {{ end }} + probes: + liveness: + enabled: true + type: http + port: {{ .Values.plankaNetwork.webPort }} + path: / + readiness: + enabled: true + type: http + port: {{ .Values.plankaNetwork.webPort }} + path: / + startup: + enabled: true + type: http + port: {{ .Values.plankaNetwork.webPort }} + path: / + initContainers: + {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions" + "UID" 1000 + "GID" 1000 + "mode" "check" + "type" "init") | nindent 8 }} + {{- include "ix.v1.common.app.postgresWait" (dict "name" "postgres-wait" + "secretName" "postgres-creds") | nindent 8 }} +{{- end -}} diff --git a/community/planka/1.0.0/templates/_portal.tpl b/community/planka/1.0.0/templates/_portal.tpl new file mode 100644 index 0000000000..c41c31c689 --- /dev/null +++ b/community/planka/1.0.0/templates/_portal.tpl @@ -0,0 +1,33 @@ +{{- define "planka.portal" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal +data: + {{- $protocol := "http" -}} + {{- if hasPrefix "https://" .Values.plankaConfig.baseURL -}} + {{- $protocol = "https" -}} + {{- end -}} + {{- $host := "$node_ip" -}} + {{- $port := .Values.plankaNetwork.webPort -}} + {{- with .Values.plankaConfig.baseURL -}} {{/* Trim protocol and trailing slash */}} + {{- $host = (. | trimPrefix "https://" | trimPrefix "http://" | trimSuffix "/") -}} + {{- $host = mustRegexReplaceAll "(.*):[0-9]+" $host "${1}" -}} + {{- $tempPort := . | trimPrefix $protocol | trimPrefix "://" | trimPrefix $host | trimPrefix ":" -}} + {{- if $tempPort -}} + {{- $port = $tempPort -}} + {{- end -}} + {{- if not $tempPort -}} + {{- if eq $protocol "https" -}} + {{- $port = "443" -}} + {{- else -}} + {{- $port = "80" -}} + {{- end -}} + {{- end -}} + {{- end }} + path: "/" + port: {{ $port | quote }} + protocol: {{ $protocol }} + host: {{ $host }} +{{- end -}} diff --git a/community/planka/1.0.0/templates/_postgres.tpl b/community/planka/1.0.0/templates/_postgres.tpl new file mode 100644 index 0000000000..0c050b6ca0 --- /dev/null +++ b/community/planka/1.0.0/templates/_postgres.tpl @@ -0,0 +1,6 @@ +{{- define "postgres.workload" -}} +workload: +{{- include "ix.v1.common.app.postgres" (dict "secretName" "postgres-creds" + "resources" .Values.resources + "ixChartContext" .Values.ixChartContext) | nindent 2 }} +{{- end -}} diff --git a/community/planka/1.0.0/templates/_service.tpl b/community/planka/1.0.0/templates/_service.tpl new file mode 100644 index 0000000000..ac1dcfb27a --- /dev/null +++ b/community/planka/1.0.0/templates/_service.tpl @@ -0,0 +1,26 @@ +{{- define "planka.service" -}} +service: + planka: + enabled: true + primary: true + type: NodePort + targetSelector: planka + ports: + webui: + enabled: true + primary: true + port: {{ .Values.plankaNetwork.webPort }} + nodePort: {{ .Values.plankaNetwork.webPort }} + targetSelector: planka + postgres: + enabled: true + type: ClusterIP + targetSelector: postgres + ports: + postgres: + enabled: true + primary: true + port: 5432 + targetPort: 5432 + targetSelector: postgres +{{- end -}} diff --git a/community/planka/1.0.0/templates/common.yaml b/community/planka/1.0.0/templates/common.yaml new file mode 100644 index 0000000000..07b844c427 --- /dev/null +++ b/community/planka/1.0.0/templates/common.yaml @@ -0,0 +1,13 @@ +{{- include "ix.v1.common.loader.init" . -}} + +{{/* Merge the templates with Values */}} +{{- $_ := mustMergeOverwrite .Values (include "planka.workload" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "planka.service" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "planka.persistence" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "planka.configuration" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "postgres.workload" $ | fromYaml) -}} + +{{/* Create the configmap for portal manually*/}} +{{- include "planka.portal" $ -}} + +{{- include "ix.v1.common.loader.apply" . -}} diff --git a/community/planka/item.yaml b/community/planka/item.yaml new file mode 100644 index 0000000000..487def7313 --- /dev/null +++ b/community/planka/item.yaml @@ -0,0 +1,9 @@ +icon_url: https://github.com/plankanban/planka/blob/master/client/public/logo512.png?raw=true +categories: + - productivity +screenshots: + - https://raw.githubusercontent.com/plankanban/planka/master/demo.gif +tags: + - kanban + - project + - task