From 3262281ac08c8508fceb7ddac4bd0ab426899f3f Mon Sep 17 00:00:00 2001 From: kjeld Schouten-Lebbing Date: Mon, 8 Nov 2021 15:51:46 +0100 Subject: [PATCH] cleanup --- dependencies/postgresql/5.1.12/CHANGELOG.md | 99 - dependencies/postgresql/5.1.12/CONFIG.md | 8 - dependencies/postgresql/5.1.12/Chart.lock | 6 - dependencies/postgresql/5.1.12/Chart.yaml | 30 - dependencies/postgresql/5.1.12/README.md | 37 - dependencies/postgresql/5.1.12/app-readme.md | 3 - .../postgresql/5.1.12/charts/common-8.5.3.tgz | Bin 33624 -> 0 bytes dependencies/postgresql/5.1.12/helm-values.md | 38 - dependencies/postgresql/5.1.12/ix_values.yaml | 47 - dependencies/postgresql/5.1.12/questions.yaml | 2040 ----------------- .../templates/backup-postgres-config.yaml | 15 - .../postgresql/5.1.12/templates/common.yaml | 2 - .../postgresql/5.1.12/templates/secret.yaml | 13 - .../upgrade-backup-postgres-hook.yaml | 56 - dependencies/postgresql/5.1.12/values.yaml | 0 dependencies/postgresql/item.yaml | 4 - stable/notes/0.0.12/CHANGELOG.md | 99 - stable/notes/0.0.12/CONFIG.md | 8 - stable/notes/0.0.12/Chart.lock | 6 - stable/notes/0.0.12/Chart.yaml | 33 - stable/notes/0.0.12/README.md | 38 - stable/notes/0.0.12/app-readme.md | 3 - stable/notes/0.0.12/charts/common-8.3.14.tgz | Bin 32830 -> 0 bytes stable/notes/0.0.12/helm-values.md | 28 - stable/notes/0.0.12/ix_values.yaml | 28 - stable/notes/0.0.12/questions.yaml | 1771 -------------- stable/notes/0.0.12/templates/common.yaml | 2 - stable/notes/0.0.12/values.yaml | 0 stable/notes/1.0.4/CHANGELOG.md | 99 - stable/notes/1.0.4/CONFIG.md | 8 - stable/notes/1.0.4/Chart.lock | 6 - stable/notes/1.0.4/Chart.yaml | 33 - stable/notes/1.0.4/README.md | 38 - stable/notes/1.0.4/app-readme.md | 3 - stable/notes/1.0.4/charts/common-8.3.19.tgz | Bin 33055 -> 0 bytes stable/notes/1.0.4/helm-values.md | 28 - stable/notes/1.0.4/ix_values.yaml | 28 - stable/notes/1.0.4/questions.yaml | 1780 -------------- stable/notes/1.0.4/templates/common.yaml | 2 - stable/notes/1.0.4/values.yaml | 0 stable/notes/item.yaml | 4 - stable/omada-controller/3.0.20/CHANGELOG.md | 99 - stable/omada-controller/3.0.20/CONFIG.md | 8 - stable/omada-controller/3.0.20/Chart.lock | 6 - stable/omada-controller/3.0.20/Chart.yaml | 28 - stable/omada-controller/3.0.20/README.md | 38 - stable/omada-controller/3.0.20/app-readme.md | 3 - .../3.0.20/charts/common-8.3.14.tgz | Bin 32830 -> 0 bytes stable/omada-controller/3.0.20/helm-values.md | 26 - stable/omada-controller/3.0.20/ix_values.yaml | 45 - stable/omada-controller/3.0.20/questions.yaml | 1720 -------------- .../3.0.20/templates/common.yaml | 1 - stable/omada-controller/3.0.20/values.yaml | 0 stable/omada-controller/4.0.5/CHANGELOG.md | 99 - stable/omada-controller/4.0.5/CONFIG.md | 8 - stable/omada-controller/4.0.5/Chart.lock | 6 - stable/omada-controller/4.0.5/Chart.yaml | 28 - stable/omada-controller/4.0.5/README.md | 38 - stable/omada-controller/4.0.5/app-readme.md | 3 - .../4.0.5/charts/common-8.3.19.tgz | Bin 33055 -> 0 bytes stable/omada-controller/4.0.5/helm-values.md | 26 - stable/omada-controller/4.0.5/ix_values.yaml | 45 - stable/omada-controller/4.0.5/questions.yaml | 1729 -------------- .../4.0.5/templates/common.yaml | 1 - stable/omada-controller/4.0.5/values.yaml | 0 stable/omada-controller/item.yaml | 4 - stable/postgresql/3.0.21/CHANGELOG.md | 99 - stable/postgresql/3.0.21/CONFIG.md | 8 - stable/postgresql/3.0.21/Chart.lock | 6 - stable/postgresql/3.0.21/Chart.yaml | 34 - stable/postgresql/3.0.21/README.md | 37 - stable/postgresql/3.0.21/app-readme.md | 3 - .../3.0.21/charts/common-8.3.13.tgz | Bin 32775 -> 0 bytes stable/postgresql/3.0.21/helm-values.md | 58 - stable/postgresql/3.0.21/ix_values.yaml | 81 - stable/postgresql/3.0.21/questions.yaml | 1780 -------------- .../templates/backup-postgres-config.yaml | 15 - .../postgresql/3.0.21/templates/common.yaml | 2 - .../postgresql/3.0.21/templates/secret.yaml | 13 - .../upgrade-backup-postgres-hook.yaml | 56 - stable/postgresql/3.0.21/values.yaml | 0 stable/postgresql/4.1.0/CHANGELOG.md | 99 - stable/postgresql/4.1.0/CONFIG.md | 8 - stable/postgresql/4.1.0/Chart.lock | 6 - stable/postgresql/4.1.0/Chart.yaml | 33 - stable/postgresql/4.1.0/README.md | 37 - stable/postgresql/4.1.0/app-readme.md | 3 - .../postgresql/4.1.0/charts/common-8.3.14.tgz | Bin 32830 -> 0 bytes stable/postgresql/4.1.0/helm-values.md | 54 - stable/postgresql/4.1.0/ix_values.yaml | 76 - stable/postgresql/4.1.0/questions.yaml | 1793 --------------- .../templates/backup-postgres-config.yaml | 15 - stable/postgresql/4.1.0/templates/common.yaml | 2 - stable/postgresql/4.1.0/templates/secret.yaml | 13 - .../upgrade-backup-postgres-hook.yaml | 56 - stable/postgresql/4.1.0/values.yaml | 0 stable/postgresql/5.1.11/CHANGELOG.md | 99 - stable/postgresql/5.1.11/CONFIG.md | 8 - stable/postgresql/5.1.11/Chart.lock | 6 - stable/postgresql/5.1.11/Chart.yaml | 30 - stable/postgresql/5.1.11/README.md | 37 - stable/postgresql/5.1.11/app-readme.md | 3 - .../postgresql/5.1.11/charts/common-8.5.3.tgz | Bin 33624 -> 0 bytes stable/postgresql/5.1.11/helm-values.md | 37 - stable/postgresql/5.1.11/ix_values.yaml | 46 - stable/postgresql/5.1.11/questions.yaml | 2040 ----------------- .../templates/backup-postgres-config.yaml | 15 - .../postgresql/5.1.11/templates/common.yaml | 2 - .../postgresql/5.1.11/templates/secret.yaml | 13 - .../upgrade-backup-postgres-hook.yaml | 56 - stable/postgresql/5.1.11/values.yaml | 0 stable/postgresql/item.yaml | 4 - 112 files changed, 17187 deletions(-) delete mode 100644 dependencies/postgresql/5.1.12/CHANGELOG.md delete mode 100644 dependencies/postgresql/5.1.12/CONFIG.md delete mode 100644 dependencies/postgresql/5.1.12/Chart.lock delete mode 100644 dependencies/postgresql/5.1.12/Chart.yaml delete mode 100644 dependencies/postgresql/5.1.12/README.md delete mode 100644 dependencies/postgresql/5.1.12/app-readme.md delete mode 100644 dependencies/postgresql/5.1.12/charts/common-8.5.3.tgz delete mode 100644 dependencies/postgresql/5.1.12/helm-values.md delete mode 100644 dependencies/postgresql/5.1.12/ix_values.yaml delete mode 100644 dependencies/postgresql/5.1.12/questions.yaml delete mode 100644 dependencies/postgresql/5.1.12/templates/backup-postgres-config.yaml delete mode 100644 dependencies/postgresql/5.1.12/templates/common.yaml delete mode 100644 dependencies/postgresql/5.1.12/templates/secret.yaml delete mode 100644 dependencies/postgresql/5.1.12/templates/upgrade-backup-postgres-hook.yaml delete mode 100644 dependencies/postgresql/5.1.12/values.yaml delete mode 100644 dependencies/postgresql/item.yaml delete mode 100644 stable/notes/0.0.12/CHANGELOG.md delete mode 100644 stable/notes/0.0.12/CONFIG.md delete mode 100644 stable/notes/0.0.12/Chart.lock delete mode 100644 stable/notes/0.0.12/Chart.yaml delete mode 100644 stable/notes/0.0.12/README.md delete mode 100644 stable/notes/0.0.12/app-readme.md delete mode 100644 stable/notes/0.0.12/charts/common-8.3.14.tgz delete mode 100644 stable/notes/0.0.12/helm-values.md delete mode 100644 stable/notes/0.0.12/ix_values.yaml delete mode 100644 stable/notes/0.0.12/questions.yaml delete mode 100644 stable/notes/0.0.12/templates/common.yaml delete mode 100644 stable/notes/0.0.12/values.yaml delete mode 100644 stable/notes/1.0.4/CHANGELOG.md delete mode 100644 stable/notes/1.0.4/CONFIG.md delete mode 100644 stable/notes/1.0.4/Chart.lock delete mode 100644 stable/notes/1.0.4/Chart.yaml delete mode 100644 stable/notes/1.0.4/README.md delete mode 100644 stable/notes/1.0.4/app-readme.md delete mode 100644 stable/notes/1.0.4/charts/common-8.3.19.tgz delete mode 100644 stable/notes/1.0.4/helm-values.md delete mode 100644 stable/notes/1.0.4/ix_values.yaml delete mode 100644 stable/notes/1.0.4/questions.yaml delete mode 100644 stable/notes/1.0.4/templates/common.yaml delete mode 100644 stable/notes/1.0.4/values.yaml delete mode 100644 stable/notes/item.yaml delete mode 100644 stable/omada-controller/3.0.20/CHANGELOG.md delete mode 100644 stable/omada-controller/3.0.20/CONFIG.md delete mode 100644 stable/omada-controller/3.0.20/Chart.lock delete mode 100644 stable/omada-controller/3.0.20/Chart.yaml delete mode 100644 stable/omada-controller/3.0.20/README.md delete mode 100644 stable/omada-controller/3.0.20/app-readme.md delete mode 100644 stable/omada-controller/3.0.20/charts/common-8.3.14.tgz delete mode 100644 stable/omada-controller/3.0.20/helm-values.md delete mode 100644 stable/omada-controller/3.0.20/ix_values.yaml delete mode 100644 stable/omada-controller/3.0.20/questions.yaml delete mode 100644 stable/omada-controller/3.0.20/templates/common.yaml delete mode 100644 stable/omada-controller/3.0.20/values.yaml delete mode 100644 stable/omada-controller/4.0.5/CHANGELOG.md delete mode 100644 stable/omada-controller/4.0.5/CONFIG.md delete mode 100644 stable/omada-controller/4.0.5/Chart.lock delete mode 100644 stable/omada-controller/4.0.5/Chart.yaml delete mode 100644 stable/omada-controller/4.0.5/README.md delete mode 100644 stable/omada-controller/4.0.5/app-readme.md delete mode 100644 stable/omada-controller/4.0.5/charts/common-8.3.19.tgz delete mode 100644 stable/omada-controller/4.0.5/helm-values.md delete mode 100644 stable/omada-controller/4.0.5/ix_values.yaml delete mode 100644 stable/omada-controller/4.0.5/questions.yaml delete mode 100644 stable/omada-controller/4.0.5/templates/common.yaml delete mode 100644 stable/omada-controller/4.0.5/values.yaml delete mode 100644 stable/omada-controller/item.yaml delete mode 100644 stable/postgresql/3.0.21/CHANGELOG.md delete mode 100644 stable/postgresql/3.0.21/CONFIG.md delete mode 100644 stable/postgresql/3.0.21/Chart.lock delete mode 100644 stable/postgresql/3.0.21/Chart.yaml delete mode 100644 stable/postgresql/3.0.21/README.md delete mode 100644 stable/postgresql/3.0.21/app-readme.md delete mode 100644 stable/postgresql/3.0.21/charts/common-8.3.13.tgz delete mode 100644 stable/postgresql/3.0.21/helm-values.md delete mode 100644 stable/postgresql/3.0.21/ix_values.yaml delete mode 100644 stable/postgresql/3.0.21/questions.yaml delete mode 100644 stable/postgresql/3.0.21/templates/backup-postgres-config.yaml delete mode 100644 stable/postgresql/3.0.21/templates/common.yaml delete mode 100644 stable/postgresql/3.0.21/templates/secret.yaml delete mode 100644 stable/postgresql/3.0.21/templates/upgrade-backup-postgres-hook.yaml delete mode 100644 stable/postgresql/3.0.21/values.yaml delete mode 100644 stable/postgresql/4.1.0/CHANGELOG.md delete mode 100644 stable/postgresql/4.1.0/CONFIG.md delete mode 100644 stable/postgresql/4.1.0/Chart.lock delete mode 100644 stable/postgresql/4.1.0/Chart.yaml delete mode 100644 stable/postgresql/4.1.0/README.md delete mode 100644 stable/postgresql/4.1.0/app-readme.md delete mode 100644 stable/postgresql/4.1.0/charts/common-8.3.14.tgz delete mode 100644 stable/postgresql/4.1.0/helm-values.md delete mode 100644 stable/postgresql/4.1.0/ix_values.yaml delete mode 100644 stable/postgresql/4.1.0/questions.yaml delete mode 100644 stable/postgresql/4.1.0/templates/backup-postgres-config.yaml delete mode 100644 stable/postgresql/4.1.0/templates/common.yaml delete mode 100644 stable/postgresql/4.1.0/templates/secret.yaml delete mode 100644 stable/postgresql/4.1.0/templates/upgrade-backup-postgres-hook.yaml delete mode 100644 stable/postgresql/4.1.0/values.yaml delete mode 100644 stable/postgresql/5.1.11/CHANGELOG.md delete mode 100644 stable/postgresql/5.1.11/CONFIG.md delete mode 100644 stable/postgresql/5.1.11/Chart.lock delete mode 100644 stable/postgresql/5.1.11/Chart.yaml delete mode 100644 stable/postgresql/5.1.11/README.md delete mode 100644 stable/postgresql/5.1.11/app-readme.md delete mode 100644 stable/postgresql/5.1.11/charts/common-8.5.3.tgz delete mode 100644 stable/postgresql/5.1.11/helm-values.md delete mode 100644 stable/postgresql/5.1.11/ix_values.yaml delete mode 100644 stable/postgresql/5.1.11/questions.yaml delete mode 100644 stable/postgresql/5.1.11/templates/backup-postgres-config.yaml delete mode 100644 stable/postgresql/5.1.11/templates/common.yaml delete mode 100644 stable/postgresql/5.1.11/templates/secret.yaml delete mode 100644 stable/postgresql/5.1.11/templates/upgrade-backup-postgres-hook.yaml delete mode 100644 stable/postgresql/5.1.11/values.yaml delete mode 100644 stable/postgresql/item.yaml diff --git a/dependencies/postgresql/5.1.12/CHANGELOG.md b/dependencies/postgresql/5.1.12/CHANGELOG.md deleted file mode 100644 index 6fd4f311513..00000000000 --- a/dependencies/postgresql/5.1.12/CHANGELOG.md +++ /dev/null @@ -1,99 +0,0 @@ -# Changelog
- - - -### [postgresql-5.1.12](https://github.com/truecharts/apps/compare/postgresql-5.1.11...postgresql-5.1.12) (2021-11-08) - -#### Chore - -* Move postgresql to a seperate dependency train - - - - -### [postgresql-5.1.11](https://github.com/truecharts/apps/compare/postgresql-5.1.10...postgresql-5.1.11) (2021-11-07) - -#### Chore - -* update non-major deps helm releases ([#1295](https://github.com/truecharts/apps/issues/1295)) - - - - -### [postgresql-5.1.10](https://github.com/truecharts/apps/compare/postgresql-5.1.9...postgresql-5.1.10) (2021-11-07) - -#### Chore - -* update non-major ([#1270](https://github.com/truecharts/apps/issues/1270)) - - - - -### [postgresql-5.1.9](https://github.com/truecharts/apps/compare/postgresql-5.1.8...postgresql-5.1.9) (2021-11-07) - -#### Chore - -* update non-major deps helm releases ([#1291](https://github.com/truecharts/apps/issues/1291)) - -#### Chore - -* Simplify GUI for deployment, persistence and securityContext ([#1289](https://github.com/truecharts/apps/issues/1289)) - -#### Feat - -* Simplify the Services GUI ([#1290](https://github.com/truecharts/apps/issues/1290)) - - - - -### [postgresql-5.1.8](https://github.com/truecharts/apps/compare/postgresql-5.1.7...postgresql-5.1.8) (2021-11-02) - -#### Chore - -* update non-major deps helm releases ([#1267](https://github.com/truecharts/apps/issues/1267)) - - - - -### [postgresql-5.1.7](https://github.com/truecharts/apps/compare/postgresql-5.1.6...postgresql-5.1.7) (2021-11-02) - -#### Chore - -* update non-major ([#1265](https://github.com/truecharts/apps/issues/1265)) - - - - -### [postgresql-5.1.6](https://github.com/truecharts/apps/compare/postgresql-5.1.5...postgresql-5.1.6) (2021-11-01) - -#### Chore - -* update non-major deps helm releases ([#1264](https://github.com/truecharts/apps/issues/1264)) - - - - -### [postgresql-5.1.5](https://github.com/truecharts/apps/compare/postgresql-5.1.4...postgresql-5.1.5) (2021-11-01) - -#### Chore - -* update non-major ([#1263](https://github.com/truecharts/apps/issues/1263)) - - - - -### [postgresql-5.1.4](https://github.com/truecharts/apps/compare/postgresql-5.1.3...postgresql-5.1.4) (2021-10-26) - -#### Fix - -* correct group permissions on SCALE deployments of postgresql - - - - -### [postgresql-5.1.3](https://github.com/truecharts/apps/compare/postgresql-5.1.2...postgresql-5.1.3) (2021-10-26) - -#### Chore - -* update non-major deps helm releases ([#1245](https://github.com/truecharts/apps/issues/1245)) - diff --git a/dependencies/postgresql/5.1.12/CONFIG.md b/dependencies/postgresql/5.1.12/CONFIG.md deleted file mode 100644 index fc9b2fa2d5f..00000000000 --- a/dependencies/postgresql/5.1.12/CONFIG.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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 Internally" quick-start guide: -https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ - -##### 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/dependencies/postgresql/5.1.12/Chart.lock b/dependencies/postgresql/5.1.12/Chart.lock deleted file mode 100644 index a00bb210998..00000000000 --- a/dependencies/postgresql/5.1.12/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://truecharts.org - version: 8.5.3 -digest: sha256:0cc5e4101e5ff85c878493dc322d39b7b26b300badde2db93ffddaf6575dafa4 -generated: "2021-11-08T13:36:50.964335143Z" diff --git a/dependencies/postgresql/5.1.12/Chart.yaml b/dependencies/postgresql/5.1.12/Chart.yaml deleted file mode 100644 index 80cbec88bf3..00000000000 --- a/dependencies/postgresql/5.1.12/Chart.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: v2 -appVersion: "14.0.0" -dependencies: -- name: common - repository: https://truecharts.org - version: 8.5.3 -deprecated: false -description: PostgresSQL -home: https://github.com/truecharts/apps/tree/master/stable/postgres -icon: https://d1q6f0aelx0por.cloudfront.net/product-logos/library-postgres-logo.png -keywords: -- postgres -- postgressql -- dtabase -- sql -kubeVersion: '>=1.16.0-0' -maintainers: -- email: info@truecharts.org - name: TrueCharts - url: truecharts.org -name: postgresql -sources: -- https://www.postgresql.org/ -type: application -version: 5.1.12 -annotations: - truecharts.org/catagories: | - - database - truecharts.org/SCALE-support: "true" - truecharts.org/grade: U diff --git a/dependencies/postgresql/5.1.12/README.md b/dependencies/postgresql/5.1.12/README.md deleted file mode 100644 index c97c6b30b62..00000000000 --- a/dependencies/postgresql/5.1.12/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Introduction - -PostgresSQL - -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://truecharts.org | common | 8.5.3 | - -## Installing the Chart - -To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). - -## Uninstalling the Chart - -To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). - -## Support - -- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. -- See the [Wiki](https://truecharts.org) -- Check our [Discord](https://discord.gg/tVsPTHWTtr) -- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) ---- -All Rights Reserved - The TrueCharts Project diff --git a/dependencies/postgresql/5.1.12/app-readme.md b/dependencies/postgresql/5.1.12/app-readme.md deleted file mode 100644 index 88e9ec74b99..00000000000 --- a/dependencies/postgresql/5.1.12/app-readme.md +++ /dev/null @@ -1,3 +0,0 @@ -PostgresSQL - -This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/dependencies/postgresql/5.1.12/charts/common-8.5.3.tgz b/dependencies/postgresql/5.1.12/charts/common-8.5.3.tgz deleted file mode 100644 index ff54eea096da235c7ed0e5bf48f21c472b843387..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33624 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�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 AssI20 diff --git a/dependencies/postgresql/5.1.12/helm-values.md b/dependencies/postgresql/5.1.12/helm-values.md deleted file mode 100644 index a520aa465b8..00000000000 --- a/dependencies/postgresql/5.1.12/helm-values.md +++ /dev/null @@ -1,38 +0,0 @@ -# Default Helm-Values - -TrueCharts is primarily build to supply TrueNAS SCALE Apps. -However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. - -Most of our Apps also consume our "common" Helm Chart. -If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. -You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. - -## Values - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| enableUpgradeBackup | bool | `false` | | -| envTpl.POSTGRES_DB | string | `"{{ .Values.postgresqlDatabase }}"` | | -| envTpl.POSTGRES_USER | string | `"{{ .Values.postgresqlUsername }}"` | | -| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | -| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.name | string | `"{{ ( tpl .Values.existingSecret $ ) | default ( include \"common.names.fullname\" . ) }}"` | | -| existingSecret | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"bitnami/postgresql"` | | -| image.tag | string | `"14.0.0@sha256:a95e5588c9f716bfc716b090f3cea41cbefb0d2c6e1c3c6de5514a5c2d1ce416"` | | -| persistence.db.accessMode | string | `"ReadWriteOnce"` | | -| persistence.db.enabled | bool | `true` | | -| persistence.db.mountPath | string | `"/bitnami/postgresql"` | | -| persistence.db.size | string | `"999Gi"` | | -| persistence.db.type | string | `"pvc"` | | -| podSecurityContext.runAsGroup | int | `0` | | -| postgresqlDatabase | string | `"test"` | | -| postgresqlPassword | string | `"testpass"` | | -| postgresqlUsername | string | `"test"` | | -| securityContext.readOnlyRootFilesystem | bool | `false` | | -| service.main.enabled | bool | `true` | | -| service.main.ports.main.port | int | `5432` | | -| service.main.ports.main.targetPort | int | `5432` | | -| service.type | string | `"ClusterIP"` | | - -All Rights Reserved - The TrueCharts Project diff --git a/dependencies/postgresql/5.1.12/ix_values.yaml b/dependencies/postgresql/5.1.12/ix_values.yaml deleted file mode 100644 index afcef2786ec..00000000000 --- a/dependencies/postgresql/5.1.12/ix_values.yaml +++ /dev/null @@ -1,47 +0,0 @@ -image: - repository: bitnami/postgresql - pullPolicy: IfNotPresent - tag: 14.0.0@sha256:a95e5588c9f716bfc716b090f3cea41cbefb0d2c6e1c3c6de5514a5c2d1ce416 - -securityContext: - readOnlyRootFilesystem: false - -service: - type: "ClusterIP" - main: - enabled: true - ports: - main: - port: 5432 - targetPort: 5432 - -## TODO: Fix the backup-on-upgrade system -enableUpgradeBackup: false - -podSecurityContext: - runAsGroup: 0 - -persistence: - db: - enabled: true - mountPath: "/bitnami/postgresql" - type: pvc - accessMode: ReadWriteOnce - size: "999Gi" - -postgresqlPassword: "testpass" -postgresqlUsername: "test" -postgresqlDatabase: "test" -existingSecret: "" - -envValueFrom: - POSTGRES_PASSWORD: - secretKeyRef: - name: '{{ ( tpl .Values.existingSecret $ ) | default ( include "common.names.fullname" . ) }}' - key: "postgresql-password" - -envTpl: - POSTGRES_USER: "{{ .Values.postgresqlUsername }}" - POSTGRES_DB: "{{ .Values.postgresqlDatabase }}" -# POSTGRESQL_POSTGRES_PASSWORD: "{{ .Values.postgrespassword }}" -# POSTGRESQL_PASSWORD: "{{ .Values.password }}" diff --git a/dependencies/postgresql/5.1.12/questions.yaml b/dependencies/postgresql/5.1.12/questions.yaml deleted file mode 100644 index 63ac840c169..00000000000 --- a/dependencies/postgresql/5.1.12/questions.yaml +++ /dev/null @@ -1,2040 +0,0 @@ -groups: - - name: "Container Image" - description: "Image to be used for container" - - name: "Controller" - description: "Configure workload deployment" - - name: "Container Configuration" - description: "additional container configuration" - - name: "App Configuration" - description: "App specific config options" - - name: "Networking and Services" - description: "Configure Network and Services for container" - - name: "Storage and Persistence" - description: "Persist and share data that is separate from the container" - - name: "Ingress" - description: "Ingress Configuration" - - name: "Security and Permissions" - description: "Configure security context and permissions" - - name: "Resources and Devices" - description: "Specify resources/devices to be allocated to workload" - - name: "Middlewares" - description: "Traefik Middlewares" - - name: "Addons" - description: "Addon Configuration" - - name: "Advanced" - description: "Advanced Configuration" -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: false - - variable: global - label: "global settings" - group: "Controller" - schema: - type: dict - hidden: true - attrs: - - variable: isSCALE - label: "flag this is SCALE" - schema: - type: boolean - default: true - hidden: true - - variable: controller - group: "Controller" - label: "" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced Controller Settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: type - description: "Please specify type of workload to deploy" - label: "(Advanced) Controller Type" - schema: - type: string - default: "deployment" - required: true - enum: - - value: "deployment" - description: "Deployment" - - value: "statefulset" - description: "Statefulset" - - value: "daemonset" - description: "Daemonset" - - variable: replicas - description: "Number of desired pod replicas" - label: "Desired Replicas" - schema: - type: int - default: 1 - required: true - - variable: strategy - description: "Please specify type of workload to deploy" - label: "(Advanced) Update Strategy" - schema: - type: string - default: "Recreate" - required: true - enum: - - value: "Recreate" - description: "Recreate: Kill existing pods before creating new ones" - - value: "RollingUpdate" - description: "RollingUpdate: Create new pods and then kill old ones" - - value: "OnDelete" - description: "(Legacy) OnDelete: ignore .spec.template changes" - - variable: expert - label: "Show Expert Configuration Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: extraArgs - label: "Extra Args" - schema: - type: list - default: [] - items: - - variable: argItem - label: "Arg" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: labelsList - label: "Controller Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: " Controller Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: env - group: "Container 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" - - - variable: envList - label: "Image environment" - group: "Container 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 - - - variable: expertpodconf - group: "Container Configuration" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: termination - group: "Container Configuration" - label: "Termination settings" - schema: - type: dict - attrs: - - variable: gracePeriodSeconds - label: "Grace Period Seconds" - schema: - type: int - default: 10 - - variable: podLabelsList - group: "Container Configuration" - label: "Pod Labels" - schema: - type: list - default: [] - items: - - variable: podLabelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: podAnnotationsList - group: "Container Configuration" - label: "Pod Annotations" - schema: - type: list - default: [] - items: - - variable: podAnnotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: postgresqlDatabase - group: "App Configuration" - label: "Database Name" - schema: - type: string - default: "mydatabase" - required: true - - variable: postgresqlUsername - group: "App Configuration" - label: "Database User" - schema: - type: string - default: "mydatabaseuser" - required: true - - variable: postgresqlPassword - group: "App Configuration" - label: "Database Password" - schema: - type: string - default: "" - required: true - - - variable: service - group: "Networking and Services" - 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: "Simple" - enum: - - value: "Simple" - description: "Simple" - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort (Advanced)" - - value: "LoadBalancer" - description: "LoadBalancer (Advanced)" - - 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: advanced - label: "Show Advanced settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: protocol - label: "Port Type" - schema: - type: string - default: "TCP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" - schema: - type: int - min: 9000 - max: 65535 - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 5432 - - - variable: port - label: "Container Port" - schema: - type: int - default: 5432 - editable: true - required: true - - - - - variable: serviceexpert - group: "Networking and Services" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostNetwork - group: "Networking and Services" - label: "Host-Networking (Complicated)" - schema: - type: boolean - default: false - - - variable: dnsPolicy - group: "Networking and Services" - label: "dnsPolicy" - schema: - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "ClusterFirst" - description: "ClusterFirst" - - value: "ClusterFirstWithHostNet" - description: "ClusterFirstWithHostNet" - - value: "None" - description: "None" - - - variable: dnsConfig - label: "DNS Configuration" - group: "Networking and Services" - description: "Specify custom DNS configuration which will be applied to the pod" - schema: - type: dict - attrs: - - variable: nameservers - label: "Nameservers" - schema: - default: [] - type: list - items: - - variable: nameserver - label: "Nameserver" - schema: - type: string - - variable: options - label: "options" - schema: - default: [] - type: list - items: - - variable: option - label: "Option Entry" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: searches - label: "Searches" - schema: - default: [] - type: list - items: - - variable: search - label: "Search Entry" - schema: - type: string - - - variable: serviceList - label: "Add Manual Custom Services" - group: "Networking and Services" - schema: - type: list - default: [] - items: - - variable: serviceListEntry - label: "Custom Service" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name" - schema: - type: string - default: "" - - 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: "Simple" - enum: - - value: "Simple" - description: "Simple" - - 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: portsList - label: "Additional Service Ports" - schema: - type: list - default: [] - items: - - variable: portsListEntry - label: "Custom ports" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the port" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Port Name" - schema: - type: string - default: "" - - variable: protocol - label: "Port Type" - schema: - type: string - default: "TCP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: targetPort - label: "Target Port" - description: "This port exposes the container port on the service" - schema: - type: int - required: true - - variable: port - label: "Container Port" - schema: - type: int - 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 - - - variable: persistence - label: "Integrated Persistent Storage" - description: "Integrated Persistent Storage" - group: "Storage and Persistence" - schema: - type: dict - attrs: - - variable: db - label: "Old db Storage" - description: "Stores the old Application Database." - schema: - type: dict - hidden: true - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Type of Storage" - description: "Sets the persistence type, Anything other than PVC could break rollback!" - schema: - type: string - default: "simplePVC" - enum: - - value: "simplePVC" - description: "PVC (simple)" - - value: "simpleHP" - description: "HostPath (simple)" - - value: "emptyDir" - description: "emptyDir" - - value: "pvc" - description: "pvc" - - value: "hostPath" - description: "hostPath" - - variable: setPermissionsSimple - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "simpleHP"]] - type: boolean - default: true - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPathSimple - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "simpleHP"]] - type: hostpath - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "/var/lib/postgresql/data" - hidden: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: size - label: "Size quotum of storage" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "999Gi" - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: accessMode - label: "(Advanced) Access Mode" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "ReadWriteOnce" - enum: - - value: "ReadWriteOnce" - description: "ReadWriteOnce" - - value: "ReadOnlyMany" - description: "ReadOnlyMany" - - value: "ReadWriteMany" - description: "ReadWriteMany" - - variable: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: data - label: "App data Storage" - description: "Stores the Application Database." - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Type of Storage" - description: "Sets the persistence type, Anything other than PVC could break rollback!" - schema: - type: string - default: "simplePVC" - enum: - - value: "simplePVC" - description: "PVC (simple)" - - value: "simpleHP" - description: "HostPath (simple)" - - value: "emptyDir" - description: "emptyDir" - - value: "pvc" - description: "pvc" - - value: "hostPath" - description: "hostPath" - - variable: setPermissionsSimple - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "simpleHP"]] - type: boolean - default: true - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPathSimple - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "simpleHP"]] - type: hostpath - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "/bitnami/postgresql" - hidden: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: size - label: "Size quotum of storage" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "999Gi" - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: accessMode - label: "(Advanced) Access Mode" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "ReadWriteOnce" - enum: - - value: "ReadWriteOnce" - description: "ReadWriteOnce" - - value: "ReadOnlyMany" - description: "ReadOnlyMany" - - value: "ReadWriteMany" - description: "ReadWriteMany" - - variable: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: dbbackups - label: "App backup Storage" - description: "Stores the Application backups." - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Type of Storage" - description: "Sets the persistence type, Anything other than PVC could break rollback!" - schema: - type: string - default: "simplePVC" - enum: - - value: "simplePVC" - description: "PVC (simple)" - - value: "simpleHP" - description: "HostPath (simple)" - - value: "emptyDir" - description: "emptyDir" - - value: "pvc" - description: "pvc" - - value: "hostPath" - description: "hostPath" - - variable: setPermissionsSimple - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "simpleHP"]] - type: boolean - default: true - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPathSimple - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "simpleHP"]] - type: hostpath - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "/dbbackups" - hidden: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: size - label: "Size quotum of storage" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "999Gi" - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: accessMode - label: "(Advanced) Access Mode" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "ReadWriteOnce" - enum: - - value: "ReadWriteOnce" - description: "ReadWriteOnce" - - value: "ReadOnlyMany" - description: "ReadOnlyMany" - - value: "ReadWriteMany" - description: "ReadWriteMany" - - variable: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: persistenceList - label: "Additional app storage" - group: "Storage and Persistence" - schema: - type: list - default: [] - items: - - variable: persistenceListEntry - label: "Custom Storage" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name (optional)" - description: "Not required, please set to config when mounting /config or temp when mounting /tmp" - schema: - type: string - - variable: type - label: "Type of Storage" - description: "Sets the persistence type, Anything other than PVC could break rollback!" - schema: - type: string - default: "simpleHP" - enum: - - value: "simplePVC" - description: "PVC (simple)" - - value: "simpleHP" - description: "HostPath (simple)" - - value: "emptyDir" - description: "emptyDir" - - value: "pvc" - description: "pvc" - - value: "hostPath" - description: "hostPath" - - variable: setPermissionsSimple - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "simpleHP"]] - type: boolean - default: true - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPathSimple - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "simpleHP"]] - type: hostpath - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "" - required: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: size - label: "Size quotum of storage" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "999Gi" - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: accessMode - label: "(Advanced) Access Mode" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "ReadWriteOnce" - enum: - - value: "ReadWriteOnce" - description: "ReadWriteOnce" - - value: "ReadOnlyMany" - description: "ReadOnlyMany" - - value: "ReadWriteMany" - description: "ReadWriteMany" - - variable: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: ingressList - label: "Add Manual Custom Ingresses" - group: "Ingress" - schema: - type: list - default: [] - items: - - variable: ingressListEntry - label: "Custom Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Ingress" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name" - schema: - type: string - default: "" - - variable: ingressClassName - label: "IngressClass Name" - schema: - type: string - default: "" - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: hostEntry - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "HostName" - schema: - type: string - default: "" - required: true - - variable: paths - label: "Paths" - schema: - type: list - default: [] - items: - - variable: pathEntry - label: "Host" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "Prefix" - - variable: service - label: "Linked Service" - schema: - type: dict - attrs: - - variable: name - label: "Service Name" - schema: - type: string - default: "" - - variable: port - label: "Service Port" - schema: - type: int - - variable: tls - label: "TLS-Settings" - schema: - type: list - default: [] - items: - - variable: tlsEntry - label: "Host" - schema: - type: dict - attrs: - - variable: hosts - label: "Certificate Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: string - default: "" - required: true - - variable: scaleCert - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - $ref: - - "definitions/certificate" - - variable: entrypoint - label: "Traefik Entrypoint" - description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" - schema: - type: string - default: "websecure" - required: true - - variable: middlewares - label: "Traefik Middlewares" - description: "Add previously created Traefik Middlewares to this Ingress" - schema: - type: list - default: [] - items: - - variable: name - label: "Name" - schema: - type: string - default: "" - required: true - - - variable: advancedSecurity - label: "Show Advanced Security Settings" - group: "Security and Permissions" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: securityContext - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Privileged mode" - schema: - type: boolean - default: false - - variable: readOnlyRootFilesystem - label: "ReadOnly Root Filesystem" - schema: - type: boolean - default: false - - variable: allowPrivilegeEscalation - label: "Allow Privilege Escalation" - schema: - type: boolean - default: false - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: true - - - variable: podSecurityContext - group: "Security and Permissions" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsUser - label: "runAsUser" - description: "The UserID of the user running the application" - schema: - type: int - default: 568 - - variable: runAsGroup - label: "runAsGroup" - description: The groupID this App of the user running the application" - schema: - type: int - default: 0 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: supplementalGroups - label: "supplemental Groups" - schema: - type: list - default: [] - items: - - variable: supplementalGroupsEntry - label: "supplemental Group" - schema: - type: int - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" - - - # Specify GPU configuration - - variable: scaleGPU - label: "GPU Configuration" - group: "Resources and Devices" - schema: - type: dict - $ref: - - "definitions/gpuConfiguration" - attrs: [] - - - - variable: advancedresources - label: "Set Custom Resource Limits/Requests (Advanced)" - group: "Resources and Devices" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: resources - label: "" - schema: - type: dict - attrs: - - variable: limits - label: "Advanced Limit Resource Consumption" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "4000m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "8Gi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - variable: requests - label: "Advanced Request minimum resources required" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "10m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "50Mi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - - variable: deviceList - label: "Mount USB devices" - group: "Resources and Devices" - schema: - type: list - default: [] - items: - - variable: deviceListEntry - label: "Device" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "Host Device Path" - description: "Path to the device on the host system" - schema: - type: path - - variable: mountPath - label: "Container Device Path" - description: "Path inside the container the device is mounted" - schema: - type: string - default: "/dev/ttyACM0" - - - variable: autoscaling - group: "Advanced" - label: "(Advanced) Horizontal Pod Autoscaler" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: target - label: "Target" - description: "deployment name, defaults to main deployment" - schema: - type: string - default: "" - - variable: minReplicas - label: "Minimum Replicas" - schema: - type: int - default: 1 - - variable: maxReplicas - label: "Maximum Replicas" - schema: - type: int - default: 5 - - variable: targetCPUUtilizationPercentage - label: "Target CPU Utilization Percentage" - schema: - type: int - default: 80 - - variable: targetMemoryUtilizationPercentage - label: "Target Memory Utilization Percentage" - schema: - type: int - default: 80 - - - - variable: addons - group: "Addons" - label: "" - schema: - type: dict - attrs: - - variable: vpn - label: "VPN" - schema: - type: dict - attrs: - - variable: type - label: "Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "disabled" - - value: "openvpn" - description: "OpenVPN" - - value: "wireguard" - description: "Wireguard" - - variable: openvpn - label: "OpenVPN Settings" - schema: - type: dict - show_if: [["type", "=", "openvpn"]] - attrs: - - variable: username - label: "authentication username" - description: "authentication username, optional" - schema: - type: string - default: "" - - variable: password - label: "authentication password" - description: "authentication credentials" - schema: - type: string - default: "" - required: true - - variable: killSwitch - label: "Enable killswitch" - schema: - type: boolean - show_if: [["type", "!=", "disabled"]] - default: true - - variable: excludedNetworks_IPv4 - label: "Killswitch Excluded IPv4 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv4 - label: "IPv4 Network" - schema: - type: string - required: true - - variable: excludedNetworks_IPv6 - label: "Killswitch Excluded IPv6 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv6 - label: "IPv6 Network" - schema: - type: string - required: true - - - variable: configFile - label: "VPN Config File Location" - schema: - type: dict - show_if: [["type", "!=", "disabled"]] - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: hostPathType - label: "hostPathType" - schema: - type: string - default: "File" - hidden: true - - variable: noMount - label: "noMount" - schema: - type: boolean - default: true - hidden: true - - variable: hostPath - label: "Full path to file" - description: "path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" - schema: - type: string - default: "" - required: true - - variable: envList - label: "VPN environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - variable: codeserver - label: "Codeserver" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: git - label: "Git Settings" - schema: - type: dict - attrs: - - variable: deployKey - description: "Raw SSH private key" - label: "deployKey" - schema: - type: string - - variable: deployKeyBase64 - description: "Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence" - label: "deployKeyBase64" - schema: - type: string - - variable: service - label: "" - schema: - type: dict - attrs: - - 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: "" - schema: - type: dict - attrs: - - variable: codeserver - label: "" - schema: - type: dict - attrs: - - variable: nodePort - description: "leave empty to disable" - label: "nodePort" - schema: - type: int - default: 36107 - - variable: envList - label: "Codeserver environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - variable: promtail - label: "Promtail" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: loki - label: "Loki URL" - schema: - type: string - required: true - - variable: logs - label: "Log Paths" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: path - label: "Path" - schema: - type: string - required: true - - variable: args - label: "Promtail ecommand line arguments" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: arg - label: "Arg" - schema: - type: string - required: true - - variable: envList - label: "Promtail environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - - - variable: netshoot - label: "Netshoot" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: envList - label: "Netshoot environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true diff --git a/dependencies/postgresql/5.1.12/templates/backup-postgres-config.yaml b/dependencies/postgresql/5.1.12/templates/backup-postgres-config.yaml deleted file mode 100644 index e52eb2ed5a1..00000000000 --- a/dependencies/postgresql/5.1.12/templates/backup-postgres-config.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: "postgres-backup-hook-config-map" - annotations: - rollme: {{ randAlphaNum 5 | quote }} -data: - entrypoint.sh: |- - #!/bin/sh - cmd="/docker-entrypoint.sh postgres" - eval "${cmd}" & disown; - until pg_isready; do - sleep 5; - done; - pg_dump -U {{ .Values.postgresqlUser }} -d {{ .Values.postgresqlDatabase }} > /dbbackups/$BACKUP_NAME; diff --git a/dependencies/postgresql/5.1.12/templates/common.yaml b/dependencies/postgresql/5.1.12/templates/common.yaml deleted file mode 100644 index 9705d4f5fa6..00000000000 --- a/dependencies/postgresql/5.1.12/templates/common.yaml +++ /dev/null @@ -1,2 +0,0 @@ - -{{ include "common.all" . }} diff --git a/dependencies/postgresql/5.1.12/templates/secret.yaml b/dependencies/postgresql/5.1.12/templates/secret.yaml deleted file mode 100644 index be7022c005f..00000000000 --- a/dependencies/postgresql/5.1.12/templates/secret.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "common.names.fullname" . }} - labels: - {{- include "common.labels" . | nindent 4 }} - annotations: - {{- with .Values.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} -type: Opaque -data: - postgresql-password: {{ ( .Values.postgresqlPassword | default "empty" ) | b64enc | quote }} diff --git a/dependencies/postgresql/5.1.12/templates/upgrade-backup-postgres-hook.yaml b/dependencies/postgresql/5.1.12/templates/upgrade-backup-postgres-hook.yaml deleted file mode 100644 index 516ee5180a6..00000000000 --- a/dependencies/postgresql/5.1.12/templates/upgrade-backup-postgres-hook.yaml +++ /dev/null @@ -1,56 +0,0 @@ -{{- if and ( .Values.enableUpgradeBackup ) ( .Values.ixChartContext ) -}} -{{- if .Values.ixChartContext.isUpgrade -}} -{{- $upgradeDict := .Values.ixChartContext.upgradeMetadata -}} -{{ $values := (. | mustDeepCopy) }} ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: "pre-upgrade-hook2" - annotations: - "helm.sh/hook": pre-upgrade - "helm.sh/hook-weight": "1" - "helm.sh/hook-delete-policy": hook-succeeded - rollme: {{ randAlphaNum 5 | quote }} -spec: - template: - metadata: - name: "pre-upgrade-hook2" - spec: - restartPolicy: Never - containers: - - name: {{ .Chart.Name }}-postgres-backup - image: {{ printf "%v:%v" .Values.image.repository .Values.image.tag}} - imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - - name: BACKUP_NAME - value: {{- printf "postgres-backup-from-%s-to-%s-revision-%d" $upgradeDict.oldChartVersion $upgradeDict.newChartVersion (int64 $upgradeDict.preUpgradeRevision) -}} - - name: POSTGRES_USER - value: {{ .Values.postgresqlUsername | quote }} - - name: POSTGRES_DB - value: {{ .Values.postgresqlDatabase | quote }} - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: {{ ( .Values.existingSecret | default ( include "common.names.fullname" . ) ) | quote }} - key: "postgresql-password" - command: - - "/bin/backup_entrypoint.sh" - volumeMounts: - - name: backup-script-configmap - mountPath: /bin/backup_entrypoint.sh - readOnly: true - subPath: entrypoint.sh - {{- with (include "common.controller.volumeMounts" . | trim) }} - {{ nindent 4 . }} - {{- end }} - volumes: - - name: backup-script-configmap - configMap: - defaultMode: 0700 - name: "postgres-backup-hook-config-map" - {{- with (include "common.controller.volumes" . | trim) }} - {{- nindent 2 . }} - {{- end }} -{{- end -}} -{{- end -}} diff --git a/dependencies/postgresql/5.1.12/values.yaml b/dependencies/postgresql/5.1.12/values.yaml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/dependencies/postgresql/item.yaml b/dependencies/postgresql/item.yaml deleted file mode 100644 index ead2b01cb93..00000000000 --- a/dependencies/postgresql/item.yaml +++ /dev/null @@ -1,4 +0,0 @@ -icon_url: https://d1q6f0aelx0por.cloudfront.net/product-logos/library-postgres-logo.png -categories: -- database - diff --git a/stable/notes/0.0.12/CHANGELOG.md b/stable/notes/0.0.12/CHANGELOG.md deleted file mode 100644 index e5c9404e088..00000000000 --- a/stable/notes/0.0.12/CHANGELOG.md +++ /dev/null @@ -1,99 +0,0 @@ -# Changelog
- - -
-### [notes-0.0.12](https://github.com/truecharts/apps/compare/notes-0.0.9...notes-0.0.12) (2021-10-20) - -#### Chore - -* bump apps, remove duplicates and move incubator to stable for RC1 - - - - -### [notes-0.0.9](https://github.com/truecharts/apps/compare/notes-0.0.8...notes-0.0.9) (2021-10-20) - -#### Chore - -* bump versions to rerelease and fix icons - - - - -### [notes-0.0.8](https://github.com/truecharts/apps/compare/notes-0.0.7...notes-0.0.8) (2021-10-19) - -#### Change - -* Project-Eclipse 3, Automatically generate item.yaml ([#1178](https://github.com/truecharts/apps/issues/1178)) - -#### Chore - -* Project-Eclipse 5, move app-readme to automatic generation script ([#1181](https://github.com/truecharts/apps/issues/1181)) -* Project-Eclipse part 2, adapting and cleaning changelog ([#1173](https://github.com/truecharts/apps/issues/1173)) -* update helm chart common to v8.3.13 ([#1184](https://github.com/truecharts/apps/issues/1184)) - -#### Feat - -* Project-Eclipse 4, Add App grading annotations to Chart.yaml ([#1180](https://github.com/truecharts/apps/issues/1180)) - -#### Refactor - -* Project Eclipse Part 6, move questions.yaml to root App folder ([#1182](https://github.com/truecharts/apps/issues/1182)) - - - - -### [notes-0.0.7](https://github.com/truecharts/apps/compare/notes-0.0.6...notes-0.0.7) (2021-10-19) - -#### Fix - -* fix previous SCALE bugfix not correctly being applied - - - - -### [notes-0.0.6](https://github.com/truecharts/apps/compare/notes-0.0.5...notes-0.0.6) (2021-10-19) - -#### Fix - -* Solve issues regarding ix_values.yaml not containing the image and tag definitions. ([#1176](https://github.com/truecharts/apps/issues/1176)) - - - - -### [notes-0.0.5](https://github.com/truecharts/apps/compare/notes-0.0.4...notes-0.0.5) (2021-10-18) - -#### Chore - -* Add description on persistence ([#1172](https://github.com/truecharts/apps/issues/1172)) - -#### Refactor - -* Project Eclipse - part 1 - remove ix_values.yaml ([#1168](https://github.com/truecharts/apps/issues/1168)) - - - - -### [notes-0.0.4](https://github.com/truecharts/apps/compare/notes-0.0.3...notes-0.0.4) (2021-10-17) - -#### Chore - -* update helm chart common to v8.3.10 ([#1160](https://github.com/truecharts/apps/issues/1160)) - -#### Fix - -* force users using correct / prefix for mounPath ([#1156](https://github.com/truecharts/apps/issues/1156)) - - - - -### [notes-0.0.3](https://github.com/truecharts/apps/compare/notes-0.0.2...notes-0.0.3) (2021-10-13) - -#### Chore - -* update non-major deps helm releases ([#1133](https://github.com/truecharts/apps/issues/1133)) - - - - -### [notes-0.0.2](https://github.com/truecharts/apps/compare/notes-0.0.1...notes-0.0.2) (2021-10-13) diff --git a/stable/notes/0.0.12/CONFIG.md b/stable/notes/0.0.12/CONFIG.md deleted file mode 100644 index fc9b2fa2d5f..00000000000 --- a/stable/notes/0.0.12/CONFIG.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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 Internally" quick-start guide: -https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ - -##### 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/stable/notes/0.0.12/Chart.lock b/stable/notes/0.0.12/Chart.lock deleted file mode 100644 index 199be75ad6e..00000000000 --- a/stable/notes/0.0.12/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.14 -digest: sha256:2278950106e480dac22f26c75bdff4cffbc2d5262a24692f160c3bfa37bda367 -generated: "2021-10-20T22:46:46.530438715Z" diff --git a/stable/notes/0.0.12/Chart.yaml b/stable/notes/0.0.12/Chart.yaml deleted file mode 100644 index 991582bd4d2..00000000000 --- a/stable/notes/0.0.12/Chart.yaml +++ /dev/null @@ -1,33 +0,0 @@ -apiVersion: v2 -appVersion: "ee287b9" -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.14 -description: A self-hosted note taking web app that lets you keep track of your notes - and search them in a easy and minimal way. -home: https://github.com/truecharts/apps/tree/master/charts/stable/notes -icon: '' -keywords: -- markdown -- notes -- app -- web -- webapp -kubeVersion: '>=1.16.0-0' -maintainers: -- email: info@truecharts.org - name: TrueCharts - url: truecharts.org -name: notes -sources: -- https://github.com/prologic/notes -- https://github.com/nicholaswilde/docker-notes -type: application -version: 0.0.12 -annotations: - truecharts.org/catagories: | - - media - - truecharts.org/SCALE-support: "true" - truecharts.org/grade: U diff --git a/stable/notes/0.0.12/README.md b/stable/notes/0.0.12/README.md deleted file mode 100644 index aff07f0bf7a..00000000000 --- a/stable/notes/0.0.12/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Introduction - -A self-hosted note taking web app that lets you keep track of your notes and search them in a easy and minimal way. - -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://truecharts.org | common | 8.3.14 | - -## Installing the Chart - -To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). - -## Uninstalling the Chart - -To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). - -## Support - -- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. -- See the [Wiki](https://truecharts.org) -- Check our [Discord](https://discord.gg/tVsPTHWTtr) -- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) ---- -All Rights Reserved - The TrueCharts Project diff --git a/stable/notes/0.0.12/app-readme.md b/stable/notes/0.0.12/app-readme.md deleted file mode 100644 index 265ec8b8617..00000000000 --- a/stable/notes/0.0.12/app-readme.md +++ /dev/null @@ -1,3 +0,0 @@ -A self-hosted note taking web app that lets you keep track of your notes and search them in a easy and minimal way. - -This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/notes/0.0.12/charts/common-8.3.14.tgz b/stable/notes/0.0.12/charts/common-8.3.14.tgz deleted file mode 100644 index 433c2b8196b48e50d5838e38a184acc597bc34c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32830 zcmV)ZK&!tWiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMYcciT9UIJ$r9Q(&3&Z95yiW!dpg=C^Jq-JLs$;}bjSyE{9_ zfk;Tgm?GH(C`aSY{p`PkCjk(oB)=v-ZJwEqMFNFF0Vq@z3RPjcSfok!cn)*gS;0m8 zZ+HLndcEFwG~)mEdOi2w-gwaexBjR<9QF1FdxOEh_4l9xjsR5E*n6~+gRvXA>E{h4$ zUH$&gFZ-STxYKL*zHcocPAJ3)$~iE!fH*z`IGLvZRRZp$`K$#%0$G0z0sv6t@gZ;u ziej>5y2{X@LaVh@I2?3_o&Koxz~e91{}RRpBKO1qn%DpSXs|zW*Z=--__+Qb;&}qv zZSX!r$*0p3Kr$5KDGouHCR02sa>&+t>k0U;2u)!TQ&#v4AuvI4deurZlq|F4%>vHQ zVG95b>x{!#0Xj!O764(4Q9=P`1zP~*C`$>ZX}&rHQHFAoCS6&yEsAam3{c2cA%!!= zuKtV6;b3ok81?r@z0v+;Z$H}W?+-`)(Qr7}gVFx*#onOb8;^#)!5$j#^~V!9?!gzs zee`13e-TY4qw!$yVz@B|SrNw|OJf|aT7dsLQ;7m#{`<-5A&>Qr7FZv@z@ZtW8 z7sJsD_+rv~5snXDOs63l?ZHuqA{2)E!#y}1O()@tULOtn(Tgyegs2~({v_NVPtYjb z1c$9?o#p9*LL6^PYE`eE(i(CTp^Xhsm0u6bqVk|K?DQ0QU-WwY7vUZn^i4|{(f(Q;3S$3HfVb*>L!Sid79E~ zsjKSMQ&&UwQ8&S18pBK2Ri)NLsOJ%A6847u-d?mn84XAM{lT!eH<A?Yle(4ce}!=}~+IS42`XOd~{4zC`)9^ek)E zQ`S)9wDwhoR< z*HLGn=nD6S`_aKZ8b*UbxHlP2$82Xi2w{IZ*@L}de>&-fA)LY<8lu787)?ie{euHI z>Fw?BP0)C4)7x>|l+am@$gkV;TV1n(#Wn$A(zZYBjLIoHhG;Mj zN8@nN8}1!UCxe577jS>?Mbz&{gW>+9AC05E>Hcs62fZ}1pr;APqpZ_4Kz4OoEnwDqiwQjhfBl<)FLgnZE|4Vr6952Lti)UX zr-{q$F*pR*Uu$|7!wHJF0V^upwof-~*6hehv6!HoP2>m>oTCV2X+*@5k8udeA?P)FhYRP98xq}@uEMbIe4X!ACIIlioT|pqI(0LcQ^im~`Ac()4`M_akQ^;B!D#~K zm@uvmV!XhVkGlBqvv~iOy*>oPRtsC(gzaI87sPRM3=!Fh;o}jQlCWgzrv& zZb4ZFCwy|~T}$kEY|`X2L=V}tDOZf-jSHN7&@2i(;aq9~zu513Jq_jf^y5d0WBdDky6jPtn^P^4_*Vnb6< z5Xqe1OhLl5Qa*hni4?$uiyhAa6o4=RGn634U?WfvoXjkt2~f1in69WTyg^`-7=q)t zAQa^v(pYeLQ2bDE^7}fOvrkq9##cx&`8x_JQ4_g}gP4jq z3F9J?!wDzpQm+hKyLiIB}$@3J&2V!;OplN%|x!gS6%Ev3L! zT1Z8B#fIkx1mG3q(jDXyD?z5b$XFIi!hDsn*)druVc@x7Vw~ABR*a@hLS*s~6X>3B zj+(3{X|xguz%XR}kn}eWb-)zIsM8Y2YGM2I=@Pw&|5+~7pNm0i9 zr+K>2Y@9p?=nGtAjAl>3FPu^!7Z|9Wg(-}S^tn)qMPb&yfC;W}9D@lGh1xJ$;Dq6E zp2eD&=da(LzCAjBeevn&?Z?-LAnK+E%05Mqjd&pmvr< zZJbQgd?CuRUVdVz@qti%J$e7?^~K52yVr+OC7fauM<38s{g!V|A)O!cbTAz7i)uK&Zt0^<21)~1;Q8-A#6u@ zIz>5~(v-1dKDj5tNJGLoiV7wms(Qz)+6iw0JON}yC|a~xU)o`gDGp(*B+fWauZUXn zOrn62S(Z>at}XpjgN0X@Y;fBVOlBxg3(_tTse_KbumQys%u~VzP&Vx;+W^%IrM3Jr zM~M`2*ryZ0<-r18BBstE!K;`Gm=MKqQ}9`CYd_+gP_|@#7IihT zIU;GiL?9t?nqC$ez=RY+I$*j8_={d@3~G@Pj*Hl-+0<9uPZ&_xAP6J1dP5M*!#Ogy z6|ot2r{`Idpn*Qx?I}J=BOp_30lyp_Sw%qV>GGiYT z#w-jzLE5rl_lek7a58JtIa058TY~+ciJxzAa!Kq7aSRitBNPO2sh`a;g2IBYt2CkL z3+;q3gA*KM$`p>YpoHnhQqKSB;~Pf#^SnSOM`wWB9$R8f9UIjc;iEjwB#mJd8RRXc zCdn;tNs26s5gRWU^ABqD zWx3-yTjpv4zfV4-DSd~@0@8549o7rBN0;^jQpG;Y@e;>qW~#6`g3~ zO&ew*V>PF$-fN}|L*e|R0Wb=jq#SWwEp$f28WUqwd>xGO6osoWMs+>Y1x#y$G_J#B z1#p7tu_{ftPz)de5$4WHFkb;o(SmfqYZ%V$(n^<|!zBWkv4g7wTp}*DF~!q?!9EFT zAVL)73!I29qBB%~5mSI8O~U*mm@mncDmwAoC>{4YXbPK&IavF1s4x9RkLA|@cm>a7F?G7sLY zj2{XB3J1f~`MNyXh%K-!A*|8@CUede<>;@{BIkpofS+pE zg6EYBP{JmN5_OP2L0n4$S8TIq>V(+vwG2`sYWF!fKRylkdvR)VetcRs@Ma1i`1$<& zRJMSL;N?owLSmDQm?LhR36b%!4Kv(jifWv~sLgcrA`cPiGWl`Y?>^DmLA$@p zv<-;`H$G{8@g|9wUW>pyz1qAZxBkz;f zd7kE<|4C#}N7%CQSCUHtoRl+7nDRk_keGLh76{C87@}zr$Eydzp5xA2J*{jPuJULo zK8j0ibv{Cr=|Uby`;^l)fR8*VNQDYUk+9}7G&$Qg^f#tQ61>1M%$2?Vdp0G%S76p+ zeaMfOaZ=gJswX?LhG$1B>%N1R>VSi9K6t^2XDFOQko7HaIJ(%kq)?5KWsuo~y7TK6g0@@bwfSzl_rJOmS7z!jTZ zIr_E0xnM`$qjQf(*A3CSkzZGRmn5i$-o)0?Z)K}8U`g8}$kLnw|n&vm;xt5y=o z*OsuqZP19p2RPIlGXcg|4JNQr7nEdDvV*lOfz{I`Jv?CzU*NP@!xRiSH{=U~;?tdk6u}6jQ==VL`g6vc;G@xDBPoL2N=U7L^&U&6IIUKI*3WB+aA;C6B!1XpF^?^mMcwRdRP%Zd|VCVB)jExFm2#V)^UeT1Kn20+uYZiG)=ay`6|9;na&*%Kc+=5lfN4VyD`1 zrjeJ*s<)M~B$zs0s#>{s8A}tlNyyUYovHGBhKY820Sg>O@fFOGNzWhg7Zkl?Ul9LP z!IRJJbSi3#GK$C09HJ?{G{0OP5OG4A!4N6mL|D+2ZSEly3J*VD=1yA#z{C)0f8l*PX#PFmk5t5@q!mH z0cy{mfDe=$f+tU$opGKLTJDPG4#U5ci&UWgb4s`aK1a$v7+1_?oi{KMcJiv6}N z9nLy&8p61gSzM$tNarO|3_vN3vQMS{QDSxq>AV9rLkVc(ao2h$tayB{h?w-s1Uw^% z2l(?#(C_p|?Op}aIoI1y`TaQSqhUy?w4^pI%YY(wKW*MBrvhunfg)V6HipavWd>zoxeSEr%MO?kkYyIkK=BLj6I5(#YP~@Q|>bg?a>kAL1SWY1MPh$rmr8~U&53n7mWGk!>NVxZ~ZBAg%;4IQ2p=^`=c=iK`5EtEVCsiBRRwZlELakuE zSx@f^Ij8k?7~UGYHA25Q9sFLoztnh+l=$f55$Vxb!PPo$W577j>s)(Q1F|M1$%eY3s1>OekB1&jDIwboC17 z&pF#-TOk{DacF7Sm9wQOU{BLL)b|WCewUP?Xi)SQ9LIbUj)JBpT$%2`6&!1V|S#V?d;h22V|}<(VC?jw0^R&}M3|fT|oI zD@X5JD!QV*W?sovPL^5^l*u z5!f-%*yU4GfKG}yeh!kVbw7Ft3t;N25)?o7I~Y4G;sJREjwYF{9T36 zELT|yCd%N{Vp{_OenrbovHh-v^b?w!sB9-xQ?_)Bczv5X_K8u=NLJBVq7DX z|GNabm9133=$06^1%^a9ueTW%L|96p?%E;vfME1XjwyQ2B$=}N=W_(0V2u5;1pS||1}!wqluNW?J~9?7ywE=#gCa{4@OjQ;@giYE3*-2+WLvDD zd)M<=3#n?KQS*Wg#hmRz6GX2NN&t*ar{b1D<84T+>B`%SaK78@Z^clE4sAI`OY>su zQ<%Fvzbh(xwDSduaKTMkfw&zVlzSNjbdgO7*!ghuu04U_B^xE}=f11fiv+5@fy4kS zz-*jZU7`;FdZ5l_KmA>IH(?#|T4zL{Ef4#wdxTT*L$zh##yTQ`Wi{x=$Y(6ja-G6ztIh_Jn z>Z1!8hTwKX&%iMOvw7%Qsdj{xYX)E8W~!`Aq380jG!w8gRduhUE#z{#L}=Nl_(~Cb zL$z0XD>E8?R?U3&>8p#?E3@e{^KP)Jc)rTG^@7R!;T(mR%GH#OV0)p$&@{{n!)o$7 zHe(q5y+32dE3SeIbAuR(PZA{4uo>NMp=YTzFZ3z#i*>*{q0|@q5A`dcw0NO>jRrmA zlQ0}ER&8}-yNtY1qdXfS2F3g^tc9Nq6FyENyu?ufV>VKkLWDu$E-0Ze2~npdI>FU& z72kr$7zGieP=p&WcOmwczckg!z|toJ{@u_4pF9EYbHEJ{AjX6m0k9Y&FS1H2#%rz6 z(>Xd5e{a$L;3q78S=N$pj$qc7@7nzISW^9jY3)LnX9N$^gwPyf9#CqlDI-D|;AGZD zOJS$)LPGE?;TJ&J9@>49@G!O_7|d>q{nDXf%DbmxMiT(1+)Zp{;3PuzY<&@a6Vy~| zZJ0!Dm{8nSZ+2ViFAtJ5&C)oXt{_?_UUNz7ryoGj247M!mnkPE! z#sYphyF^!q;7>TAXom7X^XZ`~{spZL!Ji1taWWHMuI4EDm=H)Yner$E&UbDzFNf_< z!kqqR=aMt!M4)LbT^Y$8j2VZ?$ESqLX`mZ%;`p%L@F>QRARU!V@<^1>9E-PIM8mE) zC}q^jGPVu8IaMd@qL2!3gjqE7Ymd`{1n5uGFM)5lr@D%PYPlLm(qWZU!G!9KE!E3 z802uCV&f>WASmyMD_1ZkDZmNa3%KjxoH2YN4jT!`i-gIOMwks5ktfEK#)yH|h&%_R z2ZQyMc)6C2Y9_5VS-&jM>s?Gm(=OCECM7-|Ub0$$&gP zX*`UDQN*K28OB(D%lZiT)9Hz9z60LS4Vnfrlq+|k#K|;$F6HmEpy01*ku#B+h{b%^ z<*T=2WKZDvXVM~Xmr>4C3Y)e{IU~u@eWEihw3k`pSC5QfT}(gDOrKNJ7n${w$4K_Y zN0vuJ&vmMbGzVsu2OS$(7Brnan{$AGHP;YigQcV=j1Un@D2C#QRfd>RIuvW{%(`8~ zS6v(KY8Xtel~-O>bTXkMr^QS;#jtg*V>F6as%&}Wd5Por>7apH4lHrBO z#hcURNS|c;zK)%1B8n@rt{8zg6a}4lEHyN=2OhY!+*6r2HlhG&FMAOoL|wZS4iZXN z%@ROxghH4b5mibZk{_*E%A>S>uwIF{xQwStGZ8GUgEAmu#1XH0hOlm_AV?FvhK2GbO8Mv-Nf zu>W@$3i4}`a-G#``_2s)+nX*b#tTNTpyk;cR8q3)?qDX25L}tded2sl`0spsyM}@E zCVNJi3Zxp`ATN@nN{NzZ;WC`E$Npk-JeaH+f|8l=wUOaI*o2ugHnnESRt^Uyg?<>f4zf-Dz}Sc9Peg*^P2 z=opVME^%*zb{iI&zqCP;CI%O95iq_4(lMvoSrXQw>3m^|E>g__9Q`?@dR&?C!1n(+ zN^F#=%&7;;$j;mW<+-|&rb2OvWuZL$8QaO=T<5~TIibd!GVF64w#4fd&PBiqQz#NX zW${XcMN=FDf}b!o;>$C}&ZG|RqLZ+J$?+0W1kTQWW_)9<_%y@R5}iK4D_&Q@Q80jX zjpN$67I=7-A0R>FQ5z+Uf{|OhBf>yVQXXnlturPxaz`7k+sQUB5!2Ey5n=NvWFnlp zhibGgT61xDtz2fL->+Pd?2W%SBF37K>Cu;rhgHT@Zkd@#fueaZ0-teokrVh?@nQ?5 zGa1}g34M-tx5*C68oX|jM=W;m7H6{N=P;D?N*t0S?Cb-2g5<% zcjp%Uc?0ggQ-EH9QwESZ&{B3eHfsy-QJh zn?hX^*iI(X>E}v;tdz;(bSBI`WR5d^Z!JzQ@fLzwv%I9*Z<3ZYj+=@~U~@@H!}f|v zH$mA8<{#MPu#Yy+^>rmacV^nZ zTu1=2mJM6>B2JZ`vA&HYg&bC)`>ewXc=dJJaU*VQZ@YD&QwSRCB2No81^DYkhePJE ziLWr7bD85bjqYr1C>)yBhQ{+g)CdjyE*D3cwDKm4!%6LUUp9s(Pg*im7%7k5M4&Y8 z#mj^;(ImrQ%1yWlRkwvBl%a%)Y#0#+N=9uhlh5e_tF80%c@yF&|79(GMUyZ`5ed|s z5A7h({Bk->0D@#CnLVFZNlKBtv+?o6+cTNe#n=(p5WM=KqcUt?e|_jw+5eJ{%>S)} z0e3ITq)De~RHjVo(CntE!Pn&f9}LHPcK+`{Z!p|@%>Vrm&-HcpS&MTUeJ_^_zw(4_ z5*H}TaUw1d&dYpSSt_pWi^(CcPRWbXOsiCRp~~b+_P*C?J?nn`+Pc1Oi>NOM1foD^ zp1}aLzcNP8zTzq9d=h(;k(;X{`H(CqiawoZkl!IWe5sP}XsF_hRwZ}}K*z2rRHV%- zfBo8Ox7#h4;ZG`mzkywMIhY^{`>jiyM2DbeMYR@)Lg8AXd|$4w%T93gq;8-Qbukm) z8AiW>1T(%)!H88=@hW*!=e&0^JqG|5)>%fn%f37%Vc1?@*Yv-1wqYuOqyhj2?!JK% zlm)+Oeb}Tm2VkX5tAS#aF+lYt05iv09e}co0bnQrAe!UQB(s0gHK%P;V28A>rH&JGm(RVsFvU4e+wM zs(!R3r%`|ZvzhKU^i=nM7{|BR>wV9f{lB+2=-K;!f7IW5-2Wfs;rqYL^+oelma4tJ zx@8M9EmtwQc9kQpRx%xkE10o3_S0!4CXk8zDp996FjZM{>$iUx$L99meFlD#nHr^; z7$%Xa#K^FG&$_0};Ot*KSC8DVJaBWgkVa}H#xz1>3elMf@%PMHs_S20vcEGfuulFT zjNSFWHyrOjuK$O48s&esaBU5ME8!|-b-mOtZBpBa{d(F3Ug27bsX|2682Cl#jl}m` z$kwU?_g7NVis6bbqe^^L_Iy^BrvD8WaXl<8vzP}8H4Mlo(ov4VUNoDKG~<03c+}%* zV5yV~e`;<+gfrUnl@)-AP67&e2wNJ?-x@>HG&mhq_pN8F#sa*W*Al!jVF0L*yRJDO z$vcb;c9RG8pj))J(`J_iYw7L)GX!{h?%sk#2QC^e#&4aeya}=ubj{oeK17XKlBJPn z5Dj?$Y<~H#_IUPx9ed}l1b{XB|8TUw=kEXGUjK3be~9NM`@fzbcPjvBu$xE#y6~e2 z@Gl?&V2u@N8AX80o1ax(t$%!o@V*%}aM|OjG+n+>3N%%LT_o;>5T`E^4~)| zO#TBOxFuJ}dvByaq!R5^MXb-Nk^H*0UGcvn`;h}83IpP`RCxN z^3gneso8;gWgls&l9l6ODKyB>0tN%8LASqtZRwKTXCfcIiW0$lTir5~lsX_gW*A5* zKJbu&J1(11h{~J`0eHH*YhWw!y1IEOF~*@@puY4Iu^9~QTEHE1_QYR zlpyxqvi;pM00E6fry}$P*mSPU9nVO5D%fpSn&hoEL0pTGBllEBu%w}HGBjbnb{2#v zr$480gz~^>$4fSMBA}dhgzvwc1hrji62goh#-A<8t7wrYm0+E2E)~JP*72!w`IW5a zspK7RG?!u;1|!T3*i(Bu{!|W41qrdnZMPM*#w#nH1IrO%O3~p<5CogxUTxFCo-@5U zB!5AxvSOe}xLfv44TjS@iO@@jU#;zlbWm6IEyo=V^AfFyrwhNy+doy{Hh@2>i$GQW zlkUYLZRnjyfotTy{&+lgWLylp+g2>~#JYgCRXg|Zz*gn|+P&qW{6B`nLFN2sGyJ30ypvS;8X|+M=`x1r=#p5}#hrwYxp0DY$` zQ#@P1tdpfVg>fxbRcYJSAS#{zBP#EA@Ob3EW%#iE|NTL4-}V0=^m>o--$OiH{xi>i zPRo!&GF~(fiQIf1RIm8+&D4Jwlr6)x2SDn?;Plh6X~jc zboh6{+xd%Kd6dJendz9^bC0J+yT%z3L$2+f5OIi=^7Y3Gj{UdVl56G{M+g2xpKYxD zMoWRG-A&Ja1Z6F*>>79*Z2SN0W$=f6s{Ee`E_b^Dth@igc)r8`hl5A{{~*s+_rGBr z8~ekjGGP9lI)Vzx*<&K+Gt;pQn^s`{9Tt>dQ|F#dhBa82kY&iO4{40PA;(dUxa~4p zN&MXrOM{*5N+vsv)4x^|`G8jtl&kra@kf6?q zdhKzm^%Ga&T9)z9bxi#bj{JWF@*6jbiy`FpiI~wngANT)T++kCLdv|+0A`~RcAK!5w?4`)<^heF2Z_%?dCQ$ z6P4As_55rZo}cPmnpl%{-K1>t_B>Nla-Fkh!(4QoJ=aXeinFK2;huaw4b&@5Ho1DL zdZw$VL(+eqtEcY4qo?Ohp4$B%3PtNK#DI13|9<8CXFM7{`u{x0W61xee!aCGV0%PV zZFhEwj?By1tT$LD0o7@fA8XNLOmG^h*lfJEo{cVE-?0MXS^uTG z#U1GYYu5i>f9UG}d;8-@`~QPHH;DgmCMU>UM}V^Yd}NWQOD(F)rKP{*!pNs$wpvC% zA7iltNEn^?hD^wJ6+xm2@E!7^Z!`#m6}#Xzks#hDuTYHcF%pEilr{(jQSj!@wg?EZ zS#*bW5hFSo%qixv=p}4#ya!#Xb_AP&UO!+U2Dw3>Y`NT<<2O{6U0s+3PoRg|W%n3) zp&T`Dj&?nF9G{_ONKGx>SJ#|*tb8Ij6X{&z==00a6c;_Ud<6^wv?~+FjQgzsX#$$` zGLyVp34YqFuC}3Rwo{e{*s!rNp0hkY2mE%j!gg2uX;cBffnST%j1*HwcD7o#^9QR( zW|Kekqek#Qsz{xFI`$&P3wy9Jhr~>1ZQBmK+k~6>tUUs~)^5x``cuFy;gTEZlVNPW# znzh8(0OyKWRkOJN)y_r!C{IQI6W1}i#`T=;g>l>FCK}-y{ckkrJMmuz{lRebsQ*30 zBlJI|`q5NH^>(gjrAbSL{Z`v{7vMx*3q~a~uL=Lnvv#hJ{av}Ij_p1dF~z8zg!NH5boU2qY}y7*+kwCvmZ zJizE_6}f;n+BS()0a!7tcb|bb5_fT^Wu?qiR(G_>=*sH7JR#qt>kiB^!%BG?;#@5$ z;a8o8eLXP7RMrzBoz5H1f7!z)OKjBv;n#Sk$_+ud$7)J5@4N24x)%(XYX)mk`p#B2;VRT&Klq5BNH zLKNi-#?$$QOOgA>Iw${sL_%DBTrQ^3GE{avLnbww*~G%%c0lsnw42OHei_aBz;QI; zN!{||Ie5xb>>IJeBy^s&wf2m6M`)D1a!2H(?Clz}Q_fb=7fp|V;SuQ0?A9ElZn_rM zhWBb(3r29STdak;zyH~C&>!{LQ2v+l#mx?c*7<+!?~h&izqkJ=|3Ap1&wniu!A*}U z&w+75P~LbD+$0gRWiC^ml}X5XF4aR2SO#PD^$q*jG1BaR{d(9?kir@G`ZW+RPm4Gf z!B`w?v|T6D#rT0nHJ7iI$5;N8Zu7ksN|uK$V|$R9Uz;}_RmeSjP_=~#QU4N2*m>c$ zVJ@@^OMWbq$(o-f+P_T3!u(nQsf zq`Z6%o-R2dt9`%pba-iY(r=BDDfbm5D;2(;ry_m4nTBplsez+rr{d@NtBuapgJvc9 z;iZUT?e9_>1noAL4A`HyLN$;r)dG-VwO--eNShdR1M5amML07|`9eu~$MhO`>Ogb6 z;HO*WC*gN(_*!>7viH#NU3m#pqr;D z?RE&6cX4!)6DZC>ii!9v-(5G{v8rOD?eP3Ik7<;zIg+V!TNhH-M*IIQuY|1G|NH&@ zp_~7AIDX9k_aKkn|KDdQ`E+^$!W^+_gJDdhnT6=xUxfVIV)w5Yh1w6Wl5ct$MLWPW zodLJa#eR49QW|xBn;4brDuRuy*|TgI?!F?Wf#}8%CF$30!H+86H}-7A|HVdqfBfI| z{~Pp1y~q1M5AtaKFU{FIIhvvzB_U2`V1{Wa-0V6^AixPtjRO>6Hs9iO$8T|eh#g{U zSx;<)oD9 zEw2jmX66%NAFX=7x2KN(tKf>aHvVlA|9e!C|M&Wj_dg!w(fnVB?!2w>PY3e!n*P*R zpW#n^TVwXKi)~``vuoHUzpZV40E94u6C7iTl{XxWBIN?t1}Cr2FOFWldvns-!ait( zKm9#g2lec^E8Cz+kNdX_vIz{6NJJ>yf@=Bh5WN z>-oR#)Qv9#t>OQ@{k^LFXMgy}{~zM1^ZzmAfd~GF+*R6jQ_nXUqGGy<4$$z6!zoP%|J?4LTkVngZI;y-F?=5Y^$h!JFZ`gl((4}siUScH=g)v46Rltip zw)5n=S9QW1W=Jmm$_<+<(>a-m15<6Lc_kmAsW&*}(=G3SCyoQ5!-r-bUa z?zJbt8uPWoo{NhN()q=O)HT=-t}xWxTKI#RFgD`<_pAR8237rk^qBwaVV)}gzpegn zZUt5SUvpxQ{;$5R(f{pYo9O>`ja%yfTPXF$KKFZ6>h+YkE2Z9~$NekyYrJkWG8_Bc zi0!JwcIKB|M8lFvT2et!acohYQN<*rin~ZXOxtm!`YA^+dY{CrLqKyg)Zq<1b2jkB zX&m3*kNxA1{;c2s^`PFD{inY_+^^Vw9^*eg%u{FoF_Vlvr2VJNH@1cP=(qov8tvWN ze|%!jJ==du+H8H}Ppjqicm2vD8}(Uf`R+Bp5{%W+^7Yo2{ank$?Qi|*ek||ns-Lsd z-}{BX8*8uY`Ts4Qe>SlH4+j^tup_bKs*h$Hj+4&S)ybO4<_Q%k2sc*&i|<9?#IV@ zn)tt52HguWP47+r@9&RX`EM|KjQ{!|PaXeP*MY>)1GNc29m2vJrm^X#BG62UPfVZ@1R>$t?r>sJ@cB4(9W?*L+*g zM*RPN<39}d$1eZx_eYQV|ARc0`=7Tx{`GLl^7L1J^d0`nPixM8tx}sD{aO`n7wlmR z$8YuK?7z=0-o1bI@$Ks^PK_D$exC=%Z2sKUS+S(T{T~z895S%>FL4~7U11u|?bd#L z^WpU`M{nPntp)E-0;9->_aDz+U-YdK{ry3wKkoE8y>5RH_!FHAV%AKGFTxq`1ktNB zza$rLPM0GaGtunzH5a#J6yt%9E;U20hr~}19|q&H`cw5ik>8hNk&;N4@Seo4>03SQ zm%s|V`=305u%}!H?7Drt6XK6O#2-7<@85*_^|Lh1!Hy3-#dZsV@%Dp*MY$X5PZ~Twm zxId`)|2@Y4eVFGS;(xfhWBb0c!#*|H&8D8+PwPCpKb@Xj9DO|hnKxb8RyJX|o3Y#9 zz+^l^N%(EJIW?_+ZI`~K1#s>9A6M`HKKlPW%u{Fo`$diYomc=R%V_2s#xaQBx>w?K zOZ%QS*;U*l9ZW1+-|jtF_>4Ype5dP9$A821e=7^nI{VLfxaZn`Mx)30Uk~!={l8pX zx3vIyS5IjJ(w}`+ApLQT9mpxSi6zLXvW+chZ+zfbgT$L#+k;A_tbAJ4@HNxBtu-1Gs;^q_EZgelUl+lK^l#$<-Qtjl$ z>;Lcg?Z;QIU!A-@|KZF;&)2=HH8X2GP)v zNv>wSKa!#5o}P;QC&T@BFI1+9+dBX@%YXgesK4j>|LqMP{XZV$Y0Uo%o$S9bj=>w5 zIOHxf|5j2=7+L$LMI5W#AnWbVMnwrs)hz)TWh&W)t-L6u95si8M;Y|zw=l2bo8K!* zR_s<^YJA;%9@p0%cSD}XRU)E5*oj$obsj+TwKqi!C&WuP0igA@0hY%f@@bai1W-TIRK_JdE3>uMjipN=2cHV1?C%W}^Po^AoTtzREx4mz zX-#FYVWf27@sRGG3!ZlBA{qHzlULqDS;`6Q0NvfS#uSq?%7k&>+B0<@os~#ckdCYh z&LWDgaz+%AK`}Q1+0Ovj7j3L{qmxw{l3f*4DS6>9?eAEh>Y!9pDr+W#zo6(Hj-nV{ z!CY{Jz>k}_!SkbAL9JWoM9~2(vcw8Nl{PIV!CJJE&~oTiL|Q8Y1IRNC znt`$mOFCPi!bD;Yt(SiIEiLBG6VLXzX3A39xqz5Op+hIeuKcZ2ia;l309rN1{GJ>LI)kY{WA->EtTpyJ;DaSZX| zUaW!H(nts5G1ZyZUyW*g?Pg zO9t)0Nsz3Nts1k`m&PVtB9y(+297khL!H`bt@uqj=FF^R7DgX=mKQAUFh<2xY!NtG8E2nqyrFK)=`f2?tdL(HLO~hO1(tfcd7(zBA=ZFK7qenoQLQ0#nQ2rO%F!-o9@C&yQ#R zT3kb^sy+eWrcPP1&DmuDIv)^swCHG4ry+2eG%y<|dtRMH%EY4B?JQ0wFz#T&v2LKn z4bfer;fh1*axs^`tsypw`R-SI8&0?1&{Hq}DP`%t&wqR4eb@iDKi(TW=Kpz+XKVRS z9jM)h#3!d*qts^_4Q?axxyFaBq`j7DqWEWtd{+BaDbD;_3(1vW$ui_N2;)?Q2eC0W zO=EQA;h}X(DQn%$>7@8$cNa8YA>puUBtVl4w>7IfTaqgjDVfOm-XtJZM9ga)TWH6k zZ%1Vmw})aE1V5jjpPp%hd9%G-kzFJ#AS9e4MyENY8S(AE>qXNW8OnFkTxcq4x&_B^ zK`6@KoCdpKM}(_TA9tm2AadsFg4N*&)hAJ2|Fq--r_lAac^y>AJQixNzfhDXkoy}1 zCMtY($x{3^GD_N~9ma>Mgyn7R&1tZvlk>V_g!+`sAgQr*c!9CXQ!ZEBFADnK}-v`+8WnZtI}cPVu%qRO<$#t{Vgq z#@mjjBF~tVvF(?(LgTB@3{<33@q!kg>Zsy}vk6IRISSH~o!ArP&8fklH{vjrZfC_L z#$_(j-rV1Lp3GpzFO3624OYM_c7-bhwVYnjl&UZXS7geugqLH{N%y1ad%8Z zx5$!W8^Jr}OJj$4YP#`Tt?BK={>ZPFGd5!v;+ssskN0anp4EOmKRz{_3)K5VaDIH+ z@|_EmCCbiwkaZ8&yb!E5$_k});GxeB7tJhIdy+={%z;E4RE%HPLTjweVpO!-BmoZ#zy?vz(*VJhEJ9M zt3(Z?%UM6XMdBCvtl|Ho{k^fv|9g9n`F|he@o{jS@Kua|P?|iA+nC}Ts9w{Qlg1Er zuJ8DMNR#>T;VwyBtLrqv_8Xxul}kiBoQt_{B_A`Oa9=*g%bzke;R0tt*+<#A(P(J& zTdG5>3b)-E8_nS zkoHz;ca zWxosuZ`Lu}v)h?xx}+%^>X$FQOU30`j~5G zN3wuwu?|ygtsYr&qJz*4;51AxshRV&;I0JYyTdf8ZS=6Pm1tT=6Si%`XTYd!#AC#6 zXejeH;%nyAXTP%LSN&CT(V$L)wt`w{#LRK4a!+b|%TyX8wE-@G&d;DNKh7-W!>O!o z?${cWLUT+{b^m1XHpe-g305*hUoi)4yWMVWpVeCcbo`gLIj5_*ZRKekOVddXljtbU z=J2FgfIZVm#7OaN8Xzs(qxQiUw6$DJY)g*wP5F@v;#uERGH%mv=CIrSZh83KQuyO3 z6hxx}{8KqBYr{Jb94{e7n}WQ4 zOy2RY{H)pk?;`xq+WSBKiv4f=nE&a49(DecW3)s(d3<*YrOL}D0G{FyQUoxO*+7dN zMfHb24v#h*9yi#_JYJtWjHNCLLSG@29jDpKu$q;-n)06%STI=cGcNsG8{A*eN}QIf zbK12Sm5piVShJ@WS&j%wsD@ZFNk&2SL(tRZpVq-h%N_>7^uZ-sfz%p?X2KhL#WzPv z5E$68X{Psn-zHU3bRDI{X0|=4j7{*Hqty*bv&B-@OBCP);4jDJSJFtga>n~SwDn8d zuUXr_t#-hUcFAJ69n7h2mzo$3>!E+GY0CtTX zbyFH_+5LY4n`~PDR&1+VFo3oGf0g|2`}@7e{67!!h#VVnoL+&y6cZ$EWHRD^D(s*U zN;!u1=P1h*f9Iz>nRDZHX~gcVR;ddSQH8UB37ny*J&{ReRQQUsGE`ZW&7R2~ z+=j9hGPJ$;tx1|!=I8X(#R;J>36b41)6MLWyZ);_P5fU>oqLb}G1}jE<^S<;fAGlv zAL8MB>h+fl${c(ADn~jM;XBwgsAW$kV=-I>M3|rx(~H8rrDC{x$au7YsO9){ctE`b zJNj;`=d%;5$n@pdt-Uu=Y9)Mo;CxTFq99ssA)coBIeK0sAs7$&pLlUrOsDt@j|t_K z!du5YVhVs7gJ}`REAVRpV?4!dqsTHoAf47PNI>W1DQklb4gnJs!h#?`(gorQoZ#wW z7^fJ;k+^ac;{~QD66q2#0XvfwAL3UhXRItvW;{XHZm0ET3UaXn2p}?t89C?Xt^OPx_gp6sEH2M{J(tC&@_)#W;xTCpN0au-Gl_JiZQ@vY1@9fM- zZoS&}EVL8hlH<aKU<(d(txOBFLIZ8R#u@x8{H8_s^yOd0Gl*Qb?{yzc` zTm;+m7u745txJ*hC=Amgp^POk4$|BcV%0fuRgoVF`aZ>mfNBjU)(zP-LwURcA!L(6O%k*i;-JlL5A6Ks3pxL+vVov@C2s-?~`uDBWk^sG#W#B`9YLFG~rX z<%s+m1C>CZ@ay9UMJQ^59ia>*5lTYLFQ_Om9i04~8&kCL>5p#PXj=a&0O0-Fe+T_x zzZ(B@@A3Y}gFIZixz+mi?|aKi3{FExl%On4MnWtT)I`$tuCZ1@Q0}R+lP)kVH9k?( z4S>F2y^hM-i-J&238o!g<(MKDE3-KZRGIT11m)EVg^kscPx5GSINfJ}7X(=v9hJ@m zJgGMin`XZkq%W^an%`dGkm`^sWhp!Bv8NdWVCm-Q0WAb)Gl#fyBU9l7lO*M|}|n^i5^e8yhUo+=57sLg%RB%sd!bPrg*&(Ar09wF5%bF(g3_M8Dlu9QnAvk3%-Gd zMr9DFBOIHIF`Rg*Sl0ATQtxM*y51t&QW|bDb?aN&jPzxF|3voV)70*!V*+dDw~f)7 z0di-%`=xGJ?q}|M;cq(*o2~?JV~tG3vkI(cC9OpiqmrkTi9<>{^Mn;5nTVvYSjZ@^ z()7BTrwvoIs7Z9f+o)Oqt=JDSCX}0(c2piTdh?Wjx!bk*r1o^W63<_sg<^&E-+9 zW;Ljr)qY9D``uzEo6l)uS!!b2!DkdHJZ&~IDFJJvouUEyW-N*>G9GKqZL+2d_I|=^ zH{syLnbWj(r*In6!fzFK9dx305>&({_tS$7{RUf;0JByS^TNErSX)uxU39JOsxr!J zwkA2iKJm!d~86{kF~GQ#fz7@TzUy6~C>4e0RK7HsIs4HErL3#~O`n&tKI-ad@ls z`re23&iH8+-ktDL3D(0$s|{|)LrcgT44oXf*PM?0)+vtB3`KxPHN$kpR0Z^ff~z@7 zOo0~5vtxs^TBoI=_OYnlF#uPN*F1u5J-=}w^PsL0bl~%&Ha7_Zmk5v|%VM-Z35D@b zd0J!y&=l|kr@08nqApk3+XhdoE-M_q1dPRlz43v8E1wWEyF~dlLd&1(zRj|t`b}Y- z6_k-WZ=-~woDGf91KAu-ygjHHoh*&coB{Gs#ow`)H-+NNxT7p%Z+Lb))~T5u3J;L& zCSO_5M}0MPV9*1DYTWmmZj*chz{!=dyKwfd&!Gx~c}F zsHVp+ZveoJinC^-Ce|*KiT3UD)Vnjfl&yH^(`DVYy>yh;>X!GKIipk=4k& z%>t#l*6Kvbk`G#Pq)}5dPlg4K5F~w(82uwF;!gQ9!`fTTsHO*{@_% zb~m-P19W6li-(2*nXt`2A~a&-o9-CkR!s=x9ZHCA`iGkUVk+;#0`^;vS|yGNHp07L3e_a zE|~}FcRSR7qHvyq?~g3)EKKtpg_MoB$y+;}@Bj1qx*CWdMiKkG%v5roA90NIyyM9q zQ!4TSc&f;Y9hmUq0pNKm!+Cm@fc6KlH$FJr8y|q~GE2Iuh5rQMe33@%`|Lli>~G+= z-+<_oC^LmvB{N%QiHs8ZoZmWJr3D-Kg!S{}$Ft=K938(U|A%){kWz$1Vk_|CIe0qH zxIx36;0CsA@<~4M^{a@(pDj9qBZZuiGw2Nm{YUxlA)ae-?dF`xbr2^&54XBf z69JsKHye$MH}!HH19z;T2`SEC4D0hp@a0>|CFP~LLw zYX^Yg?@x<3HWJg@bu#_2lnE@ELdpdmAwe=VWl$kp-qZbLOp~={F)b^rS(%XCBb%(V zj#xOtd?r~n`|B>SyF1+6W9xc>atmRt(n^e{C|rfH%Iu(i-X1b#(p(~xodqIA5Smt z7UW$(yEc;D*IA)*1f%y!y!w!)l*wXbMJQTuNvyUC({WDHgjE3*3G8fq@!|E+tBdz1 zZ~yz^!~6H=c0YoC;CDfhlGi0#DHF7*prT}Hq+2v4FBz8EB^J$M1?H)TEL*nC|N1dc z7n@N3>5RZW|@ ztQe|PW)9-!`*nz$Ww%A#s=FR>=baqZ-xSL$8Qwvqy3aMrnkXn)@`GV}k{C{7mia_} zlKoY`On)(JI$6a%GuwgS(4e|!$zTG(sfcz%G8E$JiZ|F5AeeTDk|oa5WWgw+{Dpj( z0`(6+??%beqfTA2WhElbdrq~PhIQ$D(2MZtvZ65Ahcz~tYy(t|el2j0A`tkxM?^p$ zemas)!2)JP)d0{4Eu>C_Jje2e{$&iI7?7vc;s){yo?cXRv+bbohR>HNdINijSd@CH zaP&h|OW6mOF)IhOAsXm)qn68f-D(qWjnu-Tf%*klh3F=&t-O%A)ptD9+;yRO(rQCJbv1|xy_AIb#A40 zGdWHltqA`;F~RKzG(u&fuG!!B;4|R;WHBD zOO*S*5(M*bF7{yk)_a~^ZHrSw{TJfg-`bg5Lm1bIP+Q?K;+x^7Klj z%Bulo+a?XoxddUm;DD+dPT80Y4p{|S(a&ANyaZ5OpmIML(0wYhocUP{c9cEB2C&N& z%lZu{tW2?n8Ri`2)yxe0kSU6|7y;v&8R9KaKTo9Nfi=LLyC1xpW7Wg&#e}8{e z$^W<4f7JgU_FcXK9c3kQ02ux4EFy;hf& zbU%#F@?JdESI%4l*^X7lVcd0j)@oi8+o^c@lphUCvK?vteUS@?egdMD%UPtzI9XVG zk?aeY2fz9Y|#Pe24`7ZF0d%^R-PQv6{BL>CP>r6pY4Dzo&IEKg|~rm^*w zdwrl^jjzGa=jW#ZckQUYKl6P!Kj!7d$%uS=2+ogBD z*2rT`M(NQOe63&g<+umIF&hOcwla@GCK z!vUMNd=cs^b_!7UK0wkWf;hY%*f?$kPnYxFK530M##n~565!0L-I45WutcXmmO|IsH?<9m8xCF=--Z$DS4Aoscmn!dhI81&y_01fxAG+ z5k%|Sb_qO9b756%LTGIbpHNy}=TMdDr&25tM!S&xsa-^Mi}oRfvX41y3j}D9(bX%Q z+v`icwZbpilAZ}_fg)T~EQRG^o(30)l7UBhZf=3#f1tN`f!$L*ZzH;}uO0qVl|6L2 z>#=B#Hl<{#tMCfyrx>J63037yKCPAT!#O6JT0r&ZM!Kj{+?pm!GIS2B_y2uSB>g=R zhF@z&C@&|ou-HD%geBPLmg2j;=}iS)LBY-iUEL8jv$)*3@#PzMyz-yv7}~v1o}q6N zOm8FxuJivGj4Sq^VeirZ<3S!z{6CbCB1Z&dX+%^ca-D}+PmL9r!zBU`L@0(U6ahv@ zS}P_t`x=)AUNgpl7!TI_?XvydGO!b%gP?>Em@X0e#)gLPksQmfZPt1jWhSs-=HsiiF}AWU~uQas;ClXnzFWej9&&Bq*1L0nnZc@j(pe z*RTHxq7;xAp$rTF`;nl)7jx&$^dzOHIU*>bKIZ$V@89XO75^8x)3@FO*6{zmUfDGJG5yT~KA4@^E6Y z1x1rEM-dU-iY8f(mN+ehuVk8D78wYZ{Qv}_ZKs1IgCPQegrWDpr_tmT5+WUBzJ6^9 zY?Xp(v{E|A$SN3 zsuKQnCB#BW2R7gN&7zZH0rq;$om15~El?8LksQ``!fne3#@e`xJeIvLPx)0Fhu!XX z%fs)M|MlInZM@wZ4F~*CY_ok^^~hdOjdfo^3MY^tpe99y5Jes*DIqt-{r?aWFVYCT zl;KVPseQ>}h?6YMDdR*=ht@NrMyPiR@$b{Kt=9b=gZxOx#c0qYbw1IP%=U~Eg%o3+G-@Znlx)6mlzAIN)bvZj;w)NGh8 zvKUchxA@KRy{-GjR-@gg`(K|1l8>6zP6`}HJVOBtFX0T4PU{Kanxee{#MDa=;{j^mKQx<$WJ_8ZXNvku%w9Ef1&~J4n|H!-izv{(&)@A=uKglxbmVhQO zWE$5L$B49^b;woLde)i1%ht0FU9i8?9M4+M{{Pk!@CoKzgL?DoHEDISJY_m+tAis1 zyP|lW{=L;%k}!=>_xHd}<@!JV`RL@Q*Kgnd)LBG#-bVBK9}I`%vAh0P@K;GG|B(mYPJ3(LVUiI#*FqsXV~eFf;OyJT#JESq0(zs?;cW98=@SB28qxzMa25=@0sYjgZHL z6o_ zrXZZ-IFc7@Ydh1g>rDT~opBdl-`^PoDeDbWWcWz5|L4auwWx%XRi#tYG?$~smt>Ms zw*3Q4zzi=@(h)Oc{9?NqGJesp^m=vl>D`n*FC6mpO!DkIWBvaYgn}$jmpDS;3g&!y z@y?g2h6tOvPM{`1iM{>pD6zL+Pl*>bgxHMO9y%P@ba-KsVXwk~U=)ER%o$IS(}J@c zLURNcOpXK51QdBp0GvUb)b-+^rWXe{?Zv*`ivzb8el+%L(AaFeJZOw`@USv_DqBgEhL2*6ob2pg=0jqeKz9RZ^b3uK zo7=sTmPsQm^@gi^tl{bw4OcfeTqPN!Ml$LRSNB-M)h!yXZf>}4C!^k+bdNPB-SVQ0 z_9LU-4swsRgWRGWGUA~Y&val&&Ew^cYL(k9hcPZxU6>biP-9*O(zFM zYo?QiV9mHmosW-J=i`z(AD7j6?sDt3R(YK0iN$o0;+P;BuF)FD0xD(sF~tcbjnvoe zUiIN<>fI9c_6E*|&h^J6+Q62a- z4yjHOjE^>I#zmuMTsCSdBQmKj!3M>2#n%+2VJaxeMhEfxY{#kGRa9s(=dqlRrV-W| zOXFjWrE$?f8JFy&%JB4d(_ z3}L)=^l#@zF$YonbUS)-W0u4Wn_%Famn($*7Bf!QYQ1V^AbxxNX|B z?7?Bk6UYa+QEB8MQOVWnSGA3$G>T&GQz7(={pO*2#Jzt|KY{SzbiAM7F`{|gZ5GW< zTKH%sT++dV+Ns&Dc}54t2B)LmX*r}Eu@D4iUW(q@atTL-EvV3wIXdV#a60N|*sfPm z%-0ehgP$lOp;}nEMO6JmXM085xKWrf4f$G5lD@1W4Fkal^`W>itjB&LFk6q|79+38q&Rjm%Qn*1$%Gr4Qjtna z2xnKwRhed0-($`ea~4pm* z10NhFGzXK$fj4AW=r6|)-7O5gU-W0(YW|K^`+AHC6$!F0$Ei^tls7RQG^9;v0vktt z{DM!*gKk*xf*B~%C<^F`h6xTJyimyJB6Q89iGroU=qD)-f{kPnO4O7bW*7~mVf3%g zy8C+mskQ3dy}G!1_v-gZ{@kPf!?0Jb|K4-E-9Pg`|A>FzpzAP+IY}YE?&Rck8tM}8 z%!_fn0bAiAPU)r2QQOtvo`t?NHUbVI7xPrI`id^1NI3)g_c;e$kC9+27U0;VexIRa z$wY?Z2@A+a2jv%2lKK>_FbfkJVu{Y@B0(Nao+u6TJI6X6B#j@fR+D&xu)ky!DpxEx z4kV2pm15@V?(dG2PUudR)RE#yoSghE^=KT@go<-C`|ht@r#o`owmXBSSC)J}Ir)t4 zvMLeiGlF!u&q&`WMxReUx2=Dl3;&Zp0mSQ2Bsd5pL2?{0O(*JtHWLV=w=`Ix8$B)X z)j9ciargfE{hM?2@b>y1UB11zdqCIs=>7K(=-sP}_Ydgdd-U=Zx_*EEaB*|<>Iz+5 z-@UqgxcNI^yjR)$Cns%m3-^kUzoh;nnA)HInKJ*e4W&KMB4vb%T-fFk*5UD@v%+DD zgU)g$HBo(`){UOwESPvVAa;n`Lip5?ec##99G_c?)STY-v9YS{z)08GI^zB zX{*bGCnpwPGl5hEc@}Kcr64JU!DQQ%Ucr~!+c|m5pXi##XXuF{9Ehwf4gxLz1riAk z366=vsxUd|I#gnxa6gse7a*_|cs%A$Qe2qiW5uwDg&-O9bsjAgL1e<-mLq^Dxwpyn zlI#G)Bs|OA6*$ab>sX|E2StiWGc%vj->8)C`n>@&d-5k0r?zE%RmissI^g6ps(mi< zvyN<{&uI4RZ!`26-AB}C^9{n`rq($WXi24gEWkIEAL9*T30(;Xy~6&o-lG&to(4q4 z30NW^wDL$dj#4vOQ5fXo5P9mX!9kj8>7!Y6N>T1nsmwovWHjL$Sb_Y;nB)u`$o_2} z3P(1T8b`rbk%u&<1f}}5EG85|Ia0^xL_aoM#&1U#3se|8BBMjjMz}y2NnmXaO%VkV z2;Zkds4HO(x=!{W@HLNB)Q^R8ewOLb1bvdMM!2svr&L(n7mnrGf-2%^+y*JE^^ta> zH05nQVV!R*f=}ybC97)k8F`$`nV8LSAgE-cS2_lkhGBL5IbY}}-y=>MQLO8jlqSHS zG+eWohp=DQIA#*3I@Ph!0mC+ezhOc`4%Gi)uZsconvqBMRLvtjgx zB`B{mCdE~R1-QUW+A&egAZ~eo|5mbGGiHa-DBv3{Fatd25IfZxl2_P6~dqR4N z1sx4);HeL78p@ue4B9~-;Vvmpme#^aPhQaE4CXo31W7^?{79iXu1^V+XWWN0RV1f| zv{$+=t~p`U3orjto`DDBGa&kN1V>5?d<~CEYJ_CuG<&~q#>h{xz_Trq$zkClrb6to z7jcMmV=FFO7D`QM%p+4(G}5%Su^{vG*5OE=c>Ku1g(_%jO>(DYYbFU(w?u@+`Yc}W zNgmOV5`8PiLJXdTK-a2jFx(JQT!EuVbvC+Q?`Nn8GK+2bZ+s&|jZ#mghmDJFEkW9}g+$GR0=*Nlk3{zQ_ z+mN40l4rOMl;c^yJ*9XQ^HqXb@C>YyfwEX7GcE$YP)4R$vPe=2c5c8Q+2L$r5FNxO z8FjnZ#Dabtn`D^EY+^%xCN{}%9mpnGzXRFCfpsj?E!iW&$x^5_UBLZ6iAKq%20)Lj zMvF;MAMS1>pc`nBcU?!}-dtKT#4{fK;r4wd{=X_iH_JWJE<^R%igI&4k2 zv@>hrgW0guyJD6?drXM5S``C$bS`-!iJ@h}6?V0=aI$oOIrCU*X%EWX#=$NY6>{r^ z&f$UqGPDkp336}jDGoHH&m_cte_EwMRwF)gCxwO*q9)caadtg0CpGo7s#5GSmKJ@& za3J*ge<-o)@k&(Y@y>5yuRu|lHa=BFVRT^!Q-zcXL_?k~mSsZ9$pl-4qtsglxfK#I zBd)+IqDm@T#$=^ctYV2kHh0huP@Z0MI=Dfm(-|@=!ec8X7m&{9EM&>1W*1yREme^> z@p&kc7_%@zaSFkUPoH8s|1pn#KW2N-VH_lM$LFC>qeOIszoaA$Sh#4@wF)D3qzAeP z+Yu-2kQ3VZ#^7q>khF1_u(tV&7Sch)LJHNeo489g*~(lw5GTs2Ll@`Ut`uFF^9zMS z?Fb10MH)m2dTbxrSkMGhxs-BH8I zJt92o>AYrw@$fAZ zau2ANbTUAFh%+kq_mJ7ITBD_Ejsn%b1e3$D_Xo&=av~fjOzm=u^FtPxiLeHV?(D9} z>bebsNaF=CjC9X!z|#<~F$;h*jzLlAUqmGJdqNkRCb*@CThnL}V?t5Z zP5N(F8E$c=-^|fwqO?iwsJi@l2h|u{*(h2KgKxCDvYuxs-yu9Ma24PO|L)RywWH*2VnSNypME@Rk(fvF zC)m`N`FR-}mP&ptnv;(G5{Pu4rMYix`8OY~<+d&!u1a!LDqK-GeELx$H2%8%_7Swp z!oA@COP9kzA2eNhnQ>@~6^WdxY&^tFy|g(v{b>l{^bhwhv!uL>yd#`8ngD`wXS_`w zXi%R`o=?JUO4Z;(p@vbKVt82%l#x(Vtyfb0A}EgiB^BA+oAVWP_5NPYyd+tiWu}A4 ztO*HEgk}n~!W(#SC0J7w3SEL<2XJ|)^3g5lRnR1jG>4K<)Yuz(KVF%`}ChqZhyaTB@}C+ix$> zW!?b((Qy4b=Bsn_dXM9nwSd1@RJi&05Cu)P01elWYoPnrwpj$+!$J1iU}k-7Q3=xd zj;VU!5uV`4RiuW-gcdYarm>stgAj*^nZN=TwD3LQ zP-jdDW;v>uslRq;;&)_Af!b(=qezl6qPugNjnr)3ntA@1XFc03^IO>)o`N>XrB1@ptU+ANGL)5|j9#mYAmC3X zBn6Q>`m@}TEXliR5el%_HXlpFtaqT;Hn*wJ({7V>EW1F39>zH_$EXbsWv(M71M0?9 z)M`jutz``xRhyM^^GG+gj+1a-tS}2-7&wkisv|#X-{Lj%f~-=2 z0cnmUd#5PxsXn6HEbT2dH&2TunV~OdmTv`(;PIr>0wIz*oWoOFp?j!Vg8;7nrq8f5xjQpiaPj9Dorlx4sd1r8F+XzY!K$9#=g&IJq)E)Sda? zLP-Bvz*mnRZb4B1o@?N8VqO)NBHE-=fA?3^b-IJLyAL9hCeb7ZjXqPHZ!#sIb#_Nq z%LyjbnacrK;a1b$SfTaaSoJS?{nafdfZaBGXF6kTK#~b5odhpzvlp`8r&StO^|C;n zedK%N-&hh6+|lac2lDa-bteXdMoQnwKGy%ouaT1MKSlN zIFtKF{*NZU<2a`dx&}KerjnSIa=LMdx(2|RWpn_|JPbDZXXu6FM@kSj`N5kS@{^#- z61g6JxVg`?Z#D%ld9u_QTfoqAsgzkK1&l5PU~WPf;Zs1p)jzh|?9%)PIdDEENK}6SSLEGDxvX;g^EFWOlZ72={I0=>Tmq=k^676igA^uD%-6^*iB*okoi2okGNx+??O`rT?z8T zA|xipPd(r5cikZwdxQR&Q=3|IQKd|4HDyUO zfj(x-+2}w8HG$T-+Lr-lt2&G7dJe&lCmiZapit8yM5ZJ1WzVzR;L?Gn?ECExmqi!F z5>Pb+&3Ww8ibbuGS>T&F>V%qI03FbNlA|4fP24LsCSU_X2(MQXzx3!of=y6J ztJ0Z-+JY|XSEmqpo^}2rN&AV`PGe6 z_sqtzLfMEdrkFsIPz_g_?at=*peiYHNWy4K3%3!AV84_&q5Fnq`I%TP3!i5XADE%U z^q(meNj4s9M z6gp&Ye$37ar}$ZC8rMWc^a9$D1Yc404hRhdRlp$Gzxarc-7^i1*d>;P8+=mChb5@XJGe>hEgU7T* z>b1d(XQ43cpE>#@-_Thl9%;`*8Jq?Rt4E^I+BavRRrw3etB0Y{+CM{d6(yT17N6x+ zf~0a#QT7UY_;Xt^eS^Mvr9xA37$!|t3$Ja^{v)KIJ)YlNI@!1s0134*RZvL?wHiNY ze6l@E>_I0YYR`3a6E6C$pEV}+u_RO zJ^O_!8eak}O8AHwno|rF&=ztDAhBELLrZI4+Uvpu$`IIKkck3-kRFwu(JFljT}98o z=3r;hRm9b$FFkK{xa(HXEYw%Dj6mvFyNK#RvF1bFuWavXa=-q~YY6?C7d}oKFQ|Nl z>mH}!zsZi*#D1+y|Hb)@&zO`LadNRcHNDvC$dq(*>o(%#rYT!oLMi5bS9%?uI&Oiu zZ@xe^`?WO}Z(^QCt@Gh%a%O&0?+2?ObnCqJJ=A!8#{|6m-8ySQ=~ufS{NaP3vHsnz z{s`^zT+ZUDk|7Qm>de~TW&<#9C2k8a5YMt;xj4<~c4Ha6ayPxaW@OyiZ1>`E)oKOz>nl?N55UiOLQRV#Z+yZOh2eExAV<4Vzo}wX}Tg z_C7v(g2f{!F|~CdGcnVD*53oRrXdxgEgdHYKS4Q;G-@l-j8hN4IHq|M!8hi6R6}_U z9LEHgY62smCYcJ`C?}BV@IMnv(C~UGHl`rBfvTph4&BZYDeB<5Fo-%h<(#Nir=`>- zMsFV;Zgo!+#WwdGKvv1`9r>U8ESLJ!O71az>adDZRHs~S3%<`8Rj+HvwHCPxUcK2@ zm@da0t_V26qy){>+MGjn`Aiq%RM3|^Ai}^hS;X2FDM76pM>%BKdbqrm^Orp@q^1v= znFpkGMr;;FtgKDOz)drBM+s*8FlPqodATzKTVc-};a>cikFxGbEQ2~&&HEQ zpf!Vdc7BA4Guw^Htd7nWQ_==>q#;=>yHhbE3m6W#b!|HCLRdvoy=~od`ne@Jb=~gN zAJRd0IwAeuu;1;C=DzRxQbJu%28^U3b+wYpJME>%292!&<+cwRFye z)v{Y`H+0{z)^ESr5jBI;BwPs8QP<2xLkg;rv%2C5jhj5R>J6z(pk{qhc9Bh(5JGvP zKM0!XHPhMwXP*a}Eepg8S?U1-pO;WPCg|XKi zGGmJD3PNV>zU&5>xldvf+H}3EXrEQZPd3gnsAo>zYQ&?;(CszN_x8;g7S4IRQZ`6s zq7~3%XL*?<(Y9Fz=*LdDx&*WZWXK7nq= zw-n*05MlIid7CkU{JNk?zEfG4&{*!D4|g~47524N7GT?;5*#mRvWs)``omWHl3PmH ze6C9@7cRrWOJIpA3T(;+z!z}9W;wtaB>kECdfNT6`OAnWoxhTce#<8-ov+Oz01S%& zmuj>ol~Y8tz%hDQSJ$-VA2@$aTv0r#sTY9Osm%^KSjBPRjuC|ld`H|J+p%j5{5>~L zHM>!prq{QH!&FH#H9u&z6DhSa-q@^>vQDA93;#4hrX z-4V73JdpXf+FBB4LG^CU$TUdjn z2ms3AZ1O{xZ5lL7>$N_%al|@Oiv}E%cIG5?B2L=tZs(iq(%k8fl>x1&5O_hG^7M-K z5`@HXqK_A0A#^3${4Yh*_l2;rA&o7oP5KnGB%z`62aLVl-7@;dniJO{Q4ilP`P2Tx z%lD6Q$w*zXsF`#-w32;|gTTZ7;{(6p3-NvUDvo(P`(r1D2U;yxFREpBB2)miTYhO7 zP=E*}KXa)1d@$h=5BOqpA4y;BGOIvZCC`*AZR&AM%~CUWFlB1q4EVMH`0czXsyWhB znJ18=|B&5xt*JcIkmO&gN_K9S4VzhowOB~lnvoO-(ieDCvWu!ayduHb0~cAn*R2uR zk1VEdpepQ^kZcjuaWUB(QGHOhgkx7!)+zwr$-3@DT7#$>ne95R({p=WciJ780BwIf zo%RP)JoVhEKblPEbDs`|c;Hh)eSh2^;`w0i`BS$``&}~iiRaTUp - - - -### [notes-1.0.4](https://github.com/truecharts/apps/compare/notes-1.0.3...notes-1.0.4) (2021-11-02) - -#### Chore - -* update non-major deps helm releases ([#1267](https://github.com/truecharts/apps/issues/1267)) - - - - -### [notes-1.0.3](https://github.com/truecharts/apps/compare/notes-1.0.2...notes-1.0.3) (2021-11-01) - -#### Chore - -* update non-major deps helm releases ([#1264](https://github.com/truecharts/apps/issues/1264)) - - - - -### [notes-1.0.2](https://github.com/truecharts/apps/compare/notes-1.0.1...notes-1.0.2) (2021-10-26) - -#### Chore - -* update non-major deps helm releases ([#1245](https://github.com/truecharts/apps/issues/1245)) - - - - -### [notes-1.0.1](https://github.com/truecharts/apps/compare/notes-1.0.0...notes-1.0.1) (2021-10-26) - -#### Chore - -* update helm chart common to v8.3.15 ([#1240](https://github.com/truecharts/apps/issues/1240)) - - - - -### [notes-1.0.0](https://github.com/truecharts/apps/compare/notes-0.0.12...notes-1.0.0) (2021-10-25) - -#### Chore - -* Adapt for TrueNAS SCALE RC1 - - - - -### [notes-0.0.12](https://github.com/truecharts/apps/compare/notes-0.0.9...notes-0.0.12) (2021-10-20) - -#### Chore - -* bump apps, remove duplicates and move incubator to stable for RC1 - - - - -### [notes-0.0.9](https://github.com/truecharts/apps/compare/notes-0.0.8...notes-0.0.9) (2021-10-20) - -#### Chore - -* bump versions to rerelease and fix icons - - - - -### [notes-0.0.8](https://github.com/truecharts/apps/compare/notes-0.0.7...notes-0.0.8) (2021-10-19) - -#### Change - -* Project-Eclipse 3, Automatically generate item.yaml ([#1178](https://github.com/truecharts/apps/issues/1178)) - -#### Chore - -* Project-Eclipse 5, move app-readme to automatic generation script ([#1181](https://github.com/truecharts/apps/issues/1181)) -* Project-Eclipse part 2, adapting and cleaning changelog ([#1173](https://github.com/truecharts/apps/issues/1173)) -* update helm chart common to v8.3.13 ([#1184](https://github.com/truecharts/apps/issues/1184)) - -#### Feat - -* Project-Eclipse 4, Add App grading annotations to Chart.yaml ([#1180](https://github.com/truecharts/apps/issues/1180)) - -#### Refactor - -* Project Eclipse Part 6, move questions.yaml to root App folder ([#1182](https://github.com/truecharts/apps/issues/1182)) - - - - -### [notes-0.0.7](https://github.com/truecharts/apps/compare/notes-0.0.6...notes-0.0.7) (2021-10-19) - -#### Fix - -* fix previous SCALE bugfix not correctly being applied - - - - diff --git a/stable/notes/1.0.4/CONFIG.md b/stable/notes/1.0.4/CONFIG.md deleted file mode 100644 index fc9b2fa2d5f..00000000000 --- a/stable/notes/1.0.4/CONFIG.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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 Internally" quick-start guide: -https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ - -##### 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/stable/notes/1.0.4/Chart.lock b/stable/notes/1.0.4/Chart.lock deleted file mode 100644 index e6773821ce7..00000000000 --- a/stable/notes/1.0.4/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.19 -digest: sha256:cfd9093f994d937b1e240760e95ded1abbdd144d50be1cfc0dd94bc3386ca618 -generated: "2021-11-02T18:30:31.724459903Z" diff --git a/stable/notes/1.0.4/Chart.yaml b/stable/notes/1.0.4/Chart.yaml deleted file mode 100644 index 99b1386dfe6..00000000000 --- a/stable/notes/1.0.4/Chart.yaml +++ /dev/null @@ -1,33 +0,0 @@ -apiVersion: v2 -appVersion: "ee287b9" -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.19 -description: A self-hosted note taking web app that lets you keep track of your notes - and search them in a easy and minimal way. -home: https://github.com/truecharts/apps/tree/master/charts/stable/notes -icon: '' -keywords: -- markdown -- notes -- app -- web -- webapp -kubeVersion: '>=1.16.0-0' -maintainers: -- email: info@truecharts.org - name: TrueCharts - url: truecharts.org -name: notes -sources: -- https://github.com/prologic/notes -- https://github.com/nicholaswilde/docker-notes -type: application -version: 1.0.4 -annotations: - truecharts.org/catagories: | - - media - - truecharts.org/SCALE-support: "true" - truecharts.org/grade: U diff --git a/stable/notes/1.0.4/README.md b/stable/notes/1.0.4/README.md deleted file mode 100644 index aaaefff56c7..00000000000 --- a/stable/notes/1.0.4/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Introduction - -A self-hosted note taking web app that lets you keep track of your notes and search them in a easy and minimal way. - -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://truecharts.org | common | 8.3.19 | - -## Installing the Chart - -To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). - -## Uninstalling the Chart - -To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). - -## Support - -- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. -- See the [Wiki](https://truecharts.org) -- Check our [Discord](https://discord.gg/tVsPTHWTtr) -- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) ---- -All Rights Reserved - The TrueCharts Project diff --git a/stable/notes/1.0.4/app-readme.md b/stable/notes/1.0.4/app-readme.md deleted file mode 100644 index 265ec8b8617..00000000000 --- a/stable/notes/1.0.4/app-readme.md +++ /dev/null @@ -1,3 +0,0 @@ -A self-hosted note taking web app that lets you keep track of your notes and search them in a easy and minimal way. - -This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/notes/1.0.4/charts/common-8.3.19.tgz b/stable/notes/1.0.4/charts/common-8.3.19.tgz deleted file mode 100644 index ce25f65dcef53fa9b2e1b377a4bf948a2b6effb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33055 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 diff --git a/stable/notes/1.0.4/helm-values.md b/stable/notes/1.0.4/helm-values.md deleted file mode 100644 index 14e524b67b5..00000000000 --- a/stable/notes/1.0.4/helm-values.md +++ /dev/null @@ -1,28 +0,0 @@ -# Default Helm-Values - -TrueCharts is primarily build to supply TrueNAS SCALE Apps. -However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. - -Most of our Apps also consume our "common" Helm Chart. -If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. -You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. - -## Values - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"ghcr.io/nicholaswilde/notes"` | | -| image.tag | string | `"version-ee287b9@sha256:ab9bc16465bc722068a34898b0090490e660dc5a126c9acf651ad229693b44c1"` | | -| persistence.data.accessMode | string | `"ReadWriteOnce"` | | -| persistence.data.enabled | bool | `true` | | -| persistence.data.mountPath | string | `"/data"` | | -| persistence.data.size | string | `"1Gi"` | | -| persistence.varrun.enabled | bool | `true` | | -| podSecurityContext.runAsGroup | int | `0` | | -| podSecurityContext.runAsUser | int | `0` | | -| securityContext.readOnlyRootFilesystem | bool | `false` | | -| securityContext.runAsNonRoot | bool | `false` | | -| service.main.ports.main.port | int | `8000` | | - -All Rights Reserved - The TrueCharts Project diff --git a/stable/notes/1.0.4/ix_values.yaml b/stable/notes/1.0.4/ix_values.yaml deleted file mode 100644 index ec72a2b7796..00000000000 --- a/stable/notes/1.0.4/ix_values.yaml +++ /dev/null @@ -1,28 +0,0 @@ -image: - repository: ghcr.io/nicholaswilde/notes - pullPolicy: IfNotPresent - tag: version-ee287b9@sha256:ab9bc16465bc722068a34898b0090490e660dc5a126c9acf651ad229693b44c1 - - -securityContext: - readOnlyRootFilesystem: false - runAsNonRoot: false - -podSecurityContext: - runAsUser: 0 - runAsGroup: 0 - -service: - main: - ports: - main: - port: 8000 - -persistence: - data: - enabled: true - mountPath: /data - accessMode: ReadWriteOnce - size: 1Gi - varrun: - enabled: true diff --git a/stable/notes/1.0.4/questions.yaml b/stable/notes/1.0.4/questions.yaml deleted file mode 100644 index 9c17a3781cd..00000000000 --- a/stable/notes/1.0.4/questions.yaml +++ /dev/null @@ -1,1780 +0,0 @@ -groups: - - name: "Container Image" - description: "Image to be used for container" - - name: "Controller" - description: "Configure workload deployment" - - name: "Container Configuration" - description: "additional container configuration" - - name: "App Configuration" - description: "App specific config options" - - name: "Networking and Services" - description: "Configure Network and Services for container" - - name: "Storage and Persistence" - description: "Persist and share data that is separate from the container" - - name: "Ingress" - description: "Ingress Configuration" - - name: "Security and Permissions" - description: "Configure security context and permissions" - - name: "Resources and Devices" - description: "Specify resources/devices to be allocated to workload" - - name: "Middlewares" - description: "Traefik Middlewares" - - name: "Addons" - description: "Addon Configuration" - - name: "Advanced" - description: "Advanced Configuration" -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 - - variable: global - label: "global settings" - group: "Controller" - schema: - type: dict - hidden: true - attrs: - - variable: isSCALE - label: "flag this is SCALE" - schema: - type: boolean - default: true - hidden: true - - variable: controller - group: "Controller" - label: "" - schema: - type: dict - attrs: - - variable: type - description: "Please specify type of workload to deploy" - label: "(Advanced) Controller Type" - schema: - type: string - default: "deployment" - required: true - enum: - - value: "deployment" - description: "Deployment" - - value: "statefulset" - description: "Statefulset" - - value: "daemonset" - description: "Daemonset" - - variable: replicas - description: "Number of desired pod replicas" - label: "Desired Replicas" - schema: - type: int - default: 1 - required: true - - variable: strategy - description: "Please specify type of workload to deploy" - label: "(Advanced) Update Strategy" - schema: - type: string - default: "Recreate" - required: true - enum: - - value: "Recreate" - description: "Recreate: Kill existing pods before creating new ones" - - value: "RollingUpdate" - description: "RollingUpdate: Create new pods and then kill old ones" - - value: "OnDelete" - description: "(Legacy) OnDelete: ignore .spec.template changes" - - variable: advanced - label: "Show Expert Configuration Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: extraArgs - label: "Extra Args" - schema: - type: list - default: [] - items: - - variable: argItem - label: "Arg" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: labelsList - label: "Controller Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: " Controller Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: env - group: "Container 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" - - - variable: envList - label: "Image environment" - group: "Container 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 - - - variable: expertpodconf - group: "Container Configuration" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: termination - group: "Container Configuration" - label: "Termination settings" - schema: - type: dict - attrs: - - variable: gracePeriodSeconds - label: "Grace Period Seconds" - schema: - type: int - default: 10 - - variable: podLabelsList - group: "Container Configuration" - label: "Pod Labels" - schema: - type: list - default: [] - items: - - variable: podLabelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: podAnnotationsList - group: "Container Configuration" - label: "Pod Annotations" - schema: - type: list - default: [] - items: - - variable: podAnnotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: service - group: "Networking and Services" - 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: enabled - label: "Enable the port" - schema: - type: boolean - default: true - hidden: true - - variable: protocol - label: "Port Type" - schema: - type: string - default: "HTTP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: targetPort - label: "Target Port" - description: "This port exposes the container port on the service" - schema: - type: int - default: 8000 - editable: false - hidden: true - - variable: port - label: "Container Port" - schema: - type: int - default: 8000 - editable: true - 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: 36128 - - - variable: serviceexpert - group: "Networking and Services" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostNetwork - group: "Networking and Services" - label: "Host-Networking (Complicated)" - schema: - type: boolean - default: false - - - variable: dnsPolicy - group: "Networking and Services" - label: "dnsPolicy" - schema: - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "ClusterFirst" - description: "ClusterFirst" - - value: "ClusterFirstWithHostNet" - description: "ClusterFirstWithHostNet" - - value: "None" - description: "None" - - - variable: dnsConfig - label: "DNS Configuration" - group: "Networking and Services" - description: "Specify custom DNS configuration which will be applied to the pod" - schema: - type: dict - attrs: - - variable: nameservers - label: "Nameservers" - schema: - default: [] - type: list - items: - - variable: nameserver - label: "Nameserver" - schema: - type: string - - variable: options - label: "options" - schema: - default: [] - type: list - items: - - variable: option - label: "Option Entry" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: searches - label: "Searches" - schema: - default: [] - type: list - items: - - variable: search - label: "Search Entry" - schema: - type: string - - - variable: serviceList - label: "Add Manual Custom Services" - group: "Networking and Services" - schema: - type: list - default: [] - items: - - variable: serviceListEntry - label: "Custom Service" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name" - schema: - type: string - default: "" - - 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: portsList - label: "Additional Service Ports" - schema: - type: list - default: [] - items: - - variable: portsListEntry - label: "Custom ports" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the port" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Port Name" - schema: - type: string - default: "" - - variable: protocol - label: "Port Type" - schema: - type: string - default: "TCP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: targetPort - label: "Target Port" - description: "This port exposes the container port on the service" - schema: - type: int - required: true - - variable: port - label: "Container Port" - schema: - type: int - 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 - - - variable: persistence - label: "Integrated Persistent Storage" - description: "Integrated Persistent Storage" - group: "Storage and Persistence" - schema: - type: dict - attrs: - - variable: data - label: "App Data Storage" - description: "Stores the Application Data." - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "pvc" - enum: - - value: "pvc" - description: "pvc" - - value: "emptyDir" - description: "emptyDir" - - value: "hostPath" - description: "hostPath" - - variable: storageClass - label: "(Advanced) storageClass" - description: " Warning: Anything other than SCALE-ZFS will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: hostPathType - label: "hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "/data" - hidden: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: accessMode - label: "Access Mode (Advanced)" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - 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: - show_if: [["type", "=", "pvc"]] - type: string - default: "100Gi" - - variable: varrun - label: "varrun override for S6 Readonly Root" - schema: - type: dict - hidden: true - attrs: - - variable: enabled - label: "" - schema: - type: boolean - default: true - hidden: true - - variable: persistenceList - label: "Additional app storage" - group: "Storage and Persistence" - schema: - type: list - default: [] - items: - - variable: persistenceListEntry - label: "Custom Storage" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "hostPath" - enum: - - value: "pvc" - description: "pvc" - - value: "emptyDir" - description: "emptyDir" - - value: "hostPath" - description: "hostPath" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "" - required: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: accessMode - label: "(Advanced) Access Mode" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - 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: - show_if: [["type", "=", "pvc"]] - type: string - default: "100Gi" - - - variable: ingress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: main - label: "Main Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Ingress" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: hostEntry - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "HostName" - schema: - type: string - default: "" - required: true - - variable: paths - label: "Paths" - schema: - type: list - default: [] - items: - - variable: pathEntry - label: "Host" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "Prefix" - - - variable: tls - label: "TLS-Settings" - schema: - type: list - default: [] - items: - - variable: tlsEntry - label: "Host" - schema: - type: dict - attrs: - - variable: hosts - label: "Certificate Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: string - default: "" - required: true - - variable: scaleCert - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - $ref: - - "definitions/certificate" - - - variable: entrypoint - label: "(Advanced) Traefik Entrypoint" - description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" - schema: - type: string - default: "websecure" - required: true - - variable: middlewares - label: "Traefik Middlewares" - description: "Add previously created Traefik Middlewares to this Ingress" - schema: - type: list - default: [] - items: - - variable: name - label: "Name" - schema: - type: string - default: "" - required: true - - - variable: expert - label: "Show Expert Configuration Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: enableFixedMiddlewares - description: "These middlewares enforce a number of best practices." - label: "Enable Default Middlewares" - schema: - type: boolean - default: true - - variable: ingressClassName - label: "IngressClass Name" - schema: - type: string - default: "" - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: ingressList - label: "Add Manual Custom Ingresses" - group: "Ingress" - schema: - type: list - default: [] - items: - - variable: ingressListEntry - label: "Custom Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Ingress" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name" - schema: - type: string - default: "" - - variable: ingressClassName - label: "IngressClass Name" - schema: - type: string - default: "" - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: hostEntry - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "HostName" - schema: - type: string - default: "" - required: true - - variable: paths - label: "Paths" - schema: - type: list - default: [] - items: - - variable: pathEntry - label: "Host" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "Prefix" - - variable: service - label: "Linked Service" - schema: - type: dict - attrs: - - variable: name - label: "Service Name" - schema: - type: string - default: "" - - variable: port - label: "Service Port" - schema: - type: int - - variable: tls - label: "TLS-Settings" - schema: - type: list - default: [] - items: - - variable: tlsEntry - label: "Host" - schema: - type: dict - attrs: - - variable: hosts - label: "Certificate Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: string - default: "" - required: true - - variable: scaleCert - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - $ref: - - "definitions/certificate" - - variable: entrypoint - label: "Traefik Entrypoint" - description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" - schema: - type: string - default: "websecure" - required: true - - variable: middlewares - label: "Traefik Middlewares" - description: "Add previously created Traefik Middlewares to this Ingress" - schema: - type: list - default: [] - items: - - variable: name - label: "Name" - schema: - type: string - default: "" - required: true - - - variable: securityContext - group: "Security and Permissions" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Privileged mode" - schema: - type: boolean - default: false - - variable: readOnlyRootFilesystem - label: "ReadOnly Root Filesystem" - schema: - type: boolean - default: false - - variable: allowPrivilegeEscalation - label: "Allow Privilege Escalation" - schema: - type: boolean - default: false - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - - variable: podSecurityContext - group: "Security and Permissions" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsUser - label: "runAsUser" - description: "The UserID of the user running the application" - schema: - type: int - default: 0 - - variable: runAsGroup - label: "runAsGroup" - description: The groupID this App of the user running the application" - schema: - type: int - default: 0 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: supplementalGroups - label: "supplemental Groups" - schema: - type: list - default: [] - items: - - variable: supplementalGroupsEntry - label: "supplemental Group" - schema: - type: int - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" - - - # Specify GPU configuration - - variable: scaleGPU - label: "GPU Configuration" - group: "Resources and Devices" - schema: - type: dict - $ref: - - "definitions/gpuConfiguration" - attrs: [] - - - variable: resources - group: "Resources and Devices" - label: "" - schema: - type: dict - attrs: - - variable: limits - label: "Advanced Limit Resource Consumption" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "4000m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "8Gi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - variable: requests - label: "Advanced Request minimum resources required" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "10m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "50Mi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - - variable: deviceList - label: "Mount USB devices" - group: "Resources and Devices" - schema: - type: list - default: [] - items: - - variable: deviceListEntry - label: "Device" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "Host Device Path" - description: "Path to the device on the host system" - schema: - type: path - - variable: mountPath - label: "Container Device Path" - description: "Path inside the container the device is mounted" - schema: - type: string - default: "/dev/ttyACM0" - - - variable: autoscaling - group: "Advanced" - label: "(Advanced) Horizontal Pod Autoscaler" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: target - label: "Target" - description: "deployment name, defaults to main deployment" - schema: - type: string - default: "" - - variable: minReplicas - label: "Minimum Replicas" - schema: - type: int - default: 1 - - variable: maxReplicas - label: "Maximum Replicas" - schema: - type: int - default: 5 - - variable: targetCPUUtilizationPercentage - label: "Target CPU Utilization Percentage" - schema: - type: int - default: 80 - - variable: targetMemoryUtilizationPercentage - label: "Target Memory Utilization Percentage" - schema: - type: int - default: 80 - - - - variable: addons - group: "Addons" - label: "" - schema: - type: dict - attrs: - - variable: vpn - label: "VPN" - schema: - type: dict - attrs: - - variable: type - label: "Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "disabled" - - value: "openvpn" - description: "OpenVPN" - - value: "wireguard" - description: "Wireguard" - - variable: openvpn - label: "OpenVPN Settings" - schema: - type: dict - show_if: [["type", "=", "openvpn"]] - attrs: - - variable: username - label: "authentication username" - description: "authentication username, optional" - schema: - type: string - default: "" - - variable: password - label: "authentication password" - description: "authentication credentials" - schema: - type: string - default: "" - required: true - - variable: killSwitch - label: "Enable killswitch" - schema: - type: boolean - show_if: [["type", "!=", "disabled"]] - default: true - - variable: excludedNetworks_IPv4 - label: "Killswitch Excluded IPv4 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv4 - label: "IPv4 Network" - schema: - type: string - required: true - - variable: excludedNetworks_IPv6 - label: "Killswitch Excluded IPv6 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv6 - label: "IPv6 Network" - schema: - type: string - required: true - - - variable: configFile - label: "VPN Config File Location" - schema: - type: dict - show_if: [["type", "!=", "disabled"]] - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: hostPathType - label: "hostPathType" - schema: - type: string - default: "File" - hidden: true - - variable: noMount - label: "noMount" - schema: - type: boolean - default: true - hidden: true - - variable: hostPath - label: "Full path to file" - description: "path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" - schema: - type: string - default: "" - required: true - - variable: envList - label: "VPN environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - variable: codeserver - label: "Codeserver" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: git - label: "Git Settings" - schema: - type: dict - attrs: - - variable: deployKey - description: "Raw SSH private key" - label: "deployKey" - schema: - type: string - - variable: deployKeyBase64 - description: "Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence" - label: "deployKeyBase64" - schema: - type: string - - variable: service - label: "" - schema: - type: dict - attrs: - - 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: "" - schema: - type: dict - attrs: - - variable: codeserver - label: "" - schema: - type: dict - attrs: - - variable: nodePort - description: "leave empty to disable" - label: "nodePort" - schema: - type: int - default: 36107 - - variable: envList - label: "Codeserver environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - variable: promtail - label: "Promtail" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: loki - label: "Loki URL" - schema: - type: string - required: true - - variable: logs - label: "Log Paths" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: path - label: "Path" - schema: - type: string - required: true - - variable: args - label: "Promtail ecommand line arguments" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: arg - label: "Arg" - schema: - type: string - required: true - - variable: envList - label: "Promtail environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - - - variable: netshoot - label: "Netshoot" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: envList - label: "Netshoot environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true diff --git a/stable/notes/1.0.4/templates/common.yaml b/stable/notes/1.0.4/templates/common.yaml deleted file mode 100644 index 9705d4f5fa6..00000000000 --- a/stable/notes/1.0.4/templates/common.yaml +++ /dev/null @@ -1,2 +0,0 @@ - -{{ include "common.all" . }} diff --git a/stable/notes/1.0.4/values.yaml b/stable/notes/1.0.4/values.yaml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/stable/notes/item.yaml b/stable/notes/item.yaml deleted file mode 100644 index 1230af04661..00000000000 --- a/stable/notes/item.yaml +++ /dev/null @@ -1,4 +0,0 @@ -icon_url: '' -categories: -- media - diff --git a/stable/omada-controller/3.0.20/CHANGELOG.md b/stable/omada-controller/3.0.20/CHANGELOG.md deleted file mode 100644 index c9cfed00c86..00000000000 --- a/stable/omada-controller/3.0.20/CHANGELOG.md +++ /dev/null @@ -1,99 +0,0 @@ -# Changelog
- - -
-### [omada-controller-3.0.20](https://github.com/truecharts/apps/compare/omada-controller-3.0.17...omada-controller-3.0.20) (2021-10-20) - -#### Chore - -* bump apps, remove duplicates and move incubator to stable for RC1 -* update non-major deps helm releases ([#1213](https://github.com/truecharts/apps/issues/1213)) - -#### Fix - -* reenable postgresql migration scripting and bump all to force update -* use correct PVC storageClass when using postgresql as a dependency on SCALE ([#1212](https://github.com/truecharts/apps/issues/1212)) - - - - -### [omada-controller-3.0.17](https://github.com/truecharts/apps/compare/omada-controller-3.0.16...omada-controller-3.0.17) (2021-10-20) - -#### Chore - -* bump versions to rerelease and fix icons - - - - -### [omada-controller-3.0.16](https://github.com/truecharts/apps/compare/omada-controller-3.0.15...omada-controller-3.0.16) (2021-10-19) - -#### Change - -* Project-Eclipse 3, Automatically generate item.yaml ([#1178](https://github.com/truecharts/apps/issues/1178)) - -#### Chore - -* Project-Eclipse 5, move app-readme to automatic generation script ([#1181](https://github.com/truecharts/apps/issues/1181)) -* Project-Eclipse part 2, adapting and cleaning changelog ([#1173](https://github.com/truecharts/apps/issues/1173)) -* update helm chart common to v8.3.13 ([#1184](https://github.com/truecharts/apps/issues/1184)) -* update non-major ([#1174](https://github.com/truecharts/apps/issues/1174)) - -#### Feat - -* Project-Eclipse 4, Add App grading annotations to Chart.yaml ([#1180](https://github.com/truecharts/apps/issues/1180)) - -#### Refactor - -* Project Eclipse Part 6, move questions.yaml to root App folder ([#1182](https://github.com/truecharts/apps/issues/1182)) - - - - -### [omada-controller-3.0.15](https://github.com/truecharts/apps/compare/omada-controller-3.0.14...omada-controller-3.0.15) (2021-10-19) - -#### Fix - -* fix previous SCALE bugfix not correctly being applied - - - - -### [omada-controller-3.0.14](https://github.com/truecharts/apps/compare/omada-controller-3.0.13...omada-controller-3.0.14) (2021-10-19) - -#### Fix - -* Solve issues regarding ix_values.yaml not containing the image and tag definitions. ([#1176](https://github.com/truecharts/apps/issues/1176)) - - - - -### [omada-controller-3.0.13](https://github.com/truecharts/apps/compare/omada-controller-3.0.12...omada-controller-3.0.13) (2021-10-18) - -#### Chore - -* Add description on persistence ([#1172](https://github.com/truecharts/apps/issues/1172)) - -#### Refactor - -* Project Eclipse - part 1 - remove ix_values.yaml ([#1168](https://github.com/truecharts/apps/issues/1168)) - - - - -### [omada-controller-3.0.12](https://github.com/truecharts/apps/compare/omada-controller-3.0.11...omada-controller-3.0.12) (2021-10-17) - -#### Chore - -* update helm chart common to v8.3.10 ([#1160](https://github.com/truecharts/apps/issues/1160)) - -#### Fix - -* force users using correct / prefix for mounPath ([#1156](https://github.com/truecharts/apps/issues/1156)) - - - - -### [omada-controller-3.0.11](https://github.com/truecharts/apps/compare/omada-controller-3.0.10...omada-controller-3.0.11) (2021-10-13) - -#### Chore diff --git a/stable/omada-controller/3.0.20/CONFIG.md b/stable/omada-controller/3.0.20/CONFIG.md deleted file mode 100644 index fc9b2fa2d5f..00000000000 --- a/stable/omada-controller/3.0.20/CONFIG.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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 Internally" quick-start guide: -https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ - -##### 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/stable/omada-controller/3.0.20/Chart.lock b/stable/omada-controller/3.0.20/Chart.lock deleted file mode 100644 index 8dd40122cb6..00000000000 --- a/stable/omada-controller/3.0.20/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.14 -digest: sha256:2278950106e480dac22f26c75bdff4cffbc2d5262a24692f160c3bfa37bda367 -generated: "2021-10-20T22:50:21.009429677Z" diff --git a/stable/omada-controller/3.0.20/Chart.yaml b/stable/omada-controller/3.0.20/Chart.yaml deleted file mode 100644 index 83499d1794e..00000000000 --- a/stable/omada-controller/3.0.20/Chart.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: v2 -appVersion: "4.4" -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.14 -description: Omada enables the network administrators to monitor and manage all the - Omada products in the network with a centralized management platform. -home: https://github.com/truechartsapps/tree/master/charts/stable/omada-controller -icon: https://www.tp-link.com/assets/images/icon/logo-white.svg -keywords: -- omada-controller -kubeVersion: '>=1.16.0-0' -maintainers: -- email: info@truecharts.org - name: truecharts - url: https://truecharts.org -name: omada-controller -sources: -- https://github.com/mbentley/docker-omada-controller -- https://github.com/truechartsapps/tree/master/charts/omada-controller -version: 3.0.20 -annotations: - truecharts.org/catagories: | - - media - - truecharts.org/SCALE-support: "true" - truecharts.org/grade: U diff --git a/stable/omada-controller/3.0.20/README.md b/stable/omada-controller/3.0.20/README.md deleted file mode 100644 index 0a9b7d1f944..00000000000 --- a/stable/omada-controller/3.0.20/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Introduction - -Omada enables the network administrators to monitor and manage all the Omada products in the network with a centralized management platform. - -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://truecharts.org | common | 8.3.14 | - -## Installing the Chart - -To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). - -## Uninstalling the Chart - -To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). - -## Support - -- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. -- See the [Wiki](https://truecharts.org) -- Check our [Discord](https://discord.gg/tVsPTHWTtr) -- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) ---- -All Rights Reserved - The TrueCharts Project diff --git a/stable/omada-controller/3.0.20/app-readme.md b/stable/omada-controller/3.0.20/app-readme.md deleted file mode 100644 index 67f7c1400de..00000000000 --- a/stable/omada-controller/3.0.20/app-readme.md +++ /dev/null @@ -1,3 +0,0 @@ -Omada enables the network administrators to monitor and manage all the Omada products in the network with a centralized management platform. - -This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/omada-controller/3.0.20/charts/common-8.3.14.tgz b/stable/omada-controller/3.0.20/charts/common-8.3.14.tgz deleted file mode 100644 index 433c2b8196b48e50d5838e38a184acc597bc34c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32830 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 - - - -### [omada-controller-4.0.5](https://github.com/truecharts/apps/compare/omada-controller-4.0.4...omada-controller-4.0.5) (2021-11-02) - -#### Chore - -* update non-major deps helm releases ([#1267](https://github.com/truecharts/apps/issues/1267)) - - - - -### [omada-controller-4.0.4](https://github.com/truecharts/apps/compare/omada-controller-4.0.3...omada-controller-4.0.4) (2021-11-01) - -#### Chore - -* update non-major deps helm releases ([#1264](https://github.com/truecharts/apps/issues/1264)) - - - - -### [omada-controller-4.0.3](https://github.com/truecharts/apps/compare/omada-controller-4.0.2...omada-controller-4.0.3) (2021-11-01) - -#### Chore - -* update non-major ([#1263](https://github.com/truecharts/apps/issues/1263)) - - - - -### [omada-controller-4.0.2](https://github.com/truecharts/apps/compare/omada-controller-4.0.1...omada-controller-4.0.2) (2021-10-26) - -#### Chore - -* update non-major deps helm releases ([#1245](https://github.com/truecharts/apps/issues/1245)) - - - - -### [omada-controller-4.0.1](https://github.com/truecharts/apps/compare/omada-controller-4.0.0...omada-controller-4.0.1) (2021-10-26) - -#### Chore - -* update helm chart common to v8.3.15 ([#1240](https://github.com/truecharts/apps/issues/1240)) - - - - -### [omada-controller-4.0.0](https://github.com/truecharts/apps/compare/omada-controller-3.0.20...omada-controller-4.0.0) (2021-10-25) - -#### Chore - -* Adapt for TrueNAS SCALE RC1 - - - - -### [omada-controller-3.0.20](https://github.com/truecharts/apps/compare/omada-controller-3.0.17...omada-controller-3.0.20) (2021-10-20) - -#### Chore - -* bump apps, remove duplicates and move incubator to stable for RC1 -* update non-major deps helm releases ([#1213](https://github.com/truecharts/apps/issues/1213)) - -#### Fix - -* reenable postgresql migration scripting and bump all to force update -* use correct PVC storageClass when using postgresql as a dependency on SCALE ([#1212](https://github.com/truecharts/apps/issues/1212)) - - - - -### [omada-controller-3.0.17](https://github.com/truecharts/apps/compare/omada-controller-3.0.16...omada-controller-3.0.17) (2021-10-20) - -#### Chore - -* bump versions to rerelease and fix icons - - - - -### [omada-controller-3.0.16](https://github.com/truecharts/apps/compare/omada-controller-3.0.15...omada-controller-3.0.16) (2021-10-19) - -#### Change - -* Project-Eclipse 3, Automatically generate item.yaml ([#1178](https://github.com/truecharts/apps/issues/1178)) - -#### Chore - -* Project-Eclipse 5, move app-readme to automatic generation script ([#1181](https://github.com/truecharts/apps/issues/1181)) -* Project-Eclipse part 2, adapting and cleaning changelog ([#1173](https://github.com/truecharts/apps/issues/1173)) -* update helm chart common to v8.3.13 ([#1184](https://github.com/truecharts/apps/issues/1184)) -* update non-major ([#1174](https://github.com/truecharts/apps/issues/1174)) - -#### Feat - -* Project-Eclipse 4, Add App grading annotations to Chart.yaml ([#1180](https://github.com/truecharts/apps/issues/1180)) - diff --git a/stable/omada-controller/4.0.5/CONFIG.md b/stable/omada-controller/4.0.5/CONFIG.md deleted file mode 100644 index fc9b2fa2d5f..00000000000 --- a/stable/omada-controller/4.0.5/CONFIG.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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 Internally" quick-start guide: -https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ - -##### 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/stable/omada-controller/4.0.5/Chart.lock b/stable/omada-controller/4.0.5/Chart.lock deleted file mode 100644 index f8a556320e5..00000000000 --- a/stable/omada-controller/4.0.5/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.19 -digest: sha256:cfd9093f994d937b1e240760e95ded1abbdd144d50be1cfc0dd94bc3386ca618 -generated: "2021-11-02T18:34:03.862515148Z" diff --git a/stable/omada-controller/4.0.5/Chart.yaml b/stable/omada-controller/4.0.5/Chart.yaml deleted file mode 100644 index 53ddd068c15..00000000000 --- a/stable/omada-controller/4.0.5/Chart.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: v2 -appVersion: "4.4" -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.19 -description: Omada enables the network administrators to monitor and manage all the - Omada products in the network with a centralized management platform. -home: https://github.com/truechartsapps/tree/master/charts/stable/omada-controller -icon: https://www.tp-link.com/assets/images/icon/logo-white.svg -keywords: -- omada-controller -kubeVersion: '>=1.16.0-0' -maintainers: -- email: info@truecharts.org - name: truecharts - url: https://truecharts.org -name: omada-controller -sources: -- https://github.com/mbentley/docker-omada-controller -- https://github.com/truechartsapps/tree/master/charts/omada-controller -version: 4.0.5 -annotations: - truecharts.org/catagories: | - - media - - truecharts.org/SCALE-support: "true" - truecharts.org/grade: U diff --git a/stable/omada-controller/4.0.5/README.md b/stable/omada-controller/4.0.5/README.md deleted file mode 100644 index 9cadb4ddd7a..00000000000 --- a/stable/omada-controller/4.0.5/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Introduction - -Omada enables the network administrators to monitor and manage all the Omada products in the network with a centralized management platform. - -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://truecharts.org | common | 8.3.19 | - -## Installing the Chart - -To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). - -## Uninstalling the Chart - -To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). - -## Support - -- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. -- See the [Wiki](https://truecharts.org) -- Check our [Discord](https://discord.gg/tVsPTHWTtr) -- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) ---- -All Rights Reserved - The TrueCharts Project diff --git a/stable/omada-controller/4.0.5/app-readme.md b/stable/omada-controller/4.0.5/app-readme.md deleted file mode 100644 index 67f7c1400de..00000000000 --- a/stable/omada-controller/4.0.5/app-readme.md +++ /dev/null @@ -1,3 +0,0 @@ -Omada enables the network administrators to monitor and manage all the Omada products in the network with a centralized management platform. - -This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/omada-controller/4.0.5/charts/common-8.3.19.tgz b/stable/omada-controller/4.0.5/charts/common-8.3.19.tgz deleted file mode 100644 index ce25f65dcef53fa9b2e1b377a4bf948a2b6effb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33055 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 diff --git a/stable/omada-controller/4.0.5/helm-values.md b/stable/omada-controller/4.0.5/helm-values.md deleted file mode 100644 index 903b80208cd..00000000000 --- a/stable/omada-controller/4.0.5/helm-values.md +++ /dev/null @@ -1,26 +0,0 @@ -# Default Helm-Values - -TrueCharts is primarily build to supply TrueNAS SCALE Apps. -However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. - -Most of our Apps also consume our "common" Helm Chart. -If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. -You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. - -## Values - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| env | object | See below | environment variables. See [image docs](https://github.com/mbentley/docker-omada-controller) for more details. | -| env.TZ | string | `"UTC"` | Set the container timezone | -| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | -| image.repository | string | `"docker.io/mbentley/omada-controller"` | image repository | -| image.tag | string | `"4.4@sha256:e2cecf684b2098a5818d119ef9d3451c03513f05e8708723dc4c5df33e842f1f"` | image tag | -| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | -| podSecurityContext.runAsGroup | int | `0` | | -| podSecurityContext.runAsUser | int | `0` | | -| securityContext.readOnlyRootFilesystem | bool | `false` | | -| securityContext.runAsNonRoot | bool | `false` | | -| service | object | See values.yaml | Configures service settings for the chart. | - -All Rights Reserved - The TrueCharts Project diff --git a/stable/omada-controller/4.0.5/ix_values.yaml b/stable/omada-controller/4.0.5/ix_values.yaml deleted file mode 100644 index 2eb9cd2b2ab..00000000000 --- a/stable/omada-controller/4.0.5/ix_values.yaml +++ /dev/null @@ -1,45 +0,0 @@ -# -# IMPORTANT NOTE -# -# This chart inherits from our common library chart. You can check the default values/options here: -# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml -# - -image: - # -- image repository - repository: docker.io/mbentley/omada-controller - # -- image tag - tag: 4.4@sha256:e2cecf684b2098a5818d119ef9d3451c03513f05e8708723dc4c5df33e842f1f - # -- image pull policy - pullPolicy: IfNotPresent - -securityContext: - readOnlyRootFilesystem: false - runAsNonRoot: false - -podSecurityContext: - runAsUser: 0 - runAsGroup: 0 - -# -- environment variables. See [image docs](https://github.com/mbentley/docker-omada-controller) for more details. -# @default -- See below -env: - # -- Set the container timezone - TZ: UTC - -# -- Configures service settings for the chart. -# @default -- See values.yaml -service: - main: - ports: - main: - port: 8043 - -# -- Configure persistence settings for the chart under this key. -# @default -- See values.yaml -persistence: - data: - enabled: true - type: pvc - accessMode: ReadWriteOnce - size: "100Gi" diff --git a/stable/omada-controller/4.0.5/questions.yaml b/stable/omada-controller/4.0.5/questions.yaml deleted file mode 100644 index 6bc216dcfa9..00000000000 --- a/stable/omada-controller/4.0.5/questions.yaml +++ /dev/null @@ -1,1729 +0,0 @@ -groups: - - name: "Container Image" - description: "Image to be used for container" - - name: "Controller" - description: "Configure workload deployment" - - name: "Container Configuration" - description: "additional container configuration" - - name: "App Configuration" - description: "App specific config options" - - name: "Networking and Services" - description: "Configure Network and Services for container" - - name: "Storage and Persistence" - description: "Persist and share data that is separate from the container" - - name: "Ingress" - description: "Ingress Configuration" - - name: "Security and Permissions" - description: "Configure security context and permissions" - - name: "Resources and Devices" - description: "Specify resources/devices to be allocated to workload" - - name: "Middlewares" - description: "Traefik Middlewares" - - name: "Addons" - description: "Addon Configuration" - - name: "Advanced" - description: "Advanced Configuration" -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 - - variable: global - label: "global settings" - group: "Controller" - schema: - type: dict - hidden: true - attrs: - - variable: isSCALE - label: "flag this is SCALE" - schema: - type: boolean - default: true - hidden: true - - variable: controller - group: "Controller" - label: "" - schema: - type: dict - attrs: - - variable: type - description: "Please specify type of workload to deploy" - label: "(Advanced) Controller Type" - schema: - type: string - default: "deployment" - required: true - enum: - - value: "deployment" - description: "Deployment" - - value: "statefulset" - description: "Statefulset" - - value: "daemonset" - description: "Daemonset" - - variable: replicas - description: "Number of desired pod replicas" - label: "Desired Replicas" - schema: - type: int - default: 1 - required: true - - variable: strategy - description: "Please specify type of workload to deploy" - label: "(Advanced) Update Strategy" - schema: - type: string - default: "Recreate" - required: true - enum: - - value: "Recreate" - description: "Recreate: Kill existing pods before creating new ones" - - value: "RollingUpdate" - description: "RollingUpdate: Create new pods and then kill old ones" - - value: "OnDelete" - description: "(Legacy) OnDelete: ignore .spec.template changes" - - variable: advanced - label: "Show Expert Configuration Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: extraArgs - label: "Extra Args" - schema: - type: list - default: [] - items: - - variable: argItem - label: "Arg" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: labelsList - label: "Controller Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: " Controller Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: env - group: "Container 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" - - - variable: envList - label: "Image environment" - group: "Container 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 - - - variable: expertpodconf - group: "Container Configuration" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: termination - group: "Container Configuration" - label: "Termination settings" - schema: - type: dict - attrs: - - variable: gracePeriodSeconds - label: "Grace Period Seconds" - schema: - type: int - default: 10 - - variable: podLabelsList - group: "Container Configuration" - label: "Pod Labels" - schema: - type: list - default: [] - items: - - variable: podLabelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: podAnnotationsList - group: "Container Configuration" - label: "Pod Annotations" - schema: - type: list - default: [] - items: - - variable: podAnnotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: service - group: "Networking and Services" - 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: enabled - label: "Enable the port" - schema: - type: boolean - default: true - hidden: true - - variable: protocol - label: "Port Type" - schema: - type: string - default: "HTTP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: targetPort - label: "Target Port" - description: "This port exposes the container port on the service" - schema: - type: int - default: 8043 - editable: false - hidden: true - - variable: port - label: "Container Port" - schema: - type: int - default: 8043 - editable: true - 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: 36072 - - - variable: serviceexpert - group: "Networking and Services" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostNetwork - group: "Networking and Services" - label: "Host-Networking (Complicated)" - schema: - type: boolean - default: false - - - variable: dnsPolicy - group: "Networking and Services" - label: "dnsPolicy" - schema: - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "ClusterFirst" - description: "ClusterFirst" - - value: "ClusterFirstWithHostNet" - description: "ClusterFirstWithHostNet" - - value: "None" - description: "None" - - - variable: dnsConfig - label: "DNS Configuration" - group: "Networking and Services" - description: "Specify custom DNS configuration which will be applied to the pod" - schema: - type: dict - attrs: - - variable: nameservers - label: "Nameservers" - schema: - default: [] - type: list - items: - - variable: nameserver - label: "Nameserver" - schema: - type: string - - variable: options - label: "options" - schema: - default: [] - type: list - items: - - variable: option - label: "Option Entry" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: searches - label: "Searches" - schema: - default: [] - type: list - items: - - variable: search - label: "Search Entry" - schema: - type: string - - - variable: serviceList - label: "Add Manual Custom Services" - group: "Networking and Services" - schema: - type: list - default: [] - items: - - variable: serviceListEntry - label: "Custom Service" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name" - schema: - type: string - default: "" - - 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: portsList - label: "Additional Service Ports" - schema: - type: list - default: [] - items: - - variable: portsListEntry - label: "Custom ports" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the port" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Port Name" - schema: - type: string - default: "" - - variable: protocol - label: "Port Type" - schema: - type: string - default: "TCP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: targetPort - label: "Target Port" - description: "This port exposes the container port on the service" - schema: - type: int - required: true - - variable: port - label: "Container Port" - schema: - type: int - 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 - - - variable: persistence - label: "Integrated Persistent Storage" - description: "Integrated Persistent Storage" - group: "Storage and Persistence" - schema: - type: dict - attrs: - - variable: data - label: "App data Storage" - description: "Stores the Application data." - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "pvc" - enum: - - value: "pvc" - description: "pvc" - - value: "emptyDir" - description: "emptyDir" - - value: "hostPath" - description: "hostPath" - - variable: storageClass - label: "(Advanced) storageClass" - description: " Warning: Anything other than SCALE-ZFS will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: hostPathType - label: "hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "/data" - hidden: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: accessMode - label: "Access Mode (Advanced)" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - 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: - show_if: [["type", "=", "pvc"]] - type: string - default: "100Gi" - - variable: persistenceList - label: "Additional app storage" - group: "Storage and Persistence" - schema: - type: list - default: [] - items: - - variable: persistenceListEntry - label: "Custom Storage" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "hostPath" - enum: - - value: "pvc" - description: "pvc" - - value: "emptyDir" - description: "emptyDir" - - value: "hostPath" - description: "hostPath" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "" - required: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: accessMode - label: "(Advanced) Access Mode" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - 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: - show_if: [["type", "=", "pvc"]] - type: string - default: "100Gi" - - - variable: ingress - label: "" - group: "Ingress" - schema: - type: dict - attrs: - - variable: main - label: "Main Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Ingress" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: hostEntry - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "HostName" - schema: - type: string - default: "" - required: true - - variable: paths - label: "Paths" - schema: - type: list - default: [] - items: - - variable: pathEntry - label: "Host" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "Prefix" - - - variable: tls - label: "TLS-Settings" - schema: - type: list - default: [] - items: - - variable: tlsEntry - label: "Host" - schema: - type: dict - attrs: - - variable: hosts - label: "Certificate Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: string - default: "" - required: true - - variable: scaleCert - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - $ref: - - "definitions/certificate" - - - variable: entrypoint - label: "(Advanced) Traefik Entrypoint" - description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" - schema: - type: string - default: "websecure" - required: true - - variable: middlewares - label: "Traefik Middlewares" - description: "Add previously created Traefik Middlewares to this Ingress" - schema: - type: list - default: [] - items: - - variable: name - label: "Name" - schema: - type: string - default: "" - required: true - - - variable: expert - label: "Show Expert Configuration Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: enableFixedMiddlewares - description: "These middlewares enforce a number of best practices." - label: "Enable Default Middlewares" - schema: - type: boolean - default: true - - variable: ingressClassName - label: "IngressClass Name" - schema: - type: string - default: "" - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: ingressList - label: "Add Manual Custom Ingresses" - group: "Ingress" - schema: - type: list - default: [] - items: - - variable: ingressListEntry - label: "Custom Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Ingress" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name" - schema: - type: string - default: "" - - variable: ingressClassName - label: "IngressClass Name" - schema: - type: string - default: "" - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: hostEntry - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "HostName" - schema: - type: string - default: "" - required: true - - variable: paths - label: "Paths" - schema: - type: list - default: [] - items: - - variable: pathEntry - label: "Host" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "Prefix" - - variable: service - label: "Linked Service" - schema: - type: dict - attrs: - - variable: name - label: "Service Name" - schema: - type: string - default: "" - - variable: port - label: "Service Port" - schema: - type: int - - variable: tls - label: "TLS-Settings" - schema: - type: list - default: [] - items: - - variable: tlsEntry - label: "Host" - schema: - type: dict - attrs: - - variable: hosts - label: "Certificate Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: string - default: "" - required: true - - variable: scaleCert - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - $ref: - - "definitions/certificate" - - variable: entrypoint - label: "Traefik Entrypoint" - description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" - schema: - type: string - default: "websecure" - required: true - - variable: middlewares - label: "Traefik Middlewares" - description: "Add previously created Traefik Middlewares to this Ingress" - schema: - type: list - default: [] - items: - - variable: name - label: "Name" - schema: - type: string - default: "" - required: true - - - variable: securityContext - group: "Security and Permissions" - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Privileged mode" - schema: - type: boolean - default: false - - variable: readOnlyRootFilesystem - label: "ReadOnly Root Filesystem" - schema: - type: boolean - default: false - - variable: allowPrivilegeEscalation - label: "Allow Privilege Escalation" - schema: - type: boolean - default: false - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: false - - - variable: podSecurityContext - group: "Security and Permissions" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsUser - label: "runAsUser" - description: "The UserID of the user running the application" - schema: - type: int - default: 0 - - variable: runAsGroup - label: "runAsGroup" - description: The groupID this App of the user running the application" - schema: - type: int - default: 0 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: supplementalGroups - label: "supplemental Groups" - schema: - type: list - default: [] - items: - - variable: supplementalGroupsEntry - label: "supplemental Group" - schema: - type: int - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" - - - # Specify GPU configuration - - variable: scaleGPU - label: "GPU Configuration" - group: "Resources and Devices" - schema: - type: dict - $ref: - - "definitions/gpuConfiguration" - attrs: [] - - - variable: resources - group: "Resources and Devices" - label: "" - schema: - type: dict - attrs: - - variable: limits - label: "Advanced Limit Resource Consumption" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "4000m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "8Gi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - variable: requests - label: "Advanced Request minimum resources required" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "10m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "50Mi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - - variable: deviceList - label: "Mount USB devices" - group: "Resources and Devices" - schema: - type: list - default: [] - items: - - variable: deviceListEntry - label: "Device" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "Host Device Path" - description: "Path to the device on the host system" - schema: - type: path - - variable: mountPath - label: "Container Device Path" - description: "Path inside the container the device is mounted" - schema: - type: string - default: "/dev/ttyACM0" - - - variable: autoscaling - group: "Advanced" - label: "(Advanced) Horizontal Pod Autoscaler" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: target - label: "Target" - description: "deployment name, defaults to main deployment" - schema: - type: string - default: "" - - variable: minReplicas - label: "Minimum Replicas" - schema: - type: int - default: 1 - - variable: maxReplicas - label: "Maximum Replicas" - schema: - type: int - default: 5 - - variable: targetCPUUtilizationPercentage - label: "Target CPU Utilization Percentage" - schema: - type: int - default: 80 - - variable: targetMemoryUtilizationPercentage - label: "Target Memory Utilization Percentage" - schema: - type: int - default: 80 - - - - variable: addons - group: "Addons" - label: "" - schema: - type: dict - attrs: - - variable: vpn - label: "VPN" - schema: - type: dict - attrs: - - variable: type - label: "Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "disabled" - - value: "openvpn" - description: "OpenVPN" - - value: "wireguard" - description: "Wireguard" - - variable: openvpn - label: "OpenVPN Settings" - schema: - type: dict - show_if: [["type", "=", "openvpn"]] - attrs: - - variable: username - label: "authentication username" - description: "authentication username, optional" - schema: - type: string - default: "" - - variable: password - label: "authentication password" - description: "authentication credentials" - schema: - type: string - default: "" - required: true - - variable: killSwitch - label: "Enable killswitch" - schema: - type: boolean - show_if: [["type", "!=", "disabled"]] - default: true - - variable: excludedNetworks_IPv4 - label: "Killswitch Excluded IPv4 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv4 - label: "IPv4 Network" - schema: - type: string - required: true - - variable: excludedNetworks_IPv6 - label: "Killswitch Excluded IPv6 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv6 - label: "IPv6 Network" - schema: - type: string - required: true - - - variable: configFile - label: "VPN Config File Location" - schema: - type: dict - show_if: [["type", "!=", "disabled"]] - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: hostPathType - label: "hostPathType" - schema: - type: string - default: "File" - hidden: true - - variable: noMount - label: "noMount" - schema: - type: boolean - default: true - hidden: true - - variable: hostPath - label: "Full path to file" - description: "path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" - schema: - type: string - default: "" - required: true - - variable: envList - label: "VPN environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - variable: codeserver - label: "Codeserver" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: git - label: "Git Settings" - schema: - type: dict - attrs: - - variable: deployKey - description: "Raw SSH private key" - label: "deployKey" - schema: - type: string - - variable: deployKeyBase64 - description: "Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence" - label: "deployKeyBase64" - schema: - type: string - - variable: service - label: "" - schema: - type: dict - attrs: - - 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: "" - schema: - type: dict - attrs: - - variable: codeserver - label: "" - schema: - type: dict - attrs: - - variable: nodePort - description: "leave empty to disable" - label: "nodePort" - schema: - type: int - default: 36107 - - variable: envList - label: "Codeserver environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - variable: promtail - label: "Promtail" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: loki - label: "Loki URL" - schema: - type: string - required: true - - variable: logs - label: "Log Paths" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: path - label: "Path" - schema: - type: string - required: true - - variable: args - label: "Promtail ecommand line arguments" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: arg - label: "Arg" - schema: - type: string - required: true - - variable: envList - label: "Promtail environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - - - variable: netshoot - label: "Netshoot" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: envList - label: "Netshoot environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true diff --git a/stable/omada-controller/4.0.5/templates/common.yaml b/stable/omada-controller/4.0.5/templates/common.yaml deleted file mode 100644 index a6613c2ce21..00000000000 --- a/stable/omada-controller/4.0.5/templates/common.yaml +++ /dev/null @@ -1 +0,0 @@ -{{ include "common.all" . }} diff --git a/stable/omada-controller/4.0.5/values.yaml b/stable/omada-controller/4.0.5/values.yaml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/stable/omada-controller/item.yaml b/stable/omada-controller/item.yaml deleted file mode 100644 index f5724b1162f..00000000000 --- a/stable/omada-controller/item.yaml +++ /dev/null @@ -1,4 +0,0 @@ -icon_url: https://www.tp-link.com/assets/images/icon/logo-white.svg -categories: -- media - diff --git a/stable/postgresql/3.0.21/CHANGELOG.md b/stable/postgresql/3.0.21/CHANGELOG.md deleted file mode 100644 index e2fcc464756..00000000000 --- a/stable/postgresql/3.0.21/CHANGELOG.md +++ /dev/null @@ -1,99 +0,0 @@ -# Changelog
- - -
-### [postgresql-3.0.21](https://github.com/truecharts/apps/compare/postgresql-3.0.20...postgresql-3.0.21) (2021-10-19) - -#### Change - -* Project-Eclipse 3, Automatically generate item.yaml ([#1178](https://github.com/truecharts/apps/issues/1178)) - -#### Chore - -* Project-Eclipse 5, move app-readme to automatic generation script ([#1181](https://github.com/truecharts/apps/issues/1181)) -* Project-Eclipse part 2, adapting and cleaning changelog ([#1173](https://github.com/truecharts/apps/issues/1173)) -* update helm chart common to v8.3.13 ([#1184](https://github.com/truecharts/apps/issues/1184)) -* update non-major ([#1174](https://github.com/truecharts/apps/issues/1174)) - -#### Feat - -* Project-Eclipse 4, Add App grading annotations to Chart.yaml ([#1180](https://github.com/truecharts/apps/issues/1180)) - -#### Refactor - -* Project Eclipse Part 6, move questions.yaml to root App folder ([#1182](https://github.com/truecharts/apps/issues/1182)) - - - - -### [postgresql-3.0.20](https://github.com/truecharts/apps/compare/postgresql-3.0.19...postgresql-3.0.20) (2021-10-19) - -#### Fix - -* fix previous SCALE bugfix not correctly being applied - - - - -### [postgresql-3.0.19](https://github.com/truecharts/apps/compare/postgresql-3.0.18...postgresql-3.0.19) (2021-10-19) - -#### Chore - -* Add description on persistence ([#1172](https://github.com/truecharts/apps/issues/1172)) - -#### Fix - -* Solve issues regarding ix_values.yaml not containing the image and tag definitions. ([#1176](https://github.com/truecharts/apps/issues/1176)) - -#### Refactor - -* Project Eclipse - part 1 - remove ix_values.yaml ([#1168](https://github.com/truecharts/apps/issues/1168)) - - - - -### [postgresql-3.0.18](https://github.com/truecharts/apps/compare/postgresql-3.0.17...postgresql-3.0.18) (2021-10-18) - -#### Chore - -* bump common on postgresql - - - - -### [postgresql-3.0.17](https://github.com/truecharts/apps/compare/postgresql-3.0.16...postgresql-3.0.17) (2021-10-17) - -#### Chore - -* update helm chart common to v8.3.10 ([#1160](https://github.com/truecharts/apps/issues/1160)) - -#### Fix - -* force users using correct / prefix for mounPath ([#1156](https://github.com/truecharts/apps/issues/1156)) - - - - -### [postgresql-3.0.16](https://github.com/truecharts/apps/compare/postgresql-3.0.15...postgresql-3.0.16) (2021-10-13) - -#### Chore - -* bump common - - - - -### [postgresql-3.0.15](https://github.com/truecharts/apps/compare/postgresql-3.0.14...postgresql-3.0.15) (2021-10-12) - -#### Chore - -* update non-major deps helm releases ([#1126](https://github.com/truecharts/apps/issues/1126)) - - - - -### [postgresql-3.0.14](https://github.com/truecharts/apps/compare/postgresql-3.0.13...postgresql-3.0.14) (2021-10-12) - -#### Chore - -* update non-major ([#1122](https://github.com/truecharts/apps/issues/1122)) diff --git a/stable/postgresql/3.0.21/CONFIG.md b/stable/postgresql/3.0.21/CONFIG.md deleted file mode 100644 index fc9b2fa2d5f..00000000000 --- a/stable/postgresql/3.0.21/CONFIG.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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 Internally" quick-start guide: -https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ - -##### 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/stable/postgresql/3.0.21/Chart.lock b/stable/postgresql/3.0.21/Chart.lock deleted file mode 100644 index 9971d7155c7..00000000000 --- a/stable/postgresql/3.0.21/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.13 -digest: sha256:38521d8871083b8bc3f8ca0a196265462c48e7a063b592146533b04bf32d4838 -generated: "2021-10-19T22:15:09.072068091Z" diff --git a/stable/postgresql/3.0.21/Chart.yaml b/stable/postgresql/3.0.21/Chart.yaml deleted file mode 100644 index 0408322d1e2..00000000000 --- a/stable/postgresql/3.0.21/Chart.yaml +++ /dev/null @@ -1,34 +0,0 @@ -apiVersion: v2 -appVersion: "13.4.0" -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.13 -deprecated: false -description: PostgresSQL -home: https://github.com/truecharts/apps/tree/master/stable/postgres -icon: https://d1q6f0aelx0por.cloudfront.net/product-logos/library-postgres-logo.png -keywords: -- postgres -- postgressql -- dtabase -- sql -kubeVersion: '>=1.16.0-0' -maintainers: -- email: info@truecharts.org - name: TrueCharts - url: truecharts.org -- email: kjeld@schouten-lebbing.nl - name: Ornias1993 - url: truecharts.org -name: postgresql -sources: -- https://www.postgresql.org/ -type: application -version: 3.0.21 -annotations: - truecharts.org/catagories: | - - database - - truecharts.org/SCALE-support: "true" - truecharts.org/grade: U diff --git a/stable/postgresql/3.0.21/README.md b/stable/postgresql/3.0.21/README.md deleted file mode 100644 index f1ccda6b6a8..00000000000 --- a/stable/postgresql/3.0.21/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Introduction - -PostgresSQL - -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://truecharts.org | common | 8.3.13 | - -## Installing the Chart - -To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). - -## Uninstalling the Chart - -To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). - -## Support - -- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. -- See the [Wiki](https://truecharts.org) -- Check our [Discord](https://discord.gg/tVsPTHWTtr) -- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) ---- -All Rights Reserved - The TrueCharts Project diff --git a/stable/postgresql/3.0.21/app-readme.md b/stable/postgresql/3.0.21/app-readme.md deleted file mode 100644 index 88e9ec74b99..00000000000 --- a/stable/postgresql/3.0.21/app-readme.md +++ /dev/null @@ -1,3 +0,0 @@ -PostgresSQL - -This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/postgresql/3.0.21/charts/common-8.3.13.tgz b/stable/postgresql/3.0.21/charts/common-8.3.13.tgz deleted file mode 100644 index b53f0b5937f277945aa8d7ead6b2035296c2652f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32775 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 /dbbackups/$BACKUP_NAME; diff --git a/stable/postgresql/3.0.21/templates/common.yaml b/stable/postgresql/3.0.21/templates/common.yaml deleted file mode 100644 index 9705d4f5fa6..00000000000 --- a/stable/postgresql/3.0.21/templates/common.yaml +++ /dev/null @@ -1,2 +0,0 @@ - -{{ include "common.all" . }} diff --git a/stable/postgresql/3.0.21/templates/secret.yaml b/stable/postgresql/3.0.21/templates/secret.yaml deleted file mode 100644 index be7022c005f..00000000000 --- a/stable/postgresql/3.0.21/templates/secret.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "common.names.fullname" . }} - labels: - {{- include "common.labels" . | nindent 4 }} - annotations: - {{- with .Values.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} -type: Opaque -data: - postgresql-password: {{ ( .Values.postgresqlPassword | default "empty" ) | b64enc | quote }} diff --git a/stable/postgresql/3.0.21/templates/upgrade-backup-postgres-hook.yaml b/stable/postgresql/3.0.21/templates/upgrade-backup-postgres-hook.yaml deleted file mode 100644 index 516ee5180a6..00000000000 --- a/stable/postgresql/3.0.21/templates/upgrade-backup-postgres-hook.yaml +++ /dev/null @@ -1,56 +0,0 @@ -{{- if and ( .Values.enableUpgradeBackup ) ( .Values.ixChartContext ) -}} -{{- if .Values.ixChartContext.isUpgrade -}} -{{- $upgradeDict := .Values.ixChartContext.upgradeMetadata -}} -{{ $values := (. | mustDeepCopy) }} ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: "pre-upgrade-hook2" - annotations: - "helm.sh/hook": pre-upgrade - "helm.sh/hook-weight": "1" - "helm.sh/hook-delete-policy": hook-succeeded - rollme: {{ randAlphaNum 5 | quote }} -spec: - template: - metadata: - name: "pre-upgrade-hook2" - spec: - restartPolicy: Never - containers: - - name: {{ .Chart.Name }}-postgres-backup - image: {{ printf "%v:%v" .Values.image.repository .Values.image.tag}} - imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - - name: BACKUP_NAME - value: {{- printf "postgres-backup-from-%s-to-%s-revision-%d" $upgradeDict.oldChartVersion $upgradeDict.newChartVersion (int64 $upgradeDict.preUpgradeRevision) -}} - - name: POSTGRES_USER - value: {{ .Values.postgresqlUsername | quote }} - - name: POSTGRES_DB - value: {{ .Values.postgresqlDatabase | quote }} - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: {{ ( .Values.existingSecret | default ( include "common.names.fullname" . ) ) | quote }} - key: "postgresql-password" - command: - - "/bin/backup_entrypoint.sh" - volumeMounts: - - name: backup-script-configmap - mountPath: /bin/backup_entrypoint.sh - readOnly: true - subPath: entrypoint.sh - {{- with (include "common.controller.volumeMounts" . | trim) }} - {{ nindent 4 . }} - {{- end }} - volumes: - - name: backup-script-configmap - configMap: - defaultMode: 0700 - name: "postgres-backup-hook-config-map" - {{- with (include "common.controller.volumes" . | trim) }} - {{- nindent 2 . }} - {{- end }} -{{- end -}} -{{- end -}} diff --git a/stable/postgresql/3.0.21/values.yaml b/stable/postgresql/3.0.21/values.yaml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/stable/postgresql/4.1.0/CHANGELOG.md b/stable/postgresql/4.1.0/CHANGELOG.md deleted file mode 100644 index 138b058d44e..00000000000 --- a/stable/postgresql/4.1.0/CHANGELOG.md +++ /dev/null @@ -1,99 +0,0 @@ -# Changelog
- - - -### [postgresql-4.1.0](https://github.com/truecharts/apps/compare/postgresql-5.0.0...postgresql-4.1.0) (2021-10-26) - -#### Fix - -* fix migration scripting for new major - - - - -### [postgresql-5.0.0](https://github.com/truecharts/apps/compare/postgresql-4.0.3...postgresql-5.0.0) (2021-10-25) - -#### Chore - -* Adapt for TrueNAS SCALE RC1 - - - - -### [postgresql-4.0.3](https://github.com/truecharts/apps/compare/postgresql-4.0.1...postgresql-4.0.3) (2021-10-20) - -#### Chore - -* bump apps, remove duplicates and move incubator to stable for RC1 - -#### Fix - -* reenable postgresql migration scripting and bump all to force update - - - - -### [postgresql-4.0.1](https://github.com/truecharts/apps/compare/postgresql-4.0.0...postgresql-4.0.1) (2021-10-20) - -#### Chore - -* bump common on postgresql - -#### Fix - -* use correct PVC storageClass when using postgresql as a dependency on SCALE ([#1212](https://github.com/truecharts/apps/issues/1212)) - - - - -### [postgresql-4.0.0](https://github.com/truecharts/apps/compare/postgresql-3.0.21...postgresql-4.0.0) (2021-10-20) - -#### Chore - -* bump versions to rerelease and fix icons -* update non-major ([#1185](https://github.com/truecharts/apps/issues/1185)) - -#### Security - -* Improve Snyk hardening advisory ([#1208](https://github.com/truecharts/apps/issues/1208)) - - - - -### [postgresql-3.0.21](https://github.com/truecharts/apps/compare/postgresql-3.0.20...postgresql-3.0.21) (2021-10-19) - -#### Change - -* Project-Eclipse 3, Automatically generate item.yaml ([#1178](https://github.com/truecharts/apps/issues/1178)) - -#### Chore - -* Project-Eclipse 5, move app-readme to automatic generation script ([#1181](https://github.com/truecharts/apps/issues/1181)) -* Project-Eclipse part 2, adapting and cleaning changelog ([#1173](https://github.com/truecharts/apps/issues/1173)) -* update helm chart common to v8.3.13 ([#1184](https://github.com/truecharts/apps/issues/1184)) -* update non-major ([#1174](https://github.com/truecharts/apps/issues/1174)) - -#### Feat - -* Project-Eclipse 4, Add App grading annotations to Chart.yaml ([#1180](https://github.com/truecharts/apps/issues/1180)) - -#### Refactor - -* Project Eclipse Part 6, move questions.yaml to root App folder ([#1182](https://github.com/truecharts/apps/issues/1182)) - - - - -### [postgresql-3.0.20](https://github.com/truecharts/apps/compare/postgresql-3.0.19...postgresql-3.0.20) (2021-10-19) - -#### Fix - -* fix previous SCALE bugfix not correctly being applied - - - - -### [postgresql-3.0.19](https://github.com/truecharts/apps/compare/postgresql-3.0.18...postgresql-3.0.19) (2021-10-19) - -#### Chore - diff --git a/stable/postgresql/4.1.0/CONFIG.md b/stable/postgresql/4.1.0/CONFIG.md deleted file mode 100644 index fc9b2fa2d5f..00000000000 --- a/stable/postgresql/4.1.0/CONFIG.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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 Internally" quick-start guide: -https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ - -##### 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/stable/postgresql/4.1.0/Chart.lock b/stable/postgresql/4.1.0/Chart.lock deleted file mode 100644 index 332559e3886..00000000000 --- a/stable/postgresql/4.1.0/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.14 -digest: sha256:2278950106e480dac22f26c75bdff4cffbc2d5262a24692f160c3bfa37bda367 -generated: "2021-10-26T09:06:35.471227378Z" diff --git a/stable/postgresql/4.1.0/Chart.yaml b/stable/postgresql/4.1.0/Chart.yaml deleted file mode 100644 index 98ffb486351..00000000000 --- a/stable/postgresql/4.1.0/Chart.yaml +++ /dev/null @@ -1,33 +0,0 @@ -apiVersion: v2 -appVersion: "13.4.0" -dependencies: -- name: common - repository: https://truecharts.org - version: 8.3.14 -deprecated: false -description: PostgresSQL -home: https://github.com/truecharts/apps/tree/master/stable/postgres -icon: https://d1q6f0aelx0por.cloudfront.net/product-logos/library-postgres-logo.png -keywords: -- postgres -- postgressql -- dtabase -- sql -kubeVersion: '>=1.16.0-0' -maintainers: -- email: info@truecharts.org - name: TrueCharts - url: truecharts.org -- email: kjeld@schouten-lebbing.nl - name: Ornias1993 - url: truecharts.org -name: postgresql -sources: -- https://www.postgresql.org/ -type: application -version: 4.1.0 -annotations: - truecharts.org/catagories: | - - database - truecharts.org/SCALE-support: "true" - truecharts.org/grade: U diff --git a/stable/postgresql/4.1.0/README.md b/stable/postgresql/4.1.0/README.md deleted file mode 100644 index cb204bf5010..00000000000 --- a/stable/postgresql/4.1.0/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Introduction - -PostgresSQL - -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://truecharts.org | common | 8.3.14 | - -## Installing the Chart - -To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). - -## Uninstalling the Chart - -To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). - -## Support - -- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. -- See the [Wiki](https://truecharts.org) -- Check our [Discord](https://discord.gg/tVsPTHWTtr) -- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) ---- -All Rights Reserved - The TrueCharts Project diff --git a/stable/postgresql/4.1.0/app-readme.md b/stable/postgresql/4.1.0/app-readme.md deleted file mode 100644 index 88e9ec74b99..00000000000 --- a/stable/postgresql/4.1.0/app-readme.md +++ /dev/null @@ -1,3 +0,0 @@ -PostgresSQL - -This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/postgresql/4.1.0/charts/common-8.3.14.tgz b/stable/postgresql/4.1.0/charts/common-8.3.14.tgz deleted file mode 100644 index 433c2b8196b48e50d5838e38a184acc597bc34c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32830 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 /dbbackups/$BACKUP_NAME; diff --git a/stable/postgresql/4.1.0/templates/common.yaml b/stable/postgresql/4.1.0/templates/common.yaml deleted file mode 100644 index 9705d4f5fa6..00000000000 --- a/stable/postgresql/4.1.0/templates/common.yaml +++ /dev/null @@ -1,2 +0,0 @@ - -{{ include "common.all" . }} diff --git a/stable/postgresql/4.1.0/templates/secret.yaml b/stable/postgresql/4.1.0/templates/secret.yaml deleted file mode 100644 index be7022c005f..00000000000 --- a/stable/postgresql/4.1.0/templates/secret.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "common.names.fullname" . }} - labels: - {{- include "common.labels" . | nindent 4 }} - annotations: - {{- with .Values.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} -type: Opaque -data: - postgresql-password: {{ ( .Values.postgresqlPassword | default "empty" ) | b64enc | quote }} diff --git a/stable/postgresql/4.1.0/templates/upgrade-backup-postgres-hook.yaml b/stable/postgresql/4.1.0/templates/upgrade-backup-postgres-hook.yaml deleted file mode 100644 index 516ee5180a6..00000000000 --- a/stable/postgresql/4.1.0/templates/upgrade-backup-postgres-hook.yaml +++ /dev/null @@ -1,56 +0,0 @@ -{{- if and ( .Values.enableUpgradeBackup ) ( .Values.ixChartContext ) -}} -{{- if .Values.ixChartContext.isUpgrade -}} -{{- $upgradeDict := .Values.ixChartContext.upgradeMetadata -}} -{{ $values := (. | mustDeepCopy) }} ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: "pre-upgrade-hook2" - annotations: - "helm.sh/hook": pre-upgrade - "helm.sh/hook-weight": "1" - "helm.sh/hook-delete-policy": hook-succeeded - rollme: {{ randAlphaNum 5 | quote }} -spec: - template: - metadata: - name: "pre-upgrade-hook2" - spec: - restartPolicy: Never - containers: - - name: {{ .Chart.Name }}-postgres-backup - image: {{ printf "%v:%v" .Values.image.repository .Values.image.tag}} - imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - - name: BACKUP_NAME - value: {{- printf "postgres-backup-from-%s-to-%s-revision-%d" $upgradeDict.oldChartVersion $upgradeDict.newChartVersion (int64 $upgradeDict.preUpgradeRevision) -}} - - name: POSTGRES_USER - value: {{ .Values.postgresqlUsername | quote }} - - name: POSTGRES_DB - value: {{ .Values.postgresqlDatabase | quote }} - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: {{ ( .Values.existingSecret | default ( include "common.names.fullname" . ) ) | quote }} - key: "postgresql-password" - command: - - "/bin/backup_entrypoint.sh" - volumeMounts: - - name: backup-script-configmap - mountPath: /bin/backup_entrypoint.sh - readOnly: true - subPath: entrypoint.sh - {{- with (include "common.controller.volumeMounts" . | trim) }} - {{ nindent 4 . }} - {{- end }} - volumes: - - name: backup-script-configmap - configMap: - defaultMode: 0700 - name: "postgres-backup-hook-config-map" - {{- with (include "common.controller.volumes" . | trim) }} - {{- nindent 2 . }} - {{- end }} -{{- end -}} -{{- end -}} diff --git a/stable/postgresql/4.1.0/values.yaml b/stable/postgresql/4.1.0/values.yaml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/stable/postgresql/5.1.11/CHANGELOG.md b/stable/postgresql/5.1.11/CHANGELOG.md deleted file mode 100644 index 8e8be511868..00000000000 --- a/stable/postgresql/5.1.11/CHANGELOG.md +++ /dev/null @@ -1,99 +0,0 @@ -# Changelog
- - - -### [postgresql-5.1.11](https://github.com/truecharts/apps/compare/postgresql-5.1.10...postgresql-5.1.11) (2021-11-07) - -#### Chore - -* update non-major deps helm releases ([#1295](https://github.com/truecharts/apps/issues/1295)) - - - - -### [postgresql-5.1.10](https://github.com/truecharts/apps/compare/postgresql-5.1.9...postgresql-5.1.10) (2021-11-07) - -#### Chore - -* update non-major ([#1270](https://github.com/truecharts/apps/issues/1270)) - - - - -### [postgresql-5.1.9](https://github.com/truecharts/apps/compare/postgresql-5.1.8...postgresql-5.1.9) (2021-11-07) - -#### Chore - -* update non-major deps helm releases ([#1291](https://github.com/truecharts/apps/issues/1291)) - -#### Chore - -* Simplify GUI for deployment, persistence and securityContext ([#1289](https://github.com/truecharts/apps/issues/1289)) - -#### Feat - -* Simplify the Services GUI ([#1290](https://github.com/truecharts/apps/issues/1290)) - - - - -### [postgresql-5.1.8](https://github.com/truecharts/apps/compare/postgresql-5.1.7...postgresql-5.1.8) (2021-11-02) - -#### Chore - -* update non-major deps helm releases ([#1267](https://github.com/truecharts/apps/issues/1267)) - - - - -### [postgresql-5.1.7](https://github.com/truecharts/apps/compare/postgresql-5.1.6...postgresql-5.1.7) (2021-11-02) - -#### Chore - -* update non-major ([#1265](https://github.com/truecharts/apps/issues/1265)) - - - - -### [postgresql-5.1.6](https://github.com/truecharts/apps/compare/postgresql-5.1.5...postgresql-5.1.6) (2021-11-01) - -#### Chore - -* update non-major deps helm releases ([#1264](https://github.com/truecharts/apps/issues/1264)) - - - - -### [postgresql-5.1.5](https://github.com/truecharts/apps/compare/postgresql-5.1.4...postgresql-5.1.5) (2021-11-01) - -#### Chore - -* update non-major ([#1263](https://github.com/truecharts/apps/issues/1263)) - - - - -### [postgresql-5.1.4](https://github.com/truecharts/apps/compare/postgresql-5.1.3...postgresql-5.1.4) (2021-10-26) - -#### Fix - -* correct group permissions on SCALE deployments of postgresql - - - - -### [postgresql-5.1.3](https://github.com/truecharts/apps/compare/postgresql-5.1.2...postgresql-5.1.3) (2021-10-26) - -#### Chore - -* update non-major deps helm releases ([#1245](https://github.com/truecharts/apps/issues/1245)) - - - - -### [postgresql-5.1.2](https://github.com/truecharts/apps/compare/postgresql-5.1.1...postgresql-5.1.2) (2021-10-26) - -#### Chore - -* update bitnami/postgresql:14.0.0 docker digest to 6737f46 ([#1243](https://github.com/truecharts/apps/issues/1243)) - diff --git a/stable/postgresql/5.1.11/CONFIG.md b/stable/postgresql/5.1.11/CONFIG.md deleted file mode 100644 index fc9b2fa2d5f..00000000000 --- a/stable/postgresql/5.1.11/CONFIG.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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 Internally" quick-start guide: -https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/ - -##### 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/stable/postgresql/5.1.11/Chart.lock b/stable/postgresql/5.1.11/Chart.lock deleted file mode 100644 index 734a72c452a..00000000000 --- a/stable/postgresql/5.1.11/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: https://truecharts.org - version: 8.5.3 -digest: sha256:0cc5e4101e5ff85c878493dc322d39b7b26b300badde2db93ffddaf6575dafa4 -generated: "2021-11-07T19:16:12.370450502Z" diff --git a/stable/postgresql/5.1.11/Chart.yaml b/stable/postgresql/5.1.11/Chart.yaml deleted file mode 100644 index 2888bba9e0f..00000000000 --- a/stable/postgresql/5.1.11/Chart.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: v2 -appVersion: "14.0.0" -dependencies: -- name: common - repository: https://truecharts.org - version: 8.5.3 -deprecated: false -description: PostgresSQL -home: https://github.com/truecharts/apps/tree/master/stable/postgres -icon: https://d1q6f0aelx0por.cloudfront.net/product-logos/library-postgres-logo.png -keywords: -- postgres -- postgressql -- dtabase -- sql -kubeVersion: '>=1.16.0-0' -maintainers: -- email: info@truecharts.org - name: TrueCharts - url: truecharts.org -name: postgresql -sources: -- https://www.postgresql.org/ -type: application -version: 5.1.11 -annotations: - truecharts.org/catagories: | - - database - truecharts.org/SCALE-support: "true" - truecharts.org/grade: U diff --git a/stable/postgresql/5.1.11/README.md b/stable/postgresql/5.1.11/README.md deleted file mode 100644 index c97c6b30b62..00000000000 --- a/stable/postgresql/5.1.11/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Introduction - -PostgresSQL - -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://truecharts.org | common | 8.5.3 | - -## Installing the Chart - -To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/). - -## Uninstalling the Chart - -To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/). - -## Support - -- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first. -- See the [Wiki](https://truecharts.org) -- Check our [Discord](https://discord.gg/tVsPTHWTtr) -- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) ---- -All Rights Reserved - The TrueCharts Project diff --git a/stable/postgresql/5.1.11/app-readme.md b/stable/postgresql/5.1.11/app-readme.md deleted file mode 100644 index 88e9ec74b99..00000000000 --- a/stable/postgresql/5.1.11/app-readme.md +++ /dev/null @@ -1,3 +0,0 @@ -PostgresSQL - -This App is supplied by TrueCharts, for more information please visit https://truecharts.org diff --git a/stable/postgresql/5.1.11/charts/common-8.5.3.tgz b/stable/postgresql/5.1.11/charts/common-8.5.3.tgz deleted file mode 100644 index ff54eea096da235c7ed0e5bf48f21c472b843387..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33624 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�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 AssI20 diff --git a/stable/postgresql/5.1.11/helm-values.md b/stable/postgresql/5.1.11/helm-values.md deleted file mode 100644 index eaa6423a26e..00000000000 --- a/stable/postgresql/5.1.11/helm-values.md +++ /dev/null @@ -1,37 +0,0 @@ -# Default Helm-Values - -TrueCharts is primarily build to supply TrueNAS SCALE Apps. -However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file. - -Most of our Apps also consume our "common" Helm Chart. -If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart. -You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document. - -## Values - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| enableUpgradeBackup | bool | `false` | | -| envTpl.POSTGRES_DB | string | `"{{ .Values.postgresqlDatabase }}"` | | -| envTpl.POSTGRES_USER | string | `"{{ .Values.postgresqlUsername }}"` | | -| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | | -| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.name | string | `"{{ ( tpl .Values.existingSecret $ ) | default ( include \"common.names.fullname\" . ) }}"` | | -| existingSecret | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"bitnami/postgresql"` | | -| image.tag | string | `"14.0.0@sha256:a95e5588c9f716bfc716b090f3cea41cbefb0d2c6e1c3c6de5514a5c2d1ce416"` | | -| persistence.db.accessMode | string | `"ReadWriteOnce"` | | -| persistence.db.enabled | bool | `true` | | -| persistence.db.mountPath | string | `"/bitnami/postgresql"` | | -| persistence.db.size | string | `"999Gi"` | | -| persistence.db.type | string | `"pvc"` | | -| podSecurityContext.runAsGroup | int | `0` | | -| postgresqlDatabase | string | `"test"` | | -| postgresqlPassword | string | `"testpass"` | | -| postgresqlUsername | string | `"test"` | | -| securityContext.readOnlyRootFilesystem | bool | `false` | | -| service.main.enabled | bool | `true` | | -| service.main.ports.main.port | int | `5432` | | -| service.main.ports.main.targetPort | int | `5432` | | - -All Rights Reserved - The TrueCharts Project diff --git a/stable/postgresql/5.1.11/ix_values.yaml b/stable/postgresql/5.1.11/ix_values.yaml deleted file mode 100644 index 0406d2d774f..00000000000 --- a/stable/postgresql/5.1.11/ix_values.yaml +++ /dev/null @@ -1,46 +0,0 @@ -image: - repository: bitnami/postgresql - pullPolicy: IfNotPresent - tag: 14.0.0@sha256:a95e5588c9f716bfc716b090f3cea41cbefb0d2c6e1c3c6de5514a5c2d1ce416 - -securityContext: - readOnlyRootFilesystem: false - -service: - main: - enabled: true - ports: - main: - port: 5432 - targetPort: 5432 - -## TODO: Fix the backup-on-upgrade system -enableUpgradeBackup: false - -podSecurityContext: - runAsGroup: 0 - -persistence: - db: - enabled: true - mountPath: "/bitnami/postgresql" - type: pvc - accessMode: ReadWriteOnce - size: "999Gi" - -postgresqlPassword: "testpass" -postgresqlUsername: "test" -postgresqlDatabase: "test" -existingSecret: "" - -envValueFrom: - POSTGRES_PASSWORD: - secretKeyRef: - name: '{{ ( tpl .Values.existingSecret $ ) | default ( include "common.names.fullname" . ) }}' - key: "postgresql-password" - -envTpl: - POSTGRES_USER: "{{ .Values.postgresqlUsername }}" - POSTGRES_DB: "{{ .Values.postgresqlDatabase }}" -# POSTGRESQL_POSTGRES_PASSWORD: "{{ .Values.postgrespassword }}" -# POSTGRESQL_PASSWORD: "{{ .Values.password }}" diff --git a/stable/postgresql/5.1.11/questions.yaml b/stable/postgresql/5.1.11/questions.yaml deleted file mode 100644 index 63ac840c169..00000000000 --- a/stable/postgresql/5.1.11/questions.yaml +++ /dev/null @@ -1,2040 +0,0 @@ -groups: - - name: "Container Image" - description: "Image to be used for container" - - name: "Controller" - description: "Configure workload deployment" - - name: "Container Configuration" - description: "additional container configuration" - - name: "App Configuration" - description: "App specific config options" - - name: "Networking and Services" - description: "Configure Network and Services for container" - - name: "Storage and Persistence" - description: "Persist and share data that is separate from the container" - - name: "Ingress" - description: "Ingress Configuration" - - name: "Security and Permissions" - description: "Configure security context and permissions" - - name: "Resources and Devices" - description: "Specify resources/devices to be allocated to workload" - - name: "Middlewares" - description: "Traefik Middlewares" - - name: "Addons" - description: "Addon Configuration" - - name: "Advanced" - description: "Advanced Configuration" -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: false - - variable: global - label: "global settings" - group: "Controller" - schema: - type: dict - hidden: true - attrs: - - variable: isSCALE - label: "flag this is SCALE" - schema: - type: boolean - default: true - hidden: true - - variable: controller - group: "Controller" - label: "" - schema: - type: dict - attrs: - - variable: advanced - label: "Show Advanced Controller Settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: type - description: "Please specify type of workload to deploy" - label: "(Advanced) Controller Type" - schema: - type: string - default: "deployment" - required: true - enum: - - value: "deployment" - description: "Deployment" - - value: "statefulset" - description: "Statefulset" - - value: "daemonset" - description: "Daemonset" - - variable: replicas - description: "Number of desired pod replicas" - label: "Desired Replicas" - schema: - type: int - default: 1 - required: true - - variable: strategy - description: "Please specify type of workload to deploy" - label: "(Advanced) Update Strategy" - schema: - type: string - default: "Recreate" - required: true - enum: - - value: "Recreate" - description: "Recreate: Kill existing pods before creating new ones" - - value: "RollingUpdate" - description: "RollingUpdate: Create new pods and then kill old ones" - - value: "OnDelete" - description: "(Legacy) OnDelete: ignore .spec.template changes" - - variable: expert - label: "Show Expert Configuration Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: extraArgs - label: "Extra Args" - schema: - type: list - default: [] - items: - - variable: argItem - label: "Arg" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: labelsList - label: "Controller Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: " Controller Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: env - group: "Container 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" - - - variable: envList - label: "Image environment" - group: "Container 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 - - - variable: expertpodconf - group: "Container Configuration" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: termination - group: "Container Configuration" - label: "Termination settings" - schema: - type: dict - attrs: - - variable: gracePeriodSeconds - label: "Grace Period Seconds" - schema: - type: int - default: 10 - - variable: podLabelsList - group: "Container Configuration" - label: "Pod Labels" - schema: - type: list - default: [] - items: - - variable: podLabelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: podAnnotationsList - group: "Container Configuration" - label: "Pod Annotations" - schema: - type: list - default: [] - items: - - variable: podAnnotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: postgresqlDatabase - group: "App Configuration" - label: "Database Name" - schema: - type: string - default: "mydatabase" - required: true - - variable: postgresqlUsername - group: "App Configuration" - label: "Database User" - schema: - type: string - default: "mydatabaseuser" - required: true - - variable: postgresqlPassword - group: "App Configuration" - label: "Database Password" - schema: - type: string - default: "" - required: true - - - variable: service - group: "Networking and Services" - 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: "Simple" - enum: - - value: "Simple" - description: "Simple" - - value: "ClusterIP" - description: "ClusterIP" - - value: "NodePort" - description: "NodePort (Advanced)" - - value: "LoadBalancer" - description: "LoadBalancer (Advanced)" - - 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: advanced - label: "Show Advanced settings" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: protocol - label: "Port Type" - schema: - type: string - default: "TCP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" - schema: - type: int - min: 9000 - max: 65535 - - variable: targetPort - label: "Target Port" - description: "The internal(!) port on the container the Application runs on" - schema: - type: int - default: 5432 - - - variable: port - label: "Container Port" - schema: - type: int - default: 5432 - editable: true - required: true - - - - - variable: serviceexpert - group: "Networking and Services" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: hostNetwork - group: "Networking and Services" - label: "Host-Networking (Complicated)" - schema: - type: boolean - default: false - - - variable: dnsPolicy - group: "Networking and Services" - label: "dnsPolicy" - schema: - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "ClusterFirst" - description: "ClusterFirst" - - value: "ClusterFirstWithHostNet" - description: "ClusterFirstWithHostNet" - - value: "None" - description: "None" - - - variable: dnsConfig - label: "DNS Configuration" - group: "Networking and Services" - description: "Specify custom DNS configuration which will be applied to the pod" - schema: - type: dict - attrs: - - variable: nameservers - label: "Nameservers" - schema: - default: [] - type: list - items: - - variable: nameserver - label: "Nameserver" - schema: - type: string - - variable: options - label: "options" - schema: - default: [] - type: list - items: - - variable: option - label: "Option Entry" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: searches - label: "Searches" - schema: - default: [] - type: list - items: - - variable: search - label: "Search Entry" - schema: - type: string - - - variable: serviceList - label: "Add Manual Custom Services" - group: "Networking and Services" - schema: - type: list - default: [] - items: - - variable: serviceListEntry - label: "Custom Service" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name" - schema: - type: string - default: "" - - 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: "Simple" - enum: - - value: "Simple" - description: "Simple" - - 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: portsList - label: "Additional Service Ports" - schema: - type: list - default: [] - items: - - variable: portsListEntry - label: "Custom ports" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the port" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Port Name" - schema: - type: string - default: "" - - variable: protocol - label: "Port Type" - schema: - type: string - default: "TCP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: targetPort - label: "Target Port" - description: "This port exposes the container port on the service" - schema: - type: int - required: true - - variable: port - label: "Container Port" - schema: - type: int - 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 - - - variable: persistence - label: "Integrated Persistent Storage" - description: "Integrated Persistent Storage" - group: "Storage and Persistence" - schema: - type: dict - attrs: - - variable: db - label: "Old db Storage" - description: "Stores the old Application Database." - schema: - type: dict - hidden: true - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Type of Storage" - description: "Sets the persistence type, Anything other than PVC could break rollback!" - schema: - type: string - default: "simplePVC" - enum: - - value: "simplePVC" - description: "PVC (simple)" - - value: "simpleHP" - description: "HostPath (simple)" - - value: "emptyDir" - description: "emptyDir" - - value: "pvc" - description: "pvc" - - value: "hostPath" - description: "hostPath" - - variable: setPermissionsSimple - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "simpleHP"]] - type: boolean - default: true - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPathSimple - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "simpleHP"]] - type: hostpath - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "/var/lib/postgresql/data" - hidden: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: size - label: "Size quotum of storage" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "999Gi" - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: accessMode - label: "(Advanced) Access Mode" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "ReadWriteOnce" - enum: - - value: "ReadWriteOnce" - description: "ReadWriteOnce" - - value: "ReadOnlyMany" - description: "ReadOnlyMany" - - value: "ReadWriteMany" - description: "ReadWriteMany" - - variable: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: data - label: "App data Storage" - description: "Stores the Application Database." - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Type of Storage" - description: "Sets the persistence type, Anything other than PVC could break rollback!" - schema: - type: string - default: "simplePVC" - enum: - - value: "simplePVC" - description: "PVC (simple)" - - value: "simpleHP" - description: "HostPath (simple)" - - value: "emptyDir" - description: "emptyDir" - - value: "pvc" - description: "pvc" - - value: "hostPath" - description: "hostPath" - - variable: setPermissionsSimple - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "simpleHP"]] - type: boolean - default: true - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPathSimple - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "simpleHP"]] - type: hostpath - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "/bitnami/postgresql" - hidden: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: size - label: "Size quotum of storage" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "999Gi" - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: accessMode - label: "(Advanced) Access Mode" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "ReadWriteOnce" - enum: - - value: "ReadWriteOnce" - description: "ReadWriteOnce" - - value: "ReadOnlyMany" - description: "ReadOnlyMany" - - value: "ReadWriteMany" - description: "ReadWriteMany" - - variable: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: dbbackups - label: "App backup Storage" - description: "Stores the Application backups." - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Type of Storage" - description: "Sets the persistence type, Anything other than PVC could break rollback!" - schema: - type: string - default: "simplePVC" - enum: - - value: "simplePVC" - description: "PVC (simple)" - - value: "simpleHP" - description: "HostPath (simple)" - - value: "emptyDir" - description: "emptyDir" - - value: "pvc" - description: "pvc" - - value: "hostPath" - description: "hostPath" - - variable: setPermissionsSimple - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "simpleHP"]] - type: boolean - default: true - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPathSimple - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "simpleHP"]] - type: hostpath - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "/dbbackups" - hidden: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: size - label: "Size quotum of storage" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "999Gi" - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: accessMode - label: "(Advanced) Access Mode" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "ReadWriteOnce" - enum: - - value: "ReadWriteOnce" - description: "ReadWriteOnce" - - value: "ReadOnlyMany" - description: "ReadOnlyMany" - - value: "ReadWriteMany" - description: "ReadWriteMany" - - variable: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: persistenceList - label: "Additional app storage" - group: "Storage and Persistence" - schema: - type: list - default: [] - items: - - variable: persistenceListEntry - label: "Custom Storage" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name (optional)" - description: "Not required, please set to config when mounting /config or temp when mounting /tmp" - schema: - type: string - - variable: type - label: "Type of Storage" - description: "Sets the persistence type, Anything other than PVC could break rollback!" - schema: - type: string - default: "simpleHP" - enum: - - value: "simplePVC" - description: "PVC (simple)" - - value: "simpleHP" - description: "HostPath (simple)" - - value: "emptyDir" - description: "emptyDir" - - value: "pvc" - description: "pvc" - - value: "hostPath" - description: "hostPath" - - variable: setPermissionsSimple - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "simpleHP"]] - type: boolean - default: true - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPathSimple - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "simpleHP"]] - type: hostpath - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "" - required: true - valid_chars: '^\/([a-zA-Z0-9._-]+\/?)+$' - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: size - label: "Size quotum of storage" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "999Gi" - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: accessMode - label: "(Advanced) Access Mode" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "ReadWriteOnce" - enum: - - value: "ReadWriteOnce" - description: "ReadWriteOnce" - - value: "ReadOnlyMany" - description: "ReadOnlyMany" - - value: "ReadWriteMany" - description: "ReadWriteMany" - - variable: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: ingressList - label: "Add Manual Custom Ingresses" - group: "Ingress" - schema: - type: list - default: [] - items: - - variable: ingressListEntry - label: "Custom Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Ingress" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name" - schema: - type: string - default: "" - - variable: ingressClassName - label: "IngressClass Name" - schema: - type: string - default: "" - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: hostEntry - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "HostName" - schema: - type: string - default: "" - required: true - - variable: paths - label: "Paths" - schema: - type: list - default: [] - items: - - variable: pathEntry - label: "Host" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "Prefix" - - variable: service - label: "Linked Service" - schema: - type: dict - attrs: - - variable: name - label: "Service Name" - schema: - type: string - default: "" - - variable: port - label: "Service Port" - schema: - type: int - - variable: tls - label: "TLS-Settings" - schema: - type: list - default: [] - items: - - variable: tlsEntry - label: "Host" - schema: - type: dict - attrs: - - variable: hosts - label: "Certificate Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: string - default: "" - required: true - - variable: scaleCert - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - $ref: - - "definitions/certificate" - - variable: entrypoint - label: "Traefik Entrypoint" - description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" - schema: - type: string - default: "websecure" - required: true - - variable: middlewares - label: "Traefik Middlewares" - description: "Add previously created Traefik Middlewares to this Ingress" - schema: - type: list - default: [] - items: - - variable: name - label: "Name" - schema: - type: string - default: "" - required: true - - - variable: advancedSecurity - label: "Show Advanced Security Settings" - group: "Security and Permissions" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: securityContext - label: "Security Context" - schema: - type: dict - attrs: - - variable: privileged - label: "Privileged mode" - schema: - type: boolean - default: false - - variable: readOnlyRootFilesystem - label: "ReadOnly Root Filesystem" - schema: - type: boolean - default: false - - variable: allowPrivilegeEscalation - label: "Allow Privilege Escalation" - schema: - type: boolean - default: false - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: true - - - variable: podSecurityContext - group: "Security and Permissions" - label: "Pod Security Context" - schema: - type: dict - attrs: - - variable: runAsUser - label: "runAsUser" - description: "The UserID of the user running the application" - schema: - type: int - default: 568 - - variable: runAsGroup - label: "runAsGroup" - description: The groupID this App of the user running the application" - schema: - type: int - default: 0 - - variable: fsGroup - label: "fsGroup" - description: "The group that should own ALL storage." - schema: - type: int - default: 568 - - variable: supplementalGroups - label: "supplemental Groups" - schema: - type: list - default: [] - items: - - variable: supplementalGroupsEntry - label: "supplemental Group" - schema: - type: int - - variable: fsGroupChangePolicy - label: "When should we take ownership?" - schema: - type: string - default: "OnRootMismatch" - enum: - - value: "OnRootMismatch" - description: "OnRootMismatch" - - value: "Always" - description: "Always" - - - # Specify GPU configuration - - variable: scaleGPU - label: "GPU Configuration" - group: "Resources and Devices" - schema: - type: dict - $ref: - - "definitions/gpuConfiguration" - attrs: [] - - - - variable: advancedresources - label: "Set Custom Resource Limits/Requests (Advanced)" - group: "Resources and Devices" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: resources - label: "" - schema: - type: dict - attrs: - - variable: limits - label: "Advanced Limit Resource Consumption" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "4000m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "8Gi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - variable: requests - label: "Advanced Request minimum resources required" - schema: - type: dict - attrs: - - variable: cpu - label: "CPU" - schema: - type: string - default: "10m" - valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' - - variable: memory - label: "Memory RAM" - schema: - type: string - default: "50Mi" - valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' - - - variable: deviceList - label: "Mount USB devices" - group: "Resources and Devices" - schema: - type: list - default: [] - items: - - variable: deviceListEntry - label: "Device" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "Host Device Path" - description: "Path to the device on the host system" - schema: - type: path - - variable: mountPath - label: "Container Device Path" - description: "Path inside the container the device is mounted" - schema: - type: string - default: "/dev/ttyACM0" - - - variable: autoscaling - group: "Advanced" - label: "(Advanced) Horizontal Pod Autoscaler" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: target - label: "Target" - description: "deployment name, defaults to main deployment" - schema: - type: string - default: "" - - variable: minReplicas - label: "Minimum Replicas" - schema: - type: int - default: 1 - - variable: maxReplicas - label: "Maximum Replicas" - schema: - type: int - default: 5 - - variable: targetCPUUtilizationPercentage - label: "Target CPU Utilization Percentage" - schema: - type: int - default: 80 - - variable: targetMemoryUtilizationPercentage - label: "Target Memory Utilization Percentage" - schema: - type: int - default: 80 - - - - variable: addons - group: "Addons" - label: "" - schema: - type: dict - attrs: - - variable: vpn - label: "VPN" - schema: - type: dict - attrs: - - variable: type - label: "Type" - schema: - type: string - default: "disabled" - enum: - - value: "disabled" - description: "disabled" - - value: "openvpn" - description: "OpenVPN" - - value: "wireguard" - description: "Wireguard" - - variable: openvpn - label: "OpenVPN Settings" - schema: - type: dict - show_if: [["type", "=", "openvpn"]] - attrs: - - variable: username - label: "authentication username" - description: "authentication username, optional" - schema: - type: string - default: "" - - variable: password - label: "authentication password" - description: "authentication credentials" - schema: - type: string - default: "" - required: true - - variable: killSwitch - label: "Enable killswitch" - schema: - type: boolean - show_if: [["type", "!=", "disabled"]] - default: true - - variable: excludedNetworks_IPv4 - label: "Killswitch Excluded IPv4 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv4 - label: "IPv4 Network" - schema: - type: string - required: true - - variable: excludedNetworks_IPv6 - label: "Killswitch Excluded IPv6 networks" - description: "list of killswitch excluded ipv4 addresses" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: networkv6 - label: "IPv6 Network" - schema: - type: string - required: true - - - variable: configFile - label: "VPN Config File Location" - schema: - type: dict - show_if: [["type", "!=", "disabled"]] - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "type" - schema: - type: string - default: "hostPath" - hidden: true - - variable: hostPathType - label: "hostPathType" - schema: - type: string - default: "File" - hidden: true - - variable: noMount - label: "noMount" - schema: - type: boolean - default: true - hidden: true - - variable: hostPath - label: "Full path to file" - description: "path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" - schema: - type: string - default: "" - required: true - - variable: envList - label: "VPN environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - variable: codeserver - label: "Codeserver" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: git - label: "Git Settings" - schema: - type: dict - attrs: - - variable: deployKey - description: "Raw SSH private key" - label: "deployKey" - schema: - type: string - - variable: deployKeyBase64 - description: "Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence" - label: "deployKeyBase64" - schema: - type: string - - variable: service - label: "" - schema: - type: dict - attrs: - - 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: "" - schema: - type: dict - attrs: - - variable: codeserver - label: "" - schema: - type: dict - attrs: - - variable: nodePort - description: "leave empty to disable" - label: "nodePort" - schema: - type: int - default: 36107 - - variable: envList - label: "Codeserver environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - variable: promtail - label: "Promtail" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: loki - label: "Loki URL" - schema: - type: string - required: true - - variable: logs - label: "Log Paths" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: path - label: "Path" - schema: - type: string - required: true - - variable: args - label: "Promtail ecommand line arguments" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: arg - label: "Arg" - schema: - type: string - required: true - - variable: envList - label: "Promtail environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true - - - - - - variable: netshoot - label: "Netshoot" - schema: - type: dict - attrs: - - variable: enabled - label: "enabled" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: envList - label: "Netshoot environment Variables" - schema: - type: list - show_if: [["type", "!=", "disabled"]] - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - required: true - - variable: value - label: "Value" - schema: - type: string - required: true diff --git a/stable/postgresql/5.1.11/templates/backup-postgres-config.yaml b/stable/postgresql/5.1.11/templates/backup-postgres-config.yaml deleted file mode 100644 index e52eb2ed5a1..00000000000 --- a/stable/postgresql/5.1.11/templates/backup-postgres-config.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: "postgres-backup-hook-config-map" - annotations: - rollme: {{ randAlphaNum 5 | quote }} -data: - entrypoint.sh: |- - #!/bin/sh - cmd="/docker-entrypoint.sh postgres" - eval "${cmd}" & disown; - until pg_isready; do - sleep 5; - done; - pg_dump -U {{ .Values.postgresqlUser }} -d {{ .Values.postgresqlDatabase }} > /dbbackups/$BACKUP_NAME; diff --git a/stable/postgresql/5.1.11/templates/common.yaml b/stable/postgresql/5.1.11/templates/common.yaml deleted file mode 100644 index 9705d4f5fa6..00000000000 --- a/stable/postgresql/5.1.11/templates/common.yaml +++ /dev/null @@ -1,2 +0,0 @@ - -{{ include "common.all" . }} diff --git a/stable/postgresql/5.1.11/templates/secret.yaml b/stable/postgresql/5.1.11/templates/secret.yaml deleted file mode 100644 index be7022c005f..00000000000 --- a/stable/postgresql/5.1.11/templates/secret.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "common.names.fullname" . }} - labels: - {{- include "common.labels" . | nindent 4 }} - annotations: - {{- with .Values.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} -type: Opaque -data: - postgresql-password: {{ ( .Values.postgresqlPassword | default "empty" ) | b64enc | quote }} diff --git a/stable/postgresql/5.1.11/templates/upgrade-backup-postgres-hook.yaml b/stable/postgresql/5.1.11/templates/upgrade-backup-postgres-hook.yaml deleted file mode 100644 index 516ee5180a6..00000000000 --- a/stable/postgresql/5.1.11/templates/upgrade-backup-postgres-hook.yaml +++ /dev/null @@ -1,56 +0,0 @@ -{{- if and ( .Values.enableUpgradeBackup ) ( .Values.ixChartContext ) -}} -{{- if .Values.ixChartContext.isUpgrade -}} -{{- $upgradeDict := .Values.ixChartContext.upgradeMetadata -}} -{{ $values := (. | mustDeepCopy) }} ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: "pre-upgrade-hook2" - annotations: - "helm.sh/hook": pre-upgrade - "helm.sh/hook-weight": "1" - "helm.sh/hook-delete-policy": hook-succeeded - rollme: {{ randAlphaNum 5 | quote }} -spec: - template: - metadata: - name: "pre-upgrade-hook2" - spec: - restartPolicy: Never - containers: - - name: {{ .Chart.Name }}-postgres-backup - image: {{ printf "%v:%v" .Values.image.repository .Values.image.tag}} - imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - - name: BACKUP_NAME - value: {{- printf "postgres-backup-from-%s-to-%s-revision-%d" $upgradeDict.oldChartVersion $upgradeDict.newChartVersion (int64 $upgradeDict.preUpgradeRevision) -}} - - name: POSTGRES_USER - value: {{ .Values.postgresqlUsername | quote }} - - name: POSTGRES_DB - value: {{ .Values.postgresqlDatabase | quote }} - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: {{ ( .Values.existingSecret | default ( include "common.names.fullname" . ) ) | quote }} - key: "postgresql-password" - command: - - "/bin/backup_entrypoint.sh" - volumeMounts: - - name: backup-script-configmap - mountPath: /bin/backup_entrypoint.sh - readOnly: true - subPath: entrypoint.sh - {{- with (include "common.controller.volumeMounts" . | trim) }} - {{ nindent 4 . }} - {{- end }} - volumes: - - name: backup-script-configmap - configMap: - defaultMode: 0700 - name: "postgres-backup-hook-config-map" - {{- with (include "common.controller.volumes" . | trim) }} - {{- nindent 2 . }} - {{- end }} -{{- end -}} -{{- end -}} diff --git a/stable/postgresql/5.1.11/values.yaml b/stable/postgresql/5.1.11/values.yaml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/stable/postgresql/item.yaml b/stable/postgresql/item.yaml deleted file mode 100644 index ead2b01cb93..00000000000 --- a/stable/postgresql/item.yaml +++ /dev/null @@ -1,4 +0,0 @@ -icon_url: https://d1q6f0aelx0por.cloudfront.net/product-logos/library-postgres-logo.png -categories: -- database -