From 890b7c005fc684ac5366c2e5bb7b64d95e265d42 Mon Sep 17 00:00:00 2001 From: kjeld Schouten-Lebbing Date: Fri, 11 Jun 2021 01:37:05 +0200 Subject: [PATCH] Add deviceList persistence-list for device-mounting purposes to common-chart --- charts/library/common/Chart.yaml | 2 +- charts/library/common/templates/_pvc.tpl | 7 + charts/library/common/values.yaml | 264 +---------------------- 3 files changed, 14 insertions(+), 259 deletions(-) diff --git a/charts/library/common/Chart.yaml b/charts/library/common/Chart.yaml index 01bc4a974d7..94196cba181 100644 --- a/charts/library/common/Chart.yaml +++ b/charts/library/common/Chart.yaml @@ -18,4 +18,4 @@ maintainers: name: common sources: type: library -version: 6.0.0 +version: 6.1.0 diff --git a/charts/library/common/templates/_pvc.tpl b/charts/library/common/templates/_pvc.tpl index e5276dd0a69..76b0f0b56f7 100644 --- a/charts/library/common/templates/_pvc.tpl +++ b/charts/library/common/templates/_pvc.tpl @@ -10,6 +10,13 @@ Renders the Persistent Volume Claim objects required by the chart. {{- end }} {{- $_ := set $perDict $name $item }} {{- end }} + {{- range $index, $item := .Values.deviceList -}} + {{- $name := ( printf "device-%s" ( $index | toString ) ) }} + {{- if $item.name }} + {{- $name = $item.name }} + {{- end }} + {{- $_ := set $perDict $name $item }} + {{- end }} {{- $per := merge .Values.persistence $perDict }} {{- $_ := set .Values "persistence" (deepCopy $per) -}} diff --git a/charts/library/common/values.yaml b/charts/library/common/values.yaml index 3cdd9a67d3f..76c1c3f01d3 100644 --- a/charts/library/common/values.yaml +++ b/charts/library/common/values.yaml @@ -297,6 +297,12 @@ ingress: # hosts: # - chart-example.local +# -- Configure persistenceList for the chart here. +# Used to create an additional GUI element in SCALE for mounting USB devices +# Additional items can be added by adding a items similar to persistence +# @default -- [] +deviceList: [] + # -- Configure persistenceList for the chart here. # Additional items can be added by adding a items similar to persistence # @default -- [] @@ -445,261 +451,3 @@ resources: {} # requests: # cpu: 100m # memory: 128Mi - -# -- The common chart supports several add-ons. These can be configured under this key. -# @default -- See below -addons: - - # -- The common chart supports adding a VPN add-on. It can be configured under this key. - # For more info, check out [our docs](http://docs.k8s-at-home.com/our-helm-charts/common-library-add-ons/#wireguard-vpn) - # @default -- See values.yaml - vpn: - # -- Enable running a VPN in the pod to route traffic through a VPN - enabled: false - - # -- Specify the VPN type. Valid options are openvpn or wireguard - type: openvpn - - # -- OpenVPN specific configuration - # @default -- See below - openvpn: - image: - # -- Specify the openvpn client image - repository: dperson/openvpn-client - # -- Specify the openvpn client image tag - tag: latest - # -- Specify the openvpn client image pull policy - pullPolicy: IfNotPresent - - # -- Credentials to connect to the VPN Service (used with -a) - auth: # "user;password" - # -- Optionally specify an existing secret that contains the credentials. - # Credentials should be stored under the `VPN_AUTH` key - authSecret: # my-vpn-secret - - # -- WireGuard specific configuration - # @default -- See below - wireguard: - image: - # -- Specify the WireGuard image - repository: docker pull ghcr.io/k8s-at-home/wireguard - # -- Specify the WireGuard image tag - tag: v1.0.20210424 - # -- Specify the WireGuard image pull policy - pullPolicy: IfNotPresent - - # -- Set the VPN container securityContext - # @default -- See values.yaml - securityContext: - capabilities: - add: - - NET_ADMIN - - SYS_MODULE - - # -- All variables specified here will be added to the vpn sidecar container - # See the documentation of the VPN image for all config values - env: {} - # TZ: UTC - - # -- Provide a customized vpn configuration file to be used by the VPN. - configFile: # |- - # Some Example Config - # remote greatvpnhost.com 8888 - # auth-user-pass - # Cipher AES - - # -- Reference an existing secret that contains the VPN configuration file - # The chart expects it to be present under the `vpnConfigfile` key. - configFileSecret: - - # -- Provide custom up/down scripts that can be used by the vpn configuration. - # @default -- See values.yaml - scripts: - up: # |- - # #!/bin/bash - # echo "connected" > /shared/vpnstatus - down: # |- - # #!/bin/bash - # echo "disconnected" > /shared/vpnstatus - - additionalVolumeMounts: [] - - # -- Optionally specify a livenessProbe, e.g. to check if the connection is still - # being protected by the VPN - livenessProbe: {} - # exec: - # command: - # - sh - # - -c - # - if [ $(curl -s https://ipinfo.io/country) == 'US' ]; then exit 0; else exit $?; fi - # initialDelaySeconds: 30 - # periodSeconds: 60 - # failureThreshold: 1 - - # If set to true, will deploy a network policy that blocks all outbound - # traffic except traffic specified as allowed - networkPolicy: - enabled: false - - # The egress configuration for your network policy, All outbound traffic - # From the pod will be blocked unless specified here. Your cluster must - # have a CNI that supports network policies (Canal, Calico, etc...) - # https://kubernetes.io/docs/concepts/services-networking/network-policies/ - # https://github.com/ahmetb/kubernetes-network-policy-recipes - egress: - # - to: - # - ipBlock: - # cidr: 0.0.0.0/0 - # ports: - # - port: 53 - # protocol: UDP - # - port: 53 - # protocol: TCP - - # -- The common library supports adding a code-server add-on to access files. It can be configured under this key. - # For more info, check out [our docs](http://docs.k8s-at-home.com/our-helm-charts/common-library-add-ons/#code-server) - # @default -- See values.yaml - codeserver: - # -- Enable running a code-server container in the pod - enabled: false - - image: - # -- Specify the code-server image - repository: codercom/code-server - # -- Specify the code-server image tag - tag: 3.9.2 - # -- Specify the code-server image pull policy - pullPolicy: IfNotPresent - - # -- Set any environment variables for code-server here - env: {} - # TZ: UTC - - # -- Set codeserver command line arguments. - # Consider setting --user-data-dir to a persistent location to preserve code-server setting changes - args: - - --auth - - none - # - --user-data-dir - # - "/config/.vscode" - - # -- Specify a list of volumes that get mounted in the code-server container. - # At least 1 volumeMount is required! - volumeMounts: [] - # - name: config - # mountPath: /data/config - - # -- Specify the working dir that will be opened when code-server starts - # If not given, the app will default to the mountpah of the first specified volumeMount - workingDir: "" - - # -- Optionally allow access a Git repository by passing in a private SSH key - # @default -- See below - git: - # -- Raw SSH private key - deployKey: "" - # -- Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence. - deployKeyBase64: "" - # -- Existing secret containing SSH private key - # The chart expects it to be present under the `id_rsa` key. - deployKeySecret: "" - - service: - # -- Enable a service for the code-server add-on. - enabled: true - type: ClusterIP - # Specify the default port information - ports: - codeserver: - port: 12321 - enabled: true - protocol: TCP - targetPort: codeserver - ## Specify the nodePort value for the LoadBalancer and NodePort service types. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport - ## - # nodePort: - annotations: {} - labels: {} - - ingress: - # -- Enable an ingress for the code-server add-on. - enabled: false - nameOverride: codeserver - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - hosts: - - host: code.chart-example.local - paths: - - path: / - # Ignored if not kubeVersion >= 1.14-0 - pathType: Prefix - tls: [] - # - secretName: chart-example-tls - # hosts: - # - code.chart-example.local - - securityContext: - runAsUser: 0 - - # -- The common library supports adding a promtail add-on to to access logs and ship them to loki. It can be configured under this key. - # @default -- See values.yaml - promtail: - # -- Enable running a promtail container in the pod - enabled: false - - image: - # -- Specify the promtail image - repository: grafana/promtail - # -- Specify the promtail image tag - tag: 2.2.0 - # -- Specify the promtail image pull policy - pullPolicy: IfNotPresent - - # -- Set any environment variables for promtail here - env: {} - - # -- Set promtail command line arguments - args: [] - - # -- The URL to Loki - loki: "" - - # -- The paths to logs on the volume - logs: [] - # - name: log - # path: /config/logs/*.log - - # -- Specify a list of volumes that get mounted in the promtail container. - # At least 1 volumeMount is required! - volumeMounts: [] - # - name: config - # mountPath: /config - # readOnly: true - - securityContext: - runAsUser: 0 - - # -- The common library supports adding a netshoot add-on to troubleshoot network issues within a Pod. It can be configured under this key. - # @default -- See values.yaml - netshoot: - # -- Enable running a netshoot container in the pod - enabled: false - - image: - # -- Specify the netshoot image - repository: nicolaka/netshoot - # -- Specify the netshoot image tag - tag: latest - # -- Specify the netshoot image pull policy - pullPolicy: Always - - # -- Set any environment variables for netshoot here - env: {} - - securityContext: - capabilities: - add: - - NET_ADMIN