From fce67034251aaec24fdc8f8cb230f02ee041e755 Mon Sep 17 00:00:00 2001 From: sonicaj Date: Fri, 22 Sep 2023 15:23:18 +0000 Subject: [PATCH] Publish new changes in catalog --- community/omada-controller/1.0.0/Chart.lock | 6 + community/omada-controller/1.0.0/Chart.yaml | 28 ++ community/omada-controller/1.0.0/README.md | 3 + .../omada-controller/1.0.0/app-readme.md | 3 + .../1.0.0/charts/common-1.1.1.tgz | Bin 0 -> 61736 bytes .../1.0.0/ci/basic-values.yaml | 20 + .../1.0.0/ci/hostNet-values.yaml | 10 + .../1.0.0/ci/https-values.yaml | 103 +++++ .../omada-controller/1.0.0/ix_values.yaml | 39 ++ .../omada-controller/1.0.0/metadata.yaml | 18 + .../omada-controller/1.0.0/questions.yaml | 371 ++++++++++++++++++ .../1.0.0/templates/NOTES.txt | 1 + .../1.0.0/templates/_omada.tpl | 67 ++++ .../1.0.0/templates/_persistence.tpl | 68 ++++ .../1.0.0/templates/_portal.tpl | 12 + .../1.0.0/templates/_service.tpl | 81 ++++ .../1.0.0/templates/common.yaml | 11 + community/omada-controller/item.yaml | 7 + 18 files changed, 848 insertions(+) create mode 100644 community/omada-controller/1.0.0/Chart.lock create mode 100644 community/omada-controller/1.0.0/Chart.yaml create mode 100644 community/omada-controller/1.0.0/README.md create mode 100644 community/omada-controller/1.0.0/app-readme.md create mode 100644 community/omada-controller/1.0.0/charts/common-1.1.1.tgz create mode 100644 community/omada-controller/1.0.0/ci/basic-values.yaml create mode 100644 community/omada-controller/1.0.0/ci/hostNet-values.yaml create mode 100644 community/omada-controller/1.0.0/ci/https-values.yaml create mode 100644 community/omada-controller/1.0.0/ix_values.yaml create mode 100644 community/omada-controller/1.0.0/metadata.yaml create mode 100644 community/omada-controller/1.0.0/questions.yaml create mode 100644 community/omada-controller/1.0.0/templates/NOTES.txt create mode 100644 community/omada-controller/1.0.0/templates/_omada.tpl create mode 100644 community/omada-controller/1.0.0/templates/_persistence.tpl create mode 100644 community/omada-controller/1.0.0/templates/_portal.tpl create mode 100644 community/omada-controller/1.0.0/templates/_service.tpl create mode 100644 community/omada-controller/1.0.0/templates/common.yaml create mode 100644 community/omada-controller/item.yaml diff --git a/community/omada-controller/1.0.0/Chart.lock b/community/omada-controller/1.0.0/Chart.lock new file mode 100644 index 0000000000..563891936f --- /dev/null +++ b/community/omada-controller/1.0.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.1.1 +digest: sha256:a7dbe3e4d42dbcd4325776e5e01a1d630c7f185f79e7ebf22b1b9cc80f56eed7 +generated: "2023-09-20T16:01:02.92931839+03:00" diff --git a/community/omada-controller/1.0.0/Chart.yaml b/community/omada-controller/1.0.0/Chart.yaml new file mode 100644 index 0000000000..d6fa486814 --- /dev/null +++ b/community/omada-controller/1.0.0/Chart.yaml @@ -0,0 +1,28 @@ +name: omada-controller +description: Omada Controller (TP-Link) is a network management controller for TP-Link Omada Equipment. +annotations: + title: Omada Controller +type: application +version: 1.0.0 +apiVersion: v2 +appVersion: '5.9' +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://github.com/mbentley/docker-omada-controller +icon: https://static.tp-link.com/assets/images/icon/logo-white.svg +sources: + - https://github.com/mbentley/docker-omada-controller + - https://github.com/truenas/charts/tree/master/library/ix-dev/community/omada-controller + - https://hub.docker.com/r/mbentley/omada-controller +keywords: + - network + - controller + - omada + - tp-link diff --git a/community/omada-controller/1.0.0/README.md b/community/omada-controller/1.0.0/README.md new file mode 100644 index 0000000000..dd02cb11b9 --- /dev/null +++ b/community/omada-controller/1.0.0/README.md @@ -0,0 +1,3 @@ +# Omada Controller + +[Omada Controller](https://github.com/mbentley/docker-omada-controller) is a network management controller for Omada (TP-Link) Equipment. diff --git a/community/omada-controller/1.0.0/app-readme.md b/community/omada-controller/1.0.0/app-readme.md new file mode 100644 index 0000000000..dd02cb11b9 --- /dev/null +++ b/community/omada-controller/1.0.0/app-readme.md @@ -0,0 +1,3 @@ +# Omada Controller + +[Omada Controller](https://github.com/mbentley/docker-omada-controller) is a network management controller for Omada (TP-Link) Equipment. diff --git a/community/omada-controller/1.0.0/charts/common-1.1.1.tgz b/community/omada-controller/1.0.0/charts/common-1.1.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..1b85fe9e6263fe19bc6929a525c4402dc867176a GIT binary patch literal 61736 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ðc3%hB++&2xohVg8V@ta8QIojIxt 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 + schema: + type: int + "null": true + $ref: + - "definitions/certificate" + - variable: hostNetwork + label: Host Network + description: | + Bind to the host network.
s + This might be required for specific features to work. + schema: + type: boolean + default: false + + - variable: omadaStorage + label: "" + group: Storage Configuration + schema: + type: dict + attrs: + - variable: data + label: Omada Controller Data Storage + description: The path to store Omada Controller 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: "data" + $ref: + - "normalize/ixVolume" + - variable: hostPath + label: Host Path + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + immutable: true + required: true + - variable: logs + label: Omada Controller Logs Storage + description: The path to store Omada Controller Logs. + 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: "logs" + $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 Omada Controller. + 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 Omada Controller. + 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 Omada Controller. + 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/omada-controller/1.0.0/templates/NOTES.txt b/community/omada-controller/1.0.0/templates/NOTES.txt new file mode 100644 index 0000000000..ba4e01146c --- /dev/null +++ b/community/omada-controller/1.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{ include "ix.v1.common.lib.chart.notes" $ }} diff --git a/community/omada-controller/1.0.0/templates/_omada.tpl b/community/omada-controller/1.0.0/templates/_omada.tpl new file mode 100644 index 0000000000..db6e936673 --- /dev/null +++ b/community/omada-controller/1.0.0/templates/_omada.tpl @@ -0,0 +1,67 @@ +{{- define "omada.workload" -}} +workload: + omada: + enabled: true + primary: true + type: Deployment + podSpec: + hostNetwork: {{ .Values.omadaNetwork.hostNetwork }} + securityContext: + fsGroup: {{ .Values.omadaID.group }} + containers: + omada: + enabled: true + primary: true + imageSelector: image + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + readOnlyRootFilesystem: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - SETUID + - SETGID + fixedEnv: + PUID: {{ .Values.omadaID.user }} + env: + PUSERNAME: omada + PGROUP: omada + MANAGE_HTTP_PORT: {{ .Values.omadaNetwork.manageHttpPort }} + MANAGE_HTTPS_PORT: {{ .Values.omadaNetwork.manageHttpsPort }} + PORTAL_HTTP_PORT: {{ .Values.omadaNetwork.portalHttpPort }} + PORTAL_HTTPS_PORT: {{ .Values.omadaNetwork.portalHttpsPort }} + PORT_APP_DISCOVERY: {{ .Values.omadaNetwork.appDiscoveryPort }} + PORT_DISCOVERY: {{ .Values.omadaNetwork.discoveryPort }} + PORT_MANAGER_V2: {{ .Values.omadaNetwork.managerV2Port }} + PORT_ADOPT_V1: {{ .Values.omadaNetwork.adoptV1Port }} + PORT_MANAGER_V1: {{ .Values.omadaNetwork.managerV1Port }} + PORT_UPGRADE_V1: {{ .Values.omadaNetwork.upgradeV1Port }} + {{- if .Values.omadaNetwork.certificateID }} + SSL_CERT_NAME: tls.crt + SSL_KEY_NAME: tls.key + {{- end }} + {{ with .Values.omadaConfig.additionalEnvs }} + envList: + {{ range $env := . }} + - name: {{ $env.name }} + value: {{ $env.value }} + {{ end }} + {{ end }} + probes: + liveness: + enabled: true + type: exec + command: /healthcheck.sh + readiness: + enabled: true + type: exec + command: /healthcheck.sh + startup: + enabled: true + type: exec + command: /healthcheck.sh +{{- end -}} diff --git a/community/omada-controller/1.0.0/templates/_persistence.tpl b/community/omada-controller/1.0.0/templates/_persistence.tpl new file mode 100644 index 0000000000..8a849ff26c --- /dev/null +++ b/community/omada-controller/1.0.0/templates/_persistence.tpl @@ -0,0 +1,68 @@ +{{- define "omada.persistence" -}} +persistence: + data: + enabled: true + type: {{ .Values.omadaStorage.data.type }} + datasetName: {{ .Values.omadaStorage.data.datasetName | default "" }} + hostPath: {{ .Values.omadaStorage.data.hostPath | default "" }} + targetSelector: + omada: + omada: + mountPath: /opt/tplink/EAPController/data + 01-permissions: + mountPath: /mnt/directories/data + logs: + enabled: true + type: {{ .Values.omadaStorage.logs.type }} + datasetName: {{ .Values.omadaStorage.logs.datasetName | default "" }} + hostPath: {{ .Values.omadaStorage.logs.hostPath | default "" }} + targetSelector: + omada: + omada: + mountPath: /opt/tplink/EAPController/logs + 01-permissions: + mountPath: /mnt/directories/logs + tmp: + enabled: true + type: emptyDir + targetSelector: + omada: + omada: + mountPath: /tmp + {{- range $idx, $storage := .Values.omadaStorage.additionalStorages }} + {{ printf "omada-%v" (int $idx) }}: + enabled: true + type: {{ $storage.type }} + datasetName: {{ $storage.datasetName | default "" }} + hostPath: {{ $storage.hostPath | default "" }} + targetSelector: + omada: + omada: + mountPath: {{ $storage.mountPath }} + 01-permissions: + mountPath: /mnt/directories{{ $storage.mountPath }} + {{- end -}} + + {{- if .Values.omadaNetwork.certificateID }} + cert: + enabled: true + type: secret + objectName: omada-cert + defaultMode: "0600" + items: + - key: tls.key + path: tls.key + - key: tls.crt + path: tls.crt + targetSelector: + omada: + omada: + mountPath: /cert + readOnly: true + +scaleCertificate: + omada-cert: + enabled: true + id: {{ .Values.omadaNetwork.certificateID }} + {{- end -}} +{{- end -}} diff --git a/community/omada-controller/1.0.0/templates/_portal.tpl b/community/omada-controller/1.0.0/templates/_portal.tpl new file mode 100644 index 0000000000..0c474b666a --- /dev/null +++ b/community/omada-controller/1.0.0/templates/_portal.tpl @@ -0,0 +1,12 @@ +{{- define "omada.portal" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal +data: + path: "/" + port: {{ .Values.omadaNetwork.manageHttpsPort | quote }} + protocol: https + host: $node_ip +{{- end -}} diff --git a/community/omada-controller/1.0.0/templates/_service.tpl b/community/omada-controller/1.0.0/templates/_service.tpl new file mode 100644 index 0000000000..7976a0a060 --- /dev/null +++ b/community/omada-controller/1.0.0/templates/_service.tpl @@ -0,0 +1,81 @@ +{{- define "omada.service" -}} +service: + omada: + enabled: true + primary: true + type: NodePort + targetSelector: omada + ports: + manage-https: + enabled: true + primary: true + port: {{ .Values.omadaNetwork.manageHttpsPort }} + nodePort: {{ .Values.omadaNetwork.manageHttpsPort }} + targetSelector: omada + manage-http: + enabled: true + port: {{ .Values.omadaNetwork.manageHttpPort }} + nodePort: {{ .Values.omadaNetwork.manageHttpPort }} + targetSelector: omada + + omada-portal: + enabled: true + type: NodePort + targetSelector: omada + ports: + portal-https: + enabled: true + primary: true + port: {{ .Values.omadaNetwork.portalHttpsPort }} + nodePort: {{ .Values.omadaNetwork.portalHttpsPort }} + targetSelector: omada + portal-http: + enabled: true + port: {{ .Values.omadaNetwork.portalHttpPort }} + nodePort: {{ .Values.omadaNetwork.portalHttpPort }} + targetSelector: omada + + omada-discovery: + enabled: true + type: NodePort + targetSelector: omada + ports: + app-discovery: + enabled: true + primary: true + port: {{ .Values.omadaNetwork.appDiscoveryPort }} + nodePort: {{ .Values.omadaNetwork.appDiscoveryPort }} + targetSelector: omada + discovery: + enabled: true + port: {{ .Values.omadaNetwork.discoveryPort }} + nodePort: {{ .Values.omadaNetwork.discoveryPort }} + targetSelector: omada + + omada-devices: + enabled: true + type: NodePort + targetSelector: omada + ports: + managerv1: + enabled: true + primary: true + port: {{ .Values.omadaNetwork.managerV1Port }} + nodePort: {{ .Values.omadaNetwork.managerV1Port }} + targetSelector: omada + adoptv1: + enabled: true + port: {{ .Values.omadaNetwork.adoptV1Port }} + nodePort: {{ .Values.omadaNetwork.adoptV1Port }} + targetSelector: omada + upgradev1: + enabled: true + port: {{ .Values.omadaNetwork.upgradeV1Port }} + nodePort: {{ .Values.omadaNetwork.upgradeV1Port }} + targetSelector: omada + managerv2: + enabled: true + port: {{ .Values.omadaNetwork.managerV2Port }} + nodePort: {{ .Values.omadaNetwork.managerV2Port }} + targetSelector: omada +{{- end -}} diff --git a/community/omada-controller/1.0.0/templates/common.yaml b/community/omada-controller/1.0.0/templates/common.yaml new file mode 100644 index 0000000000..bb0ceec93e --- /dev/null +++ b/community/omada-controller/1.0.0/templates/common.yaml @@ -0,0 +1,11 @@ +{{- include "ix.v1.common.loader.init" . -}} + +{{/* Merge the templates with Values */}} +{{- $_ := mustMergeOverwrite .Values (include "omada.workload" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "omada.service" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "omada.persistence" $ | fromYaml) -}} + +{{/* Create the configmap for portal manually*/}} +{{- include "omada.portal" $ -}} + +{{- include "ix.v1.common.loader.apply" . -}} diff --git a/community/omada-controller/item.yaml b/community/omada-controller/item.yaml new file mode 100644 index 0000000000..23c51c01e7 --- /dev/null +++ b/community/omada-controller/item.yaml @@ -0,0 +1,7 @@ +icon_url: https://static.tp-link.com/assets/images/icon/logo-white.svg +categories: + - network +screenshots: [] +tags: + - controller + - omada