From df6aa84c17bca8f45a3fbf72a08c31b56c226656 Mon Sep 17 00:00:00 2001 From: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Date: Tue, 10 Oct 2023 16:14:10 +0300 Subject: [PATCH] add `drawio` to `community` train (#1629) * add `drawio` to `community` train * http/https * other user * cleanup * update questions * typo --- library/ix-dev/community/drawio/Chart.lock | 6 + library/ix-dev/community/drawio/Chart.yaml | 26 +++ library/ix-dev/community/drawio/README.md | 3 + library/ix-dev/community/drawio/app-readme.md | 3 + .../community/drawio/charts/common-1.1.1.tgz | Bin 0 -> 61734 bytes .../community/drawio/ci/basic-values.yaml | 3 + .../community/drawio/ci/extra-values.yaml | 10 + .../community/drawio/ci/hostNet-values.yaml | 4 + library/ix-dev/community/drawio/item.yaml | 10 + library/ix-dev/community/drawio/metadata.yaml | 8 + .../ix-dev/community/drawio/questions.yaml | 185 ++++++++++++++++++ .../community/drawio/templates/NOTES.txt | 1 + .../community/drawio/templates/_drawio.tpl | 41 ++++ .../drawio/templates/_persistence.tpl | 21 ++ .../community/drawio/templates/_portal.tpl | 12 ++ .../community/drawio/templates/_service.tpl | 22 +++ .../community/drawio/templates/common.yaml | 11 ++ .../ix-dev/community/drawio/upgrade_info.json | 1 + .../ix-dev/community/drawio/upgrade_strategy | 31 +++ library/ix-dev/community/drawio/values.yaml | 20 ++ 20 files changed, 418 insertions(+) create mode 100644 library/ix-dev/community/drawio/Chart.lock create mode 100644 library/ix-dev/community/drawio/Chart.yaml create mode 100644 library/ix-dev/community/drawio/README.md create mode 100644 library/ix-dev/community/drawio/app-readme.md create mode 100644 library/ix-dev/community/drawio/charts/common-1.1.1.tgz create mode 100644 library/ix-dev/community/drawio/ci/basic-values.yaml create mode 100644 library/ix-dev/community/drawio/ci/extra-values.yaml create mode 100644 library/ix-dev/community/drawio/ci/hostNet-values.yaml create mode 100644 library/ix-dev/community/drawio/item.yaml create mode 100644 library/ix-dev/community/drawio/metadata.yaml create mode 100644 library/ix-dev/community/drawio/questions.yaml create mode 100644 library/ix-dev/community/drawio/templates/NOTES.txt create mode 100644 library/ix-dev/community/drawio/templates/_drawio.tpl create mode 100644 library/ix-dev/community/drawio/templates/_persistence.tpl create mode 100644 library/ix-dev/community/drawio/templates/_portal.tpl create mode 100644 library/ix-dev/community/drawio/templates/_service.tpl create mode 100644 library/ix-dev/community/drawio/templates/common.yaml create mode 100644 library/ix-dev/community/drawio/upgrade_info.json create mode 100755 library/ix-dev/community/drawio/upgrade_strategy create mode 100644 library/ix-dev/community/drawio/values.yaml diff --git a/library/ix-dev/community/drawio/Chart.lock b/library/ix-dev/community/drawio/Chart.lock new file mode 100644 index 0000000000..4b6499659a --- /dev/null +++ b/library/ix-dev/community/drawio/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.1.1 +digest: sha256:a7dbe3e4d42dbcd4325776e5e01a1d630c7f185f79e7ebf22b1b9cc80f56eed7 +generated: "2023-10-09T17:13:08.326486318+03:00" diff --git a/library/ix-dev/community/drawio/Chart.yaml b/library/ix-dev/community/drawio/Chart.yaml new file mode 100644 index 0000000000..ad5a741cd0 --- /dev/null +++ b/library/ix-dev/community/drawio/Chart.yaml @@ -0,0 +1,26 @@ +name: drawio +description: Draw.io is a whiteboarding / diagramming software application. +annotations: + title: Draw.IO +type: application +version: 1.0.0 +apiVersion: v2 +appVersion: 22.0.3 +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.1 +home: https://www.drawio.com +icon: https://avatars.githubusercontent.com/u/1769238 +sources: + - https://hub.docker.com/r/jgraph/drawio + - https://github.com/truenas/charts/tree/master/library/ix-dev/community/drawio + - https://github.com/jgraph/drawio +keywords: + - diagram + - whiteboard diff --git a/library/ix-dev/community/drawio/README.md b/library/ix-dev/community/drawio/README.md new file mode 100644 index 0000000000..a6004edded --- /dev/null +++ b/library/ix-dev/community/drawio/README.md @@ -0,0 +1,3 @@ +# Draw.io + +[Draw.io](https://www.drawio.com) is a whiteboarding / diagramming software application. diff --git a/library/ix-dev/community/drawio/app-readme.md b/library/ix-dev/community/drawio/app-readme.md new file mode 100644 index 0000000000..a6004edded --- /dev/null +++ b/library/ix-dev/community/drawio/app-readme.md @@ -0,0 +1,3 @@ +# Draw.io + +[Draw.io](https://www.drawio.com) is a whiteboarding / diagramming software application. diff --git a/library/ix-dev/community/drawio/charts/common-1.1.1.tgz b/library/ix-dev/community/drawio/charts/common-1.1.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8d3f9e686e9a6cc607a8e559c75ed37e4f7e6257 GIT binary patch literal 61734 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 + schema: + type: boolean + default: false + - variable: httpPort + label: HTTP Port + description: | + The HTTP port for the Draw.io Web UI. + You have to append [/?offline=1&https=0] to the URL + schema: + type: int + default: 30090 + show_if: [["hostNetwork", "=", false]] + min: 9000 + max: 65535 + required: true + - variable: httpsPort + label: HTTPS Port + description: | + The HTTPS port for the Draw.io Web UI. + You have to append [/?offline=1] to the URL + schema: + type: int + default: 30091 + show_if: [["hostNetwork", "=", false]] + min: 9000 + max: 65535 + required: true + + - variable: drawioStorage + label: "" + group: Storage Configuration + schema: + type: dict + attrs: + - variable: additionalStorages + label: Additional Storage + description: Additional storage for Draw.io. + 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 Draw.io. + 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 Draw.io. + 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/library/ix-dev/community/drawio/templates/NOTES.txt b/library/ix-dev/community/drawio/templates/NOTES.txt new file mode 100644 index 0000000000..ba4e01146c --- /dev/null +++ b/library/ix-dev/community/drawio/templates/NOTES.txt @@ -0,0 +1 @@ +{{ include "ix.v1.common.lib.chart.notes" $ }} diff --git a/library/ix-dev/community/drawio/templates/_drawio.tpl b/library/ix-dev/community/drawio/templates/_drawio.tpl new file mode 100644 index 0000000000..d20e0c795c --- /dev/null +++ b/library/ix-dev/community/drawio/templates/_drawio.tpl @@ -0,0 +1,41 @@ +{{- define "drawio.workload" -}} +workload: + drawio: + enabled: true + primary: true + type: Deployment + podSpec: + hostNetwork: {{ .Values.drawioNetwork.hostNetwork }} + containers: + drawio: + enabled: true + primary: true + imageSelector: image + securityContext: + runAsUser: 1000 + runAsGroup: 999 + readOnlyRootFilesystem: false + {{ with .Values.drawioConfig.additionalEnvs }} + envList: + {{ range $env := . }} + - name: {{ $env.name }} + value: {{ $env.value }} + {{ end }} + {{ end }} + probes: + liveness: + enabled: true + type: http + port: 8080 + path: / + readiness: + enabled: true + type: http + port: 8080 + path: / + startup: + enabled: true + type: http + port: 8080 + path: / +{{- end -}} diff --git a/library/ix-dev/community/drawio/templates/_persistence.tpl b/library/ix-dev/community/drawio/templates/_persistence.tpl new file mode 100644 index 0000000000..a6dd93ecfc --- /dev/null +++ b/library/ix-dev/community/drawio/templates/_persistence.tpl @@ -0,0 +1,21 @@ +{{- define "drawio.persistence" -}} +persistence: + tmp: + enabled: true + type: emptyDir + targetSelector: + drawio: + drawio: + mountPath: /tmp + {{- range $idx, $storage := .Values.drawioStorage.additionalStorages }} + {{ printf "drawio-%v" (int $idx) }}: + enabled: true + type: {{ $storage.type }} + datasetName: {{ $storage.datasetName | default "" }} + hostPath: {{ $storage.hostPath | default "" }} + targetSelector: + drawio: + drawio: + mountPath: {{ $storage.mountPath }} + {{- end }} +{{- end -}} diff --git a/library/ix-dev/community/drawio/templates/_portal.tpl b/library/ix-dev/community/drawio/templates/_portal.tpl new file mode 100644 index 0000000000..a38d2598b9 --- /dev/null +++ b/library/ix-dev/community/drawio/templates/_portal.tpl @@ -0,0 +1,12 @@ +{{- define "drawio.portal" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal +data: + path: "/?offline=1&https=0" + port: {{ .Values.drawioNetwork.httpPort | quote }} + protocol: http + host: $node_ip +{{- end -}} diff --git a/library/ix-dev/community/drawio/templates/_service.tpl b/library/ix-dev/community/drawio/templates/_service.tpl new file mode 100644 index 0000000000..4fbc5751d1 --- /dev/null +++ b/library/ix-dev/community/drawio/templates/_service.tpl @@ -0,0 +1,22 @@ +{{- define "drawio.service" -}} +service: + drawio: + enabled: true + primary: true + type: NodePort + targetSelector: drawio + ports: + http: + enabled: true + primary: true + port: {{ .Values.drawioNetwork.httpPort }} + nodePort: {{ .Values.drawioNetwork.httpPort }} + targetPort: 8080 + targetSelector: drawio + https: + enabled: true + port: {{ .Values.drawioNetwork.httpsPort }} + nodePort: {{ .Values.drawioNetwork.httpsPort }} + targetPort: 8443 + targetSelector: drawio +{{- end -}} diff --git a/library/ix-dev/community/drawio/templates/common.yaml b/library/ix-dev/community/drawio/templates/common.yaml new file mode 100644 index 0000000000..e8e1170701 --- /dev/null +++ b/library/ix-dev/community/drawio/templates/common.yaml @@ -0,0 +1,11 @@ +{{- include "ix.v1.common.loader.init" . -}} + +{{/* Merge the templates with Values */}} +{{- $_ := mustMergeOverwrite .Values (include "drawio.workload" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "drawio.service" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "drawio.persistence" $ | fromYaml) -}} + +{{/* Create the configmap for portal manually*/}} +{{- include "drawio.portal" $ -}} + +{{- include "ix.v1.common.loader.apply" . -}} diff --git a/library/ix-dev/community/drawio/upgrade_info.json b/library/ix-dev/community/drawio/upgrade_info.json new file mode 100644 index 0000000000..767388094a --- /dev/null +++ b/library/ix-dev/community/drawio/upgrade_info.json @@ -0,0 +1 @@ +{"filename": "values.yaml", "keys": ["image"]} diff --git a/library/ix-dev/community/drawio/upgrade_strategy b/library/ix-dev/community/drawio/upgrade_strategy new file mode 100755 index 0000000000..af685230a1 --- /dev/null +++ b/library/ix-dev/community/drawio/upgrade_strategy @@ -0,0 +1,31 @@ +#!/usr/bin/python3 +import json +import re +import sys + +from catalog_update.upgrade_strategy import semantic_versioning + + +RE_STABLE_VERSION = re.compile(r'\d+\.\d+\.\d+') + + +def newer_mapping(image_tags): + key = list(image_tags.keys())[0] + tags = {t: t for t in image_tags[key] if RE_STABLE_VERSION.fullmatch(t)} + version = semantic_versioning(list(tags)) + if not version: + return {} + + return { + 'tags': {key: tags[version]}, + 'app_version': version, + } + + +if __name__ == '__main__': + try: + versions_json = json.loads(sys.stdin.read()) + except ValueError: + raise ValueError('Invalid json specified') + + print(json.dumps(newer_mapping(versions_json))) diff --git a/library/ix-dev/community/drawio/values.yaml b/library/ix-dev/community/drawio/values.yaml new file mode 100644 index 0000000000..116f78eef3 --- /dev/null +++ b/library/ix-dev/community/drawio/values.yaml @@ -0,0 +1,20 @@ +image: + repository: jgraph/drawio + pullPolicy: IfNotPresent + tag: 22.0.3 + +resources: + limits: + cpu: 4000m + memory: 8Gi + +drawioConfig: + additionalEnvs: [] + +drawioNetwork: + httpPort: 30090 + httpsPort: 30091 + hostNetwork: false + +drawioStorage: + additionalStorages: []