diff --git a/charts/incubator/dashy/.helmignore b/charts/incubator/dashy/.helmignore new file mode 100644 index 00000000000..77ca5567b26 --- /dev/null +++ b/charts/incubator/dashy/.helmignore @@ -0,0 +1,30 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl +# docs folder +/docs +# icon +icon.png diff --git a/charts/incubator/dashy/Chart.yaml b/charts/incubator/dashy/Chart.yaml new file mode 100644 index 00000000000..1aca98f3d9b --- /dev/null +++ b/charts/incubator/dashy/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: "10.6.2" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.5.10 +description: Dashy helps you organize your self-hosted services by making them accessible from a single place +home: https://truecharts.org/docs/charts/stable/airsonic +icon: https://truecharts.org/img/hotlink-ok/chart-icons/airsonic.png +keywords: + - dashboard +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: dashy +sources: + - https://github.com/airsonic/airsonic + - https://hub.docker.com/r/lissy93/dashy +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - dashboard + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/dashy/README.md b/charts/incubator/dashy/README.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/charts/incubator/dashy/ci/direct-values.yaml b/charts/incubator/dashy/ci/direct-values.yaml new file mode 100644 index 00000000000..23168e54370 --- /dev/null +++ b/charts/incubator/dashy/ci/direct-values.yaml @@ -0,0 +1,3 @@ +dashyConfig: + pageInfo: + title: Home Lab diff --git a/charts/incubator/dashy/ci/standalone-values.yaml b/charts/incubator/dashy/ci/standalone-values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/charts/incubator/dashy/icon.png b/charts/incubator/dashy/icon.png new file mode 100644 index 00000000000..78fabd25723 Binary files /dev/null and b/charts/incubator/dashy/icon.png differ diff --git a/charts/incubator/dashy/questions.yaml b/charts/incubator/dashy/questions.yaml new file mode 100644 index 00000000000..a4937dde37c --- /dev/null +++ b/charts/incubator/dashy/questions.yaml @@ -0,0 +1,146 @@ +# Include{groups} +portals: + open: +# Include{portalLink} +questions: +# Include{global} +# Include{controller} +# Include{controllerDeployment} +# Include{replicas} +# Include{replica1} +# Include{strategy} +# Include{recreate} +# Include{controllerExpert} +# Include{controllerExpertExtraArgs} + - variable: dashy + group: Container Configuration + label: Dashy Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Config File Mount + description: Mounts a config file from the given host path + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: configFileHostPath + label: Config File Host Path + description: Absolute host path of the config file + schema: + type: string + default: "" + - variable: configFileHostReadOnly + label: Config File Read Only + description: Mount config file as read Only + schema: + type: boolean + default: true +# Include{containerConfig} +# Include{serviceRoot} + - 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{serviceSelectorLoadBalancer} +# Include{serviceSelectorExtras} + - 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: 10310 + required: true +# Include{advancedPortHTTP} + - variable: targetPort + label: Target Port + description: The internal(!) port on the container the Application runs on + schema: + type: int + default: 80 +# Include{serviceExpertRoot} + default: false +# Include{serviceExpert} +# Include{serviceList} +# Include{persistenceRoot} + - variable: icons + label: App Icons Storage + description: Stores the Application Icons. + schema: + additional_attrs: true + type: dict + attrs: +# Include{persistenceBasic} +# Include{persistenceAdvanced} +# Include{persistenceList} +# Include{ingressRoot} + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} +# Include{ingressTLS} +# Include{ingressTraefik} +# Include{ingressExpert} +# Include{ingressList} +# Include{security} +# Include{securityContextAdvancedRoot} + - 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} +# Include{podSecurityContextRoot} + - 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} +# Include{documentation} diff --git a/charts/incubator/dashy/templates/_configmap.tpl b/charts/incubator/dashy/templates/_configmap.tpl new file mode 100644 index 00000000000..e7ec4446865 --- /dev/null +++ b/charts/incubator/dashy/templates/_configmap.tpl @@ -0,0 +1,16 @@ +{{/* Define the secrets */}} +{{- define "dashy.config" -}} +{{- $configName := printf "%s-dashy-config" (include "tc.common.names.fullname" .) }} + +--- + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $configName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +data: + conf.yml: | +{{- .Values.dashyConfig | toYaml | nindent 4 }} +{{- end -}} diff --git a/charts/incubator/dashy/templates/common.yaml b/charts/incubator/dashy/templates/common.yaml new file mode 100644 index 00000000000..d68783ef277 --- /dev/null +++ b/charts/incubator/dashy/templates/common.yaml @@ -0,0 +1,35 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.common.loader.init" . }} + +{{- define "dashy.configvolume" -}} +enabled: true +mountPath: /app/public +type: custom +readOnly: true +volumeSpec: + configMap: + name: {{ include "tc.common.names.fullname" . }}-dashy-config + items: + - key: conf.yml + path: conf.yml +{{- end -}} + +{{- define "dashy.confighostpath" -}} +enabled: true +type: hostPath +readOnly: {{ .Values.dashy.configFileHostReadOnly }} +hostPathType: File +hostPath: {{ .Values.dashy.configFileHostPath }} +mountPath: /app/public/conf.yml +{{- end -}} + +{{- if .Values.dashyConfig -}} +{{/* Render config for dashy */}} +{{- include "dashy.config" . -}} +{{- $_ := set .Values.persistence "dashy-config" (include "dashy.configvolume" . | fromYaml) -}} +{{- else if .Values.dashy.enabled -}} +{{- $_ := set .Values.persistence "dashy-config" (include "dashy.confighostpath" . | fromYaml) -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.common.loader.apply" . }} diff --git a/charts/incubator/dashy/values.yaml b/charts/incubator/dashy/values.yaml new file mode 100644 index 00000000000..002594bdae4 --- /dev/null +++ b/charts/incubator/dashy/values.yaml @@ -0,0 +1,69 @@ +image: + repository: tccr.io/truecharts/dashy + tag: 2.1.1@sha256:af98a41b869093127d81421fb6fc2ba46ea1a230be6c3b04819e5ba1377be32b + pullPolicy: IfNotPresent + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +dashy: + # Enable config file mount from host path + enabled: false + configFileHostPath: "" + configFileHostReadOnly: true + +# Leave empty if you plan to use config file from host path +dashyConfig: + {} + # pageInfo: + # title: Home Lab + +env: + NODE_ENV: production + +probes: + liveness: + enabled: true + custom: true + spec: + exec: + command: + - node + - /app/services/healthcheck + readiness: + enabled: true + custom: true + spec: + exec: + command: + - node + - /app/services/healthcheck + startup: + enabled: true + custom: true + spec: + exec: + command: + - node + - /app/services/healthcheck + +service: + main: + ports: + main: + port: 10310 + protocol: HTTP + targetPort: 80 + +persistence: + icons: + enabled: true + mountPath: /app/public/item-icons + +portal: + enabled: true