diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e4202d89807..b43959b3477 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -19,7 +19,7 @@ zwavejs2mqtt/ @tprelog home-assistant/ @tprelog # Apps maintained by stavros-k -handbrake/* @stavros-k +handbrake/ @stavros-k collabora-online/ @stavros-k deepstack-cpu/ @stavros-k diff --git a/.github/workflows/apps.yaml b/.github/workflows/apps.yaml index 0d160a3ced5..78300e5fbaa 100644 --- a/.github/workflows/apps.yaml +++ b/.github/workflows/apps.yaml @@ -59,15 +59,18 @@ jobs: echo "::set-output name=empty_matrix::false" fi - app-unit-tests: + app-tests: needs: [changes] if: ${{ needs.changes.outputs.empty_matrix == 'false' }} - name: App Unit Tests + name: App Tests runs-on: ubuntu-latest strategy: matrix: ${{ fromJson(needs.changes.outputs.matrix) }} fail-fast: false steps: + ## + # GENERAL SECTION + ## - name: Checkout if: ${{ matrix.app != '.gitkee' }} uses: actions/checkout@v2 @@ -93,80 +96,13 @@ jobs: fi echo ::set-output name=train::${train} if test -d "./charts/${train}/${{ matrix.app }}/tests/"; then - unittests='true' + unittests='true' echo "::set-output name=unittests::true" else unittests="false" echo "::set-output name=unittests::false" fi - - uses: actions/setup-go@v2 - if: ${{ steps.prep-lint.outputs.unittests == 'true' }} - with: - go-version: '^1.16' - - # Get values for cache paths to be used in later steps - - id: go-cache-paths - if: ${{ steps.prep-lint.outputs.unittests == 'true' }} - run: | - echo "::set-output name=go-build::$(go env GOCACHE)" - echo "::set-output name=go-mod::$(go env GOMODCACHE)" - # Cache go build cache, used to speedup go test - - name: Go Build Cache - if: ${{ steps.prep-lint.outputs.unittests == 'true' }} - uses: actions/cache@v2 - with: - path: ${{ steps.go-cache-paths.outputs.go-build }} - key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }} - - - name: Download modules - if: ${{ steps.prep-lint.outputs.unittests == 'true' }} - run: | - go mod download - - name: Run tests - if: ${{ steps.prep-lint.outputs.unittests == 'true' }} - run: | - go test ./charts/.../tests -json | tee test.json - - name: Annotate tests - if: ${{ steps.prep-lint.outputs.unittests == 'true' }} - uses: guyarb/golang-test-annotations@v0.3.0 - with: - test-results: test.json - - app-tests: - needs: [changes] - if: ${{ needs.changes.outputs.empty_matrix == 'false' }} - name: App Tests - runs-on: ubuntu-latest - strategy: - matrix: ${{ fromJson(needs.changes.outputs.matrix) }} - fail-fast: false - steps: - - name: Checkout - if: ${{ matrix.app != '.gitkee' }} - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Prepare-Lint - if: ${{ matrix.app != '.gitkee' }} - id: prep-lint - run: | - if test -f "./charts/stable/${{ matrix.app }}/Chart.yaml"; then - train="stable" - elif test -f "./charts/incubator/${{ matrix.app }}/Chart.yaml"; then - train="incubator" - elif test -f "./charts/deprecated/${{ matrix.app }}/Chart.yaml"; then - train="deprecated" - elif test -f "./charts/non-free/${{ matrix.app }}/Chart.yaml"; then - train="non-free" - elif test -f "./charts/library/${{ matrix.app }}/Chart.yaml"; then - train="library" - else - train="develop" - fi - echo ::set-output name=train::${train} - - name: Install Helm if: ${{ matrix.app != '.gitkee' }} uses: azure/setup-helm@v1 @@ -182,6 +118,61 @@ jobs: if: ${{ matrix.app != '.gitkee' }} uses: helm/chart-testing-action@v2.0.1 + - uses: actions/setup-go@v2 + if: ${{ steps.prep-lint.outputs.unittests == 'true' }} + with: + go-version: '^1.16' + + ## + # Unit-Test section + ## + + # Get values for cache paths to be used in later steps + - id: go-cache-paths + if: ${{ steps.prep-lint.outputs.unittests == 'true' }} + run: | + echo "::set-output name=go-build::$(go env GOCACHE)" + echo "::set-output name=go-mod::$(go env GOMODCACHE)" + + # Cache go build cache, used to speedup go test + - name: Go Build Cache + if: ${{ steps.prep-lint.outputs.unittests == 'true' }} + uses: actions/cache@v2 + with: + path: ${{ steps.go-cache-paths.outputs.go-build }} + key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }} + + - name: Download modules + if: ${{ steps.prep-lint.outputs.unittests == 'true' }} + run: | + go mod download + - name: Run unit tests + if: ${{ steps.prep-lint.outputs.unittests == 'true' }} + run: | + go test ./charts/.../tests -json | tee test.json + - name: Annotate unit tests + if: ${{ steps.prep-lint.outputs.unittests == 'true' }} + uses: guyarb/golang-test-annotations@v0.3.0 + with: + test-results: test.json + + - name: Parse Unit Tests + if: ${{ steps.prep-lint.outputs.unittests == 'true' }} + run: | + if grep -q "FAIL" test.json + then + echo "Unit Test reported FAILED"; + exit 1 + else + echo "Unit Test reported OK"; + exit 0 + fi + + + ## + # Chart-Testing Section + ## + - name: Run chart-testing (lint) if: ${{ matrix.app != '.gitkee' }} id: lint @@ -199,7 +190,7 @@ jobs: run: ct install --config .github/ct-install.yaml --charts 'charts/${{ steps.prep-lint.outputs.train }}/${{ matrix.app }}' app-tests-complete: - needs: [app-tests, app-unit-tests] + needs: [app-tests] name: Apps Test Complete runs-on: ubuntu-latest steps: @@ -207,7 +198,7 @@ jobs: run: echo "App Tests Completed Successfully" pre-release: - needs: [app-tests, app-unit-tests] + needs: [app-tests] runs-on: ubuntu-latest outputs: release: ${{ steps.prep.outputs.release }} @@ -233,10 +224,8 @@ jobs: catalog-release: runs-on: ubuntu-latest needs: pre-release - if: needs.pre-release.outputs.release == 'true' container: image: ixsystems/catalog_validation:latest - steps: - uses: actions/checkout@v2 name: Checkout @@ -245,18 +234,33 @@ jobs: with: version: v3.5.3 - name: Checkout + if: ${{ needs.pre-release.outputs.release == 'true' }} uses: actions/checkout@v2 with: fetch-depth: 0 token: ${{ secrets.BOT_TOKEN }} path: master - name: Checkout + if: ${{ needs.pre-release.outputs.release == 'true' }} uses: actions/checkout@v2 with: fetch-depth: 0 repository: truecharts/catalog token: ${{ secrets.BOT_TOKEN }} path: catalog + - name: Checkout + if: ${{ needs.pre-release.outputs.release == 'false' }} + uses: actions/checkout@v2 + with: + fetch-depth: 0 + path: master + - name: Checkout + if: ${{ needs.pre-release.outputs.release == 'false' }} + uses: actions/checkout@v2 + with: + fetch-depth: 0 + repository: truecharts/catalog + path: catalog - name: Remove if release already exists run: | for train in stable incubator develop non-free deprecated @@ -323,6 +327,7 @@ jobs: cd catalog /bin/bash -c "PWD=${pwd}; /usr/local/bin/catalog_validate validate --path $PWD" - name: Commit and Push new App releases + if: ${{ needs.pre-release.outputs.release == 'true' }} run: | cd catalog git config user.name "TrueCharts-Bot" diff --git a/charts/stable/bitwarden/.helmignore b/charts/deprecated/bitwarden/.helmignore similarity index 100% rename from charts/stable/bitwarden/.helmignore rename to charts/deprecated/bitwarden/.helmignore diff --git a/charts/stable/bitwarden/CONFIG.md b/charts/deprecated/bitwarden/CONFIG.md similarity index 100% rename from charts/stable/bitwarden/CONFIG.md rename to charts/deprecated/bitwarden/CONFIG.md diff --git a/charts/stable/bitwarden/Chart.yaml b/charts/deprecated/bitwarden/Chart.yaml similarity index 81% rename from charts/stable/bitwarden/Chart.yaml rename to charts/deprecated/bitwarden/Chart.yaml index 6f6711d5bf5..6f0ea08195a 100644 --- a/charts/stable/bitwarden/Chart.yaml +++ b/charts/deprecated/bitwarden/Chart.yaml @@ -1,12 +1,12 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: bitwarden -version: 1.2.6 +version: 1.2.7 upstream_version: 2.1.5 appVersion: "auto" description: Unofficial Bitwarden compatible server written in Rust type: application -deprecated: false +deprecated: true home: https://github.com/truecharts/apps/tree/master/incubator/bitwarden icon: https://raw.githubusercontent.com/bitwarden/brand/master/icons/256x256.png keywords: @@ -28,11 +28,5 @@ dependencies: version: 10.4.3 repository: https://charts.bitnami.com/bitnami condition: postgresql.enabled -maintainers: - - name: TrueCharts - email: info@truecharts.org - url: truecharts.org - - name: Ornias1993 - email: kjeld@schouten-lebbing.nl - url: truecharts.org +maintainers: [] # annotations: diff --git a/charts/stable/bitwarden/README.md b/charts/deprecated/bitwarden/README.md similarity index 100% rename from charts/stable/bitwarden/README.md rename to charts/deprecated/bitwarden/README.md diff --git a/charts/stable/bitwarden/SCALE/item.yaml b/charts/deprecated/bitwarden/SCALE/item.yaml similarity index 100% rename from charts/stable/bitwarden/SCALE/item.yaml rename to charts/deprecated/bitwarden/SCALE/item.yaml diff --git a/charts/stable/bitwarden/SCALE/ix_values.yaml b/charts/deprecated/bitwarden/SCALE/ix_values.yaml similarity index 100% rename from charts/stable/bitwarden/SCALE/ix_values.yaml rename to charts/deprecated/bitwarden/SCALE/ix_values.yaml diff --git a/charts/stable/bitwarden/SCALE/questions.yaml b/charts/deprecated/bitwarden/SCALE/questions.yaml similarity index 97% rename from charts/stable/bitwarden/SCALE/questions.yaml rename to charts/deprecated/bitwarden/SCALE/questions.yaml index 8c1d61d48ea..4b3e3546a81 100644 --- a/charts/stable/bitwarden/SCALE/questions.yaml +++ b/charts/deprecated/bitwarden/SCALE/questions.yaml @@ -62,7 +62,7 @@ questions: default: "Etc/UTC" $ref: - "definitions/timezone" -# Configure Bitwarden: + # Configure Bitwarden: - variable: bitwardenrs label: "" group: "Configuration" @@ -521,7 +521,7 @@ questions: required: true hidden: true -## TrueCharts Specific + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" description: "Websocket Service" @@ -560,9 +560,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -619,9 +625,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -671,9 +683,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" diff --git a/charts/stable/bitwarden/app-readme.md b/charts/deprecated/bitwarden/app-readme.md similarity index 100% rename from charts/stable/bitwarden/app-readme.md rename to charts/deprecated/bitwarden/app-readme.md diff --git a/charts/stable/bitwarden/templates/_specialingress.tpl b/charts/deprecated/bitwarden/templates/_specialingress.tpl similarity index 100% rename from charts/stable/bitwarden/templates/_specialingress.tpl rename to charts/deprecated/bitwarden/templates/_specialingress.tpl diff --git a/charts/stable/bitwarden/templates/_validate.tpl b/charts/deprecated/bitwarden/templates/_validate.tpl similarity index 100% rename from charts/stable/bitwarden/templates/_validate.tpl rename to charts/deprecated/bitwarden/templates/_validate.tpl diff --git a/charts/stable/bitwarden/templates/common.yaml b/charts/deprecated/bitwarden/templates/common.yaml similarity index 100% rename from charts/stable/bitwarden/templates/common.yaml rename to charts/deprecated/bitwarden/templates/common.yaml diff --git a/charts/stable/bitwarden/templates/configmap.yaml b/charts/deprecated/bitwarden/templates/configmap.yaml similarity index 100% rename from charts/stable/bitwarden/templates/configmap.yaml rename to charts/deprecated/bitwarden/templates/configmap.yaml diff --git a/charts/stable/bitwarden/templates/secrets.yaml b/charts/deprecated/bitwarden/templates/secrets.yaml similarity index 100% rename from charts/stable/bitwarden/templates/secrets.yaml rename to charts/deprecated/bitwarden/templates/secrets.yaml diff --git a/charts/stable/bitwarden/values.yaml b/charts/deprecated/bitwarden/values.yaml similarity index 98% rename from charts/stable/bitwarden/values.yaml rename to charts/deprecated/bitwarden/values.yaml index 49df6477e9a..eb0fa46b6c4 100644 --- a/charts/stable/bitwarden/values.yaml +++ b/charts/deprecated/bitwarden/values.yaml @@ -169,8 +169,8 @@ persistence: # ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql postgresql: enabled: true - postgresqlUsername: homeassistant - postgresqlDatabase: homeassistant + postgresqlUsername: bitwarden + postgresqlDatabase: bitwarden existingSecret: dbcreds persistence: enabled: false diff --git a/charts/deprecated/nzbhydra/Chart.yaml b/charts/deprecated/nzbhydra/Chart.yaml index 4d18a33f0b1..9fbf8342b9a 100644 --- a/charts/deprecated/nzbhydra/Chart.yaml +++ b/charts/deprecated/nzbhydra/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: nzbhydra -version: 3.1.7 +version: 4.0.0 upstream_version: 5.3.1 appVersion: "auto" description: Usenet meta search @@ -20,7 +20,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: [] # annotations: diff --git a/charts/deprecated/nzbhydra/SCALE/questions.yaml b/charts/deprecated/nzbhydra/SCALE/questions.yaml index a620bab6782..15c09a80726 100644 --- a/charts/deprecated/nzbhydra/SCALE/questions.yaml +++ b/charts/deprecated/nzbhydra/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,60 +121,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 5076 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 5076 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36041 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 5076 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5076 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36041 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -200,9 +241,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,7 +268,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,104 +322,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -384,7 +336,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/deprecated/nzbhydra/values.yaml b/charts/deprecated/nzbhydra/values.yaml index 5baf1ad7705..bcf68a9c7c7 100644 --- a/charts/deprecated/nzbhydra/values.yaml +++ b/charts/deprecated/nzbhydra/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 5076 + ports: + main: + port: 5076 env: {} # TZ: UTC @@ -26,7 +27,7 @@ probes: failureThreshold: 5 httpGet: path: /actuator/health/livenessState - port: http + port: main initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 10 @@ -37,7 +38,7 @@ probes: failureThreshold: 5 httpGet: path: /actuator/health/readinessState - port: http + port: main initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 10 @@ -48,7 +49,7 @@ probes: failureThreshold: 5 httpGet: path: /actuator/health/readinessState - port: http + port: main initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 10 @@ -58,7 +59,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/appdaemon/Chart.yaml b/charts/incubator/appdaemon/Chart.yaml index 9b4e7336894..3d895b7c1d6 100644 --- a/charts/incubator/appdaemon/Chart.yaml +++ b/charts/incubator/appdaemon/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: appdaemon -version: 0.1.4 +version: 1.0.0 appVersion: v4.0.8 description: AppDaemon is a loosely coupled, multithreaded, sandboxed python execution environment for writing automation apps for Home Assistant home automation software. It also provides a configurable dashboard (HADashboard) suitable for wall mounted tablets. type: application @@ -16,7 +16,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/incubator/appdaemon/SCALE/questions.yaml b/charts/incubator/appdaemon/SCALE/questions.yaml index eae94631868..d1c7c70b817 100644 --- a/charts/incubator/appdaemon/SCALE/questions.yaml +++ b/charts/incubator/appdaemon/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,16 +55,6 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - # Docker specific env - variable: env group: "Configuration" @@ -71,6 +62,13 @@ questions: schema: type: dict attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" - variable: HA_URL label: "HA URL" description: "Your HomeAssistant URL" @@ -113,17 +111,21 @@ questions: type: int default: 0 required: true - - + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -136,7 +138,6 @@ questions: label: "Value" schema: type: string - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -144,14 +145,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -163,59 +164,89 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 5050 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 51050 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true -## TrueCharts Specific - - - variable: customStorage + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 5050 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51050 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36052 + required: true + ## TrueCharts Specific + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -269,105 +300,9 @@ questions: schema: type: hostpath required: true - - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "selfsigned" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -379,7 +314,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/incubator/appdaemon/values.yaml b/charts/incubator/appdaemon/values.yaml index 031febf01d9..a89ba905d2b 100644 --- a/charts/incubator/appdaemon/values.yaml +++ b/charts/incubator/appdaemon/values.yaml @@ -13,27 +13,28 @@ podSecurityContext: runAsGroup: 568 fsGroup: 568 -timezone: "America/Chicago" - env: + TZ: "America/Chicago" LATITUDE: 46 LONGITUDE: -94 ELEVATION: 1217 DASH_URL: "http://0.0.0.0:5050" -services: +service: main: - port: - port: 5050 + ports: + main: + port: 5050 tcp: enabled: true type: ClusterIP - port: - port: 51050 - protocol: TCP - targetPort: 51050 + ports: + tcp: + enabled: true + port: 51050 + protocol: TCP -customStorage: +hostPathMounts: - name: config enabled: true mountPath: /conf diff --git a/charts/incubator/bazarr/Chart.yaml b/charts/incubator/bazarr/Chart.yaml index 947fe1ae2dd..bfc5a517267 100644 --- a/charts/incubator/bazarr/Chart.yaml +++ b/charts/incubator/bazarr/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: bazarr -version: 3.1.7 +version: 4.0.0 upstream_version: 5.2.1 appVersion: "auto" description: Bazarr is a companion application to Bazarr and Radarr. It manages and downloads subtitles based on your requirements @@ -24,7 +24,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/bazarr/SCALE/questions.yaml b/charts/incubator/bazarr/SCALE/questions.yaml index 3ed159455b4..c0342dfb6bf 100644 --- a/charts/incubator/bazarr/SCALE/questions.yaml +++ b/charts/incubator/bazarr/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,60 +121,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 6767 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 6767 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36025 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 6767 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6767 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36025 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -200,9 +241,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,7 +268,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,104 +322,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -384,7 +336,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/incubator/bazarr/values.yaml b/charts/incubator/bazarr/values.yaml index 73afc5b9931..b402a888cea 100644 --- a/charts/incubator/bazarr/values.yaml +++ b/charts/incubator/bazarr/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 6767 + ports: + main: + port: 6767 env: {} # TZ: UTC @@ -22,7 +23,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/calibre-web/Chart.yaml b/charts/incubator/calibre-web/Chart.yaml index 8f0015f206b..26a5d2d86f0 100644 --- a/charts/incubator/calibre-web/Chart.yaml +++ b/charts/incubator/calibre-web/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: calibre-web -version: 3.1.6 +version: 4.0.0 upstream_version: 4.3.1 appVersion: "auto" description: Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. @@ -21,7 +21,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/calibre-web/SCALE/questions.yaml b/charts/incubator/calibre-web/SCALE/questions.yaml index 9039761f6a2..48e5e443ecc 100644 --- a/charts/incubator/calibre-web/SCALE/questions.yaml +++ b/charts/incubator/calibre-web/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -53,25 +55,46 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -91,14 +114,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -110,60 +133,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8083 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8083 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36015 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8083 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8083 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36015 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -199,9 +253,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -220,7 +280,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -274,176 +334,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/incubator/calibre-web/values.yaml b/charts/incubator/calibre-web/values.yaml index 5e2636af9e7..40a67da4e7d 100644 --- a/charts/incubator/calibre-web/values.yaml +++ b/charts/incubator/calibre-web/values.yaml @@ -8,17 +8,11 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - -services: +service: main: - port: - port: 8083 + ports: + main: + port: 8083 env: {} # TZ: @@ -31,7 +25,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/deluge/Chart.yaml b/charts/incubator/deluge/Chart.yaml index 0797da7b3ad..9a8f96f61d3 100644 --- a/charts/incubator/deluge/Chart.yaml +++ b/charts/incubator/deluge/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: deluge -version: 3.1.6 +version: 4.0.0 # upstream_version: appVersion: "auto" description: Deluge App for TrueNAS SCALE @@ -19,7 +19,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/deluge/SCALE/questions.yaml b/charts/incubator/deluge/SCALE/questions.yaml index d4db5c6ef24..6a5cd5bb5c8 100644 --- a/charts/incubator/deluge/SCALE/questions.yaml +++ b/charts/incubator/deluge/SCALE/questions.yaml @@ -6,15 +6,19 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" portals: web_portal: protocols: @@ -24,7 +28,7 @@ portals: ports: - "$kubernetes-resource_configmap_portal_port" questions: -## Portal Button + ## Portal Button - variable: portal group: "Container Image" label: "Configure Portal Button" @@ -40,7 +44,7 @@ questions: editable: false type: boolean default: true -## Update Policy + ## Update Policy - variable: strategyType group: "Container Image" label: "Update Strategy" @@ -52,25 +56,46 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" -## Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Australia/Hobart" - $ref: - - "definitions/timezone" - -## Configure Enviroment Variables - - variable: environmentVariables + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Australia/Hobart" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + ## Configure Enviroment Variables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -83,16 +108,255 @@ questions: label: "Value" schema: type: string -## Enable Host Network + ## Enable Host Network - variable: hostNetwork group: "Networking" label: "Enable Host Network" schema: type: boolean default: false + - variable: service + group: "Networking" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8112 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8112 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36026 + required: true + - variable: torrent + label: "Torrent Service" + description: "Torrent Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 51413 + required: true + - variable: udp + label: "UDP Service Port Configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 51413 + required: true - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -128,9 +392,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -149,7 +419,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -203,369 +473,3 @@ questions: schema: type: hostpath required: true - - variable: services - group: "Networking" - label: "Configure Service" - schema: - type: dict - attrs: - - variable: main - label: "Main service" - description: "The Primary service on which the healthcheck runs, often the webUI" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: protocol - label: "Port Type" - schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8112 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8112 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36026 - required: true - - variable: tcp - label: "" - description: "TCP port for Torrent Connections" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable TCP port for Torrent Connections" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: name - label: "port name" - schema: - type: string - default: "torrent-tcp" - hidden: true - - variable: protocol - label: "Protocol" - schema: - type: string - default: "TCP" - hidden: true - - variable: port - label: "container port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: targetport - label: "container targetport" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "Node Port to expose" - schema: - type: int - min: 9000 - max: 65535 - default: 51413 - required: false - - variable: udp - label: "" - description: "UDP port for Torrent Connections" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable UDP port for Torrent Connections" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - schema: - type: string - default: "ClusterIP" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: name - label: "port name" - schema: - type: string - default: "torrent-udp" - hidden: true - - variable: protocol - label: "Protocol" - schema: - type: string - default: "UDP" - hidden: true - - variable: port - label: "container port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: targetport - label: "container targetport" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "Node Port to expose" - schema: - type: int - min: 9000 - max: 65535 - default: 51413 - required: false - -## Ingres - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/incubator/deluge/values.yaml b/charts/incubator/deluge/values.yaml index 127213f2464..82af7c282cd 100644 --- a/charts/incubator/deluge/values.yaml +++ b/charts/incubator/deluge/values.yaml @@ -8,37 +8,30 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - -services: +service: main: - port: - port: 8112 - tcp: + ports: + main: + port: 8112 + torrent: enabled: true type: ClusterIP - port: - port: 51413 - protocol: TCP - targetPort: 51413 - udp: - enabled: true - type: ClusterIP - port: - port: 51413 - protocol: UDP - targetPort: 51413 + ports: + tcp: + enabled: true + port: 51413 + protocol: TCP + udp: + enabled: true + port: 51413 + protocol: UDP persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/fireflyiii/Chart.yaml b/charts/incubator/fireflyiii/Chart.yaml index 0d26f685086..bc4f4b52064 100644 --- a/charts/incubator/fireflyiii/Chart.yaml +++ b/charts/incubator/fireflyiii/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: fireflyiii -version: 1.0.2 +version: 2.0.2 appVersion: "auto" description: A free and open source personal finance manager type: application @@ -16,7 +16,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 - name: postgresql version: 10.4.3 repository: https://charts.bitnami.com/bitnami diff --git a/charts/incubator/fireflyiii/SCALE/questions.yaml b/charts/incubator/fireflyiii/SCALE/questions.yaml index f2ebe1aa1e0..399c5683d11 100644 --- a/charts/incubator/fireflyiii/SCALE/questions.yaml +++ b/charts/incubator/fireflyiii/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -53,24 +55,41 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + # Docker specific env + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - # Configure Enviroment Variables - - variable: environmentVariables + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: APP_KEY + label: "App Key" + description: "Your unique 32 application character key" + schema: + type: string + default: "" + required: true + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -83,22 +102,6 @@ questions: label: "Value" schema: type: string - - # Docker specific env - - variable: env - group: "Configuration" - label: "Image Environment" - schema: - type: dict - attrs: - - variable: APP_KEY - label: "App Key" - description: "Your unique 32 application character key" - schema: - type: string - default: "" - required: true - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -106,14 +109,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -125,61 +128,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8080 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 51080 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36048 - required: true - -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51080 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36048 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -215,9 +248,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -274,9 +313,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -326,9 +371,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -347,7 +398,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -401,104 +452,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -510,7 +466,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/incubator/fireflyiii/templates/secrets.yaml b/charts/incubator/fireflyiii/templates/secrets.yaml index 2227b0eb37a..5d262741617 100644 --- a/charts/incubator/fireflyiii/templates/secrets.yaml +++ b/charts/incubator/fireflyiii/templates/secrets.yaml @@ -1,8 +1,6 @@ apiVersion: v1 kind: Secret metadata: - labels: - {{- include "common.labels" . | nindent 4 }} name: dbcreds {{- $previous := lookup "v1" "Secret" .Release.Namespace "dbcreds" }} {{- $dbPass := "" }} diff --git a/charts/incubator/fireflyiii/values.yaml b/charts/incubator/fireflyiii/values.yaml index 7c5ca26703d..d9c1c780cb5 100644 --- a/charts/incubator/fireflyiii/values.yaml +++ b/charts/incubator/fireflyiii/values.yaml @@ -1,4 +1,4 @@ -# Default values for Bitwarden. +# Default values for fireflyIII. image: repository: jc5x/firefly-iii @@ -14,17 +14,19 @@ podSecurityContext: runAsGroup: 0 fsGroup: 0 -services: +service: main: - port: - port: 8080 + ports: + main: + port: 8080 tcp: enabled: true type: ClusterIP - port: - port: 51080 - protocol: TCP - targetPort: 51080 + ports: + tcp: + enabled: true + port: 51080 + protocol: TCP env: DB_USERNAME: firefly @@ -47,20 +49,23 @@ persistence: data: enabled: true mountPath: "/var/www/html/storage/upload" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" db: nameOverride: "db" enabled: true - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" dbbackup: enabled: true - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/freshrss/Chart.yaml b/charts/incubator/freshrss/Chart.yaml index fd7630e8ce2..01007b2496c 100644 --- a/charts/incubator/freshrss/Chart.yaml +++ b/charts/incubator/freshrss/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: freshrss -version: 3.1.6 +version: 4.0.0 upstream_version: 2.3.1 appVersion: "auto" description: FreshRSS is a self-hosted RSS feed aggregator @@ -20,7 +20,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/freshrss/SCALE/questions.yaml b/charts/incubator/freshrss/SCALE/questions.yaml index ffb0a95de0e..6e5b1f647e9 100644 --- a/charts/incubator/freshrss/SCALE/questions.yaml +++ b/charts/incubator/freshrss/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,46 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +114,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,60 +133,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36029 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36029 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -200,9 +253,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,8 +280,7 @@ questions: schema: type: string default: "100Gi" - - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -276,176 +334,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/incubator/freshrss/values.yaml b/charts/incubator/freshrss/values.yaml index 4c31242e4bb..11d4c91b16f 100644 --- a/charts/incubator/freshrss/values.yaml +++ b/charts/incubator/freshrss/values.yaml @@ -8,17 +8,11 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - -services: +service: main: - port: - port: 80 + ports: + main: + port: 80 env: {} # TZ: UTC @@ -29,7 +23,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/gaps/Chart.yaml b/charts/incubator/gaps/Chart.yaml index 243b41cf826..27d13f4d75e 100644 --- a/charts/incubator/gaps/Chart.yaml +++ b/charts/incubator/gaps/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: gaps -version: 3.1.6 +version: 4.0.0 upstream_version: 1.1.1 appVersion: "auto" description: Gaps searches through your Plex Server or local folders for all movies, then queries for known movies in the same collection. @@ -20,7 +20,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/gaps/SCALE/questions.yaml b/charts/incubator/gaps/SCALE/questions.yaml index 7447b50559d..c7304a3ef0c 100644 --- a/charts/incubator/gaps/SCALE/questions.yaml +++ b/charts/incubator/gaps/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,59 +121,90 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8484 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8484 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36030 - required: true + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8484 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8484 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36030 + required: true - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -199,9 +240,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -220,9 +267,7 @@ questions: schema: type: string default: "100Gi" - - - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -276,104 +321,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -385,7 +335,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/incubator/gaps/values.yaml b/charts/incubator/gaps/values.yaml index ed003b80129..8f8e194b1e6 100644 --- a/charts/incubator/gaps/values.yaml +++ b/charts/incubator/gaps/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 8484 + ports: + main: + port: 8484 env: {} # TZ: UTC @@ -20,7 +21,8 @@ persistence: data: enabled: true mountPath: "/usr/data" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/grocy/Chart.yaml b/charts/incubator/grocy/Chart.yaml index 31a3a618b10..ad35e5532bb 100644 --- a/charts/incubator/grocy/Chart.yaml +++ b/charts/incubator/grocy/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: grocy -version: 3.1.6 +version: 4.0.0 upstream_version: 4.3.1 appVersion: "auto" description: ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home @@ -18,7 +18,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/grocy/SCALE/questions.yaml b/charts/incubator/grocy/SCALE/questions.yaml index a0354443e39..7d674930f0a 100644 --- a/charts/incubator/grocy/SCALE/questions.yaml +++ b/charts/incubator/grocy/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,46 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +114,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,59 +133,90 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36031 - required: true + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36031 + required: true - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -199,9 +252,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -220,7 +279,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -274,176 +333,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/incubator/grocy/values.yaml b/charts/incubator/grocy/values.yaml index a6a2a176916..c8aa7386b77 100644 --- a/charts/incubator/grocy/values.yaml +++ b/charts/incubator/grocy/values.yaml @@ -8,17 +8,11 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - -services: +service: main: - port: - port: 80 + ports: + main: + port: 80 env: {} # TZ: @@ -29,7 +23,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/heimdall/Chart.yaml b/charts/incubator/heimdall/Chart.yaml index 0659b1fae11..6a5ff6cca82 100644 --- a/charts/incubator/heimdall/Chart.yaml +++ b/charts/incubator/heimdall/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: heimdall -version: 3.1.6 +version: 4.0.0 upstream_version: 4.1.1 appVersion: "auto" description: An Application dashboard and launcher @@ -17,7 +17,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/heimdall/SCALE/questions.yaml b/charts/incubator/heimdall/SCALE/questions.yaml index 581817325e0..19cae86885d 100644 --- a/charts/incubator/heimdall/SCALE/questions.yaml +++ b/charts/incubator/heimdall/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,46 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +114,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,60 +133,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36033 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36033 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -200,9 +253,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,7 +280,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,176 +334,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/incubator/heimdall/values.yaml b/charts/incubator/heimdall/values.yaml index ae76faf7353..a8331f4dd56 100644 --- a/charts/incubator/heimdall/values.yaml +++ b/charts/incubator/heimdall/values.yaml @@ -8,17 +8,11 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - -services: +service: main: - port: - port: 80 + ports: + main: + port: 80 env: {} # TZ: @@ -33,7 +27,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/lazylibrarian/Chart.yaml b/charts/incubator/lazylibrarian/Chart.yaml index cd5d5554cb4..f3e8b8abab9 100644 --- a/charts/incubator/lazylibrarian/Chart.yaml +++ b/charts/incubator/lazylibrarian/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: lazylibrarian -version: 3.1.6 +version: 4.0.0 upstream_version: 2.1.0 appVersion: "latest" description: Get all your books, like series with Sonarr... @@ -20,7 +20,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/lazylibrarian/SCALE/questions.yaml b/charts/incubator/lazylibrarian/SCALE/questions.yaml index 248cf4c910c..fca47a90cff 100644 --- a/charts/incubator/lazylibrarian/SCALE/questions.yaml +++ b/charts/incubator/lazylibrarian/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,46 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +114,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,60 +133,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 5299 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 5299 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36033 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 5299 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5299 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36033 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -200,9 +253,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,8 +280,7 @@ questions: schema: type: string default: "100Gi" - - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -276,176 +334,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/incubator/lazylibrarian/values.yaml b/charts/incubator/lazylibrarian/values.yaml index 23d51564417..5aa4e24b14d 100644 --- a/charts/incubator/lazylibrarian/values.yaml +++ b/charts/incubator/lazylibrarian/values.yaml @@ -8,17 +8,11 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - -services: +service: main: - port: - port: 5299 + ports: + main: + port: 5299 env: {} # TZ: UTC @@ -29,7 +23,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/lychee/Chart.yaml b/charts/incubator/lychee/Chart.yaml index c5ce3a0f6d8..45e88e54835 100644 --- a/charts/incubator/lychee/Chart.yaml +++ b/charts/incubator/lychee/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: lychee -version: 3.1.6 +version: 4.0.0 upstream_version: 2.3.1 appVersion: "auto" description: Lychee is a free photo-management tool, which runs on your server or web-space @@ -21,7 +21,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/lychee/SCALE/questions.yaml b/charts/incubator/lychee/SCALE/questions.yaml index 53e656bbf90..6e4e0b13934 100644 --- a/charts/incubator/lychee/SCALE/questions.yaml +++ b/charts/incubator/lychee/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,46 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +114,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,60 +133,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36034 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36034 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -200,9 +253,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,7 +280,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,176 +334,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/incubator/lychee/values.yaml b/charts/incubator/lychee/values.yaml index d333576fd38..20e922c74ef 100644 --- a/charts/incubator/lychee/values.yaml +++ b/charts/incubator/lychee/values.yaml @@ -8,17 +8,11 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - -services: +service: main: - port: - port: 80 + ports: + main: + port: 80 env: {} # PHP_TZ: UTC @@ -29,7 +23,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/navidrome/Chart.yaml b/charts/incubator/navidrome/Chart.yaml index 066609e8d1b..60671209765 100644 --- a/charts/incubator/navidrome/Chart.yaml +++ b/charts/incubator/navidrome/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: navidrome -version: 3.1.6 +version: 4.0.0 upstream_version: 2.3.1 appVersion: "auto" description: Navidrome is an open source web-based music collection server and streamer @@ -21,7 +21,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/navidrome/SCALE/questions.yaml b/charts/incubator/navidrome/SCALE/questions.yaml index 8758663bce0..ff3d0a74fa1 100644 --- a/charts/incubator/navidrome/SCALE/questions.yaml +++ b/charts/incubator/navidrome/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,60 +121,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 4533 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 4533 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36027 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 4533 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 4533 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36027 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -200,9 +241,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,7 +268,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,104 +322,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -384,7 +336,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/incubator/navidrome/values.yaml b/charts/incubator/navidrome/values.yaml index 2446a844f64..574d19e5a55 100644 --- a/charts/incubator/navidrome/values.yaml +++ b/charts/incubator/navidrome/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 4533 + ports: + main: + port: 4533 env: ND_SCANINTERVAL: "15m" @@ -24,7 +25,8 @@ persistence: data: enabled: true mountPath: "/data" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/node-red/Chart.yaml b/charts/incubator/node-red/Chart.yaml index 5192c9e04e6..559dd6d65db 100644 --- a/charts/incubator/node-red/Chart.yaml +++ b/charts/incubator/node-red/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: node-red -version: 3.1.6 +version: 4.0.0 upstream_version: 5.2.1 appVersion: "auto" description: Node-RED is low-code programming for event-driven applications @@ -19,7 +19,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/node-red/SCALE/questions.yaml b/charts/incubator/node-red/SCALE/questions.yaml index eb29b285f07..56ea8f3945f 100644 --- a/charts/incubator/node-red/SCALE/questions.yaml +++ b/charts/incubator/node-red/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,60 +121,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 1880 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 1880 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36028 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 1880 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1880 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36028 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -200,9 +241,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,7 +268,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,104 +322,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -384,7 +336,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/incubator/node-red/values.yaml b/charts/incubator/node-red/values.yaml index 4339f588fc5..c211e7ebf61 100644 --- a/charts/incubator/node-red/values.yaml +++ b/charts/incubator/node-red/values.yaml @@ -17,16 +17,18 @@ env: {} # NODE_RED_ENABLE_SAFE_MODE: # FLOWS: -services: +service: main: - port: - port: 1880 + ports: + main: + port: 1880 persistence: data: enabled: true mountPath: "/data" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/nzbget/Chart.yaml b/charts/incubator/nzbget/Chart.yaml index 05a3cf88a9b..75a848570cd 100644 --- a/charts/incubator/nzbget/Chart.yaml +++ b/charts/incubator/nzbget/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: nzbget -version: 3.1.6 +version: 4.0.0 upstream_version: 7.3.1 appVersion: "auto" description: NZBGet is a Usenet downloader client @@ -20,7 +20,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/nzbget/SCALE/questions.yaml b/charts/incubator/nzbget/SCALE/questions.yaml index 842b21e7381..df96bc90637 100644 --- a/charts/incubator/nzbget/SCALE/questions.yaml +++ b/charts/incubator/nzbget/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,60 +121,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 6789 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 6789 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36021 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 6789 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6789 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36021 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -200,9 +241,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,7 +268,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,104 +322,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -384,7 +336,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/incubator/nzbget/values.yaml b/charts/incubator/nzbget/values.yaml index 212877c5f1d..36301618ece 100644 --- a/charts/incubator/nzbget/values.yaml +++ b/charts/incubator/nzbget/values.yaml @@ -8,16 +8,18 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 6789 + ports: + main: + port: 6789 persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/organizr/Chart.yaml b/charts/incubator/organizr/Chart.yaml index 2080299380a..814e44c74f8 100644 --- a/charts/incubator/organizr/Chart.yaml +++ b/charts/incubator/organizr/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: organizr -version: 3.1.6 +version: 4.0.0 upstream_version: 3.2.1 appVersion: "latest" description: HTPC/Homelab Services Organizer @@ -19,7 +19,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/organizr/SCALE/questions.yaml b/charts/incubator/organizr/SCALE/questions.yaml index 3505123038f..27652ce6ba5 100644 --- a/charts/incubator/organizr/SCALE/questions.yaml +++ b/charts/incubator/organizr/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,46 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +114,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,60 +133,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36046 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36046 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -200,9 +253,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -252,9 +311,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -273,7 +338,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -327,176 +392,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/incubator/organizr/values.yaml b/charts/incubator/organizr/values.yaml index c784dfb75e7..d4a987c157e 100644 --- a/charts/incubator/organizr/values.yaml +++ b/charts/incubator/organizr/values.yaml @@ -8,17 +8,11 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - -services: +service: main: - port: - port: 80 + ports: + main: + port: 80 env: {} # TZ: UTC @@ -29,7 +23,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/podgrab/Chart.yaml b/charts/incubator/podgrab/Chart.yaml index b8520b9ff34..0bcc74cba8c 100644 --- a/charts/incubator/podgrab/Chart.yaml +++ b/charts/incubator/podgrab/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: podgrab -version: 1.0.4 +version: 2.0.0 upstream_version: 1.0.0 appVersion: "latest" description: A self-hosted podcast manager to download episodes as soon as they become live. @@ -17,7 +17,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 maintainers: - name: TrueCharts email: info@truecharts.org diff --git a/charts/incubator/podgrab/SCALE/questions.yaml b/charts/incubator/podgrab/SCALE/questions.yaml index 023e9e17ad7..984af4637e0 100644 --- a/charts/incubator/podgrab/SCALE/questions.yaml +++ b/charts/incubator/podgrab/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,23 +55,19 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - -# App env variables - variable: env group: "Configuration" label: "Image Environment" schema: type: dict attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" - variable: PASSWORD label: "Password" description: "Desired Password" @@ -85,16 +82,15 @@ questions: type: int default: 240 required: true - # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -107,7 +103,6 @@ questions: label: "Value" schema: type: string - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -115,14 +110,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -134,60 +129,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8080 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 51080 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36047 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51080 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36047 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Config Storage" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -223,9 +249,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -244,8 +276,7 @@ questions: schema: type: string default: "1Gi" - - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -299,97 +330,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -399,10 +342,9 @@ questions: schema: type: boolean default: false - # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/incubator/podgrab/values.yaml b/charts/incubator/podgrab/values.yaml index 6982fed0a46..95a7869a7e1 100644 --- a/charts/incubator/podgrab/values.yaml +++ b/charts/incubator/podgrab/values.yaml @@ -15,17 +15,19 @@ podSecurityContext: runAsGroup: 568 fsGroup: 568 -services: +service: main: - port: - port: 8080 + ports: + main: + port: 8080 tcp: enabled: true type: ClusterIP - port: - port: 51080 - protocol: TCP - targetPort: 51080 + ports: + tcp: + enabled: true + port: 51080 + protocol: TCP env: PASSWORD: secretpasswordgoeshere @@ -35,12 +37,13 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" -customStorage: +hostPathMounts: - name: assets enabled: true mountPath: "/assets" diff --git a/charts/incubator/qbittorrent/Chart.yaml b/charts/incubator/qbittorrent/Chart.yaml index 2d016185c60..93e62d692b8 100644 --- a/charts/incubator/qbittorrent/Chart.yaml +++ b/charts/incubator/qbittorrent/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: qbittorrent -version: 3.1.6 +version: 4.0.0 upstream_version: 7.2.1 appVersion: "auto" description: qBittorrent is a cross-platform free and open-source BitTorrent client @@ -19,7 +19,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/qbittorrent/SCALE/questions.yaml b/charts/incubator/qbittorrent/SCALE/questions.yaml index d2494a1b011..239355512d4 100644 --- a/charts/incubator/qbittorrent/SCALE/questions.yaml +++ b/charts/incubator/qbittorrent/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,59 +121,90 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8080 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8080 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36039 - required: true - - variable: tcp - label: "TCP Torrent connections" - description: "This service is used to process incomming torrent connections over TCP" + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36039 + required: true + - variable: torrent + label: "Torrent Service" + description: "Torrent Service" schema: type: dict attrs: @@ -174,8 +215,8 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string default: "NodePort" @@ -184,113 +225,126 @@ questions: description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: protocol - label: "Port Type" - schema: - type: string - default: "TCP" - hidden: true - enum: - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: port - label: "container port" - schema: - type: int - default: 6881 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36040 - required: true - - variable: udp - label: "UDP Torrent connections" - description: "This service is used to process incomming torrent connections over UDP" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" schema: + show_if: [["type", "=", "LoadBalancer"]] type: string - default: "NodePort" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: tcp + label: "TCP Service Port Configuration" schema: - type: string - default: "UDP" - hidden: true - enum: - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: port - label: "container port" + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36040 + required: true + - variable: udp + label: "UDP Service Port Configuration" schema: - type: int - default: 6881 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36040 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36040 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -326,9 +380,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -347,8 +407,7 @@ questions: schema: type: string default: "100Gi" - - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -402,104 +461,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -511,7 +475,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/incubator/qbittorrent/templates/configmap.yaml b/charts/incubator/qbittorrent/templates/_configmap.tpl similarity index 58% rename from charts/incubator/qbittorrent/templates/configmap.yaml rename to charts/incubator/qbittorrent/templates/_configmap.tpl index f8549d96fc0..d52c601514c 100644 --- a/charts/incubator/qbittorrent/templates/configmap.yaml +++ b/charts/incubator/qbittorrent/templates/_configmap.tpl @@ -1,21 +1,7 @@ -## -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# `SPDX-License-Identifier: Apache-2.0` -# -# This file is considered to be modified by the TrueCharts Project. -## +{{/* Define the configmap */}} +{{- define "qbittorrent.configmap" -}} +--- apiVersion: v1 kind: ConfigMap metadata: @@ -24,7 +10,7 @@ metadata: {{- include "common.labels" . | nindent 4 }} data: {{- $bittorrentPort := "" -}} - {{- $bittorrentPort = .Values.services.tcp.port.port -}} + {{- $bittorrentPort = .Values.service.torrent.ports.tcp.port -}} {{- if $bittorrentPort }} 31-update-port: |- #!/bin/bash @@ -43,3 +29,4 @@ data: fi fi {{- end }} +{{- end -}} diff --git a/charts/incubator/qbittorrent/templates/common.yaml b/charts/incubator/qbittorrent/templates/common.yaml index a6613c2ce21..bcb4715aa18 100644 --- a/charts/incubator/qbittorrent/templates/common.yaml +++ b/charts/incubator/qbittorrent/templates/common.yaml @@ -1 +1,6 @@ +{{/* Render the templates */}} {{ include "common.all" . }} + + +{{/* Render the configmap */}} +{{ include "qbittorrent.configmap" . }} diff --git a/charts/incubator/qbittorrent/values.yaml b/charts/incubator/qbittorrent/values.yaml index 02e101f8e44..5458be87365 100644 --- a/charts/incubator/qbittorrent/values.yaml +++ b/charts/incubator/qbittorrent/values.yaml @@ -14,31 +14,30 @@ env: {} # PGID: 1001 # UMASK: 022 -services: +service: main: - port: - port: 8080 - tcp: + ports: + main: + port: 8080 + torrent: enabled: true type: ClusterIP - port: - port: 6881 - protocol: TCP - targetPort: 51413 - udp: - enabled: true - type: ClusterIP - port: - port: 6881 - protocol: UDP - targetPort: 51413 - + ports: + tcp: + enabled: true + port: 6881 + protocol: TCP + udp: + enabled: true + port: 6881 + protocol: UDP persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" @@ -54,7 +53,3 @@ additionalVolumes: additionalVolumeMounts: - mountPath: /config/custom-cont-init.d name: qbittorrent-scripts - - -appAdditionalServicesEnabled: true -appAdditionalServices: diff --git a/charts/incubator/readarr/Chart.yaml b/charts/incubator/readarr/Chart.yaml index 4ef769b61cb..ee77201245e 100644 --- a/charts/incubator/readarr/Chart.yaml +++ b/charts/incubator/readarr/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: readarr -version: 3.1.6 +version: 4.0.0 upstream_version: 2.1.0 appVersion: "auto" description: A fork of Radarr to work with Books & AudioBooks @@ -23,7 +23,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/readarr/SCALE/questions.yaml b/charts/incubator/readarr/SCALE/questions.yaml index 840fe89a298..28cc504e54e 100644 --- a/charts/incubator/readarr/SCALE/questions.yaml +++ b/charts/incubator/readarr/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,60 +121,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8787 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8787 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36038 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8787 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8787 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36038 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -200,9 +241,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,7 +268,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,104 +322,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -384,7 +336,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/incubator/readarr/values.yaml b/charts/incubator/readarr/values.yaml index 09676bb4b4c..44982d0113c 100644 --- a/charts/incubator/readarr/values.yaml +++ b/charts/incubator/readarr/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 8787 + ports: + main: + port: 8787 env: {} # TZ: UTC @@ -43,7 +44,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/sabnzbd/Chart.yaml b/charts/incubator/sabnzbd/Chart.yaml index 8f204efe9e3..95502aad866 100644 --- a/charts/incubator/sabnzbd/Chart.yaml +++ b/charts/incubator/sabnzbd/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: sabnzbd -version: 3.1.6 +version: 4.0.0 upstream_version: 5.0.1 appVersion: "auto" description: Free and easy binary newsreader @@ -20,7 +20,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/sabnzbd/SCALE/questions.yaml b/charts/incubator/sabnzbd/SCALE/questions.yaml index d47bf0592df..5e559889175 100644 --- a/charts/incubator/sabnzbd/SCALE/questions.yaml +++ b/charts/incubator/sabnzbd/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,24 +55,19 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - - # Docker specific env - variable: env group: "Configuration" label: "Image Environment" schema: type: dict attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" - variable: HOST_WHITELIST_ENTRIES label: "HostName Whitelist" description: "If you use a reverse proxy, you might need to enter your hostname's here (comma seperated)" @@ -79,15 +75,21 @@ questions: type: string default: "" required: false + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -100,7 +102,6 @@ questions: label: "Value" schema: type: string - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -108,14 +109,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -127,60 +128,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8080 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8080 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36045 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36045 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -216,9 +248,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -237,7 +275,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -291,104 +329,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -400,7 +343,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/incubator/sabnzbd/values.yaml b/charts/incubator/sabnzbd/values.yaml index b5ccdd612ae..314240a80f0 100644 --- a/charts/incubator/sabnzbd/values.yaml +++ b/charts/incubator/sabnzbd/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 8080 + ports: + main: + port: 8080 env: {} # TZ: UTC @@ -22,7 +23,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/tvheadend/Chart.yaml b/charts/incubator/tvheadend/Chart.yaml index ecebf1acb1c..12c0c959a43 100644 --- a/charts/incubator/tvheadend/Chart.yaml +++ b/charts/incubator/tvheadend/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: tvheadend -version: 4.1.6 +version: 5.0.0 upstream_version: 1.1.2 appVersion: "latest" description: TVheadend - a TV streaming server and digital video recorder @@ -21,7 +21,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/tvheadend/SCALE/questions.yaml b/charts/incubator/tvheadend/SCALE/questions.yaml index 5a869bcc9df..ad48aae8f06 100644 --- a/charts/incubator/tvheadend/SCALE/questions.yaml +++ b/charts/incubator/tvheadend/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,18 +55,57 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - # Service Configuration + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + - variable: envList + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -73,14 +113,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -92,59 +132,90 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 9981 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 9981 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36042 - required: true + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 9981 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9981 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36042 + required: true - variable: htsp - label: "HTSP service" - description: "Service to connect to htsp" + label: "HTSP Service" + description: "HTSP service" schema: type: dict attrs: @@ -153,60 +224,92 @@ questions: schema: type: boolean default: true + hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: htsp + label: "TCP Service Port Configuration" schema: - type: string - default: "TCP" - hidden: true - enum: - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: port - label: "container port" - schema: - type: int - default: 9982 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 9982 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36043 - required: true + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 9982 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9982 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36043 + required: true - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -242,9 +345,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -263,7 +372,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -317,176 +426,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/incubator/tvheadend/values.yaml b/charts/incubator/tvheadend/values.yaml index 4d5ca71d069..5372e7b84d1 100644 --- a/charts/incubator/tvheadend/values.yaml +++ b/charts/incubator/tvheadend/values.yaml @@ -8,13 +8,6 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - # See https://github.com/linuxserver/docker-tvheadend#parameters env: {} # PUID: 1000 @@ -22,23 +15,26 @@ env: {} # TZ: Europe/London # RUN_OPTS: -services: +service: main: - port: - port: 9981 + ports: + main: + port: 9981 htsp: enabled: true type: ClusterIP - port: - port: 9982 - protocol: TCP - targetPort: 9982 + ports: + htsp: + enabled: true + port: 9982 + protocol: TCP persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/incubator/unifi/Chart.yaml b/charts/incubator/unifi/Chart.yaml index 6397b66982b..6ffb172e5ae 100644 --- a/charts/incubator/unifi/Chart.yaml +++ b/charts/incubator/unifi/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: unifi -version: 3.1.6 +version: 4.0.0 upstream_version: 1.5.1 appVersion: "auto" description: Ubiquiti Network's Unifi Controller @@ -19,7 +19,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/incubator/unifi/SCALE/ix_values.yaml b/charts/incubator/unifi/SCALE/ix_values.yaml index a7c2aa22ea3..654c3f98687 100644 --- a/charts/incubator/unifi/SCALE/ix_values.yaml +++ b/charts/incubator/unifi/SCALE/ix_values.yaml @@ -9,12 +9,10 @@ image: tag: 6.1.71 pullPolicy: IfNotPresent - envTpl: -# Permissions Settings - UNIFI_GID: "{{ .Values.PUID }}" - UNIFI_UID: "{{ .Values.PGID }}" - + # Permissions Settings + UNIFI_GID: "{{ .Values.env.PUID }}" + UNIFI_UID: "{{ .Values.env.PGID }}" ## # Most other defaults are set in questions.yaml # For other options please refer to the wiki, default_values.yaml or the common library chart diff --git a/charts/incubator/unifi/SCALE/questions.yaml b/charts/incubator/unifi/SCALE/questions.yaml index 9b32989224e..d89ae444cdd 100644 --- a/charts/incubator/unifi/SCALE/questions.yaml +++ b/charts/incubator/unifi/SCALE/questions.yaml @@ -6,17 +6,20 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" description: "WARNING" + portals: web_portal: protocols: @@ -41,7 +44,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +56,46 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +115,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,59 +134,90 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTPS" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8443 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8443 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36035 - required: true - - variable: tcp - label: "Unifi Device Communications" - description: "This services is used for devices to communicate with the controller" + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8443 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8443 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36035 + required: true + - variable: comm + label: "Unifi Device Communication Service" + description: "Unifi Device Communication Service" schema: type: dict attrs: @@ -174,59 +228,90 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "LoadBalancer" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: tcp + label: "TCP Service Port Configuration" schema: - type: string - default: "TCP" - hidden: true - enum: - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: port - label: "container port" - schema: - type: int - default: 8080 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8080 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36036 - required: true - - variable: udp - label: "Stun Device Communications" - description: "This services is used for devices to communicate with the controller using STUN" + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36036 + required: true + - variable: stun + label: "STUN Device Communication Service" + description: "STUN Device Communication Service" schema: type: dict attrs: @@ -237,59 +322,90 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "LoadBalancer" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: udp + label: "TCP Service Port Configuration" schema: - type: string - default: "UDP" - hidden: true - enum: - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: port - label: "container port" - schema: - type: int - default: 3478 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 3478 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36037 - required: true + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 3478 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3478 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36037 + required: true - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -325,9 +441,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -346,9 +468,7 @@ questions: schema: type: string default: "100Gi" - - - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -402,234 +522,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: tcp - label: "TCP Ingress Configuration" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable TCP Ingress" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: type - label: "Select Ingress Type" - schema: - type: string - default: "TCP" - required: true - editable: false - hidden: true - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "unificom" - required: true - enum: - - value: "unificom" - description: "Unifi Communications TCP: port 8080" - - variable: udp - label: "UDP Ingress Configuration" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable UDP Ingress" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: type - label: "Select Ingress Type" - schema: - type: string - default: "UDP" - required: true - editable: false - hidden: true - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "stun-udp" - required: true - enum: - - value: "stun-udp" - description: "STUN UDP: port 3478" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/incubator/unifi/values.yaml b/charts/incubator/unifi/values.yaml index b89890317e2..3f3075db877 100644 --- a/charts/incubator/unifi/values.yaml +++ b/charts/incubator/unifi/values.yaml @@ -8,47 +8,44 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - envTpl: -# Permissions Settings - UNIFI_GID: "{{ .Values.PUID }}" - UNIFI_UID: "{{ .Values.PGID }}" + # Permissions Settings + UNIFI_GID: "{{ .Values.env.PUID }}" + UNIFI_UID: "{{ .Values.env.PGID }}" -services: +service: main: - port: - port: 8443 - tcp: + ports: + main: + port: 8443 + comm: enabled: true type: ClusterIP - port: - port: 8080 - protocol: TCP - targetPort: 8080 - udp: + ports: + tcp: + enabled: true + port: 8080 + protocol: TCP + stun: enabled: true type: ClusterIP - port: - port: 3478 - protocol: UDP - targetPort: 3478 + ports: + udp: + enabled: true + port: 3478 + protocol: UDP -env: {} +env: # TZ: - # PUID: - # PGID: + PUID: "568" + PGID: "568" persistence: config: enabled: true mountPath: "/unifi" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/library/common-test/Chart.yaml b/charts/library/common-test/Chart.yaml index ce562118ed3..7df02189db9 100644 --- a/charts/library/common-test/Chart.yaml +++ b/charts/library/common-test/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: common-test -version: 3.0.0 +version: 3.0.1 # upstream_version: appVersion: none description: Helper chart to test different use cases of the common library diff --git a/charts/library/common-test/ci/basic-values.yaml b/charts/library/common-test/ci/basic-values.yaml new file mode 100644 index 00000000000..887d72a801d --- /dev/null +++ b/charts/library/common-test/ci/basic-values.yaml @@ -0,0 +1,22 @@ +image: + repository: b4bz/homer + tag: latest + pullPolicy: IfNotPresent + +service: + main: + ports: + main: + port: 8080 + +ingress: + main: + enabled: true + +probes: + liveness: + enabled: true + readiness: + enabled: true + startup: + enabled: true diff --git a/charts/library/common-test/values.yaml b/charts/library/common-test/values.yaml index f12e55c316f..6937e0fa59c 100644 --- a/charts/library/common-test/values.yaml +++ b/charts/library/common-test/values.yaml @@ -2,8 +2,3 @@ image: repository: b4bz/homer tag: latest pullPolicy: IfNotPresent - -services: - main: - port: - port: 8080 diff --git a/charts/library/common/Chart.yaml b/charts/library/common/Chart.yaml index 7191e8ad6f6..803d3d2284b 100644 --- a/charts/library/common/Chart.yaml +++ b/charts/library/common/Chart.yaml @@ -19,4 +19,4 @@ name: common sources: - https://github.com/truecharts/apps/tree/master/library/common type: library -version: 4.1.5 +version: 4.1.6 diff --git a/charts/library/common/values.yaml b/charts/library/common/values.yaml index 5e5c87dbfd3..644de4cb3ee 100644 --- a/charts/library/common/values.yaml +++ b/charts/library/common/values.yaml @@ -412,239 +412,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 diff --git a/charts/stable/collabora-online/Chart.yaml b/charts/stable/collabora-online/Chart.yaml index eb007311121..454a824bf5d 100644 --- a/charts/stable/collabora-online/Chart.yaml +++ b/charts/stable/collabora-online/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: collabora-online -version: 3.1.6 +version: 4.0.0 # upstream_version: appVersion: "auto" description: Collabora Online Development Edition – an awesome, Online Office suite image suitable for home use. @@ -19,7 +19,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/collabora-online/SCALE/ix_values.yaml b/charts/stable/collabora-online/SCALE/ix_values.yaml index cc7a037dea2..5647e9af45e 100644 --- a/charts/stable/collabora-online/SCALE/ix_values.yaml +++ b/charts/stable/collabora-online/SCALE/ix_values.yaml @@ -8,14 +8,6 @@ image: repository: collabora/code tag: 6.4.8.4 pullPolicy: IfNotPresent - -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: null - runAsGroup: null - fsGroup: null - ## # Most other defaults are set in questions.yaml # For other options please refer to the wiki, default_values.yaml or the common library chart diff --git a/charts/stable/collabora-online/SCALE/questions.yaml b/charts/stable/collabora-online/SCALE/questions.yaml index 323df49a7aa..4fc412d184a 100644 --- a/charts/stable/collabora-online/SCALE/questions.yaml +++ b/charts/stable/collabora-online/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -42,7 +44,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -55,24 +56,19 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - # environmentVariables Configuraiton - variable: env group: "Configuration" - label: "Environment Variables Configuration" + label: "Image Environment" schema: type: dict - required: true attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" - variable: domain label: "Domains will be using collabora" description: 'Use backslash "\" before dots ".". Use pipe "|" to separate multiple domains' @@ -111,14 +107,14 @@ questions: type: string default: 'collabora\.domain\.tld' # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -131,8 +127,6 @@ questions: label: "Value" schema: type: string - - # Service Configuration # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -140,14 +134,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -159,58 +153,89 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 9980 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 9980 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36004 - required: true + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 9980 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9980 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36004 + required: true # Reverse Proxy - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -264,90 +289,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" diff --git a/charts/stable/collabora-online/values.yaml b/charts/stable/collabora-online/values.yaml index 8bb78064f4d..62592430ad2 100644 --- a/charts/stable/collabora-online/values.yaml +++ b/charts/stable/collabora-online/values.yaml @@ -6,19 +6,12 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: null - runAsGroup: null - fsGroup: null - -services: +service: main: type: NodePort - port: - port: 9980 - nodePort: 30980 + ports: + main: + port: 9980 env: domain: nextcloud\.domain\.tld diff --git a/charts/stable/deepstack-cpu/Chart.yaml b/charts/stable/deepstack-cpu/Chart.yaml index e43b6ac2088..d0cbd1fd1ae 100644 --- a/charts/stable/deepstack-cpu/Chart.yaml +++ b/charts/stable/deepstack-cpu/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: deepstack-cpu -version: 1.0.4 +version: 2.0.0 # upstream_version: appVersion: "auto" description: DeepStack AI provides AI features including Face Recognition, Object Detection, Scene Recognition and custom AI Models @@ -19,7 +19,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/deepstack-cpu/SCALE/ix_values.yaml b/charts/stable/deepstack-cpu/SCALE/ix_values.yaml index 7822f2d7128..4bff0fb6e80 100644 --- a/charts/stable/deepstack-cpu/SCALE/ix_values.yaml +++ b/charts/stable/deepstack-cpu/SCALE/ix_values.yaml @@ -9,18 +9,10 @@ image: pullPolicy: IfNotPresent tag: cpu-2021.02.1 -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - supplementalGroups: [24, 44, 107] - envTpl: -# Permissions Settings - USER_ID: "{{ .Values.PUID }}" - GROUP_ID: "{{ .Values.PGID }}" - + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" ## # Most other defaults are set in questions.yaml # For other options please refer to the wiki, default_values.yaml or the common library chart diff --git a/charts/stable/deepstack-cpu/SCALE/questions.yaml b/charts/stable/deepstack-cpu/SCALE/questions.yaml index 7f38241590c..c1ff6cba0f6 100644 --- a/charts/stable/deepstack-cpu/SCALE/questions.yaml +++ b/charts/stable/deepstack-cpu/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -26,7 +28,6 @@ portals: ports: - "$kubernetes-resource_configmap_portal_port" questions: - # Portal - variable: portal group: "Container Image" @@ -43,7 +44,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -56,44 +56,38 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - + # Configure Enviroment Variables - variable: env group: "Configuration" label: "Image Environment" schema: type: dict attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" - variable: VISION-FACE label: "VISION-FACE" description: "Enables Face Detection" @@ -147,24 +141,41 @@ questions: type: string default: "/modelstore/detection" required: true - + - variable: envList + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string # Enable Host Networking - - variable: hostNetwork group: "Networking" label: "Enable Host Networking" schema: type: boolean default: false - - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -176,58 +187,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 5000 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 5000 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36005 - required: true - -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 5000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5000 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36005 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -265,9 +306,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -286,7 +333,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -340,124 +387,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false diff --git a/charts/stable/deepstack-cpu/values.yaml b/charts/stable/deepstack-cpu/values.yaml index 8131bbfe60c..196439a072e 100644 --- a/charts/stable/deepstack-cpu/values.yaml +++ b/charts/stable/deepstack-cpu/values.yaml @@ -8,44 +8,36 @@ image: strategy: type: Recreate -services: +service: main: enabled: true - port: - port: 5000 - -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 + ports: + main: + port: 5000 envTpl: -# Permissions Settings - USER_ID: "{{ .Values.PUID }}" - GROUP_ID: "{{ .Values.PGID }}" + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" env: + PUID: "568" + PGID: "568" # TZ: UTC VISION-FACE: "True" VISION-DETECTION: "True" VISION-SCENE: "True" - MODELSTORE-DETECTION: "/modelstore/detection" # Path to custom models (needs to be on documentation) - MODE: "High" # High|Medium|Low - # ADMIN-KEY: "" # Deprecated since it got OpenSource? or optional? - # API-KEY: "" # Deprecated since it got OpenSource? or optional?podSecurityContext: + # Path to custom models (needs to be on documentation) + MODELSTORE-DETECTION: "/modelstore/detection" + # High|Medium|Low + MODE: "High" persistence: config: enabled: true mountPath: "/datastore" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" - -## TrueCharts Values - -ingress: - main: - enabled: false diff --git a/charts/stable/emby/Chart.yaml b/charts/stable/emby/Chart.yaml index 9d18e3bde9e..2b4d454e2cb 100644 --- a/charts/stable/emby/Chart.yaml +++ b/charts/stable/emby/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: emby -version: 3.1.6 +version: 4.0.0 # upstream_version: appVersion: "auto" description: Emby Server is a home media server @@ -20,7 +20,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/emby/SCALE/ix_values.yaml b/charts/stable/emby/SCALE/ix_values.yaml index 374eaf6ab77..041b6616872 100644 --- a/charts/stable/emby/SCALE/ix_values.yaml +++ b/charts/stable/emby/SCALE/ix_values.yaml @@ -9,7 +9,13 @@ image: pullPolicy: IfNotPresent tag: v4.5.4.0 - +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] ## # Most other defaults are set in questions.yaml # For other options please refer to the wiki, default_values.yaml or the common library chart diff --git a/charts/stable/emby/SCALE/questions.yaml b/charts/stable/emby/SCALE/questions.yaml index c3e377c8e9d..2d3e51ca934 100644 --- a/charts/stable/emby/SCALE/questions.yaml +++ b/charts/stable/emby/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,57 +121,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8096 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8096 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36006 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8096 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36006 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -199,9 +240,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -220,7 +267,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,112 +322,17 @@ questions: type: hostpath required: true # Specify GPU configuration - - variable: gpuConfiguration + - variable: scaleGPU label: "GPU Configuration" group: "Resources and Devices" schema: type: dict $ref: - - "definitions/gpuConfiguration" + - "definitions/scaleGPU" attrs: [] - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -392,7 +344,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict @@ -414,18 +366,6 @@ questions: schema: type: int default: 568 - - variable: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [44, 107] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - variable: fsGroup label: "fsGroup" description: "The group that should own ALL storage." diff --git a/charts/stable/emby/values.yaml b/charts/stable/emby/values.yaml index 38ef2fcf7da..c50b2d79fa9 100644 --- a/charts/stable/emby/values.yaml +++ b/charts/stable/emby/values.yaml @@ -9,20 +9,25 @@ strategy: type: Recreate # 44=video 107=render -# Configure the Security Context for the Pod podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 supplementalGroups: [44, 107] -services: +service: main: - port: - port: 8096 + ports: + main: + port: 8096 persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/esphome/Chart.yaml b/charts/stable/esphome/Chart.yaml index 3481227257e..da1548d274b 100644 --- a/charts/stable/esphome/Chart.yaml +++ b/charts/stable/esphome/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: esphome -version: 3.1.6 +version: 4.0.0 upstream_version: 4.3.1 appVersion: "auto" description: ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems. @@ -19,7 +19,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/esphome/SCALE/questions.yaml b/charts/stable/esphome/SCALE/questions.yaml index a84aad4c1d1..b66da73b322 100644 --- a/charts/stable/esphome/SCALE/questions.yaml +++ b/charts/stable/esphome/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -53,25 +55,29 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - # Configure Enviroment Variables - - variable: environment + - variable: env + group: "Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" group: "Configuration" - label: "Environment Variables" schema: type: list default: [] items: - - variable: environmentVariable - label: "" + - variable: envItem + label: "Environment Variable" schema: type: dict attrs: @@ -83,7 +89,6 @@ questions: label: "Value" schema: type: string - # Service Configuration # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -91,14 +96,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -110,56 +115,87 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 6052 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 6052 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36007 - required: true + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 6052 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6052 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36007 + required: true # Configure app volumes - variable: persistence label: "Integrated Persistent Storage" @@ -198,9 +234,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -250,9 +292,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -271,7 +319,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -325,96 +373,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -426,7 +387,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/stable/esphome/values.yaml b/charts/stable/esphome/values.yaml index cfe87616195..01060dc6920 100644 --- a/charts/stable/esphome/values.yaml +++ b/charts/stable/esphome/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 6052 + ports: + main: + port: 6052 env: {} # ESPHOME_DASHBOARD_USE_PING: true @@ -26,7 +27,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/handbrake/Chart.yaml b/charts/stable/handbrake/Chart.yaml index 6df53a51fe5..cd7a895db5e 100644 --- a/charts/stable/handbrake/Chart.yaml +++ b/charts/stable/handbrake/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: handbrake -version: 3.1.6 +version: 4.0.0 # upstream_version: appVersion: "auto" description: HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. @@ -21,7 +21,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/handbrake/SCALE/ix_values.yaml b/charts/stable/handbrake/SCALE/ix_values.yaml index 23c3c4086fe..a47a4681e9c 100644 --- a/charts/stable/handbrake/SCALE/ix_values.yaml +++ b/charts/stable/handbrake/SCALE/ix_values.yaml @@ -9,20 +9,11 @@ image: tag: v1.23.2 pullPolicy: IfNotPresent -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - supplementalGroups: [24, 44, 107] - #All values here are set as the docker defaults. envTpl: -# Permissions Settings - USER_ID: "{{ .Values.PUID }}" - GROUP_ID: "{{ .Values.PGID }}" - + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" ## # Most other defaults are set in questions.yaml # For other options please refer to the wiki, default_values.yaml or the common library chart diff --git a/charts/stable/handbrake/SCALE/questions.yaml b/charts/stable/handbrake/SCALE/questions.yaml index 68b7ab798df..a29b9a2a408 100644 --- a/charts/stable/handbrake/SCALE/questions.yaml +++ b/charts/stable/handbrake/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -26,7 +28,6 @@ portals: ports: - "$kubernetes-resource_configmap_portal_port" questions: - # Portal - variable: portal group: "Container Image" @@ -43,7 +44,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -56,44 +56,37 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - # Configure Enviroment Variables - - variable: environmentVariables - label: "Image environment" - group: "Configuration" - schema: - type: list - default: [] - items: - - variable: environmentVariable - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: env group: "Configuration" label: "Image Environment" schema: type: dict attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" - variable: gui label: "GUI Settings" description: "Always read description before changing a value here. Also refer to README" @@ -103,28 +96,28 @@ questions: show_subquestions_if: true subquestions: - variable: DISPLAY_WIDTH - label: "DISPLAY_WIDTH" + label: "DISPLAY_WIDTH" description: "Width (in pixels) of the application's window." schema: type: string default: "1280" required: true - variable: DISPLAY_HEIGHT - label: "DISPLAY_HEIGHT" + label: "DISPLAY_HEIGHT" description: "Height (in pixels) of the application's window." schema: type: string default: "768" required: true - variable: SECURE_CONNECTION - label: "SECURE_CONNECTION" + label: "SECURE_CONNECTION" description: "When set to 1, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details." schema: type: string default: "0" required: true - variable: VNC_PASSWORD - label: "VNC_PASSWORD" + label: "VNC_PASSWORD" description: "Password needed to connect to the application's GUI. See the VNC Password section for more details." schema: private: true @@ -139,52 +132,68 @@ questions: show_subquestions_if: true subquestions: - variable: AUTOMATED_CONVERSION_PRESET - label: "AUTOMATED_CONVERSION_PRESET" + label: "AUTOMATED_CONVERSION_PRESET" description: "HandBrake preset used by the automatic video converter. Identification of a preset must follow the format /" schema: type: string - default: 'General/Very Fast 1080p30' + default: "General/Very Fast 1080p30" required: true - variable: AUTOMATED_CONVERSION_FORMAT - label: "AUTOMATED_CONVERSION_FORMAT" + label: "AUTOMATED_CONVERSION_FORMAT" description: "Video container format used by the automatic video converter for output files. This is typically the video filename extension." schema: type: string - default: 'mp4' + default: "mp4" required: true - variable: AUTOMATED_CONVERSION_KEEP_SOURCE - label: "AUTOMATED_CONVERSION_KEEP_SOURCE" + label: "AUTOMATED_CONVERSION_KEEP_SOURCE" description: "When set to 0, a video that has been successfully converted is removed from the watch folder." schema: type: string default: "1" required: true - variable: AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION - label: "AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION" + label: "AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION" description: "When set to ignore, a non-video file found in the watch folder is ignored. If set to copy, a non-video file is copied as-is to the output folder." schema: type: string - default: 'ignore' + default: "ignore" required: true - - + - variable: envList + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string # Enable Host Networking - - variable: hostNetwork group: "Networking" label: "Enable Host Networking" schema: type: boolean default: false - - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -196,58 +205,89 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 5800 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 5800 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36002 - required: true + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 5800 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5800 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36002 + required: true - variable: vnc - label: "VNC service" + label: "VNC Service" description: "VNC Service" schema: type: dict @@ -259,58 +299,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: vnc + label: "TCP Service Port Configuration" schema: - type: string - default: "TCP" - hidden: true - enum: - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: port - label: "container port" - schema: - type: int - default: 5900 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 5900 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36003 - required: true - -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 5900 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5900 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36003 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -348,9 +418,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -369,7 +445,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -458,124 +534,3 @@ questions: required: true default: "/dev/ttyACM0" editable: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false diff --git a/charts/stable/handbrake/values.yaml b/charts/stable/handbrake/values.yaml index b248558d259..8662a4bd6cc 100644 --- a/charts/stable/handbrake/values.yaml +++ b/charts/stable/handbrake/values.yaml @@ -6,44 +6,39 @@ image: strategy: type: Recreate -startAsRoot: true - -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - supplementalGroups: [24, 44, 107] - -services: +service: main: - port: - port: 5800 + ports: + main: + port: 5800 vnc: enabled: true type: ClusterIP - port: - port: 5900 - protocol: "TCP" - targetPort: 5900 + ports: + vnc: + enabled: true + port: 5900 + protocol: "TCP" # All values here are set as the docker defaults. envTpl: -# Permissions Settings - USER_ID: "{{ .Values.PUID }}" - GROUP_ID: "{{ .Values.PGID }}" + # Permissions Settings + USER_ID: "{{ .Values.env.PUID }}" + GROUP_ID: "{{ .Values.env.PGID }}" env: -# General Settings + # Permissions Settings + PUID: "568" + PGID: "568" + # General Settings KEEP_APP_RUNNING: "0" CLEAN_TMP_DIR: "1" -# GUI Settings + # GUI Settings DISPLAY_WIDTH: "1280" DISPLAY_HEIGHT: "768" SECURE_CONNECTION: "0" VNC_PASSWORD: -# Automated Conversion Preset + # Automated Conversion Preset AUTOMATED_CONVERSION_PRESET: "General/Very Fast 1080p30" AUTOMATED_CONVERSION_FORMAT: "mp4" AUTOMATED_CONVERSION_KEEP_SOURCE: "1" @@ -53,7 +48,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/home-assistant/Chart.yaml b/charts/stable/home-assistant/Chart.yaml index cb3b2bfabb1..ebf23a53a54 100644 --- a/charts/stable/home-assistant/Chart.yaml +++ b/charts/stable/home-assistant/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: home-assistant -version: 3.1.6 +version: 4.0.0 upstream_version: 5.3.0 appVersion: "auto" description: home-assistant App for TrueNAS SCALE @@ -21,7 +21,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: # ## postgresql is currently not ported to SCALE yet. # - name: postgresql diff --git a/charts/stable/home-assistant/SCALE/questions.yaml b/charts/stable/home-assistant/SCALE/questions.yaml index dfec12889c1..42044155b2c 100644 --- a/charts/stable/home-assistant/SCALE/questions.yaml +++ b/charts/stable/home-assistant/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -53,16 +55,6 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - variable: git group: "Configuration" label: "Home-Assistant Git Settings" @@ -79,15 +71,46 @@ questions: schema: type: string default: "" + - variable: env + group: "Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -107,14 +130,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -126,57 +149,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8123 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8123 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36008 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8123 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8123 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36008 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -214,9 +268,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -235,7 +295,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -324,175 +384,3 @@ questions: required: true default: "/dev/ttyACM0" editable: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [5, 20, 24] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "The group that should own ALL storage." - schema: - type: int - default: 0 - - variable: fsGroupChangePolicy - label: "When should we chmod/chown?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/stable/home-assistant/values.yaml b/charts/stable/home-assistant/values.yaml index f53ebfe58fe..adfdd1a3a5c 100644 --- a/charts/stable/home-assistant/values.yaml +++ b/charts/stable/home-assistant/values.yaml @@ -8,22 +8,14 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - supplementalGroups: [5, 20, 24] - env: {} # TZ: -services: +service: main: - port: - port: 8123 - nodePort: 30023 + ports: + main: + port: 8123 # # Enable devices to be discoverable # hostNetwork: true @@ -53,7 +45,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/jackett/Chart.yaml b/charts/stable/jackett/Chart.yaml index ac5e9ec805e..7bd4b93e724 100644 --- a/charts/stable/jackett/Chart.yaml +++ b/charts/stable/jackett/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: jackett -version: 3.1.6 +version: 4.0.0 upstream_version: 7.0.1 appVersion: "auto" description: API Support for your favorite torrent trackers. @@ -21,7 +21,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/jackett/SCALE/questions.yaml b/charts/stable/jackett/SCALE/questions.yaml index 6de48d7f95a..73a432f411b 100644 --- a/charts/stable/jackett/SCALE/questions.yaml +++ b/charts/stable/jackett/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -53,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -91,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -110,57 +121,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 9117 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 9117 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36009 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 9117 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9117 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36009 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -198,9 +240,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -219,7 +267,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -273,104 +321,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -382,7 +335,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/stable/jackett/values.yaml b/charts/stable/jackett/values.yaml index 77ee8243700..656c801f421 100644 --- a/charts/stable/jackett/values.yaml +++ b/charts/stable/jackett/values.yaml @@ -9,11 +9,12 @@ strategy: type: Recreate -services: +service: main: enabled: true - port: - port: 9117 + ports: + main: + port: 9117 env: {} # TZ: UTC @@ -25,22 +26,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" - - -## TrueCharts Values - -ingress: - main: - enabled: true - # Used when including ingress using {{ include "common.ingress" . }} - type: "HTTP" - entrypoint: "websecure" - certType: "" - annotations: {} - hosts: - - host: chart-example.local - path: / diff --git a/charts/stable/jellyfin/Chart.yaml b/charts/stable/jellyfin/Chart.yaml index f214464c9f4..d81f52347ef 100644 --- a/charts/stable/jellyfin/Chart.yaml +++ b/charts/stable/jellyfin/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: jellyfin -version: 3.1.6 +version: 4.0.0 upstream_version: 4.2.1 appVersion: "auto" description: Jellyfin is a Free Software Media System @@ -21,7 +21,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/jellyfin/SCALE/ix_values.yaml b/charts/stable/jellyfin/SCALE/ix_values.yaml index 1c1ab428842..13fabd7f7fe 100644 --- a/charts/stable/jellyfin/SCALE/ix_values.yaml +++ b/charts/stable/jellyfin/SCALE/ix_values.yaml @@ -9,7 +9,13 @@ image: pullPolicy: IfNotPresent tag: 10.7.5 - +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] ## # Most other defaults are set in questions.yaml # For other options please refer to the wiki, default_values.yaml or the common library chart diff --git a/charts/stable/jellyfin/SCALE/questions.yaml b/charts/stable/jellyfin/SCALE/questions.yaml index 6899287ca23..c3713c7407b 100644 --- a/charts/stable/jellyfin/SCALE/questions.yaml +++ b/charts/stable/jellyfin/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,57 +121,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8096 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8096 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36010 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8096 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8096 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36010 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -199,9 +240,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -220,7 +267,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,112 +322,17 @@ questions: type: hostpath required: true # Specify GPU configuration - - variable: gpuConfiguration + - variable: scaleGPU label: "GPU Configuration" group: "Resources and Devices" schema: type: dict $ref: - - "definitions/gpuConfiguration" + - "definitions/scaleGPU" attrs: [] - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -392,7 +344,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict @@ -414,18 +366,6 @@ questions: schema: type: int default: 568 - - variable: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [44, 107] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - variable: fsGroup label: "fsGroup" description: "The group that should own ALL storage." diff --git a/charts/stable/jellyfin/values.yaml b/charts/stable/jellyfin/values.yaml index a038fbf8c6a..d12fe40141d 100644 --- a/charts/stable/jellyfin/values.yaml +++ b/charts/stable/jellyfin/values.yaml @@ -10,18 +10,24 @@ strategy: # 44=video 107=render podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 supplementalGroups: [44, 107] -services: +service: main: - port: - port: 8096 + ports: + main: + port: 8096 persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/kms/Chart.yaml b/charts/stable/kms/Chart.yaml index 0a36024f4cc..2adfbb6a94b 100644 --- a/charts/stable/kms/Chart.yaml +++ b/charts/stable/kms/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: kms -version: 3.1.6 +version: 4.0.0 # upstream_version: appVersion: "minimal" description: Private Windows Activation Server for development and testing @@ -17,7 +17,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/kms/SCALE/questions.yaml b/charts/stable/kms/SCALE/questions.yaml index 5035ba7c633..f3868dc77ca 100644 --- a/charts/stable/kms/SCALE/questions.yaml +++ b/charts/stable/kms/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -33,7 +35,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -46,25 +47,46 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -84,14 +106,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -103,58 +125,89 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 1688 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 1688 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36011 - required: true -## TrueCharts Specific - - variable: customStorage + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 1688 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1688 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36011 + required: true + ## TrueCharts Specific + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -208,130 +261,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "KMS Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable TCP Reverse Proxy" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: type - label: "Select Reverse Proxy Type" - schema: - type: string - default: "TCP" - required: true - editable: false - hidden: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - type: string - default: "kms" - required: true - enum: - - value: "kms" - description: "KMS: port 1688" - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 0 - - variable: fsGroup - label: "The group that should own ALL storage." - schema: - type: int - default: 0 - - variable: fsGroupChangePolicy - label: "When should we chmod/chown?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/stable/kms/values.yaml b/charts/stable/kms/values.yaml index 72f5ad79aa1..8e468550958 100644 --- a/charts/stable/kms/values.yaml +++ b/charts/stable/kms/values.yaml @@ -8,14 +8,8 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - -services: +service: main: - port: - port: 1688 + ports: + main: + port: 1688 diff --git a/charts/stable/lidarr/Chart.yaml b/charts/stable/lidarr/Chart.yaml index 28732cdb16b..0fc6daaab9c 100644 --- a/charts/stable/lidarr/Chart.yaml +++ b/charts/stable/lidarr/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: lidarr -version: 3.1.6 +version: 4.0.0 upstream_version: 7.1.0 appVersion: "auto" description: Looks and smells like Sonarr but made for music @@ -21,7 +21,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/lidarr/SCALE/questions.yaml b/charts/stable/lidarr/SCALE/questions.yaml index 2182ab54480..8fb68c861e3 100644 --- a/charts/stable/lidarr/SCALE/questions.yaml +++ b/charts/stable/lidarr/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,57 +121,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8686 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8686 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36012 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8686 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8686 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36012 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -199,9 +240,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -220,7 +267,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -274,104 +321,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -383,7 +335,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/stable/lidarr/values.yaml b/charts/stable/lidarr/values.yaml index dd450c6f70a..d0df88ce225 100644 --- a/charts/stable/lidarr/values.yaml +++ b/charts/stable/lidarr/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 8686 + ports: + main: + port: 8686 env: {} # TZ: UTC @@ -43,7 +44,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/ombi/Chart.yaml b/charts/stable/ombi/Chart.yaml index 4eb266f7a4d..bfcfa055520 100644 --- a/charts/stable/ombi/Chart.yaml +++ b/charts/stable/ombi/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: ombi -version: 3.1.6 +version: 4.0.0 upstream_version: 8.0.1 appVersion: "auto" description: Want a Movie or TV Show on Plex or Emby? Use Ombi! @@ -24,7 +24,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/ombi/SCALE/questions.yaml b/charts/stable/ombi/SCALE/questions.yaml index f488835d6fe..878f1542ebf 100644 --- a/charts/stable/ombi/SCALE/questions.yaml +++ b/charts/stable/ombi/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -92,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -111,57 +121,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 3579 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 3579 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36013 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 3579 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3579 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36013 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -199,9 +240,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -220,7 +267,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -274,104 +321,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -383,7 +335,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/stable/ombi/values.yaml b/charts/stable/ombi/values.yaml index dd6dbe01b36..029f935ea7f 100644 --- a/charts/stable/ombi/values.yaml +++ b/charts/stable/ombi/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 3579 + ports: + main: + port: 3579 env: {} # TZ: UTC @@ -22,7 +23,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/plex/Chart.yaml b/charts/stable/plex/Chart.yaml index 39243362aea..d0ed5861e49 100644 --- a/charts/stable/plex/Chart.yaml +++ b/charts/stable/plex/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: plex -version: 2.1.6 +version: 3.0.0 upstream_version: 4.2.1 appVersion: "auto" description: Plex Media Server @@ -17,7 +17,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/plex/SCALE/ix_values.yaml b/charts/stable/plex/SCALE/ix_values.yaml index 4a162b70b2b..407a82054aa 100644 --- a/charts/stable/plex/SCALE/ix_values.yaml +++ b/charts/stable/plex/SCALE/ix_values.yaml @@ -9,6 +9,13 @@ image: pullPolicy: IfNotPresent tag: v1.22.1.4228-724c56e62 +# 44=video 107=render +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [44, 107] ## # Most other defaults are set in questions.yaml # For other options please refer to the wiki, default_values.yaml or the common library chart diff --git a/charts/stable/plex/SCALE/questions.yaml b/charts/stable/plex/SCALE/questions.yaml index d774afbc2cb..eac9dc00a39 100644 --- a/charts/stable/plex/SCALE/questions.yaml +++ b/charts/stable/plex/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,22 +55,19 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - variable: env group: "Configuration" label: "Image Environment" schema: type: dict attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" - variable: ADVERTISE_IP label: "Advertise IP" description: "IP to advertise to Plex" @@ -88,15 +86,21 @@ questions: schema: type: string default: "" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -116,14 +120,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -135,57 +139,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTPS" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 32400 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 32400 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 32400 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTPS" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 32400 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 32400 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 32400 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -223,9 +258,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -244,7 +285,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -299,115 +340,17 @@ questions: type: hostpath required: true # Specify GPU configuration - - variable: gpuConfiguration + - variable: scaleGPU label: "GPU Configuration" group: "Resources and Devices" schema: type: dict $ref: - - "definitions/gpuConfiguration" + - "definitions/scaleGPU" attrs: [] - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - value: "plex" - description: "Plex: HTTPS/TLS port 32400" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -419,7 +362,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict @@ -441,18 +384,6 @@ questions: schema: type: int default: 568 - - variable: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [44, 107] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - variable: fsGroup label: "fsGroup" description: "The group that should own ALL storage." diff --git a/charts/stable/plex/values.yaml b/charts/stable/plex/values.yaml index 80a60ea41b6..4407c045b4a 100644 --- a/charts/stable/plex/values.yaml +++ b/charts/stable/plex/values.yaml @@ -10,18 +10,24 @@ strategy: # 44=video 107=render podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 supplementalGroups: [44, 107] -services: +service: main: - port: - port: 32400 + ports: + main: + port: 32400 persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/radarr/Chart.yaml b/charts/stable/radarr/Chart.yaml index 47ed4970fc8..f02b34ccee4 100644 --- a/charts/stable/radarr/Chart.yaml +++ b/charts/stable/radarr/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: radarr -version: 3.1.6 +version: 4.0.0 upstream_version: 9.1.0 appVersion: "auto" description: A fork of Sonarr to work with movies à la Couchpotato @@ -21,7 +21,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/radarr/SCALE/questions.yaml b/charts/stable/radarr/SCALE/questions.yaml index 86c7532944b..4325fe36d41 100644 --- a/charts/stable/radarr/SCALE/questions.yaml +++ b/charts/stable/radarr/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,26 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -93,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -112,57 +121,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 7878 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 7878 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36016 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 7878 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 7878 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36016 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -200,9 +240,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,7 +267,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,103 +321,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -383,7 +335,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/stable/radarr/values.yaml b/charts/stable/radarr/values.yaml index 73d8136462a..703b9625db6 100644 --- a/charts/stable/radarr/values.yaml +++ b/charts/stable/radarr/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 7878 + ports: + main: + port: 7878 env: {} # TZ: UTC @@ -43,7 +44,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/sonarr/Chart.yaml b/charts/stable/sonarr/Chart.yaml index 4ad5a966ba7..566a0a4fb59 100644 --- a/charts/stable/sonarr/Chart.yaml +++ b/charts/stable/sonarr/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: sonarr -version: 3.1.6 +version: 4.0.0 upstream_version: 9.1.0 appVersion: "auto" description: Smart PVR for newsgroup and bittorrent users @@ -21,7 +21,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/sonarr/SCALE/questions.yaml b/charts/stable/sonarr/SCALE/questions.yaml index 32868a8e891..eef18b96653 100644 --- a/charts/stable/sonarr/SCALE/questions.yaml +++ b/charts/stable/sonarr/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -85,7 +95,6 @@ questions: label: "Value" schema: type: string - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -93,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -112,57 +121,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8989 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8989 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36017 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8989 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8989 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36017 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -200,9 +240,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,7 +267,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,104 +321,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -384,7 +335,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/stable/sonarr/values.yaml b/charts/stable/sonarr/values.yaml index 6ba6a483062..41f7eb4bc9a 100644 --- a/charts/stable/sonarr/values.yaml +++ b/charts/stable/sonarr/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 8989 + ports: + main: + port: 8989 env: {} # TZ: UTC @@ -43,7 +44,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/syncthing/Chart.yaml b/charts/stable/syncthing/Chart.yaml index ca0143bac94..109d6bb15f5 100644 --- a/charts/stable/syncthing/Chart.yaml +++ b/charts/stable/syncthing/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: syncthing -version: 3.1.6 +version: 4.0.0 # upstream_version: appVersion: "auto" description: P2P file synchronization application @@ -18,7 +18,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/syncthing/SCALE/questions.yaml b/charts/stable/syncthing/SCALE/questions.yaml index 9110b80dc08..41be9541f12 100644 --- a/charts/stable/syncthing/SCALE/questions.yaml +++ b/charts/stable/syncthing/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -53,16 +55,28 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - + - variable: env + group: "Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -75,7 +89,6 @@ questions: label: "Value" schema: type: string - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -83,14 +96,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -102,57 +115,229 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8384 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8384 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36024 + required: true + - variable: listeners + label: "Syncthing Listening Service" + description: "This service is used to process incoming connections directly to this Syncthing instance" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + required: true + - variable: exetrnalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + required: true schema: type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "Container port" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: tcp + label: "TCP Service Port Configuration" schema: - type: int - default: 8384 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 22000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 22000 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 22000 + required: true + - variable: udp + label: "UDP Service Port Configuration" schema: - type: int - default: 8384 - editable: false - hidden: true - # - variable: nodePort - # label: "Host nodePort to expose to (optional)" - # description: "Only gets used when nodePort is selected" - # schema: - # type: int - # min: 9000 - # max: 65535 - # default: 36024 - # required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 22000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 22000 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 22000 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -190,9 +375,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -211,7 +402,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -265,96 +456,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -366,7 +470,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/stable/syncthing/values.yaml b/charts/stable/syncthing/values.yaml index b06778687b7..8b4ac24f780 100644 --- a/charts/stable/syncthing/values.yaml +++ b/charts/stable/syncthing/values.yaml @@ -3,20 +3,22 @@ image: repository: syncthing/syncthing pullPolicy: IfNotPresent - tag: 1.16 + tag: "1.16" strategy: type: Recreate -services: +service: main: - port: - port: 8384 + ports: + main: + port: 8384 persistence: config: enabled: true - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/tautulli/Chart.yaml b/charts/stable/tautulli/Chart.yaml index eae5dd5c98e..841ead7dab6 100644 --- a/charts/stable/tautulli/Chart.yaml +++ b/charts/stable/tautulli/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: tautulli -version: 3.1.6 +version: 4.0.0 upstream_version: 7.0.1 appVersion: "auto" description: A Python based monitoring and tracking tool for Plex Media Server @@ -20,7 +20,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/tautulli/SCALE/questions.yaml b/charts/stable/tautulli/SCALE/questions.yaml index 9f6bfe4408d..b33d2586f3b 100644 --- a/charts/stable/tautulli/SCALE/questions.yaml +++ b/charts/stable/tautulli/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,34 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -85,7 +95,6 @@ questions: label: "Value" schema: type: string - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -93,14 +102,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -112,57 +121,88 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8181 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8181 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36018 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8181 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8181 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36018 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -200,9 +240,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -221,7 +267,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -275,104 +321,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -384,7 +335,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/stable/tautulli/values.yaml b/charts/stable/tautulli/values.yaml index 52adfb5e0b5..3b30c9275b0 100644 --- a/charts/stable/tautulli/values.yaml +++ b/charts/stable/tautulli/values.yaml @@ -8,10 +8,11 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 8181 + ports: + main: + port: 8181 env: {} # TZ: UTC @@ -22,7 +23,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/transmission/Chart.yaml b/charts/stable/transmission/Chart.yaml index 71b006f891c..b3d1e86eda7 100644 --- a/charts/stable/transmission/Chart.yaml +++ b/charts/stable/transmission/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: transmission -version: 3.1.6 +version: 4.0.0 # upstream_version: appVersion: "auto" description: API Support for your favorite torrent trackers. @@ -20,7 +20,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/transmission/SCALE/questions.yaml b/charts/stable/transmission/SCALE/questions.yaml index 0656f1e76a2..703f30c0bcf 100644 --- a/charts/stable/transmission/SCALE/questions.yaml +++ b/charts/stable/transmission/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,16 +55,6 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" - schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - variable: transmissionConfig group: "Configuration" label: "Transmission Settings" @@ -245,16 +236,34 @@ questions: schema: type: int default: 14 - + - variable: env + group: "Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -267,7 +276,6 @@ questions: label: "Value" schema: type: string - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -275,14 +283,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -294,59 +302,90 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 9091 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 9091 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36019 - required: true - - variable: tcp - label: "TCP Torrent connections" - description: "This service is used to process incomming torrent connections over TCP" + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 9091 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9091 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36019 + required: true + - variable: torrent + label: "Torrent Service" + description: "Torrent service" schema: type: dict attrs: @@ -357,8 +396,8 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string default: "NodePort" @@ -367,110 +406,123 @@ questions: description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" - schema: - type: dict - attrs: - - variable: protocol - label: "Port Type" - schema: - type: string - default: "TCP" - hidden: true - enum: - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: port - label: "container port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36020 - required: true - - variable: udp - label: "UDP Torrent connections" - description: "This service is used to process incomming torrent connections over UDP" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" schema: + show_if: [["type", "=", "LoadBalancer"]] type: string - default: "NodePort" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - variable: port - label: "Port configuration" + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: tcp + label: "TCP Service Port Configuration" schema: - type: string - default: "UDP" - hidden: true - enum: - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: port - label: "container port" + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36020 + required: true + - variable: udp + label: "UDP Service Port Configuration" schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 51413 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36020 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 51413 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 51413 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36020 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" group: "Storage" @@ -508,9 +560,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -529,7 +587,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -583,104 +641,9 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -692,7 +655,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict diff --git a/charts/stable/transmission/templates/configmap.yaml b/charts/stable/transmission/templates/_configmap.tpl similarity index 78% rename from charts/stable/transmission/templates/configmap.yaml rename to charts/stable/transmission/templates/_configmap.tpl index 452c943a7dc..c12a54c92f1 100644 --- a/charts/stable/transmission/templates/configmap.yaml +++ b/charts/stable/transmission/templates/_configmap.tpl @@ -1,3 +1,6 @@ +{{/* Define the configmap */}} +{{- define "transmission.configmap" -}} +--- apiVersion: v1 kind: ConfigMap metadata: @@ -8,3 +11,4 @@ data: settings.json: | {{- $dict := merge .Values.transmissionConfig .Values.transmissionFixedConfig }} {{- $dict | mustToPrettyJson | nindent 4 }} +{{- end -}} diff --git a/charts/stable/transmission/templates/common.yaml b/charts/stable/transmission/templates/common.yaml index e0195d0d28f..c43b236c179 100644 --- a/charts/stable/transmission/templates/common.yaml +++ b/charts/stable/transmission/templates/common.yaml @@ -27,5 +27,9 @@ subPath: settings.json {{- $_ := set .Values "additionalVolumeMounts" (deepCopy $additionalVolumeMounts) -}} {{- end -}} + {{/* Render the templates */}} {{ include "common.all" . }} + +{{/* Render the configmap */}} +{{ include "transmission.configmap" . }} diff --git a/charts/stable/transmission/values.yaml b/charts/stable/transmission/values.yaml index 158aae7cf4e..58bb783f4dc 100644 --- a/charts/stable/transmission/values.yaml +++ b/charts/stable/transmission/values.yaml @@ -8,25 +8,23 @@ image: strategy: type: Recreate -services: +service: main: - port: - port: 9091 - tcp: + ports: + main: + port: 9091 + torrent: enabled: true type: ClusterIP - port: - port: 51413 - protocol: TCP - targetPort: 51413 - udp: - enabled: true - type: ClusterIP - port: - port: 51413 - protocol: UDP - targetPort: 51413 - + ports: + tcp: + enabled: true + port: 51413 + protocol: TCP + udp: + enabled: true + port: 51413 + protocol: UDP env: {} # TZ: UTC @@ -37,7 +35,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/truecommand/Chart.yaml b/charts/stable/truecommand/Chart.yaml index ae857e1542c..5859c88a4a3 100644 --- a/charts/stable/truecommand/Chart.yaml +++ b/charts/stable/truecommand/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: truecommand -version: 3.1.6 +version: 4.0.0 # upstream_version: 1.1.0 appVersion: "nightly" description: Aggregated management of TrueNAS devices @@ -17,7 +17,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/truecommand/SCALE/questions.yaml b/charts/stable/truecommand/SCALE/questions.yaml index 1701b2417ea..5495f70d44e 100644 --- a/charts/stable/truecommand/SCALE/questions.yaml +++ b/charts/stable/truecommand/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -41,7 +43,6 @@ questions: editable: false type: boolean default: true - # Update Policy - variable: strategyType group: "Container Image" @@ -54,25 +55,46 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Enviroment Variables - - variable: environmentVariables + - variable: envList label: "Image environment" group: "Configuration" schema: type: list default: [] items: - - variable: environmentVariable + - variable: envItem label: "Environment Variable" schema: type: dict @@ -85,7 +107,6 @@ questions: label: "Value" schema: type: string - # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -93,14 +114,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -112,60 +133,91 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36044 - required: true -## TrueCharts Specific + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 80 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 80 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36044 + required: true + ## TrueCharts Specific - variable: persistence label: "Integrated Persistent Storage" - description: "Websocket Service" + description: "Integrated Persistent Storage" group: "Storage" schema: type: dict @@ -201,9 +253,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -222,8 +280,7 @@ questions: schema: type: string default: "100Gi" - - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -277,177 +334,3 @@ questions: schema: type: hostpath required: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" - - - variable: PUID - group: "Advanced" - label: "PUID" - description: "Sets the PUID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - - variable: PGID - group: "Advanced" - label: "PGID" - description: "Sets the PGID env var for LinuxServer.io (compatible) containers" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK" - description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" - schema: - type: string - default: "002" - # Enable privileged - - variable: securityContext - group: "Advanced" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Enable privileged mode for Common-Chart based charts" - schema: - type: boolean - default: false - # Set Pod Security Policy - - variable: podSecurityContext - group: "Advanced" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - 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: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" diff --git a/charts/stable/truecommand/values.yaml b/charts/stable/truecommand/values.yaml index ee4eb28f3a3..ce50c30fda0 100644 --- a/charts/stable/truecommand/values.yaml +++ b/charts/stable/truecommand/values.yaml @@ -8,17 +8,11 @@ image: strategy: type: Recreate -# Configure the Security Context for the Pod -podSecurityContext: - runAsNonRoot: false - runAsUser: 0 - runAsGroup: 0 - fsGroup: 0 - -services: +service: main: - port: - port: 80 + ports: + main: + port: 80 env: {} # TZ: UTC @@ -29,7 +23,8 @@ persistence: data: enabled: true mountPath: "/data" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/charts/stable/vaultwarden/.helmignore b/charts/stable/vaultwarden/.helmignore new file mode 100644 index 00000000000..e559de0a012 --- /dev/null +++ b/charts/stable/vaultwarden/.helmignore @@ -0,0 +1,24 @@ +# 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 diff --git a/charts/stable/vaultwarden/CONFIG.md b/charts/stable/vaultwarden/CONFIG.md new file mode 100644 index 00000000000..6d760c18421 --- /dev/null +++ b/charts/stable/vaultwarden/CONFIG.md @@ -0,0 +1,8 @@ +# Configuration Options + +##### Connecting to other apps +If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Together" guide: +https://truecharts.org/manual/linking/ + +##### Available config options +In the future this page is going to contain an automated list of options available in the installation/edit UI. diff --git a/charts/stable/vaultwarden/Chart.yaml b/charts/stable/vaultwarden/Chart.yaml new file mode 100644 index 00000000000..8c79097ad87 --- /dev/null +++ b/charts/stable/vaultwarden/Chart.yaml @@ -0,0 +1,39 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: vaultwarden +version: 1.0.0 +# upstream_version: +appVersion: "auto" +description: Unofficial Bitwarden compatible server written in Rust +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/stable/vaultwarden +icon: https://raw.githubusercontent.com/bitwarden/brand/master/icons/256x256.png +keywords: + - bitwarden + - bitwardenrs + - bitwarden_rs + - vaultwarden + - password + - rust +sources: + - https://github.com/truecharts/apps/tree/master/incubator/bitwarden + - https://github.com/k8s-at-home/charts/tree/master/charts/stable/bitwardenrs + - https://github.com/dani-garcia/vaultwarden +dependencies: + - name: common + repository: https://truecharts.org/ + version: 4.1.5 + # condition: + - name: postgresql + version: 10.4.3 + repository: https://charts.bitnami.com/bitnami + condition: postgresql.enabled +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: truecharts.org + - name: Ornias1993 + email: kjeld@schouten-lebbing.nl + url: truecharts.org +# annotations: diff --git a/charts/stable/vaultwarden/README.md b/charts/stable/vaultwarden/README.md new file mode 100644 index 00000000000..f3497af5baf --- /dev/null +++ b/charts/stable/vaultwarden/README.md @@ -0,0 +1,56 @@ +# Introduction + +![Version: 1.2.5](https://img.shields.io/badge/Version-1.2.5-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square) + +Unofficial Vaultwarden compatible server written in Rust + +TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation. +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)** + +## Source Code + +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.bitnami.com/bitnami | postgresql | 10.4.2 | +| https://truecharts.org/ | common | 3.5.5 | + +## Installing the Chart + +To install the chart with the release name `Vaultwarden` + +- Open TrueNAS SCALE +- Go to Apps +- Click "Install" for this specific Apps +- Fill out the configuration form + +## Uninstalling the Chart + +To uninstall the `Vaultwarden` deployment + +- Open TrueNAS SCALE +- Go to Apps +- Go to "Installed Apps" +- Expand the menu in the top-right corner of this App +- Click "Remove" for this specific Apps + +The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release. + +## Support + +- See the [Wiki](https://truecharts.org) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) +- Ask a [question](https://github.com/truecharts/apps/discussions) + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +All Rights Reserved - The TrueCharts Project diff --git a/charts/stable/vaultwarden/SCALE/item.yaml b/charts/stable/vaultwarden/SCALE/item.yaml new file mode 100644 index 00000000000..12bd3f41af9 --- /dev/null +++ b/charts/stable/vaultwarden/SCALE/item.yaml @@ -0,0 +1,3 @@ +categories: + - security +icon_url: https://raw.githubusercontent.com/bitwarden/brand/master/icons/256x256.png diff --git a/charts/stable/vaultwarden/SCALE/ix_values.yaml b/charts/stable/vaultwarden/SCALE/ix_values.yaml new file mode 100644 index 00000000000..5054d940525 --- /dev/null +++ b/charts/stable/vaultwarden/SCALE/ix_values.yaml @@ -0,0 +1,54 @@ +## +# This file contains Values.yaml content that gets added to the output of questions.yaml +# It's ONLY meant for content that the user is NOT expected to change. +# Example: Everything under "image" is not included in questions.yaml but is included here. +## + +image: + repository: bitwardenrs/server + pullPolicy: IfNotPresent + tag: 1.21.0 + +envTpl: + DOMAIN: "https://{{ if .Values.ingress }}{{ if .Values.ingress.main.enabled }}{{ ( index .Values.ingress.main.hosts 0 ).host }}{{ else }}placeholder.com{{ end }}{{ else }}placeholder.com{{ end }}" + +envFrom: + - configMapRef: + name: bitwardenconfig + - secretRef: + name: bitwardensecret + + +envValueFrom: + DATABASE_URL: + secretKeyRef: + name: dbcreds + key: url + +database: + # Database type, must be one of: 'sqlite', 'mysql' or 'postgresql'. + type: postgresql + # Enable DB Write-Ahead-Log for SQLite, disabled for other databases. https://github.com/dani-garcia/bitwarden_rs/wiki/Running-without-WAL-enabled + wal: false + ## URL for external databases (mysql://user:pass@host:port or postgresql://user:pass@host:port). + # url: "" + ## Set the size of the database connection pool. + # maxConnections: 10 + ## Connection retries during startup, 0 for infinite. 1 second between retries. + retries: 30 + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: homeassistant + postgresqlDatabase: homeassistant + existingSecret: dbcreds + persistence: + enabled: true + existingClaim: db + +## +# Most other defaults are set in questions.yaml +# For other options please refer to the wiki, default_values.yaml or the common library chart +## diff --git a/charts/stable/vaultwarden/SCALE/questions.yaml b/charts/stable/vaultwarden/SCALE/questions.yaml new file mode 100644 index 00000000000..ed21bc6dc9d --- /dev/null +++ b/charts/stable/vaultwarden/SCALE/questions.yaml @@ -0,0 +1,900 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Workload Configuration" + description: "Configure workload deployment" + - name: "Configuration" + description: "additional container configuration" + - name: "Networking" + description: "Configure Network and Services for container" + - name: "Storage" + description: "Persist and share data that is separate from the lifecycle of the container" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" + - name: "WARNING" + description: "WARNING" +portals: + web_portal: + 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 + # Update Policy + - variable: strategyType + group: "Container Image" + label: "Update Strategy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" + # Configure Bitwarden: + - variable: bitwardenrs + label: "" + group: "Configuration" + schema: + type: dict + attrs: + - variable: yubico + label: "Yubico OPT authentication" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Yubico OPT authentication" + description: "Please refer to the manual at: https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-Yubikey-OTP-authentication" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: server + label: "Yubico server" + description: "Defaults to YubiCloud" + schema: + type: string + default: "" + - variable: clientId + label: "Yubico ID" + schema: + type: string + default: "" + - variable: secretKey + label: "Yubico Secret Key" + schema: + type: string + default: "" + - variable: admin + label: "Admin Portal" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Admin Portal" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: disableAdminToken + label: "Make Accessible Without Password/Token" + schema: + type: boolean + default: false + - variable: token + label: "Admin Portal Password/Token" + description: "Will be automatically generated if not defined" + schema: + type: string + default: "" + - variable: icons + label: "Icon Download Settings" + schema: + type: dict + attrs: + - variable: disableDownload + label: "Disable Icon Download" + description: "Disables download of external icons. Setting to true will still serve icons from cache (/data/icon_cache)" + schema: + type: boolean + default: false + - variable: cache + label: "Cache time-to-live" + description: "Cache time-to-live for icons fetched. 0 means no purging" + schema: + type: int + default: 2592000 + - variable: token + label: "Failed Downloads Cache time-to-live" + description: "Cache time-to-live for icons that were not available. 0 means no purging." + schema: + type: int + default: 2592000 + - variable: log + label: "Logging" + schema: + type: dict + attrs: + - variable: level + label: "Log level" + schema: + type: string + default: "info" + required: true + enum: + - value: "trace" + description: "trace" + - value: "debug" + description: "debug" + - value: "info" + description: "info" + - value: "warn" + description: "warn" + - value: "error" + description: "error" + - value: "off" + description: "off" + - variable: file + label: "Log-File Location" + schema: + type: string + default: "" + - variable: smtp + label: "SMTP Settings (Email)" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable SMTP Support" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: host + label: "SMTP hostname" + schema: + type: string + required: true + default: "" + - variable: from + label: "SMTP sender e-mail address" + schema: + type: string + required: true + default: "" + - variable: fromName + label: "SMTP sender name" + schema: + type: string + required: true + default: "" + - variable: user + label: "SMTP username" + schema: + type: string + required: true + default: "" + - variable: password + label: "SMTP password" + description: "Required is user is specified, ignored if no user provided" + schema: + type: string + default: "" + - variable: ssl + label: "Enable SSL connection" + schema: + type: boolean + default: true + - variable: port + label: "SMTP port" + description: "Usually: 25 without SSL, 587 with SSL" + schema: + type: int + default: 587 + - variable: authMechanism + label: "SMTP Authentication Mechanisms" + description: "Comma-separated options: Plain, Login and Xoauth2" + schema: + type: string + default: "Plain" + - variable: heloName + label: "SMTP HELO - Hostname" + description: "Hostname to be sent for SMTP HELO. Defaults to pod name" + schema: + type: string + default: "" + - variable: port + label: "SMTP timeout" + schema: + type: int + default: 15 + - variable: invalidHostname + label: "Accept Invalid Hostname" + description: "Accept SSL session if certificate is valid but hostname doesn't match. DANGEROUS, vulnerable to men-in-the-middle attacks!" + schema: + type: boolean + default: false + - variable: invalidCertificate + label: "Accept Invalid Certificate" + description: "Accept invalid certificates. DANGEROUS, vulnerable to men-in-the-middle attacks!" + schema: + type: boolean + default: false + - variable: allowSignups + label: "Allow Signup" + description: "Allow any user to sign-up: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-registration-of-new-users" + schema: + type: boolean + default: true + - variable: allowInvitation + label: "Always allow Invitation" + description: "Allow invited users to sign-up even feature is disabled: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-invitations" + schema: + type: boolean + default: true + - variable: defaultInviteName + label: "Default Invite Organisation Name" + description: "Default organization name in invitation e-mails that are not coming from a specific organization." + schema: + type: string + default: "" + - variable: showPasswordHint + label: "Show password hints" + description: "https://github.com/dani-garcia/bitwarden_rs/wiki/Password-hint-display" + schema: + type: boolean + default: true + - variable: signupwhitelistenable + label: "Enable Signup Whitelist" + description: "allowSignups is ignored if set" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: signupDomains + label: "Signup Whitelist Domains" + schema: + type: list + default: [] + items: + - variable: domain + label: "Domain" + schema: + type: string + default: "" + - variable: verifySignup + label: "Verifiy Signup" + description: "Verify e-mail before login is enabled. SMTP must be enabled" + schema: + type: boolean + default: false + - variable: requireEmail + label: "Block Login if email fails" + description: "When a user logs in an email is required to be sent. If sending the email fails the login attempt will fail. SMTP must be enabled" + schema: + type: boolean + default: false + - variable: emailAttempts + label: "Email token reset attempts" + description: "Maximum attempts before an email token is reset and a new email will need to be sent" + schema: + type: int + default: 3 + - variable: emailTokenExpiration + label: "Email token validity in seconds" + schema: + type: int + default: 600 + - variable: enableWebsockets + label: "Enable Websocket Connections" + description: "Enable Websockets for notification. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-WebSocket-notifications" + schema: + type: boolean + default: true + hidden: true + - variable: enableWebVault + label: "Enable Webvault" + description: "Enable Web Vault (static content). https://github.com/dani-garcia/bitwarden_rs/wiki/Disabling-or-overriding-the-Vault-interface-hosting" + schema: + type: boolean + default: true + - variable: orgCreationUsers + label: "Limit Organisation Creation to (users)" + description: "Restrict creation of orgs. Options are: 'all', 'none' or a comma-separated list of users." + schema: + type: string + default: "all" + - variable: attachmentLimitOrg + label: "Limit Attachment Disk Usage per Organisation" + schema: + type: string + default: "" + - variable: attachmentLimitUser + label: "Limit Attachment Disk Usage per User" + schema: + type: string + default: "" + - variable: hibpApiKey + label: "HaveIBeenPwned API Key" + description: "Can be purchased at https://haveibeenpwned.com/API/Key" + schema: + type: string + default: "" + - variable: env + group: "Configuration" + label: "Image Environment" + schema: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" + # Configure Enviroment Variables + - variable: envList + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + # Enable Host Networking + - variable: hostNetwork + group: "Networking" + label: "Enable Host Networking" + schema: + type: boolean + default: false + hidden: true + - variable: service + group: "Networking" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8080 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8080 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36000 + required: true + - variable: ws + label: "WebSocket Service" + description: "WebSocket Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "ClusterIP" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + type: dict + attrs: + - variable: ws + label: "WebSocket Service Port Configuration" + schema: + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 3012 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3012 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36001 + required: true + ## TrueCharts Specific + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage" + schema: + type: dict + attrs: + - variable: data + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than Internal will break rollback!" + schema: + type: string + default: "" + enum: + - value: "" + description: "Internal" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + - variable: emptyDir + label: "Mount a ramdisk instead of actual storage" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: db + label: "Database Storage" + description: "Stores the Application database." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: nameOverride + label: "Override PVC Name (advanced)" + description: "Forces a certain name for the PVC" + schema: + type: string + default: "db" + hidden: true + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than Internal will break rollback!" + schema: + type: string + default: "" + enum: + - value: "" + description: "Internal" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: emptyDir + label: "Mount a ramdisk instead of actual storage" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: dbbackup + label: "Database Backup Storage" + description: "Stores the Application database backups." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: storageClass + label: "Type of Storage" + description: " Warning: Anything other than Internal will break rollback!" + schema: + type: string + default: "" + enum: + - value: "" + description: "Internal" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + hidden: true + - variable: emptyDir + label: "Mount a ramdisk instead of actual storage" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true + - variable: accessMode + label: "Access Mode (Advanced)" + description: "Allow or disallow multiple PVC's writhing to the same PVC" + schema: + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + type: string + default: "100Gi" + - variable: hostPathMounts + label: "Custom app storage" + group: "Storage" + schema: + type: list + default: [] + items: + - variable: volumeMount + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enabled" + schema: + type: boolean + default: true + required: true + hidden: true + editable: false + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + type: boolean + default: true + hidden: false + - variable: readOnly + label: "Mount as ReadOnly" + description: "prevent any write from being done to the mounted volume" + schema: + type: boolean + default: false + hidden: false + - variable: emptyDir + label: "emptyDir" + schema: + type: boolean + default: false + hidden: true + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path to mount inside the pod" + schema: + type: path + required: true + default: "" + editable: true + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + # Enable privileged + - variable: securityContext + group: "Security" + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Enable privileged mode for Common-Chart based charts" + schema: + type: boolean + default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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: supplementalGroups + label: "supplementalGroups" + description: "Additional groups this App needs access to" + schema: + type: list + default: [] + items: + - variable: Group + label: "Group" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" diff --git a/charts/stable/vaultwarden/app-readme.md b/charts/stable/vaultwarden/app-readme.md new file mode 100644 index 00000000000..91d64cfa99e --- /dev/null +++ b/charts/stable/vaultwarden/app-readme.md @@ -0,0 +1,2 @@ +Unofficial Bitwarden compatible server written in Rust +This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/charts/stable/vaultwarden/templates/_configmap.tpl b/charts/stable/vaultwarden/templates/_configmap.tpl new file mode 100644 index 00000000000..8809925abdf --- /dev/null +++ b/charts/stable/vaultwarden/templates/_configmap.tpl @@ -0,0 +1,116 @@ +{{/* Define the configmap */}} +{{- define "vaultwarden.configmap" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: vaultwardenconfig +data: + ROCKET_PORT: "8080" + SIGNUPS_ALLOWED: {{ .Values.vaultwarden.allowSignups | quote }} + {{- if .Values.vaultwarden.signupDomains }} + SIGNUPS_DOMAINS_WHITELIST: {{ join "," .Values.vaultwarden.signupDomains | quote }} + {{- end }} + {{- if and (eq .Values.vaultwarden.verifySignup true) (eq .Values.vaultwarden.smtp.enabled false) }}{{ required "Signup verification requires SMTP to be enabled" nil}}{{end}} + SIGNUPS_VERIFY: {{ .Values.vaultwarden.verifySignup | quote }} + {{- if and (eq .Values.vaultwarden.requireEmail true) (eq .Values.vaultwarden.smtp.enabled false) }}{{ required "Requiring emails for login depends on SMTP" nil}}{{end}} + REQUIRE_DEVICE_EMAIL: {{ .Values.vaultwarden.requireEmail | quote }} + {{- if .Values.vaultwarden.emailAttempts }} + EMAIL_ATTEMPTS_LIMIT: {{ .Values.vaultwarden.emailAttempts | quote }} + {{- end }} + {{- if .Values.vaultwarden.emailTokenExpiration }} + EMAIL_EXPIRATION_TIME: {{ .Values.vaultwarden.emailTokenExpiration | quote }} + {{- end }} + INVITATIONS_ALLOWED: {{ .Values.vaultwarden.allowInvitation | quote }} + {{- if .Values.vaultwarden.defaultInviteName }} + INVITATION_ORG_NAME: {{ .Values.vaultwarden.defaultInviteName | quote }} + {{- end }} + SHOW_PASSWORD_HINT: {{ .Values.vaultwarden.showPasswordHint | quote }} + WEBSOCKET_ENABLED: {{ .Values.vaultwarden.enableWebsockets | quote }} + WEB_VAULT_ENABLED: {{ .Values.vaultwarden.enableWebVault | quote }} + ORG_CREATION_USERS: {{ .Values.vaultwarden.orgCreationUsers | quote }} + {{- if .Values.vaultwarden.attachmentLimitOrg }} + ORG_ATTACHMENT_LIMIT: {{ .Values.vaultwarden.attachmentLimitOrg | quote }} + {{- end }} + {{- if .Values.vaultwarden.attachmentLimitUser }} + USER_ATTACHMENT_LIMIT: {{ .Values.vaultwarden.attachmentLimitUser | quote }} + {{- end }} + {{- if .Values.vaultwarden.hibpApiKey }} + HIBP_API_KEY: {{ .Values.vaultwarden.hibpApiKey | quote }} + {{- end }} + {{- include "vaultwarden.dbTypeValid" . }} + {{- if .Values.database.retries }} + DB_CONNECTION_RETRIES: {{ .Values.database.retries | quote }} + {{- end }} + {{- if .Values.database.maxConnections }} + DATABASE_MAX_CONNS: {{ .Values.database.maxConnections | quote }} + {{- end }} + {{- if eq .Values.vaultwarden.smtp.enabled true }} + SMTP_HOST: {{ required "SMTP host is required to enable SMTP" .Values.vaultwarden.smtp.host | quote }} + SMTP_FROM: {{ required "SMTP sender address ('from') is required to enable SMTP" .Values.vaultwarden.smtp.from | quote }} + {{- if .Values.vaultwarden.smtp.fromName }} + SMTP_FROM_NAME: {{ .Values.vaultwarden.smtp.fromName | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.ssl }} + SMTP_SSL: {{ .Values.vaultwarden.smtp.ssl | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.port }} + SMTP_PORT: {{ .Values.vaultwarden.smtp.port | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.authMechanism }} + SMTP_AUTH_MECHANISM: {{ .Values.vaultwarden.smtp.authMechanism | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.heloName }} + HELO_NAME: {{ .Values.vaultwarden.smtp.heloName | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.timeout }} + SMTP_TIMEOUT: {{ .Values.vaultwarden.smtp.timeout | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.invalidHostname }} + SMTP_ACCEPT_INVALID_HOSTNAMES: {{ .Values.vaultwarden.smtp.invalidHostname | quote }} + {{- end }} + {{- if .Values.vaultwarden.smtp.invalidCertificate }} + SMTP_ACCEPT_INVALID_CERTS: {{ .Values.vaultwarden.smtp.invalidCertificate | quote }} + {{- end }} + {{- end }} + {{- if .Values.vaultwarden.log.file }} + LOG_FILE: {{ .Values.vaultwarden.log.file | quote }} + {{- end }} + {{- if or .Values.vaultwarden.log.level .Values.vaultwarden.log.timeFormat }} + EXTENDED_LOGGING: "true" + {{- end }} + {{- if .Values.vaultwarden.log.level }} + {{- include "vaultwarden.logLevelValid" . }} + LOG_LEVEL: {{ .Values.vaultwarden.log.level | quote }} + {{- end }} + {{- if .Values.vaultwarden.log.timeFormat }} + LOG_TIMESTAMP_FORMAT: {{ .Values.vaultwarden.log.timeFormat | quote }} + {{- end }} + {{- if .Values.vaultwarden.icons.disableDownload }} + DISABLE_ICON_DOWNLOAD: {{ .Values.vaultwarden.icons.disableDownload | quote }} + {{- if and (not .Values.vaultwarden.icons.cache) (eq .Values.vaultwarden.icons.disableDownload "true") }} + ICON_CACHE_TTL: "0" + {{- end }} + {{- end }} + {{- if .Values.vaultwarden.icons.cache }} + ICON_CACHE_TTL: {{ .Values.vaultwarden.icons.cache | quote }} + {{- end }} + {{- if .Values.vaultwarden.icons.cacheFailed }} + ICON_CACHE_NEGTTL: {{ .Values.vaultwarden.icons.cacheFailed | quote }} + {{- end }} + {{- if eq .Values.vaultwarden.admin.enabled true }} + {{- if eq .Values.vaultwarden.admin.disableAdminToken true }} + DISABLE_ADMIN_TOKEN: "true" + {{- end }} + {{- end }} + {{- if eq .Values.vaultwarden.yubico.enabled true }} + {{- if .Values.vaultwarden.yubico.server }} + YUBICO_SERVER: {{ .Values.vaultwarden.yubico.server | quote }} + {{- end }} + {{- end }} + {{- if eq .Values.database.type "sqlite" }} + ENABLE_DB_WAL: {{ .Values.database.wal | quote }} + {{- else }} + ENABLE_DB_WAL: "false" + {{- end }} +{{- end -}} diff --git a/charts/stable/vaultwarden/templates/_secrets.tpl b/charts/stable/vaultwarden/templates/_secrets.tpl new file mode 100644 index 00000000000..ac57e81471d --- /dev/null +++ b/charts/stable/vaultwarden/templates/_secrets.tpl @@ -0,0 +1,59 @@ +{{/* Define the secrets */}} +{{- define "vaultwarden.secrets" -}} + +{{- $adminToken := "" }} +{{- if eq .Values.vaultwarden.admin.enabled true }} +{{- $adminToken = .Values.vaultwarden.admin.token | default (randAlphaNum 48) | b64enc | quote }} +{{- end -}} + +{{- $smtpUser := "" }} +{{- if and (eq .Values.vaultwarden.smtp.enabled true ) (.Values.vaultwarden.smtp.user) }} +{{- $smtpUser = .Values.vaultwarden.smtp.user | b64enc | quote }} +{{- end -}} + +{{- $yubicoClientId := "" }} +{{- if eq .Values.vaultwarden.yubico.enabled true }} +{{- $yubicoClientId = required "Yubico Client ID required" .Values.vaultwarden.yubico.clientId | toString | b64enc | quote }} +{{- end -}} +--- + +apiVersion: v1 +kind: Secret +metadata: + name: vaultwardensecret +data: + {{- if ne $adminToken "" }} + ADMIN_TOKEN: {{ $adminToken }} + {{- end }} + {{- if ne $smtpUser "" }} + SMTP_USERNAME: {{ $smtpUser }} + SMTP_PASSWORD: {{ required "Must specify SMTP password" .Values.vaultwarden.smtp.password | b64enc | quote }} + {{- end }} + {{- if ne $yubicoClientId "" }} + YUBICO_CLIENT_ID: {{ $yubicoClientId }} + YUBICO_SECRET_KEY: {{ required "Yubico Secret Key required" .Values.vaultwarden.yubico.secretKey | b64enc | quote }} + {{- end }} + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + {{- include "common.labels" . | nindent 4 }} + name: dbcreds +{{- $previous := lookup "v1" "Secret" .Release.Namespace "dbcreds" }} +{{- $dbPass := "" }} +data: +{{- if $previous }} + {{- $dbPass = ( index $previous.data "postgresql-password" ) | b64dec }} + postgresql-password: {{ ( index $previous.data "postgresql-password" ) }} + postgresql-postgres-password: {{ ( index $previous.data "postgresql-postgres-password" ) }} +{{- else }} + {{- $dbPass = randAlphaNum 50 }} + postgresql-password: {{ $dbPass | b64enc | quote }} + postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }} +{{- end }} + url: {{ ( printf "%v%v:%v@%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }} +type: Opaque +{{- end -}} diff --git a/charts/stable/vaultwarden/templates/_validate.tpl b/charts/stable/vaultwarden/templates/_validate.tpl new file mode 100644 index 00000000000..e4832c2f6e5 --- /dev/null +++ b/charts/stable/vaultwarden/templates/_validate.tpl @@ -0,0 +1,17 @@ +{{/* +Ensure valid DB type is select, defaults to SQLite +*/}} +{{- define "vaultwarden.dbTypeValid" -}} +{{- if not (or (eq .Values.database.type "postgresql") (eq .Values.database.type "mysql") (eq .Values.database.type "sqlite")) }} +{{- required "Invalid database type" nil }} +{{- end -}} +{{- end -}} + +{{/* +Ensure log type is valid +*/}} +{{- define "vaultwarden.logLevelValid" -}} +{{- if not (or (eq .Values.vaultwarden.log.level "trace") (eq .Values.vaultwarden.log.level "debug") (eq .Values.vaultwarden.log.level "info") (eq .Values.vaultwarden.log.level "warn") (eq .Values.vaultwarden.log.level "error") (eq .Values.vaultwarden.log.level "off")) }} +{{- required "Invalid log level" nil }} +{{- end }} +{{- end }} diff --git a/charts/stable/vaultwarden/templates/common.yaml b/charts/stable/vaultwarden/templates/common.yaml new file mode 100644 index 00000000000..74f04d2d8c2 --- /dev/null +++ b/charts/stable/vaultwarden/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} + +{{/* Render configmap for vaultwarden */}} +{{- include "vaultwarden.configmap" . }} + +{{/* Render secrets for vaultwarden */}} +{{- include "vaultwarden.secrets" . }} diff --git a/charts/stable/vaultwarden/values.yaml b/charts/stable/vaultwarden/values.yaml new file mode 100644 index 00000000000..5f43e6f7b69 --- /dev/null +++ b/charts/stable/vaultwarden/values.yaml @@ -0,0 +1,183 @@ +# Default values for Bitwarden. + +image: + repository: vaultwarden/server + pullPolicy: IfNotPresent + tag: 1.21.0 + +strategy: + type: Recreate + +service: + main: + ports: + main: + port: 8080 + ws: + ports: + ws: + enabled: true + port: 3012 + +env: {} + +envTpl: + DOMAIN: "https://{{ if .Values.ingress }}{{ if .Values.ingress.main.enabled }}{{ ( index .Values.ingress.main.hosts 0 ).host }}{{ else }}placeholder.com{{ end }}{{ else }}placeholder.com{{ end }}" + +envFrom: + - configMapRef: + name: vaultwardenconfig + - secretRef: + name: vaultwardensecret + +envValueFrom: + DATABASE_URL: + secretKeyRef: + name: dbcreds + key: url + +database: + # Database type, must be one of: 'sqlite', 'mysql' or 'postgresql'. + type: postgresql + # Enable DB Write-Ahead-Log for SQLite, disabled for other databases. https://github.com/dani-garcia/bitwarden_rs/wiki/Running-without-WAL-enabled + wal: true + ## URL for external databases (mysql://user:pass@host:port or postgresql://user:pass@host:port). + # url: "" + ## Set the size of the database connection pool. + # maxConnections: 10 + ## Connection retries during startup, 0 for infinite. 1 second between retries. + # retries: 15 + +# Set Bitwarden_rs application variables +vaultwarden: + # Allow any user to sign-up: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-registration-of-new-users + allowSignups: true + ## Whitelist domains allowed to sign-up. 'allowSignups' is ignored if set. + # signupDomains: + # - domain.tld + # Verify e-mail before login is enabled. SMTP must be enabled. + verifySignup: false + # When a user logs in an email is required to be sent. If sending the email fails the login attempt will fail. SMTP must be enabled. + requireEmail: false + ## Maximum attempts before an email token is reset and a new email will need to be sent. + # emailAttempts: 3 + ## Email token validity in seconds. + # emailTokenExpiration: 600 + # Allow invited users to sign-up even feature is disabled: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-invitations + allowInvitation: true + # Show password hints: https://github.com/dani-garcia/bitwarden_rs/wiki/Password-hint-display + ## Default organization name in invitation e-mails that are not coming from a specific organization. + # defaultInviteName: "" + showPasswordHint: true + # Enable Websockets for notification. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-WebSocket-notifications + # Redirect HTTP path "/notifications/hub" to port 3012. Ingress/IngressRoute controllers are automatically configured. + enableWebsockets: true + # Enable Web Vault (static content). https://github.com/dani-garcia/bitwarden_rs/wiki/Disabling-or-overriding-the-Vault-interface-hosting + enableWebVault: true + # Restrict creation of orgs. Options are: 'all', 'none' or a comma-separated list of users. + orgCreationUsers: all + ## Limit attachment disk usage per organization. + # attachmentLimitOrg: + ## Limit attachment disk usage per user. + # attachmentLimitUser: + ## HaveIBeenPwned API Key. Can be purchased at https://haveibeenpwned.com/API/Key. + # hibpApiKey: + + admin: + # Enable admin portal. + enabled: false + # Disabling the admin token will make the admin portal accessible to anyone, use carefully: https://github.com/dani-garcia/bitwarden_rs/wiki/Disable-admin-token + disableAdminToken: false + ## Token for admin login, will be generated if not defined. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-admin-page + # token: + + # Enable SMTP. https://github.com/dani-garcia/bitwarden_rs/wiki/SMTP-configuration + smtp: + enabled: false + # SMTP hostname, required if SMTP is enabled. + host: "" + # SMTP sender e-mail address, required if SMTP is enabled. + from: "" + ## SMTP sender name, defaults to 'Bitwarden_RS'. + # fromName: "" + ## Enable SSL connection. + # ssl: true + ## SMTP port. Defaults to 25 without SSL, 587 with SSL. + # port: 587 + ## SMTP Authentication Mechanisms. Comma-separated options: 'Plain', 'Login' and 'Xoauth2'. Defaults to 'Plain'. + # authMechanism: Plain + ## Hostname to be sent for SMTP HELO. Defaults to pod name. + # heloName: "" + ## SMTP timeout. + # timeout: 15 + ## Accept SSL session if certificate is valid but hostname doesn't match. DANGEROUS, vulnerable to men-in-the-middle attacks! + # invalidHostname: false + ## Accept invalid certificates. DANGEROUS, vulnerable to men-in-the-middle attacks! + # invalidCertificate: false + ## SMTP username. + # user: "" + ## SMTP password. Required is user is specified, ignored if no user provided. + # password: "" + + ## Enable Yubico OPT authentication. https://github.com/dani-garcia/bitwarden_rs/wiki/Enabling-Yubikey-OTP-authentication + yubico: + enabled: false + ## Yubico server. Defaults to YubiCloud. + # server: + ## Yubico ID and Secret Key. + # clientId: + # secretKey: + + ## Logging options. https://github.com/dani-garcia/bitwarden_rs/wiki/Logging + log: + # Log to file. + file: "" + # Log level. Options are "trace", "debug", "info", "warn", "error" or "off". + level: "trace" + ## Log timestamp format. See https://docs.rs/chrono/0.4.15/chrono/format/strftime/index.html. Defaults to time in milliseconds. + # timeFormat: "" + + icons: + # Disables download of external icons. Setting to true will still serve icons from cache (/data/icon_cache). TTL will default to zero. + disableDownload: false + ## Cache time-to-live for icons fetched. 0 means no purging. + # cache: 2592000 + ## Cache time-to-live for icons that were not available. 0 means no purging. + # cacheFailed: 259200 + +persistence: + data: + enabled: true + mountPath: "/data" + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + db: + nameOverride: "db" + enabled: true + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + dbbackup: + enabled: true + emptyDir: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi + storageClass: "" + + +# Enabled postgres +# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql +postgresql: + enabled: true + postgresqlUsername: vaultwarden + postgresqlDatabase: vaultwarden + existingSecret: dbcreds + persistence: + enabled: false + existingClaim: db diff --git a/charts/stable/zwavejs2mqtt/Chart.yaml b/charts/stable/zwavejs2mqtt/Chart.yaml index 05433352709..6f0927c0eef 100644 --- a/charts/stable/zwavejs2mqtt/Chart.yaml +++ b/charts/stable/zwavejs2mqtt/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: zwavejs2mqtt -version: 3.1.6 +version: 4.0.0 upstream_version: 1.1.0 appVersion: "auto" description: Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue @@ -22,7 +22,7 @@ sources: dependencies: - name: common repository: https://truecharts.org/ - version: 3.5.8 + version: 4.1.5 # condition: maintainers: - name: TrueCharts diff --git a/charts/stable/zwavejs2mqtt/SCALE/ix_values.yaml b/charts/stable/zwavejs2mqtt/SCALE/ix_values.yaml index a06b4d6ac90..c9a3b847f83 100644 --- a/charts/stable/zwavejs2mqtt/SCALE/ix_values.yaml +++ b/charts/stable/zwavejs2mqtt/SCALE/ix_values.yaml @@ -9,6 +9,14 @@ image: pullPolicy: IfNotPresent tag: 2.4.1 +# 5=tty 20=dialout 24=cdrom +podSecurityContext: + runAsNonRoot: true + runAsUser: 568 + runAsGroup: 568 + fsGroup: 568 + supplementalGroups: [5, 20, 24] + probes: liveness: enabled: true @@ -52,7 +60,6 @@ probes: # initialDelaySeconds: 30 # periodSeconds: 10 # timeoutSeconds: 10 - ## # Most other defaults are set in questions.yaml # For other options please refer to the wiki, default_values.yaml or the common library chart diff --git a/charts/stable/zwavejs2mqtt/SCALE/questions.yaml b/charts/stable/zwavejs2mqtt/SCALE/questions.yaml index e26ca163704..5fde9eab85f 100644 --- a/charts/stable/zwavejs2mqtt/SCALE/questions.yaml +++ b/charts/stable/zwavejs2mqtt/SCALE/questions.yaml @@ -6,13 +6,15 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" + description: "Configure Network and Services for container" - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" - name: "Advanced" description: "Advanced Configuration" - name: "WARNING" @@ -53,18 +55,39 @@ questions: description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - - # Configure Time Zone - - variable: timezone - group: "Container Image" - label: "Timezone" + - variable: env + group: "Configuration" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: - - "definitions/timezone" - - # Service Configuration + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: envList + label: "Image environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string # Enable Host Networking - variable: hostNetwork group: "Networking" @@ -72,14 +95,14 @@ questions: schema: type: boolean default: false - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict @@ -91,59 +114,90 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 8091 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 8091 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36022 - required: true + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 8091 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8091 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36022 + required: true - variable: ws - label: "WebSocket service" - description: "This server is used to process WebSocket Connections" + label: "WebSocket Service" + description: "WebSocket Service" schema: type: dict attrs: @@ -154,8 +208,8 @@ questions: default: true hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string default: "ClusterIP" @@ -164,46 +218,77 @@ questions: description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: ws + label: "WebSocket Service Port Configuration" schema: - type: string - default: "TCP" - hidden: true - enum: - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: port - label: "container port" - schema: - type: int - default: 3000 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 3000 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36023 - required: true + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 3000 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3000 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36023 + required: true # Configure app volumes - variable: persistence label: "Integrated Persistent Storage" @@ -242,9 +327,15 @@ questions: - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -263,7 +354,7 @@ questions: schema: type: string default: "100Gi" - - variable: customStorage + - variable: hostPathMounts label: "Custom app storage" group: "Storage" schema: @@ -352,96 +443,9 @@ questions: required: true default: "/dev/ttyACM0" editable: true - - variable: ingress - label: "" - group: "Reverse Proxy Configuration" - schema: - type: dict - attrs: - - variable: main - label: "WebUI" - schema: - type: dict - attrs: - - variable: certType - label: "Select Reverse-Proxy Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "Disabled" - - value: "" - description: "No Encryption/TLS/Certificates" - - value: "selfsigned" - description: "Self-Signed Certificate" - - value: "ixcert" - description: "TrueNAS SCALE Certificate" - - variable: type - label: "Reverse Proxy Type" - schema: - type: string - default: "HTTP" - hidden: true - editable: false - required: true - - variable: serviceName - label: "Service name to proxy to" - schema: - hidden: true - editable: false - type: string - default: "" - - variable: entrypoint - label: "Select Entrypoint" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "websecure" - required: true - enum: - - value: "websecure" - description: "Websecure: HTTPS/TLS port 443" - - variable: hosts - label: "Hosts" - schema: - show_if: [["certType", "!=", "disabled"]] - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "Domain Name" - required: true - schema: - type: string - - variable: path - label: "path" - schema: - type: string - required: true - hidden: true - default: "/" - - variable: certificate - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - show_if: [["certType", "=", "ixcert"]] - $ref: - - "definitions/certificate" - - variable: authForwardURL - label: "Forward Authentication URL" - schema: - show_if: [["certType", "!=", "disabled"]] - type: string - default: "" # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -453,7 +457,7 @@ questions: default: false # Set Pod Security Policy - variable: podSecurityContext - group: "Advanced" + group: "Security" label: "Pod Security Context" schema: type: dict @@ -475,18 +479,6 @@ questions: schema: type: int default: 568 - - variable: supplementalGroups - label: "supplementalGroups" - description: "Additional groups this App needs access to" - schema: - type: list - default: [5, 20, 24] - items: - - variable: Group - label: "Group" - schema: - type: int - default: 568 - variable: fsGroup label: "fsGroup" description: "The group that should own ALL storage." diff --git a/charts/stable/zwavejs2mqtt/values.yaml b/charts/stable/zwavejs2mqtt/values.yaml index 28126356a3e..505bf6f88f0 100644 --- a/charts/stable/zwavejs2mqtt/values.yaml +++ b/charts/stable/zwavejs2mqtt/values.yaml @@ -10,6 +10,7 @@ image: strategy: type: Recreate +# 5=tty 20=dialout 24=cdrom podSecurityContext: runAsNonRoot: true runAsUser: 568 @@ -66,17 +67,19 @@ probes: # periodSeconds: 10 # timeoutSeconds: 10 -services: +service: main: - port: - port: 8091 + ports: + main: + port: 8091 ws: enabled: true type: ClusterIP - port: - port: 3000 - protocol: TCP - targetPort: 3000 + ports: + ws: + enabled: true + port: 3000 + protocol: TCP # Privileged may be required if USB controller is accessed directly through the host machine # securityContext: @@ -86,7 +89,8 @@ persistence: config: enabled: true mountPath: "/config" - emptyDir: true + emptyDir: + enabled: true accessMode: ReadWriteOnce size: 1Gi storageClass: "" diff --git a/docs/development/app development/chart-structure.md b/docs/development/app development/chart-structure.md index d088c3f48bd..03c6e816e83 100644 --- a/docs/development/app development/chart-structure.md +++ b/docs/development/app development/chart-structure.md @@ -7,22 +7,28 @@ A TrueNAS SCALE chart also has three additional files an `app-readme.md` file th There are 2 directories `charts` and `test`, each representing a train. Chart releases created from catalog items in a specific train cannot be moved to another train. Currently only the `charts` train can be used inside the UI. ``` -charts/ix-chart// - app-readme.md # TrueNAS SCALE Specific: Readme file for display in TrueNAS SCALE UI +charts/// charts/ # Directory containing dependency charts Chart.yaml # Required Helm chart information file - questions.yaml # TrueNAS SCALE Specific: File containing questions for TrueNAS SCALE UI README.md # Optional: Helm Readme file (will be rendered in TrueNAS SCALE UI as well) templates/ # A directory of templates that, when combined with values.yml will generate K8s YAML values.yaml # The default configuration values for this chart ``` + +``` +charts/// + app-readme.md # TrueNAS SCALE Specific: Readme file for display in TrueNAS SCALE UI + questions.yaml # TrueNAS SCALE Specific: File containing questions for TrueNAS SCALE UI + ix_values.yaml # Hidden configuration values when installing using TrueNAS SCALE +``` + *See the upstream Helm chart [developer reference](https://helm.sh/docs/chart_template_guide/) for a complete walk through of developing charts.* To convert an upstream chart to take advantage of TrueNAS SCALE enhanced UX, first create an `item.yaml` file. This file among other catalog item information provides a list of categories that this chart fits into. This helps users navigate and filtering when browsing the catalog UI. ``` -$ cat charts/ix-chart/item.yaml +$ cat charts///SCALE/item.yaml categories: - generic icon_url: "http://ix_url" @@ -31,7 +37,7 @@ icon_url: "http://ix_url" After that create `app-readme.md` file. ``` -$ cat charts/ix-chart//app-readme.md +$ cat charts///SCALE/app-readme.md iX-chart is a chart designed to let user deploy a docker image in a TrueNAS SCALE kubernetes cluster. It provides a mechanism to specify workload type, add external host interfaces in the pods, configure volumes and allocate host resources to the workload. diff --git a/docs/development/app development/portal.md b/docs/development/app development/portal.md index cf8d8b0e92f..5a92a1a7390 100644 --- a/docs/development/app development/portal.md +++ b/docs/development/app development/portal.md @@ -64,3 +64,8 @@ There are also some additional (advanced) options availale, these can be added b type: string default: "test.com" ``` + + +##### Known issues + +- Portal currently doesn't work (yet) when setting the servicetype to "Loadbalancer" diff --git a/docs/development/app development/questions-yaml.md b/docs/development/app development/questions-yaml.md index 89b30cf1326..26264daf597 100644 --- a/docs/development/app development/questions-yaml.md +++ b/docs/development/app development/questions-yaml.md @@ -78,7 +78,7 @@ For (2), system will normalize values or perform some actions as discussed above To minimise the maintenance load of our App collection, we always aim to standardise as much as possible. The same goes for questions.yaml. Included here are some code standardised code-snippets that are expected to be included in every App. Be aware that sometimes specific functions might or might not completely function. Leaving them out would, however, everely increase the maintenance load and often said functionality will be added in the common-chart later on anyway. ##### Groups -To make sure all apps stay somewhat the same, we use a standardised `groups:` section. Please make sure to use this in your Apps: +To make sure all apps stay somewhat the same, we use a list of standardised groups for the groups section. Please make sure to use these groups in your Apps: ``` groups: - name: "Container Image" @@ -88,30 +88,59 @@ groups: - name: "Configuration" description: "additional container configuration" - name: "Networking" - description: "Configure / service for container" - - name: "Storage and Devices" + description: "Configure Network and Services for container" + - name: "Storage" description: "Persist and share data that is separate from the lifecycle of the container" - name: "Resources and Devices" description: "Specify resources/devices to be allocated to workload" - - name: "Reverse Proxy Configuration" - description: "Reverse Proxy configuration" + - name: "Ingress Configuration" + description: "Ingress Configuration" + - name: "Security" + description: "Configure security context" + - name: "Advanced" + description: "Advanced Configuration" - name: "WARNING" description: "WARNING" ``` ##### General Configuration options -These options are always included because almost every chart (eventually) has a use for them and/or other parts of the common chart depend on them. +These options are always* included because almost every chart (eventually) has a use for them and/or other parts of the common chart depend on them. They are called general options, because they affect the basic functionalities of a chart. For example: Custom User environment variables, permissions and timezones. +*`PUID`, `PGID`, `UMASK` are only included when they are needed. + ``` - - variable: timezone + - variable: env group: "Configuration" - label: "Timezone" + label: "Image Environment" schema: - type: string - default: "Etc/UTC" - $ref: + type: dict + attrs: + - variable: TZ + label: "Timezone" + schema: + type: string + default: "Etc/UTC" + $ref: - "definitions/timezone" + - variable: PUID + label: "PUID" + description: "Sets the PUID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: PGID + label: "PGID" + description: "Sets the PGID env var for LinuxServer.io (compatible) containers" + schema: + type: int + default: 568 + - variable: UMASK + label: "UMASK" + description: "Sets the UMASK env var for LinuxServer.io (compatible) containers" + schema: + type: string + default: "002" # Configure Custom Enviroment Variables - variable: environmentVariables @@ -136,33 +165,12 @@ They are called general options, because they affect the basic functionalities o type: string ``` -And at the bottom some advanced settings: -``` - - variable: PUID - group: "Advanced" - label: "Common Group ID" - description: "The UserID of the user running any included common chart-based pods" - schema: - type: int - default: 568 +##### Security Context Configuration options - - variable: PGID - group: "Advanced" - label: "Storage and Common Group ID" - description: "The groupID of the user/group running any included common chart-based pods and owning the files!" - schema: - type: int - default: 568 - - variable: UMASK - group: "Advanced" - label: "UMASK (Common Chart)" - description: "The UMASK used (if supported) by any included common chart-based pod" - schema: - type: string - default: "002" +``` # Enable privileged - variable: securityContext - group: "Advanced" + group: "Security" label: "Security Context" schema: type: dict @@ -172,4 +180,44 @@ And at the bottom some advanced settings: schema: type: boolean default: false + # Set Pod Security Policy + - variable: podSecurityContext + group: "Security" + label: "Pod Security Context" + schema: + type: dict + attrs: + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true + - 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 + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" ``` diff --git a/docs/development/app development/services.md b/docs/development/app development/services.md index 43c1fbd2ff6..84987a0fc97 100644 --- a/docs/development/app development/services.md +++ b/docs/development/app development/services.md @@ -26,75 +26,108 @@ Every App is required to have a main service, the primary thing that users (or o Please keep in mind that every App is different, some just have one service (which *ALWAYS* has to be called `main`) and others need more (which each has to have an unique name). Every App also uses different ports, so please alter accordingly. ``` - - variable: services + - variable: service group: "Networking" - label: "Configure Service" + label: "Configure Service(s)" schema: type: dict attrs: - variable: main - label: "Main service" + label: "Main Service" description: "The Primary service on which the healthcheck runs, often the webUI" schema: type: dict attrs: - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true - variable: type - label: "Service type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System" + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" schema: type: string - default: "ClusterIP" + default: "NodePort" enum: - - value: "nodePort" + - value: "NodePort" description: "NodePort" - value: "ClusterIP" description: "ClusterIP" - - variable: port - label: "Port configuration" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + required: true + - variable: exetrnalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + required: true + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" schema: type: dict attrs: - - variable: protocol - label: "Port Type" + - variable: main + label: "Main Service Port Configuration" schema: - type: string - default: "HTTP" - hidden: false - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - variable: port - label: "container port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: targetport - label: "Internal Service port" - description: "When connecting internally to this App, you'll need this port" - schema: - type: int - default: 80 - editable: false - hidden: true - - variable: nodePort - label: "(optional) host nodePort to expose to" - description: "only get used when nodePort is selected" - schema: - type: int - min: 9000 - max: 65535 - default: 36052 - required: true + type: dict + attrs: + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + hidden: false + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: port + label: "Container Port" + schema: + type: int + default: 5076 + editable: false + hidden: true + - variable: targetport + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5076 + editable: true + hidden: false + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 + default: 36041 + required: true ``` ##### Unlimited custom services diff --git a/docs/development/app development/storage.md b/docs/development/app development/storage.md index da7aac9ec42..f188a1704f6 100644 --- a/docs/development/app development/storage.md +++ b/docs/development/app development/storage.md @@ -7,7 +7,6 @@ This article serves as a development extention to the storage article available For all these storage solutions we require the commonchart to be added to the App. The Common-Chart handles both the connection/addition of storage to the container and spinning up special k8s jobs to fix the permissions if requested for the Custom storage. - ### Integrated Persistent Storage When adding an App, there are almost always certain folders that are required for solid Apps performance. For example config files that should be persistent across restarts. @@ -56,9 +55,15 @@ Preventing the user to disable them, ensures that users don't (by mistake) remov - variable: emptyDir label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false + type: dict hidden: true + attrs: + - variable: enabled + label: "Enable emptyDir" + schema: + type: boolean + default: false + hidden: true - variable: accessMode label: "Access Mode (Advanced)" description: "Allow or disallow multiple PVC's writhing to the same PVC" @@ -87,7 +92,7 @@ It should always be included in any App, to give users the option to customise t ##### Example ``` - - variable: additionalAppVolumeMounts + - variable: hostPathMounts label: "Custom app storage" group: "Storage and Devices" schema: @@ -122,12 +127,16 @@ It should always be included in any App, to give users the option to customise t required: true editable: true - variable: emptyDir - label: "emptyDir" + label: "Mount a ramdisk instead of actual storage" schema: - type: boolean - default: false hidden: true - editable: false + attrs: + - variable: enabled + label: Enable emptyDir + schema: + type: boolean + default: false + hidden: true - variable: mountPath label: "Mount Path" description: "Path to mount inside the pod" diff --git a/docs/development/app development/values-yaml.md b/docs/development/app development/values-yaml.md index 3fe8b4c065c..cc8041ca425 100644 --- a/docs/development/app development/values-yaml.md +++ b/docs/development/app development/values-yaml.md @@ -7,7 +7,7 @@ However, we have multiple different values.yaml files, with different goals. Bec ##### values.yaml -The normal file with default setting in helm charts. However, for our non-library and non-dependency charts, this is not used for TrueCharts. As questions.yaml generates configs on demand (with addition of ix_values.yaml), this file might interfere with some Helm operations combined with the questions.yaml or test_values.yaml systems or cause unexpected behavior if used. +This file contains the default config when running the App using stock helm (not SCALE). It also gets used for the testingsuite. ##### ix_values.yaml @@ -39,14 +39,3 @@ image: ## ``` - - -##### test_values.yaml - -Our Apps often use special features of TrueNAS inside questions.yaml and our charts. However these features are not (always) compatible with stock Helm. Therefore we define a set of seperate "test" values.yaml setting that get used when we run the test CI. - -They should, however, be as close as possible to your "actual" default settings in questions.yaml - -##### default_values.yaml - -This on is the "odd one" of the bunch. We prefer not to use it for actual default, but to store default when porting charts from upstream. diff --git a/docs/manual/Migration Guides/index.md b/docs/manual/Migration Guides/index.md index efa6a87b2c8..c9a4cf5eb7c 100644 --- a/docs/manual/Migration Guides/index.md +++ b/docs/manual/Migration Guides/index.md @@ -3,7 +3,7 @@ Sometimes we can not guarantee automatic updating between new versions of our Apps. These pages include some common scenario's and give some guidance how to manually move between different versions and Trains. -##### Between Trains +### Between Trains An app will always be just in one train. If an App moves to a different train, you will not be able to update automatically Our basic guidence for these cases is: @@ -17,7 +17,17 @@ Our basic guidence for these cases is: - Put back all your old files. - Re start the new App -##### Between Versions +### Between Versions When new versions introduce breaking changes (which would often be major version changes) they might(!) require the user to reinstall. However: We often already provide migration scrips and dealth with these issues manually. + +##### Common 2.0 -> common 3.0 based Apps + +In cases you upgrade to a common 3.0 based app, reinstall is currently required. Please be aware: Installing will nuke your data! +Be also aware that we do not have common 2.0 based installs available in the version dropdown + +##### Common 3.0 -> common 4.0 based Apps + +In cases you upgrade to a common 4.0 based app, reinstall is currently required. Please be aware: Installing will nuke your data! +However: Common 3.0 based Apps are still available to be installed using the version dropdown diff --git a/docs/manual/general-configuration.md b/docs/manual/general-configuration.md index b6012ccdb76..aab6846884a 100644 --- a/docs/manual/general-configuration.md +++ b/docs/manual/general-configuration.md @@ -1,6 +1,6 @@ # General Configuration -There are some setting that are always present on every App from TrueCharts. +These are some common settings you might find on Apps and an explaination of their usecase. ##### Explaination sheet: diff --git a/docs/manual/networking.md b/docs/manual/networking.md index 2c6a142834b..b568847dbe2 100644 --- a/docs/manual/networking.md +++ b/docs/manual/networking.md @@ -28,3 +28,11 @@ There are, however, multiple downsides to using nodeports: - You can only pick ports above 9000 - You can not connect two Apps to the same port + +##### LoadBalancer + +Loadbalancer connects a service targetPort directly to the Host Network. However: it can do so in lower ranges than NodePort, making it a great solution for things like DNS servers. + +There are, however, downsides to using LoadBalancer: + +- You can not connect two Apps to the same port diff --git a/docs/manual/reverse-proxy.md b/docs/manual/reverse-proxy.md index 3652b6fbd63..3fda587a6c4 100644 --- a/docs/manual/reverse-proxy.md +++ b/docs/manual/reverse-proxy.md @@ -4,6 +4,10 @@ Within TrueCharts our aim is to make it as easy as possible to secure your Apps. To use Traefik as a Reverse Proxy, all you have to do is enable "Reverse Proxy" in the App of your choice and fill out a little form. +## Note + +Currently for charts using common 4.0, we do NOT support Reverse-Proxy/Ingress as it's being completely rewrithen from scratch at the moment. + ### Types of Reverse Proxys We currently offer the following types of pre-configured reverse proxies: diff --git a/docs/manual/storage.md b/docs/manual/storage.md index f4c14210ecb..6b6781d6076 100644 --- a/docs/manual/storage.md +++ b/docs/manual/storage.md @@ -8,7 +8,7 @@ TrueCharts uses multiple different storage systems: Storage is currently seperated into two types: 1. Integrated Persistent Storage -2. Custom Storage +2. Custom Storage aka "hostPathMounts" ### Integrated Persistent Storage @@ -26,15 +26,13 @@ We currently have the following Storage options for Integrated Persistent Storag This storage is integrated into TrueNAS SCALE and completely supports reverting upgrades. Thats why this is the default (and only actually supported!) way of storing App configuration files. -### Custom Storage +### Custom app storage aka "hostPathMounts" Besides the earlier mentioned Integrated Persistent Storage, we also provide the option to mount as many host folders as you want. -Custom storage currently actually quite simple: +hostPathMounts are actually quite simple: It mounts a directory from your TrueNAS SCALE system, directly to a directory inside the App you're installing. -However: We might port this to PVC's in the future, which is not fully decided on yet. - ### Permissions @@ -46,7 +44,7 @@ For both Integrated Persistent Storage and Custom storage, we offer special opti These get automatically set to be owned by root:__PGID__ There are no options available to configure this. -##### Custom storage +##### Custom app storage aka "hostPathMounts" We offer an optional automatic set the permissions according to App PGID and PUID.