diff --git a/charts/incubator/appsmith/Chart.yaml b/charts/incubator/appsmith/Chart.yaml new file mode 100644 index 00000000000..60b75b26fae --- /dev/null +++ b/charts/incubator/appsmith/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: "10.6.2" +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 9.2.8 +- condition: redis.enabled + name: redis + repository: https://charts.truecharts.org + version: 2.0.34 +description: Turn any datasource into an internal app in minutes. Appsmith lets you drag-and-drop UI components to build pages, connect to any API, database or GraphQL source and write logic with JavaScript objects. +home: https://github.com/truecharts/apps/tree/master/charts/stable/appsmith +icon: https://truecharts.org/_static/img/appicons/appsmith.png +keywords: +- appsmith +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: appsmith +sources: +- https://github.com/appsmithorg/appsmith +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - productivity + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/appsmith/questions.yaml b/charts/incubator/appsmith/questions.yaml new file mode 100644 index 00000000000..0511a302172 --- /dev/null +++ b/charts/incubator/appsmith/questions.yaml @@ -0,0 +1,376 @@ +# Include{groups} +portals: + open: + 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 +# Include{global} + - variable: controller + group: "Controller" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: + additional_attrs: true + type: dict + attrs: + - variable: APPSMITH_ADMIN_EMAILS + label: "APPSMITH_ADMIN_EMAILS" + description: "The environment variable APPSMITH_ADMIN_EMAILS can be set to a comma-separated list of email addresses, that will always be allowed to sign up" + schema: + type: string + default: "" + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10217 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 80 + - variable: supervisor + label: "Supervisor Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: supervisor + label: "Supervisor Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10218 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 9001 + + - 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 + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: appsmithstacks + label: "App Appsmith Stacks Storage" + description: "Stores the Application Appsmith Stacks." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + +# Include{security} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + additional_attrs: true + 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 +# Include{securityContextAdvanced} + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + additional_attrs: true + 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 +# Include{podSecurityContextAdvanced} + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/appsmith/templates/common.yaml b/charts/incubator/appsmith/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/appsmith/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/appsmith/values.yaml b/charts/incubator/appsmith/values.yaml new file mode 100644 index 00000000000..dd350d7a88c --- /dev/null +++ b/charts/incubator/appsmith/values.yaml @@ -0,0 +1,44 @@ +image: + repository: tccr.io/truecharts/appsmith + tag: v1.6.20@sha256:f6be934dce63031b7368554e914a6778f8cfde20e0d7963987f10cfc11405b7a + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + APPSMITH_ADMIN_EMAILS: "me@example.com,you@example.com" + +service: + main: + ports: + main: + port: 10217 + targetPort: 80 + supervisor: + enabled: true + ports: + supervisor: + enabled: true + port: 10218 + targetPort: 9001 + +persistence: + appsmithstacks: + enabled: true + mountPath: "/appsmith-stacks" + +envValueFrom: + APPSMITH_REDIS_URL: + secretKeyRef: + name: rediscreds + key: url + +redis: + enabled: true + existingSecret: "rediscreds" diff --git a/charts/incubator/cyberchef/Chart.yaml b/charts/incubator/cyberchef/Chart.yaml new file mode 100644 index 00000000000..84c30cc7533 --- /dev/null +++ b/charts/incubator/cyberchef/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: "10.6.2" +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 9.2.8 +description: CyberChef is a simple, intuitive web app for carrying out all manner of "cyber" operations within a web browser. +home: https://github.com/truecharts/apps/tree/master/charts/stable/cyberchef +icon: https://truecharts.org/_static/img/appicons/cyberchef.png +keywords: +- cyberchef +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: cyberchef +sources: +- https://hub.docker.com/r/mpepping/cyberchef +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - utilities + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/cyberchef/questions.yaml b/charts/incubator/cyberchef/questions.yaml new file mode 100644 index 00000000000..c4cc6e49bc5 --- /dev/null +++ b/charts/incubator/cyberchef/questions.yaml @@ -0,0 +1,255 @@ +# Include{groups} +portals: + open: + 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 +# Include{global} + - variable: controller + group: "Controller" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: "RollingUpdate" + 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} +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10219 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8000 + + - 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 + +# Include{serviceExpert} + +# Include{serviceList} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + +# Include{security} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + additional_attrs: true + 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 +# Include{securityContextAdvanced} + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + additional_attrs: true + 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 +# Include{podSecurityContextAdvanced} + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/cyberchef/templates/common.yaml b/charts/incubator/cyberchef/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/cyberchef/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/cyberchef/values.yaml b/charts/incubator/cyberchef/values.yaml new file mode 100644 index 00000000000..bce61081197 --- /dev/null +++ b/charts/incubator/cyberchef/values.yaml @@ -0,0 +1,19 @@ +image: + repository: tccr.io/truecharts/cyberchef + tag: v9.37.3@sha256:64d79f71a23ab9c32db29d9215507837ff0f68783f686f7c9a3733bcfab8a3d5 + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 10219 + targetPort: 8000 diff --git a/charts/incubator/drawio/Chart.yaml b/charts/incubator/drawio/Chart.yaml new file mode 100644 index 00000000000..755b3ce3d95 --- /dev/null +++ b/charts/incubator/drawio/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: "10.6.2" +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 9.2.8 +description: Drawio is free online diagram software. +home: https://github.com/truecharts/apps/tree/master/charts/stable/drawio +icon: https://truecharts.org/_static/img/appicons/drawio.png +keywords: +- drawio +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: drawio +sources: +- https://hub.docker.com/r/jgraph/drawio +- https://github.com/jgraph/drawio +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/drawio/questions.yaml b/charts/incubator/drawio/questions.yaml new file mode 100644 index 00000000000..85f151bff70 --- /dev/null +++ b/charts/incubator/drawio/questions.yaml @@ -0,0 +1,255 @@ +# Include{groups} +portals: + open: + 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 +# Include{global} + - variable: controller + group: "Controller" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: "RollingUpdate" + 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} +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10214 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + + - 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 + +# Include{serviceExpert} + +# Include{serviceList} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + +# Include{security} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + additional_attrs: true + 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 +# Include{securityContextAdvanced} + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + additional_attrs: true + 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 +# Include{podSecurityContextAdvanced} + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/drawio/templates/common.yaml b/charts/incubator/drawio/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/drawio/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/drawio/values.yaml b/charts/incubator/drawio/values.yaml new file mode 100644 index 00000000000..79ec59052c2 --- /dev/null +++ b/charts/incubator/drawio/values.yaml @@ -0,0 +1,19 @@ +image: + repository: jgraph/drawio + tag: 17.4.3@sha256:dc02d16aaf43739c17ca66e98855d58cfe9831cf7f401cb6804496261a79b9f0 + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 10214 + targetPort: 8080 diff --git a/charts/incubator/metube/Chart.yaml b/charts/incubator/metube/Chart.yaml new file mode 100644 index 00000000000..8676831eaa5 --- /dev/null +++ b/charts/incubator/metube/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: "10.6.2" +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 9.2.8 +description: Web GUI for youtube-dl (using the yt-dlp fork) with playlist support. Allows you to download videos from YouTube and dozens of other sites +home: https://github.com/truecharts/apps/tree/master/charts/stable/metube +icon: https://truecharts.org/_static/img/appicons/metube.png +keywords: +- metube +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: metube +sources: +- https://github.com/alexta69/metube +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/metube/questions.yaml b/charts/incubator/metube/questions.yaml new file mode 100644 index 00000000000..ceca89dd405 --- /dev/null +++ b/charts/incubator/metube/questions.yaml @@ -0,0 +1,326 @@ +# Include{groups} +portals: + open: + 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 +# Include{global} + - variable: controller + group: "Controller" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: + additional_attrs: true + type: dict + attrs: + - variable: OUTPUT_TEMPLATE + label: "OUTPUT_TEMPLATE" + description: "The template for the filenames of the downloaded videos" + schema: + type: string + default: "%(title)s.%(ext)s" + - variable: YTDL_OPTIONS + label: "YTDL_OPTIONS" + description: "Additional options to pass to youtube-dl, in JSON format" + schema: + type: string + default: "{}" +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10216 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8081 + + - 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 + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: downloads + label: "App Downloads Storage" + description: "Stores the Application Downloads." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + +# Include{security} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + additional_attrs: true + 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: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true +# Include{securityContextAdvanced} + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + additional_attrs: true + 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 +# Include{podSecurityContextAdvanced} + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/metube/templates/common.yaml b/charts/incubator/metube/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/metube/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/metube/values.yaml b/charts/incubator/metube/values.yaml new file mode 100644 index 00000000000..c2df84d55fd --- /dev/null +++ b/charts/incubator/metube/values.yaml @@ -0,0 +1,20 @@ +image: + repository: alexta69/metube + tag: 2022-04-09@sha256:95b950b8733707b8584c1faf9d15aea6696acfb87a35ed89f6ec1af9025a250a + pullPolicy: IfNotPresent + +env: + OUTPUT_TEMPLATE: "%(title)s.%(ext)s" + YTDL_OPTIONS: "{}" + +service: + main: + ports: + main: + port: 10216 + targetPort: 8081 + +persistence: + downloads: + enabled: true + mountPath: "/downloads" diff --git a/charts/incubator/pinry/Chart.yaml b/charts/incubator/pinry/Chart.yaml new file mode 100644 index 00000000000..bb89402e9fc --- /dev/null +++ b/charts/incubator/pinry/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: "10.6.2" +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 9.2.8 +description: The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim through format. +home: https://github.com/truecharts/apps/tree/master/charts/stable/pinry +icon: https://truecharts.org/_static/img/appicons/pinry.png +keywords: +- pinry +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: pinry +sources: +- https://github.com/pinry/pinry/ +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/pinry/questions.yaml b/charts/incubator/pinry/questions.yaml new file mode 100644 index 00000000000..69ce52a6b16 --- /dev/null +++ b/charts/incubator/pinry/questions.yaml @@ -0,0 +1,307 @@ +# Include{groups} +portals: + open: + 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 +# Include{global} + - variable: controller + group: "Controller" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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} +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10213 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 80 + + - 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 + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + +# Include{security} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + additional_attrs: true + 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 +# Include{securityContextAdvanced} + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + additional_attrs: true + 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 +# Include{podSecurityContextAdvanced} + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/pinry/templates/_secrets.tpl b/charts/incubator/pinry/templates/_secrets.tpl new file mode 100644 index 00000000000..c59ce828eac --- /dev/null +++ b/charts/incubator/pinry/templates/_secrets.tpl @@ -0,0 +1,20 @@ +{{/* Define the secrets */}} +{{- define "pinry.secrets" -}} +--- + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: pinry-secrets +{{- $pinryprevious := lookup "v1" "Secret" .Release.Namespace "pinry-secrets" }} +{{- $secret_key := "" }} +data: + {{- if $pinryprevious}} + SECRET_KEY: {{ index $pinryprevious.data "SECRET_KEY" }} + {{- else }} + {{- $secret_key := randAlphaNum 32 }} + SECRET_KEY: {{ $secret_key | b64enc }} + {{- end }} + +{{- end -}} diff --git a/charts/incubator/pinry/templates/common.yaml b/charts/incubator/pinry/templates/common.yaml new file mode 100644 index 00000000000..e3ebec1561a --- /dev/null +++ b/charts/incubator/pinry/templates/common.yaml @@ -0,0 +1,8 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.setup" . }} + +{{/* Render secrets for pinry */}} +{{- include "pinry.secrets" . }} + +{{/* Render the templates */}} +{{ include "common.postSetup" . }} diff --git a/charts/incubator/pinry/values.yaml b/charts/incubator/pinry/values.yaml new file mode 100644 index 00000000000..1dac91fece8 --- /dev/null +++ b/charts/incubator/pinry/values.yaml @@ -0,0 +1,61 @@ +image: + repository: getpinry/pinry + tag: 2.1.7@sha256:1383191cd7e3466db5896246095c58aaff4dc3a316e239704ea5e2a2a88c551e + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +envValueFrom: + SECRET_KEY: + secretKeyRef: + name: pinry-secrets + key: SECRET_KEY + +service: + main: + ports: + main: + port: 10213 + targetPort: 80 + +persistence: + data: + enabled: true + mountPath: "/data" + +installContainers: + 1-create-key-file: + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + volumeMounts: + - name: data + mountPath: "/data" + env: + - name: SECRET_KEY + valueFrom: + secretKeyRef: + name: pinry-secrets + key: SECRET_KEY + command: ["sh", "-c"] + args: + - > + keyfile="/data/production_secret_key.txt"; + if [ ! -f ${keyfile} ]; + then + echo "No ${keyfile} File..."; + echo "Creating ${keyfile} file..."; + echo "${SECRET_KEY}" > ${keyfile}; + if [ -f ${keyfile} ]; + then + echo "Success!"; + else + echo "Failed."; + fi; + else + echo "${keyfile} File exists. Skipping..."; + fi; diff --git a/charts/incubator/snapdrop/Chart.yaml b/charts/incubator/snapdrop/Chart.yaml new file mode 100644 index 00000000000..437a4d57175 --- /dev/null +++ b/charts/incubator/snapdrop/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: "10.6.2" +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 9.2.8 +description: Snapdrop A local file sharing in your browser. Inspired by Apple's Airdrop. +home: https://github.com/truecharts/apps/tree/master/charts/stable/snapdrop +icon: https://truecharts.org/_static/img/appicons/snapdrop.png +keywords: +- snapdrop +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: snapdrop +sources: +- https://github.com/linuxserver/docker-snapdrop +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/snapdrop/questions.yaml b/charts/incubator/snapdrop/questions.yaml new file mode 100644 index 00000000000..86b2167d099 --- /dev/null +++ b/charts/incubator/snapdrop/questions.yaml @@ -0,0 +1,308 @@ +# Include{groups} +portals: + open: + 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 +# Include{global} + - variable: controller + group: "Controller" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10215 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 80 + + - 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 + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + +# Include{security} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + additional_attrs: true + 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 +# Include{securityContextAdvanced} + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + additional_attrs: true + 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 +# Include{podSecurityContextAdvanced} + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/snapdrop/templates/common.yaml b/charts/incubator/snapdrop/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/snapdrop/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/snapdrop/values.yaml b/charts/incubator/snapdrop/values.yaml new file mode 100644 index 00000000000..777320f30a8 --- /dev/null +++ b/charts/incubator/snapdrop/values.yaml @@ -0,0 +1,24 @@ +image: + repository: linuxserver/snapdrop + tag: latest@sha256:20104fd4e103b9c070ca668253f16d73142669240c49e05d9c98a43c623e42b8 + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + port: 10215 + targetPort: 80 + +persistence: + config: + enabled: true + mountPath: "/config" diff --git a/charts/incubator/vikunja/Chart.yaml b/charts/incubator/vikunja/Chart.yaml new file mode 100644 index 00000000000..5c773487c8d --- /dev/null +++ b/charts/incubator/vikunja/Chart.yaml @@ -0,0 +1,33 @@ +apiVersion: v2 +appVersion: "10.6.2" +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 9.2.9 +- condition: postgresql.enabled + name: postgresql + repository: https://charts.truecharts.org/ + version: 7.0.42 +- condition: redis.enabled + name: redis + repository: https://charts.truecharts.org + version: 2.0.34 +description: The to-do app to organize your life. +home: https://github.com/truecharts/apps/tree/master/charts/stable/vikunja +icon: https://truecharts.org/_static/img/appicons/vikunja.png +keywords: +- vikunja +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: vikunja +sources: +- https://vikunja.io/docs +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - productivity + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/vikunja/questions.yaml b/charts/incubator/vikunja/questions.yaml new file mode 100644 index 00000000000..31bcac13c3f --- /dev/null +++ b/charts/incubator/vikunja/questions.yaml @@ -0,0 +1,511 @@ +# Include{groups} +portals: + open: + 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 +# Include{global} + - variable: controller + group: "Controller" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: + additional_attrs: true + type: dict + attrs: + - variable: VIKUNJA_SERVICE_FRONTENDURL + label: "VIKUNJA_SERVICE_FRONTENDURL" + description: "The URL of the frontend, used to send password reset emails. eg. https://vikunjka.example.com" + schema: + type: string + required: true + default: "" + - variable: VIKUNJA_SERVICE_MOTD + label: "VIKUNJA_SERVICE_MOTD" + description: "Set the motd message, available from the /info endpoint" + schema: + type: string + default: "" + - variable: VIKUNJA_SERVICE_JWTTTL + label: "VIKUNJA_SERVICE_JWTTTL" + description: "The duration of the issed JWT tokens in seconds. The default is 259200 seconds (3 Days)." + schema: + type: int + required: true + default: 259200 + - variable: VIKUNJA_SERVICE_JWTTTLLONG + label: "VIKUNJA_SERVICE_JWTTTLLONG" + description: "The duration of the “remember me” time in seconds. When the login request is made with the long param set, the token returned will be valid for this period. The default is 2592000 seconds (30 Days)." + schema: + type: int + required: true + default: 2592000 + - variable: VIKUNJA_SERVICE_MAXITEMSPERPAGE + label: "VIKUNJA_SERVICE_MAXITEMSPERPAGE" + description: "The max number of items which can be returned per page." + schema: + type: int + required: true + default: 50 + - variable: VIKUNJA_FILES_MAXSIZE + label: "VIKUNJA_FILES_MAXSIZE" + description: "The maximum size of a file, as a human-readable string. Warning: The max size is limited 2^64-1 bytes due to the underlying datatype" + schema: + type: string + required: true + default: "20MB" + - variable: VIKUNJA_SERVICE_ENABLECALDAV + label: "VIKUNJA_SERVICE_ENABLECALDAV" + description: "Enable the caldav endpoint, see the docs for more details" + schema: + type: boolean + default: true + - variable: VIKUNJA_SERVICE_ENABLELINKSHARING + label: "VIKUNJA_SERVICE_ENABLELINKSHARING" + description: "Enable sharing of lists via a link" + schema: + type: boolean + default: true + - variable: VIKUNJA_SERVICE_ENABLEREGISTRATION + label: "VIKUNJA_SERVICE_ENABLEREGISTRATION" + description: "Whether to let new users registering themselves or not" + schema: + type: boolean + default: true + - variable: VIKUNJA_SERVICE_ENABLETASKATTACHMENTS + label: "VIKUNJA_SERVICE_ENABLETASKATTACHMENTS" + description: "Whether to enable task attachments or not" + schema: + type: boolean + default: true + - variable: VIKUNJA_SERVICE_ENABLETASKCOMMENTS + label: "VIKUNJA_SERVICE_ENABLETASKCOMMENTS" + description: "Whether task comments should be enabled or not" + schema: + type: boolean + default: true + - variable: VIKUNJA_SERVICE_ENABLETOTP + label: "VIKUNJA_SERVICE_ENABLETOTP" + description: "Whether totp is enabled. In most cases you want to leave that enabled." + schema: + type: boolean + default: true + - variable: VIKUNJA_SERVICE_ENABLEEMAILREMINDERS + label: "VIKUNJA_SERVICE_ENABLEEMAILREMINDERS" + description: "If enabled, vikunja will send an email to everyone who is either assigned to a task or created it when a task reminder is due." + schema: + type: boolean + default: true + - variable: VIKUNJA_SERVICE_ENABLEUSERDELETION + label: "VIKUNJA_SERVICE_ENABLEUSERDELETION" + description: "If true, will allow users to request the complete deletion of their account. When using external authentication methods it may be required to coordinate with them in order to delete the account. This setting will not affect the cli commands for user deletion." + schema: + type: boolean + default: true + - variable: VIKUNJA_BACKGROUNDS_ENABLED + label: "VIKUNJA_BACKGROUNDS_ENABLED" + description: "Whether to enable backgrounds for lists at all." + schema: + type: boolean + default: true + - variable: VIKUNJA_RATELIMIT_ENABLED + label: "VIKUNJA_RATELIMIT_ENABLED" + description: "Whether or not to enable the rate limit" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: VIKUNJA_RATELIMIT_KIND + label: "VIKUNJA_RATELIMIT_KIND" + description: "The kind on which rates are based. Can be either “user” for a rate limit per user or “ip” for an ip-based rate limit." + schema: + type: string + required: true + default: "user" + enum: + - value: user + description: "user" + - value: ip + description: "ip" + - variable: VIKUNJA_RATELIMIT_PERIOD + label: "VIKUNJA_RATELIMIT_PERIOD" + description: "The time period in seconds for the limit" + schema: + type: int + required: true + default: 60 + - variable: VIKUNJA_RATELIMIT_LIMIT + label: "VIKUNJA_RATELIMIT_LIMIT" + description: "The max number of requests a user is allowed to do in the configured time period" + schema: + type: int + required: true + default: 100 + - variable: VIKUNJA_MAILER_ENABLED + label: "VIKUNJA_MAILER_ENABLED" + description: "Whether to enable the mailer or not. If it is disabled, all users are enabled right away and password reset is not possible." + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: VIKUNJA_MAILER_HOST + label: "VIKUNJA_MAILER_HOST" + description: "SMTP Host" + schema: + type: string + required: true + default: "" + - variable: VIKUNJA_MAILER_PORT + label: "VIKUNJA_MAILER_PORT" + description: "SMTP Host Port" + schema: + type: int + required: true + default: 587 + - variable: VIKUNJA_MAILER_USERNAME + label: "VIKUNJA_MAILER_USERNAME" + description: "SMTP username" + schema: + type: string + default: "" + - variable: VIKUNJA_MAILER_PASSWORD + label: "VIKUNJA_MAILER_PASSWORD" + description: "SMTP password" + schema: + type: string + private: true + default: "" + - variable: VIKUNJA_MAILER_FROMEMAIL + label: "VIKUNJA_MAILER_FROMEMAIL" + description: "The default from address when sending emails" + schema: + type: string + required: true + default: "" + - variable: VIKUNJA_MAILER_SKIPTLSVERIFY + label: "VIKUNJA_MAILER_SKIPTLSVERIFY" + description: "Wether to skip verification of the tls certificate on the server" + schema: + type: boolean + default: false + - variable: VIKUNJA_MAILER_FORCESSL + label: "VIKUNJA_MAILER_FORCESSL" + description: "By default, vikunja will try to connect with starttls, use this option to force it to use ssl." + schema: + type: boolean + default: false + - variable: VIKUNJA_MAILER_QUEUELENGTH + label: "VIKUNJA_MAILER_QUEUELENGTH" + description: "The length of the mail queue." + schema: + type: int + required: true + default: 100 + - variable: VIKUNJA_MAILER_QUEUETIMEOUT + label: "VIKUNJA_MAILER_QUEUETIMEOUT" + description: "The timeout in seconds after which the current open connection to the mailserver will be closed." + schema: + type: int + required: true + default: 30 +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10220 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 80 + + - 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 + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: files + label: "App Files Storage" + description: "Stores the Application Files." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + +# Include{security} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + additional_attrs: true + 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 +# Include{securityContextAdvanced} + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + additional_attrs: true + 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 +# Include{podSecurityContextAdvanced} + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/vikunja/templates/_secrets.tpl b/charts/incubator/vikunja/templates/_secrets.tpl new file mode 100644 index 00000000000..d3f96474240 --- /dev/null +++ b/charts/incubator/vikunja/templates/_secrets.tpl @@ -0,0 +1,20 @@ +{{/* Define the secrets */}} +{{- define "vikunja.secrets" -}} +--- + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: vikunja-secrets +{{- $vikunjaprevious := lookup "v1" "Secret" .Release.Namespace "vikunja-secrets" }} +{{- $jwt_secret := "" }} +data: + {{- if $vikunjaprevious}} + VIKUNJA_SERVICE_JWT_SECRET: {{ index $vikunjaprevious.data "VIKUNJA_SERVICE_JWT_SECRET" }} + {{- else }} + {{- $jwt_secret := randAlphaNum 32 }} + VIKUNJA_SERVICE_JWT_SECRET: {{ $jwt_secret | b64enc }} + {{- end }} + +{{- end -}} diff --git a/charts/incubator/vikunja/templates/common.yaml b/charts/incubator/vikunja/templates/common.yaml new file mode 100644 index 00000000000..b8b2ef30058 --- /dev/null +++ b/charts/incubator/vikunja/templates/common.yaml @@ -0,0 +1,8 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.setup" . }} + +{{/* Render secrets for vikunja */}} +{{- include "vikunja.secrets" . }} + +{{/* Render the templates */}} +{{ include "common.postSetup" . }} diff --git a/charts/incubator/vikunja/values.yaml b/charts/incubator/vikunja/values.yaml new file mode 100644 index 00000000000..82788a080bd --- /dev/null +++ b/charts/incubator/vikunja/values.yaml @@ -0,0 +1,102 @@ +image: + repository: vikunja/api + tag: 0.18.1@sha256:8ea38476894b1bed7f412e9a1280cc3271ec4f0d80decc2fc93caea13c0183cf + pullPolicy: IfNotPresent + +frontendImage: + repository: vikunja/frontend + tag: 0.18.2@sha256:26ccd3b4d7c43c1e99d00924d2a76a630e03de690771aa48fb111875cec29f60 + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + VIKUNJA_REDIS_ENABLED: 1 + VIKUNJA_CACHE_ENABLED: 1 + VIKUNJA_CACHE_TYPE: "redis" + VIKUNJA_DATABASE_TYPE: "postgres" + VIKUNJA_DATABASE_USER: "{{ .Values.postgresql.postgresqlUsername }}" + VIKUNJA_DATABASE_DATABASE: "{{ .Values.postgresql.postgresDatabase }}" + VIKUNJA_SERVICE_TIMEZONE: "{{ .Values.TZ }}" + # User Defined + VIKUNJA_SERVICE_FRONTENDURL: "http://localhost:80" + VIKUNJA_SERVICE_JWTTTL: 259200 + VIKUNJA_SERVICE_JWTTTLLONG: 2592000 + VIKUNJA_SERVICE_MAXITEMSPERPAGE: 50 + VIKUNJA_FILES_MAXSIZE: "20MB" + VIKUNJA_SERVICE_ENABLECALDAV: true + VIKUNJA_SERVICE_ENABLELINKSHARING: true + VIKUNJA_SERVICE_ENABLEREGISTRATION: true + VIKUNJA_SERVICE_ENABLETASKATTACHMENTS: true + VIKUNJA_SERVICE_ENABLETASKCOMMENTS: true + VIKUNJA_SERVICE_ENABLETOTP: true + VIKUNJA_SERVICE_ENABLEEMAILREMINDERS: true + VIKUNJA_SERVICE_ENABLEUSERDELETION: true + VIKUNJA_BACKGROUNDS_ENABLED: true + VIKUNJA_RATELIMIT_ENABLED: false + VIKUNJA_RATELIMIT_PERIOD: 60 + VIKUNJA_RATELIMIT_LIMIT: 100 + +frontendConfig: + VIKUNJA_API_URL: "http://localhost:3456/api/v1" + +envValueFrom: + VIKUNJA_DATABASE_HOST: + secretKeyRef: + name: dbcreds + key: plainhost + VIKUNJA_DATABASE_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + VIKUNJA_REDIS_HOST: + secretKeyRef: + name: rediscreds + key: plainporthost + VIKUNJA_REDIS_PASSWORD: + secretKeyRef: + name: rediscreds + key: redis-password + VIKUNJA_SERVICE_JWT_SECRET: + secretKeyRef: + name: vikunja-secrets + key: VIKUNJA_SERVICE_JWT_SECRET + +service: + main: + ports: + main: + port: 10220 + targetPort: 80 + +additionalContainers: + frontend: + name: frontend + image: "{{ .Values.frontendImage.repository }}:{{ .Values.frontendImage.tag }}" + env: + - name: VIKUNJA_API_URL + value: "{{ .Values.frontendConfig.VIKUNJA_API_URL }}" + ports: + - containerPort: 80 + name: main + +persistence: + files: + enabled: true + mountPath: "/app/vikunja/files" + +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: vikunja + postgresqlDatabase: vikunja + +redis: + enabled: true + existingSecret: "rediscreds" diff --git a/charts/stable/duckdns/values.yaml b/charts/stable/duckdns/values.yaml index 00d81b2508a..fd56491c502 100644 --- a/charts/stable/duckdns/values.yaml +++ b/charts/stable/duckdns/values.yaml @@ -1,7 +1,7 @@ image: repository: tccr.io/truecharts/duckdns pullPolicy: IfNotPresent - tag: v2021.11.17 + tag: latest@sha256:47b68c92fce1ca2c64da1a18e5fe5871a84a1375c7a17d4e79cbf6530eb14d5f securityContext: runAsNonRoot: false