From c07c4bbdab9185ac7690e4e68cdab06bef980076 Mon Sep 17 00:00:00 2001 From: Andrei Kvapil Date: Tue, 20 Aug 2024 17:19:10 +0200 Subject: [PATCH] Introduce stroageClass option for all applications (#290) Provide the oportunity to specify StroageClass in applications Signed-off-by: Andrei Kvapil --- packages/apps/clickhouse/Chart.yaml | 2 +- packages/apps/clickhouse/README.md | 11 ++++++----- .../apps/clickhouse/templates/clickhouse.yaml | 3 +++ packages/apps/clickhouse/values.schema.json | 5 +++++ packages/apps/clickhouse/values.yaml | 2 ++ packages/apps/ferretdb/Chart.yaml | 2 +- packages/apps/ferretdb/README.md | 1 + packages/apps/ferretdb/templates/postgres.yaml | 3 +++ packages/apps/ferretdb/values.schema.json | 5 +++++ packages/apps/ferretdb/values.yaml | 2 ++ packages/apps/http-cache/Chart.yaml | 2 +- packages/apps/http-cache/README.md | 1 + .../http-cache/templates/nginx/deployment.yaml | 3 +++ packages/apps/http-cache/values.schema.json | 5 +++++ packages/apps/http-cache/values.yaml | 2 ++ packages/apps/kafka/Chart.yaml | 2 +- packages/apps/kafka/README.md | 16 +++++++++------- packages/apps/kafka/templates/kafka.yaml | 6 ++++++ packages/apps/kafka/values.schema.json | 10 ++++++++++ packages/apps/kafka/values.yaml | 4 ++++ packages/apps/kubernetes/Chart.yaml | 2 +- packages/apps/kubernetes/README.md | 11 ++++++----- .../kubernetes/templates/helmreleases/csi.yaml | 4 ++++ packages/apps/kubernetes/values.schema.json | 5 +++++ packages/apps/kubernetes/values.yaml | 2 ++ packages/apps/mysql/Chart.yaml | 2 +- packages/apps/mysql/README.md | 11 ++++++----- packages/apps/mysql/templates/mariadb.yaml | 3 +++ packages/apps/mysql/values.schema.json | 5 +++++ packages/apps/mysql/values.yaml | 2 ++ packages/apps/nats/Chart.yaml | 2 +- packages/apps/nats/README.md | 9 +++++---- packages/apps/nats/templates/nats.yaml | 4 +++- packages/apps/nats/values.schema.json | 7 ++++++- packages/apps/nats/values.yaml | 2 ++ packages/apps/postgres/Chart.yaml | 2 +- packages/apps/postgres/README.md | 1 + packages/apps/postgres/templates/db.yaml | 3 +++ packages/apps/postgres/values.schema.json | 5 +++++ packages/apps/postgres/values.yaml | 2 ++ packages/apps/rabbitmq/Chart.yaml | 2 +- packages/apps/rabbitmq/README.md | 10 ++++++---- packages/apps/rabbitmq/templates/rabbitmq.yaml | 6 ++++++ packages/apps/rabbitmq/values.schema.json | 10 ++++++++++ packages/apps/rabbitmq/values.yaml | 4 ++++ packages/apps/redis/Chart.yaml | 2 +- packages/apps/redis/README.md | 11 ++++++----- packages/apps/redis/templates/redisfailover.yaml | 3 +++ packages/apps/redis/values.schema.json | 5 +++++ packages/apps/redis/values.yaml | 2 ++ packages/apps/virtual-machine/Chart.yaml | 2 +- packages/apps/virtual-machine/README.md | 1 + packages/apps/virtual-machine/templates/vm.yaml | 4 +++- packages/apps/virtual-machine/values.schema.json | 5 +++++ packages/apps/virtual-machine/values.yaml | 2 ++ packages/extra/etcd/Chart.yaml | 2 +- packages/extra/etcd/README.md | 9 +++++---- packages/extra/etcd/templates/etcd-cluster.yaml | 3 +++ packages/extra/etcd/values.schema.json | 5 +++++ packages/extra/etcd/values.yaml | 2 ++ .../extra/monitoring/templates/vm/vmcluster.yaml | 8 +++++++- packages/extra/monitoring/values.yaml | 2 ++ packages/extra/seaweedfs/Chart.yaml | 2 +- packages/extra/seaweedfs/README.md | 11 ++++++----- .../extra/seaweedfs/templates/seaweedfs.yaml | 3 +++ packages/extra/seaweedfs/values.schema.json | 7 ++++++- packages/extra/seaweedfs/values.yaml | 2 ++ .../kubevirt-csi-node/templates/deploy.yaml | 2 +- packages/system/kubevirt-csi-node/values.yaml | 1 + 69 files changed, 236 insertions(+), 63 deletions(-) create mode 100644 packages/system/kubevirt-csi-node/values.yaml diff --git a/packages/apps/clickhouse/Chart.yaml b/packages/apps/clickhouse/Chart.yaml index be47e494..46691771 100644 --- a/packages/apps/clickhouse/Chart.yaml +++ b/packages/apps/clickhouse/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.1 +version: 0.3.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/clickhouse/README.md b/packages/apps/clickhouse/README.md index 4164535a..b4b7100d 100644 --- a/packages/apps/clickhouse/README.md +++ b/packages/apps/clickhouse/README.md @@ -4,11 +4,12 @@ ### Common parameters -| Name | Description | Value | -| ---------- | ----------------------------- | ------ | -| `size` | Persistent Volume size | `10Gi` | -| `shards` | Number of Clickhouse replicas | `1` | -| `replicas` | Number of Clickhouse shards | `2` | +| Name | Description | Value | +| -------------- | ----------------------------------- | ------ | +| `size` | Persistent Volume size | `10Gi` | +| `shards` | Number of Clickhouse replicas | `1` | +| `replicas` | Number of Clickhouse shards | `2` | +| `storageClass` | StorageClass used to store the data | `""` | ### Configuration parameters diff --git a/packages/apps/clickhouse/templates/clickhouse.yaml b/packages/apps/clickhouse/templates/clickhouse.yaml index 6c61ec14..d97b0837 100644 --- a/packages/apps/clickhouse/templates/clickhouse.yaml +++ b/packages/apps/clickhouse/templates/clickhouse.yaml @@ -31,6 +31,9 @@ spec: spec: accessModes: - ReadWriteOnce + {{- with .Values.stroageClass }} + storageClassName: {{ . }} + {{- end }} resources: requests: storage: {{ . }} diff --git a/packages/apps/clickhouse/values.schema.json b/packages/apps/clickhouse/values.schema.json index 30cfcd08..7ed1d840 100644 --- a/packages/apps/clickhouse/values.schema.json +++ b/packages/apps/clickhouse/values.schema.json @@ -16,6 +16,11 @@ "type": "number", "description": "Number of Clickhouse shards", "default": 2 + }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "" } } } \ No newline at end of file diff --git a/packages/apps/clickhouse/values.yaml b/packages/apps/clickhouse/values.yaml index b4fc8664..74a09dd6 100644 --- a/packages/apps/clickhouse/values.yaml +++ b/packages/apps/clickhouse/values.yaml @@ -3,10 +3,12 @@ ## @param size Persistent Volume size ## @param shards Number of Clickhouse replicas ## @param replicas Number of Clickhouse shards +## @param storageClass StorageClass used to store the data ## size: 10Gi shards: 1 replicas: 2 +storageClass: "" ## @section Configuration parameters diff --git a/packages/apps/ferretdb/Chart.yaml b/packages/apps/ferretdb/Chart.yaml index 3d9c9230..7af963a9 100644 --- a/packages/apps/ferretdb/Chart.yaml +++ b/packages/apps/ferretdb/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.1 +version: 0.2.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/ferretdb/README.md b/packages/apps/ferretdb/README.md index afa4f961..d5503401 100644 --- a/packages/apps/ferretdb/README.md +++ b/packages/apps/ferretdb/README.md @@ -9,6 +9,7 @@ | `external` | Enable external access from outside the cluster | `false` | | `size` | Persistent Volume size | `10Gi` | | `replicas` | Number of Postgres replicas | `2` | +| `storageClass` | StorageClass used to store the data | `""` | | `quorum.minSyncReplicas` | Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed. | `0` | | `quorum.maxSyncReplicas` | Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances). | `0` | diff --git a/packages/apps/ferretdb/templates/postgres.yaml b/packages/apps/ferretdb/templates/postgres.yaml index 273e2b4a..9803e6ce 100644 --- a/packages/apps/ferretdb/templates/postgres.yaml +++ b/packages/apps/ferretdb/templates/postgres.yaml @@ -15,6 +15,9 @@ spec: storage: size: {{ required ".Values.size is required" .Values.size }} + {{- with .Values.stroageClass }} + storageClass: {{ . }} + {{- end }} inheritedMetadata: labels: diff --git a/packages/apps/ferretdb/values.schema.json b/packages/apps/ferretdb/values.schema.json index da41fb75..b2790710 100644 --- a/packages/apps/ferretdb/values.schema.json +++ b/packages/apps/ferretdb/values.schema.json @@ -17,6 +17,11 @@ "description": "Number of Postgres replicas", "default": 2 }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "" + }, "quorum": { "type": "object", "properties": { diff --git a/packages/apps/ferretdb/values.yaml b/packages/apps/ferretdb/values.yaml index 0e225f44..5e96b2db 100644 --- a/packages/apps/ferretdb/values.yaml +++ b/packages/apps/ferretdb/values.yaml @@ -3,10 +3,12 @@ ## @param external Enable external access from outside the cluster ## @param size Persistent Volume size ## @param replicas Number of Postgres replicas +## @param storageClass StorageClass used to store the data ## external: false size: 10Gi replicas: 2 +storageClass: "" ## Configuration for the quorum-based synchronous replication ## @param quorum.minSyncReplicas Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed. diff --git a/packages/apps/http-cache/Chart.yaml b/packages/apps/http-cache/Chart.yaml index eb17a386..25b3ff47 100644 --- a/packages/apps/http-cache/Chart.yaml +++ b/packages/apps/http-cache/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.0 +version: 0.3.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/http-cache/README.md b/packages/apps/http-cache/README.md index c02704bf..904fdf61 100644 --- a/packages/apps/http-cache/README.md +++ b/packages/apps/http-cache/README.md @@ -64,6 +64,7 @@ VTS module shows wrong upstream resonse time | ------------------ | ----------------------------------------------- | ------- | | `external` | Enable external access from outside the cluster | `false` | | `size` | Persistent Volume size | `10Gi` | +| `storageClass` | StorageClass used to store the data | `""` | | `haproxy.replicas` | Number of HAProxy replicas | `2` | | `nginx.replicas` | Number of Nginx replicas | `2` | diff --git a/packages/apps/http-cache/templates/nginx/deployment.yaml b/packages/apps/http-cache/templates/nginx/deployment.yaml index e12b7059..5633fac2 100644 --- a/packages/apps/http-cache/templates/nginx/deployment.yaml +++ b/packages/apps/http-cache/templates/nginx/deployment.yaml @@ -114,6 +114,9 @@ spec: resources: requests: storage: "{{ $.Values.size }}" + {{- with $.Values.stroageClass }} + storageClassName: {{ . }} + {{- end }} --- apiVersion: v1 kind: Service diff --git a/packages/apps/http-cache/values.schema.json b/packages/apps/http-cache/values.schema.json index 8fc55522..cb1dfc86 100644 --- a/packages/apps/http-cache/values.schema.json +++ b/packages/apps/http-cache/values.schema.json @@ -12,6 +12,11 @@ "description": "Persistent Volume size", "default": "10Gi" }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "" + }, "haproxy": { "type": "object", "properties": { diff --git a/packages/apps/http-cache/values.yaml b/packages/apps/http-cache/values.yaml index 65585cc8..526cb62c 100644 --- a/packages/apps/http-cache/values.yaml +++ b/packages/apps/http-cache/values.yaml @@ -3,11 +3,13 @@ ## @param external Enable external access from outside the cluster ## @param size Persistent Volume size +## @param storageClass StorageClass used to store the data ## @param haproxy.replicas Number of HAProxy replicas ## @param nginx.replicas Number of Nginx replicas ## external: false size: 10Gi +storageClass: "" haproxy: replicas: 2 nginx: diff --git a/packages/apps/kafka/Chart.yaml b/packages/apps/kafka/Chart.yaml index 50af16f3..fee99f24 100644 --- a/packages/apps/kafka/Chart.yaml +++ b/packages/apps/kafka/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.3 +version: 0.3.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/kafka/README.md b/packages/apps/kafka/README.md index f01453c6..56b26e99 100644 --- a/packages/apps/kafka/README.md +++ b/packages/apps/kafka/README.md @@ -4,13 +4,15 @@ ### Common parameters -| Name | Description | Value | -| -------------------- | ----------------------------------------------- | ------- | -| `external` | Enable external access from outside the cluster | `false` | -| `kafka.size` | Persistent Volume size for Kafka | `10Gi` | -| `kafka.replicas` | Number of Kafka replicas | `3` | -| `zookeeper.size` | Persistent Volume size for ZooKeeper | `5Gi` | -| `zookeeper.replicas` | Number of ZooKeeper replicas | `3` | +| Name | Description | Value | +| ------------------------ | ----------------------------------------------- | ------- | +| `external` | Enable external access from outside the cluster | `false` | +| `kafka.size` | Persistent Volume size for Kafka | `10Gi` | +| `kafka.replicas` | Number of Kafka replicas | `3` | +| `kafka.storageClass` | StorageClass used to store the Kafka data | `""` | +| `zookeeper.size` | Persistent Volume size for ZooKeeper | `5Gi` | +| `zookeeper.replicas` | Number of ZooKeeper replicas | `3` | +| `zookeeper.storageClass` | StorageClass used to store the ZooKeeper data | `""` | ### Configuration parameters diff --git a/packages/apps/kafka/templates/kafka.yaml b/packages/apps/kafka/templates/kafka.yaml index 8867178f..e4a449ba 100644 --- a/packages/apps/kafka/templates/kafka.yaml +++ b/packages/apps/kafka/templates/kafka.yaml @@ -53,6 +53,9 @@ spec: {{- with .Values.kafka.size }} size: {{ . }} {{- end }} + {{- with .Values.kafka.stroageClass }} + class: {{ . }} + {{- end }} deleteClaim: true zookeeper: replicas: {{ .Values.zookeeper.replicas }} @@ -61,6 +64,9 @@ spec: {{- with .Values.zookeeper.size }} size: {{ . }} {{- end }} + {{- with .Values.kafka.stroageClass }} + class: {{ . }} + {{- end }} deleteClaim: false entityOperator: topicOperator: {} diff --git a/packages/apps/kafka/values.schema.json b/packages/apps/kafka/values.schema.json index 277ad48c..2435457e 100644 --- a/packages/apps/kafka/values.schema.json +++ b/packages/apps/kafka/values.schema.json @@ -19,6 +19,11 @@ "type": "number", "description": "Number of Kafka replicas", "default": 3 + }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the Kafka data", + "default": "" } } }, @@ -34,6 +39,11 @@ "type": "number", "description": "Number of ZooKeeper replicas", "default": 3 + }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the ZooKeeper data", + "default": "" } } }, diff --git a/packages/apps/kafka/values.yaml b/packages/apps/kafka/values.yaml index 817d6f62..709906ba 100644 --- a/packages/apps/kafka/values.yaml +++ b/packages/apps/kafka/values.yaml @@ -4,16 +4,20 @@ ## @param external Enable external access from outside the cluster ## @param kafka.size Persistent Volume size for Kafka ## @param kafka.replicas Number of Kafka replicas +## @param kafka.storageClass StorageClass used to store the Kafka data ## @param zookeeper.size Persistent Volume size for ZooKeeper ## @param zookeeper.replicas Number of ZooKeeper replicas +## @param zookeeper.storageClass StorageClass used to store the ZooKeeper data ## external: false kafka: size: 10Gi replicas: 3 + storageClass: "" zookeeper: size: 5Gi replicas: 3 + storageClass: "" ## @section Configuration parameters diff --git a/packages/apps/kubernetes/Chart.yaml b/packages/apps/kubernetes/Chart.yaml index 50297511..746d9685 100644 --- a/packages/apps/kubernetes/Chart.yaml +++ b/packages/apps/kubernetes/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.8.2 +version: 0.9.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/kubernetes/README.md b/packages/apps/kubernetes/README.md index ea801630..39e05db0 100644 --- a/packages/apps/kubernetes/README.md +++ b/packages/apps/kubernetes/README.md @@ -31,11 +31,12 @@ kubectl get secret -n kubernetes--admin-kubeconfig -o g ### Common parameters -| Name | Description | Value | -| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ----- | -| `host` | The hostname used to access the Kubernetes cluster externally (defaults to using the cluster name as a subdomain for the tenant host). | `""` | -| `controlPlane.replicas` | Number of replicas for Kubernetes contorl-plane components | `2` | -| `nodeGroups` | nodeGroups configuration | `{}` | +| Name | Description | Value | +| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------ | +| `host` | The hostname used to access the Kubernetes cluster externally (defaults to using the cluster name as a subdomain for the tenant host). | `""` | +| `controlPlane.replicas` | Number of replicas for Kubernetes contorl-plane components | `2` | +| `storageClass` | StorageClass used to store user data | `replicated` | +| `nodeGroups` | nodeGroups configuration | `{}` | ### Cluster Addons diff --git a/packages/apps/kubernetes/templates/helmreleases/csi.yaml b/packages/apps/kubernetes/templates/helmreleases/csi.yaml index 2485d47c..4900ab3e 100644 --- a/packages/apps/kubernetes/templates/helmreleases/csi.yaml +++ b/packages/apps/kubernetes/templates/helmreleases/csi.yaml @@ -28,6 +28,10 @@ spec: upgrade: remediation: retries: -1 + {{- with .Values.stroageClass }} + values: + storageClass: "{{ . }}" + {{- end }} dependsOn: {{- if lookup "helm.toolkit.fluxcd.io/v2" "HelmRelease" .Release.Namespace .Release.Name }} - name: {{ .Release.Name }} diff --git a/packages/apps/kubernetes/values.schema.json b/packages/apps/kubernetes/values.schema.json index cceff4d3..57f4d43e 100644 --- a/packages/apps/kubernetes/values.schema.json +++ b/packages/apps/kubernetes/values.schema.json @@ -17,6 +17,11 @@ } } }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store user data", + "default": "replicated" + }, "addons": { "type": "object", "properties": { diff --git a/packages/apps/kubernetes/values.yaml b/packages/apps/kubernetes/values.yaml index 38859eb2..eb9f9392 100644 --- a/packages/apps/kubernetes/values.yaml +++ b/packages/apps/kubernetes/values.yaml @@ -2,10 +2,12 @@ ## @param host The hostname used to access the Kubernetes cluster externally (defaults to using the cluster name as a subdomain for the tenant host). ## @param controlPlane.replicas Number of replicas for Kubernetes contorl-plane components +## @param storageClass StorageClass used to store user data ## host: "" controlPlane: replicas: 2 +storageClass: replicated ## @param nodeGroups [object] nodeGroups configuration ## diff --git a/packages/apps/mysql/Chart.yaml b/packages/apps/mysql/Chart.yaml index 07321d2a..fcc21657 100644 --- a/packages/apps/mysql/Chart.yaml +++ b/packages/apps/mysql/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.3.0 +version: 0.4.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/mysql/README.md b/packages/apps/mysql/README.md index 2f0da660..18650a1d 100644 --- a/packages/apps/mysql/README.md +++ b/packages/apps/mysql/README.md @@ -67,11 +67,12 @@ more details: ### Common parameters -| Name | Description | Value | -| ---------- | ----------------------------------------------- | ------- | -| `external` | Enable external access from outside the cluster | `false` | -| `size` | Persistent Volume size | `10Gi` | -| `replicas` | Number of MariaDB replicas | `2` | +| Name | Description | Value | +| -------------- | ----------------------------------------------- | ------- | +| `external` | Enable external access from outside the cluster | `false` | +| `size` | Persistent Volume size | `10Gi` | +| `replicas` | Number of MariaDB replicas | `2` | +| `storageClass` | StorageClass used to store the data | `""` | ### Configuration parameters diff --git a/packages/apps/mysql/templates/mariadb.yaml b/packages/apps/mysql/templates/mariadb.yaml index 61dbd0f2..f3e6c341 100644 --- a/packages/apps/mysql/templates/mariadb.yaml +++ b/packages/apps/mysql/templates/mariadb.yaml @@ -62,6 +62,9 @@ spec: size: {{ .Values.size }} resizeInUseVolumes: true waitForVolumeResize: true + {{- with .Values.stroageClass }} + storageClassName: {{ . }} + {{- end }} {{- if .Values.external }} primaryService: diff --git a/packages/apps/mysql/values.schema.json b/packages/apps/mysql/values.schema.json index 98d8c516..f9277d5d 100644 --- a/packages/apps/mysql/values.schema.json +++ b/packages/apps/mysql/values.schema.json @@ -17,6 +17,11 @@ "description": "Number of MariaDB replicas", "default": 2 }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "" + }, "databases": { "type": "array", "description": "Databases configuration", diff --git a/packages/apps/mysql/values.yaml b/packages/apps/mysql/values.yaml index f3f53869..5bf76f9a 100644 --- a/packages/apps/mysql/values.yaml +++ b/packages/apps/mysql/values.yaml @@ -3,10 +3,12 @@ ## @param external Enable external access from outside the cluster ## @param size Persistent Volume size ## @param replicas Number of MariaDB replicas +## @param storageClass StorageClass used to store the data ## external: false size: 10Gi replicas: 2 +storageClass: "" ## @section Configuration parameters diff --git a/packages/apps/nats/Chart.yaml b/packages/apps/nats/Chart.yaml index c5477111..94aecd6a 100644 --- a/packages/apps/nats/Chart.yaml +++ b/packages/apps/nats/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.0 +version: 0.2.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/nats/README.md b/packages/apps/nats/README.md index a8b4ba2d..11d4b575 100644 --- a/packages/apps/nats/README.md +++ b/packages/apps/nats/README.md @@ -4,8 +4,9 @@ ### Common parameters -| Name | Description | Value | -| ---------- | ----------------------------------------------- | ------- | -| `external` | Enable external access from outside the cluster | `false` | -| `replicas` | Persistent Volume size for NATS | `3` | +| Name | Description | Value | +| -------------- | ----------------------------------------------- | ------- | +| `external` | Enable external access from outside the cluster | `false` | +| `replicas` | Persistent Volume size for NATS | `2` | +| `storageClass` | StorageClass used to store the data | `""` | diff --git a/packages/apps/nats/templates/nats.yaml b/packages/apps/nats/templates/nats.yaml index cc78209f..1872bfce 100644 --- a/packages/apps/nats/templates/nats.yaml +++ b/packages/apps/nats/templates/nats.yaml @@ -30,7 +30,9 @@ spec: pvc: enabled: true size: 10Gi - storageClassName: local + {{- with .Values.storageClass }} + storageClassName: {{ . }} + {{- end }} promExporter: enabled: true podMonitor: diff --git a/packages/apps/nats/values.schema.json b/packages/apps/nats/values.schema.json index 676ac1f0..df176502 100644 --- a/packages/apps/nats/values.schema.json +++ b/packages/apps/nats/values.schema.json @@ -10,7 +10,12 @@ "replicas": { "type": "number", "description": "Persistent Volume size for NATS", - "default": 3 + "default": 2 + }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "" } } } \ No newline at end of file diff --git a/packages/apps/nats/values.yaml b/packages/apps/nats/values.yaml index 91adc14b..7044641c 100644 --- a/packages/apps/nats/values.yaml +++ b/packages/apps/nats/values.yaml @@ -3,6 +3,8 @@ ## @param external Enable external access from outside the cluster ## @param replicas Persistent Volume size for NATS +## @param storageClass StorageClass used to store the data ## external: false replicas: 2 +storageClass: "" diff --git a/packages/apps/postgres/Chart.yaml b/packages/apps/postgres/Chart.yaml index 89bddc1d..6a71a330 100644 --- a/packages/apps/postgres/Chart.yaml +++ b/packages/apps/postgres/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.4.1 +version: 0.5.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/postgres/README.md b/packages/apps/postgres/README.md index f3208613..f94d95ec 100644 --- a/packages/apps/postgres/README.md +++ b/packages/apps/postgres/README.md @@ -40,6 +40,7 @@ more details: | `external` | Enable external access from outside the cluster | `false` | | `size` | Persistent Volume size | `10Gi` | | `replicas` | Number of Postgres replicas | `2` | +| `storageClass` | StorageClass used to store the data | `""` | | `quorum.minSyncReplicas` | Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed. | `0` | | `quorum.maxSyncReplicas` | Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances). | `0` | diff --git a/packages/apps/postgres/templates/db.yaml b/packages/apps/postgres/templates/db.yaml index 2729fdf7..ea4d1867 100644 --- a/packages/apps/postgres/templates/db.yaml +++ b/packages/apps/postgres/templates/db.yaml @@ -19,6 +19,9 @@ spec: storage: size: {{ required ".Values.size is required" .Values.size }} + {{- with .Values.stroageClass }} + storageClass: {{ . }} + {{- end }} inheritedMetadata: labels: diff --git a/packages/apps/postgres/values.schema.json b/packages/apps/postgres/values.schema.json index 51b81336..15049426 100644 --- a/packages/apps/postgres/values.schema.json +++ b/packages/apps/postgres/values.schema.json @@ -17,6 +17,11 @@ "description": "Number of Postgres replicas", "default": 2 }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "" + }, "quorum": { "type": "object", "properties": { diff --git a/packages/apps/postgres/values.yaml b/packages/apps/postgres/values.yaml index 0fdd8c19..2eaacff1 100644 --- a/packages/apps/postgres/values.yaml +++ b/packages/apps/postgres/values.yaml @@ -3,10 +3,12 @@ ## @param external Enable external access from outside the cluster ## @param size Persistent Volume size ## @param replicas Number of Postgres replicas +## @param storageClass StorageClass used to store the data ## external: false size: 10Gi replicas: 2 +storageClass: "" ## Configuration for the quorum-based synchronous replication ## @param quorum.minSyncReplicas Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed. diff --git a/packages/apps/rabbitmq/Chart.yaml b/packages/apps/rabbitmq/Chart.yaml index 2c43a6b6..a832d662 100644 --- a/packages/apps/rabbitmq/Chart.yaml +++ b/packages/apps/rabbitmq/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.0 +version: 0.3.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/rabbitmq/README.md b/packages/apps/rabbitmq/README.md index d1cd0b08..da4a9170 100644 --- a/packages/apps/rabbitmq/README.md +++ b/packages/apps/rabbitmq/README.md @@ -13,7 +13,9 @@ The service utilizes official RabbitMQ operator. This ensures the reliability an ### Common parameters -| Name | Description | Value | -| ---------- | ----------------------------------------------- | ------- | -| `external` | Enable external access from outside the cluster | `false` | -| `replicas` | Number of RabbitMQ replicas | `3` | +| Name | Description | Value | +| -------------- | ----------------------------------------------- | ------- | +| `external` | Enable external access from outside the cluster | `false` | +| `size` | Persistent Volume size | `10Gi` | +| `replicas` | Number of RabbitMQ replicas | `3` | +| `storageClass` | StorageClass used to store the data | `""` | diff --git a/packages/apps/rabbitmq/templates/rabbitmq.yaml b/packages/apps/rabbitmq/templates/rabbitmq.yaml index 5e668498..2b371c9d 100644 --- a/packages/apps/rabbitmq/templates/rabbitmq.yaml +++ b/packages/apps/rabbitmq/templates/rabbitmq.yaml @@ -11,3 +11,9 @@ spec: service: type: LoadBalancer {{- end }} + + persistence: + {{- with .Values.stroageClass }} + storageClassName: {{ . }} + {{- end }} + storage: {{ .Values.size }} diff --git a/packages/apps/rabbitmq/values.schema.json b/packages/apps/rabbitmq/values.schema.json index 1c752ee4..3e5ae07d 100644 --- a/packages/apps/rabbitmq/values.schema.json +++ b/packages/apps/rabbitmq/values.schema.json @@ -7,10 +7,20 @@ "description": "Enable external access from outside the cluster", "default": false }, + "size": { + "type": "string", + "description": "Persistent Volume size", + "default": "10Gi" + }, "replicas": { "type": "number", "description": "Number of RabbitMQ replicas", "default": 3 + }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "" } } } \ No newline at end of file diff --git a/packages/apps/rabbitmq/values.yaml b/packages/apps/rabbitmq/values.yaml index 8918cc2a..3c3ead73 100644 --- a/packages/apps/rabbitmq/values.yaml +++ b/packages/apps/rabbitmq/values.yaml @@ -1,7 +1,11 @@ ## @section Common parameters ## @param external Enable external access from outside the cluster +## @param size Persistent Volume size ## @param replicas Number of RabbitMQ replicas +## @param storageClass StorageClass used to store the data ## external: false +size: 10Gi replicas: 3 +storageClass: "" diff --git a/packages/apps/redis/Chart.yaml b/packages/apps/redis/Chart.yaml index 8daa1619..1b324278 100644 --- a/packages/apps/redis/Chart.yaml +++ b/packages/apps/redis/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.0 +version: 0.3.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/redis/README.md b/packages/apps/redis/README.md index 6dc7c432..4b3c049c 100644 --- a/packages/apps/redis/README.md +++ b/packages/apps/redis/README.md @@ -13,10 +13,11 @@ Service utilizes the Spotahome Redis Operator for efficient management and orche ### Common parameters -| Name | Description | Value | -| ---------- | ----------------------------------------------- | ------- | -| `external` | Enable external access from outside the cluster | `false` | -| `size` | Persistent Volume size | `1Gi` | -| `replicas` | Number of Redis replicas | `2` | +| Name | Description | Value | +| -------------- | ----------------------------------------------- | ------- | +| `external` | Enable external access from outside the cluster | `false` | +| `size` | Persistent Volume size | `1Gi` | +| `replicas` | Number of Redis replicas | `2` | +| `storageClass` | StorageClass used to store the data | `""` | diff --git a/packages/apps/redis/templates/redisfailover.yaml b/packages/apps/redis/templates/redisfailover.yaml index 9e073256..567bc949 100644 --- a/packages/apps/redis/templates/redisfailover.yaml +++ b/packages/apps/redis/templates/redisfailover.yaml @@ -33,6 +33,9 @@ spec: resources: requests: storage: {{ . }} + {{- with $.Values.storageClass }} + storageClassName: {{ . }} + {{- end }} {{- end }} exporter: enabled: true diff --git a/packages/apps/redis/values.schema.json b/packages/apps/redis/values.schema.json index 1a1013b2..f4fdfb7c 100644 --- a/packages/apps/redis/values.schema.json +++ b/packages/apps/redis/values.schema.json @@ -16,6 +16,11 @@ "type": "number", "description": "Number of Redis replicas", "default": 2 + }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "" } } } \ No newline at end of file diff --git a/packages/apps/redis/values.yaml b/packages/apps/redis/values.yaml index 00e99e0d..754f695a 100644 --- a/packages/apps/redis/values.yaml +++ b/packages/apps/redis/values.yaml @@ -3,7 +3,9 @@ ## @param external Enable external access from outside the cluster ## @param size Persistent Volume size ## @param replicas Number of Redis replicas +## @param storageClass StorageClass used to store the data ## external: false size: 1Gi replicas: 2 +storageClass: "" diff --git a/packages/apps/virtual-machine/Chart.yaml b/packages/apps/virtual-machine/Chart.yaml index 4699d936..e0cdeeb7 100644 --- a/packages/apps/virtual-machine/Chart.yaml +++ b/packages/apps/virtual-machine/Chart.yaml @@ -17,7 +17,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.0 +version: 0.3.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/virtual-machine/README.md b/packages/apps/virtual-machine/README.md index 37367eaf..2a07ab25 100644 --- a/packages/apps/virtual-machine/README.md +++ b/packages/apps/virtual-machine/README.md @@ -18,6 +18,7 @@ The virtual machine is managed and hosted through KubeVirt, allowing you to harn | `external` | Enable external access from outside the cluster | `false` | | `running` | Determines if the virtual machine should be running | `true` | | `image` | The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine` and `fedora` | `ubuntu` | +| `storageClass` | StorageClass used to store the data | `replicated` | | `resources.cpu` | The number of CPU cores allocated to the virtual machine | `1` | | `resources.memory` | The amount of memory allocated to the virtual machine | `1024M` | | `resources.disk` | The size of the disk allocated for the virtual machine | `5Gi` | diff --git a/packages/apps/virtual-machine/templates/vm.yaml b/packages/apps/virtual-machine/templates/vm.yaml index 1aefb757..e344de32 100644 --- a/packages/apps/virtual-machine/templates/vm.yaml +++ b/packages/apps/virtual-machine/templates/vm.yaml @@ -16,7 +16,9 @@ spec: resources: requests: storage: {{ .Values.resources.disk | quote }} - storageClassName: replicated + {{- with $.Values.storageClass }} + storageClassName: {{ . }} + {{- end }} source: http: {{- if eq .Values.image "cirros" }} diff --git a/packages/apps/virtual-machine/values.schema.json b/packages/apps/virtual-machine/values.schema.json index 43a06b32..843039a5 100644 --- a/packages/apps/virtual-machine/values.schema.json +++ b/packages/apps/virtual-machine/values.schema.json @@ -23,6 +23,11 @@ "fedora" ] }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "replicated" + }, "resources": { "type": "object", "properties": { diff --git a/packages/apps/virtual-machine/values.yaml b/packages/apps/virtual-machine/values.yaml index 0c7c4407..f1f5701e 100644 --- a/packages/apps/virtual-machine/values.yaml +++ b/packages/apps/virtual-machine/values.yaml @@ -3,6 +3,7 @@ ## @param external Enable external access from outside the cluster ## @param running Determines if the virtual machine should be running ## @param image The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine` and `fedora` +## @param storageClass StorageClass used to store the data ## @param resources.cpu The number of CPU cores allocated to the virtual machine ## @param resources.memory The amount of memory allocated to the virtual machine ## @param resources.disk The size of the disk allocated for the virtual machine @@ -15,6 +16,7 @@ external: false running: true image: ubuntu +storageClass: replicated resources: cpu: 1 memory: 1024M diff --git a/packages/extra/etcd/Chart.yaml b/packages/extra/etcd/Chart.yaml index c56e2ade..4f260e04 100644 --- a/packages/extra/etcd/Chart.yaml +++ b/packages/extra/etcd/Chart.yaml @@ -3,4 +3,4 @@ name: etcd description: Storage for Kubernetes clusters icon: /logos/etcd.svg type: application -version: 2.2.0 +version: 2.3.0 diff --git a/packages/extra/etcd/README.md b/packages/extra/etcd/README.md index 2e57b37e..96e3f1a9 100644 --- a/packages/extra/etcd/README.md +++ b/packages/extra/etcd/README.md @@ -4,7 +4,8 @@ ### Common parameters -| Name | Description | Value | -| ---------- | ----------------------- | ----- | -| `size` | Persistent Volume size | `4Gi` | -| `replicas` | Number of etcd replicas | `3` | +| Name | Description | Value | +| -------------- | ----------------------------------- | ----- | +| `size` | Persistent Volume size | `4Gi` | +| `storageClass` | StorageClass used to store the data | `""` | +| `replicas` | Number of etcd replicas | `3` | diff --git a/packages/extra/etcd/templates/etcd-cluster.yaml b/packages/extra/etcd/templates/etcd-cluster.yaml index b717031e..8b713ee4 100644 --- a/packages/extra/etcd/templates/etcd-cluster.yaml +++ b/packages/extra/etcd/templates/etcd-cluster.yaml @@ -25,6 +25,9 @@ spec: resources: requests: storage: {{ .Values.size }} + {{- with .Values.stroageClass }} + storageClassName: {{ . }} + {{- end }} security: tls: peerTrustedCASecret: etcd-peer-ca-tls diff --git a/packages/extra/etcd/values.schema.json b/packages/extra/etcd/values.schema.json index de375028..d6520a2e 100644 --- a/packages/extra/etcd/values.schema.json +++ b/packages/extra/etcd/values.schema.json @@ -7,6 +7,11 @@ "description": "Persistent Volume size", "default": "4Gi" }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "" + }, "replicas": { "type": "number", "description": "Number of etcd replicas", diff --git a/packages/extra/etcd/values.yaml b/packages/extra/etcd/values.yaml index 5f912f11..459acc11 100644 --- a/packages/extra/etcd/values.yaml +++ b/packages/extra/etcd/values.yaml @@ -1,7 +1,9 @@ ## @section Common parameters ## @param size Persistent Volume size +## @param storageClass StorageClass used to store the data ## @param replicas Number of etcd replicas ## size: 4Gi +storageClass: "" replicas: 3 diff --git a/packages/extra/monitoring/templates/vm/vmcluster.yaml b/packages/extra/monitoring/templates/vm/vmcluster.yaml index 5097bad3..1c7923b0 100644 --- a/packages/extra/monitoring/templates/vm/vmcluster.yaml +++ b/packages/extra/monitoring/templates/vm/vmcluster.yaml @@ -14,12 +14,15 @@ spec: replicaCount: 2 extraArgs: search.maxUniqueTimeseries: "600000" - vmalert.proxyURL: http://vmalert.{{ $.Release.Namespace }}.svc:8080 + vmalert.proxyURL: http://vmalert-{{ .name }}.{{ $.Release.Namespace }}.svc:8080 dedup.minScrapeInterval: "15s" cacheMountPath: /select-cache storage: volumeClaimTemplate: spec: + {{- with .storageClassName }} + storageClassName: {{ . }} + {{- end }} resources: requests: storage: 2Gi @@ -28,6 +31,9 @@ spec: storage: volumeClaimTemplate: spec: + {{- with .storageClassName }} + storageClassName: {{ . }} + {{- end }} resources: requests: storage: {{ .storage }} diff --git a/packages/extra/monitoring/values.yaml b/packages/extra/monitoring/values.yaml index fd7d16b4..58119abf 100644 --- a/packages/extra/monitoring/values.yaml +++ b/packages/extra/monitoring/values.yaml @@ -10,10 +10,12 @@ metricsStorages: retentionPeriod: "3d" deduplicationInterval: "5m" storage: 10Gi + storageClassName: "" - name: longterm retentionPeriod: "14d" deduplicationInterval: "15s" storage: 10Gi + storageClassName: "" ## @param oncall.enabled Enable Grafana OnCall ## diff --git a/packages/extra/seaweedfs/Chart.yaml b/packages/extra/seaweedfs/Chart.yaml index 741983e1..fbb08137 100644 --- a/packages/extra/seaweedfs/Chart.yaml +++ b/packages/extra/seaweedfs/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.0 +version: 0.2.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/extra/seaweedfs/README.md b/packages/extra/seaweedfs/README.md index 7b65ce17..557c1e00 100644 --- a/packages/extra/seaweedfs/README.md +++ b/packages/extra/seaweedfs/README.md @@ -4,9 +4,10 @@ ### Common parameters -| Name | Description | Value | -| ---------- | --------------------------------------------------------------------------------------------------------- | ----- | -| `host` | The hostname used to access the grafana externally (defaults to 'grafana' subdomain for the tenant host). | `""` | -| `replicas` | Persistent Volume size for NATS | `2` | -| `size` | Persistent Volume size | `4Gi` | +| Name | Description | Value | +| -------------- | --------------------------------------------------------------------------------------------------------- | ------ | +| `host` | The hostname used to access the grafana externally (defaults to 'grafana' subdomain for the tenant host). | `""` | +| `replicas` | Persistent Volume size for NATS | `2` | +| `size` | Persistent Volume size | `10Gi` | +| `storageClass` | StorageClass used to store the data | `""` | diff --git a/packages/extra/seaweedfs/templates/seaweedfs.yaml b/packages/extra/seaweedfs/templates/seaweedfs.yaml index 739b1fa9..28866d68 100644 --- a/packages/extra/seaweedfs/templates/seaweedfs.yaml +++ b/packages/extra/seaweedfs/templates/seaweedfs.yaml @@ -34,6 +34,9 @@ spec: - name: data1 type: "persistentVolumeClaim" size: "{{ .Values.size }}" + {{- with .Values.stroageClass }} + storageClass: {{ . }} + {{- end }} maxVolumes: 0 s3: diff --git a/packages/extra/seaweedfs/values.schema.json b/packages/extra/seaweedfs/values.schema.json index 545b840b..c7daa251 100644 --- a/packages/extra/seaweedfs/values.schema.json +++ b/packages/extra/seaweedfs/values.schema.json @@ -15,7 +15,12 @@ "size": { "type": "string", "description": "Persistent Volume size", - "default": "4Gi" + "default": "10Gi" + }, + "storageClass": { + "type": "string", + "description": "StorageClass used to store the data", + "default": "" } } } \ No newline at end of file diff --git a/packages/extra/seaweedfs/values.yaml b/packages/extra/seaweedfs/values.yaml index a74695af..5921ac55 100644 --- a/packages/extra/seaweedfs/values.yaml +++ b/packages/extra/seaweedfs/values.yaml @@ -5,6 +5,8 @@ host: "" ## @param replicas Persistent Volume size for NATS ## @param size Persistent Volume size +## @param storageClass StorageClass used to store the data ## replicas: 2 size: 10Gi +storageClass: "" diff --git a/packages/system/kubevirt-csi-node/templates/deploy.yaml b/packages/system/kubevirt-csi-node/templates/deploy.yaml index 49b84ff5..714c0fbf 100644 --- a/packages/system/kubevirt-csi-node/templates/deploy.yaml +++ b/packages/system/kubevirt-csi-node/templates/deploy.yaml @@ -274,5 +274,5 @@ metadata: storageclass.kubernetes.io/is-default-class: "true" provisioner: csi.kubevirt.io parameters: - infraStorageClassName: replicated + infraStorageClassName: {{ .Values.storageClass }} bus: scsi diff --git a/packages/system/kubevirt-csi-node/values.yaml b/packages/system/kubevirt-csi-node/values.yaml new file mode 100644 index 00000000..99aa3822 --- /dev/null +++ b/packages/system/kubevirt-csi-node/values.yaml @@ -0,0 +1 @@ +storageClass: replicated