From 60dcd5adbfbe0eca87c2fd02b181f540accea232 Mon Sep 17 00:00:00 2001 From: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Date: Mon, 3 Jul 2023 14:51:09 +0300 Subject: [PATCH] NAS-122432 / 23.10 / add `redis` to `community` train (#1261) * add `redis` to `community` train * add extra validation * add error message * enclose pattern in squotes * bump common --- library/ix-dev/community/redis/Chart.lock | 6 + library/ix-dev/community/redis/Chart.yaml | 25 ++++ library/ix-dev/community/redis/README.md | 8 ++ library/ix-dev/community/redis/app-readme.md | 8 ++ .../community/redis/charts/common-1.0.9.tgz | Bin 0 -> 55985 bytes .../community/redis/ci/basic-values.yaml | 7 + .../redis/ci/no-password-values.yaml | 7 + library/ix-dev/community/redis/item.yaml | 6 + library/ix-dev/community/redis/metadata.yaml | 8 ++ library/ix-dev/community/redis/questions.yaml | 131 ++++++++++++++++++ .../community/redis/templates/NOTES.txt | 1 + .../redis/templates/_configuration.tpl | 11 ++ .../community/redis/templates/_redis.tpl | 101 ++++++++++++++ .../community/redis/templates/_validation.tpl | 11 ++ .../community/redis/templates/common.yaml | 8 ++ .../ix-dev/community/redis/upgrade_info.json | 1 + .../ix-dev/community/redis/upgrade_strategy | 30 ++++ library/ix-dev/community/redis/values.yaml | 23 +++ 18 files changed, 392 insertions(+) create mode 100644 library/ix-dev/community/redis/Chart.lock create mode 100644 library/ix-dev/community/redis/Chart.yaml create mode 100644 library/ix-dev/community/redis/README.md create mode 100644 library/ix-dev/community/redis/app-readme.md create mode 100644 library/ix-dev/community/redis/charts/common-1.0.9.tgz create mode 100644 library/ix-dev/community/redis/ci/basic-values.yaml create mode 100644 library/ix-dev/community/redis/ci/no-password-values.yaml create mode 100644 library/ix-dev/community/redis/item.yaml create mode 100644 library/ix-dev/community/redis/metadata.yaml create mode 100644 library/ix-dev/community/redis/questions.yaml create mode 100644 library/ix-dev/community/redis/templates/NOTES.txt create mode 100644 library/ix-dev/community/redis/templates/_configuration.tpl create mode 100644 library/ix-dev/community/redis/templates/_redis.tpl create mode 100644 library/ix-dev/community/redis/templates/_validation.tpl create mode 100644 library/ix-dev/community/redis/templates/common.yaml create mode 100644 library/ix-dev/community/redis/upgrade_info.json create mode 100755 library/ix-dev/community/redis/upgrade_strategy create mode 100644 library/ix-dev/community/redis/values.yaml diff --git a/library/ix-dev/community/redis/Chart.lock b/library/ix-dev/community/redis/Chart.lock new file mode 100644 index 0000000000..2f3ddf5b76 --- /dev/null +++ b/library/ix-dev/community/redis/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.0.9 +digest: sha256:c3eb00f142d5d1cdbff7843940c150a00bd916520363e6ee9f459ce61fa92b40 +generated: "2023-06-29T16:01:12.464571053+03:00" diff --git a/library/ix-dev/community/redis/Chart.yaml b/library/ix-dev/community/redis/Chart.yaml new file mode 100644 index 0000000000..9bb7074109 --- /dev/null +++ b/library/ix-dev/community/redis/Chart.yaml @@ -0,0 +1,25 @@ +name: redis +description: Redis. The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker. +annotations: + title: Redis +type: application +version: 1.0.0 +apiVersion: v2 +appVersion: 7.0.11 +kubeVersion: '>=1.16.0-0' +maintainers: + - name: truenas + url: https://www.truenas.com/ + email: dev@ixsystems.com +dependencies: + - name: common + repository: file://../../../common + version: 1.0.9 +home: https://redis.io/ +icon: https://avatars.githubusercontent.com/u/1529926?s=200&v=4 +sources: + - https://hub.docker.com/r/bitnami/redis + - https://github.com/bitnami/containers/tree/main/bitnami/redis + - https://redis.io/ +keywords: + - cache diff --git a/library/ix-dev/community/redis/README.md b/library/ix-dev/community/redis/README.md new file mode 100644 index 0000000000..8520dd896c --- /dev/null +++ b/library/ix-dev/community/redis/README.md @@ -0,0 +1,8 @@ +# Redis + +[Redis](https://redis.io/). The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker. + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `Redis` directories. +> Afterward, the `Redis` container will run as a **non**-root user (`1001`) and root group. +> All mounted storage(s) will be `chown`ed only if the parent directory does not match `1001` user. diff --git a/library/ix-dev/community/redis/app-readme.md b/library/ix-dev/community/redis/app-readme.md new file mode 100644 index 0000000000..8520dd896c --- /dev/null +++ b/library/ix-dev/community/redis/app-readme.md @@ -0,0 +1,8 @@ +# Redis + +[Redis](https://redis.io/). The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker. + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `Redis` directories. +> Afterward, the `Redis` container will run as a **non**-root user (`1001`) and root group. +> All mounted storage(s) will be `chown`ed only if the parent directory does not match `1001` user. diff --git a/library/ix-dev/community/redis/charts/common-1.0.9.tgz b/library/ix-dev/community/redis/charts/common-1.0.9.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c10e7bc035999de1e449748dde089dd498a9d772 GIT binary patch literal 55985 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