From 759d64c73859a3df3c2b81ebcf62e361648c1a5b Mon Sep 17 00:00:00 2001 From: Andrei Kvapil Date: Sun, 10 Aug 2025 18:32:16 +0300 Subject: [PATCH] Fix types and revert default node group in Kubernetes config Signed-off-by: Andrei Kvapil --- .github/workflows/pre-commit.yml | 2 +- hack/e2e-apps/run-kubernetes.sh | 3 - packages/apps/clickhouse/README.md | 38 +- packages/apps/clickhouse/values.schema.json | 10 + packages/apps/clickhouse/values.yaml | 16 +- packages/apps/ferretdb/README.md | 35 +- packages/apps/ferretdb/values.schema.json | 9 + packages/apps/ferretdb/values.yaml | 14 +- packages/apps/http-cache/README.md | 18 + packages/apps/http-cache/values.schema.json | 119 +++++ packages/apps/http-cache/values.yaml | 6 +- packages/apps/kafka/README.md | 40 +- packages/apps/kafka/values.schema.json | 164 +++++- packages/apps/kafka/values.yaml | 8 +- packages/apps/kubernetes/README.md | 303 ++++++++--- packages/apps/kubernetes/values.schema.json | 527 +++++++++++++++++++ packages/apps/kubernetes/values.yaml | 95 ++-- packages/apps/mysql/README.md | 41 +- packages/apps/mysql/values.schema.json | 10 + packages/apps/mysql/values.yaml | 16 +- packages/apps/nats/README.md | 4 +- packages/apps/nats/values.yaml | 4 +- packages/apps/postgres/README.md | 28 + packages/apps/rabbitmq/README.md | 8 +- packages/apps/rabbitmq/values.yaml | 4 +- packages/apps/tcp-balancer/README.md | 11 + packages/apps/vm-disk/README.md | 17 +- packages/apps/vm-disk/values.schema.json | 24 +- packages/apps/vm-disk/values.yaml | 9 +- packages/apps/vm-instance/README.md | 2 +- packages/apps/vm-instance/values.schema.json | 3 +- packages/apps/vm-instance/values.yaml | 2 +- packages/extra/bootbox/README.md | 17 + packages/extra/etcd/README.md | 16 +- packages/extra/etcd/values.yaml | 4 +- packages/extra/monitoring/README.md | 215 ++++++++ packages/extra/seaweedfs/README.md | 5 + 37 files changed, 1620 insertions(+), 227 deletions(-) diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index f9031100..3951e246 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -28,7 +28,7 @@ jobs: - name: Install generate run: | - curl -sSL https://github.com/cozystack/cozyvalues-gen/releases/download/v0.8.1/cozyvalues-gen-linux-amd64.tar.gz | tar -xzvf- -C /usr/local/bin/ cozyvalues-gen + curl -sSL https://github.com/cozystack/cozyvalues-gen/releases/download/v0.8.4/cozyvalues-gen-linux-amd64.tar.gz | tar -xzvf- -C /usr/local/bin/ cozyvalues-gen - name: Run pre-commit hooks run: | diff --git a/hack/e2e-apps/run-kubernetes.sh b/hack/e2e-apps/run-kubernetes.sh index be8a4eba..3988a264 100644 --- a/hack/e2e-apps/run-kubernetes.sh +++ b/hack/e2e-apps/run-kubernetes.sh @@ -57,9 +57,6 @@ spec: instanceType: u1.medium maxReplicas: 10 minReplicas: 0 - resources: - cpu: "" - memory: "" roles: - ingress-nginx storageClass: replicated diff --git a/packages/apps/clickhouse/README.md b/packages/apps/clickhouse/README.md index bd0e2181..c347cf09 100644 --- a/packages/apps/clickhouse/README.md +++ b/packages/apps/clickhouse/README.md @@ -30,6 +30,8 @@ For more details, read [Restic: Effective Backup from Stdin](https://blog.aenix. | `resources` | Explicit CPU and memory configuration for each Clickhouse replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `{}` | | `resources.cpu` | CPU | `*quantity` | `null` | | `resources.memory` | Memory | `*quantity` | `null` | +| `resources.cpu` | CPU | `*quantity` | `null` | +| `resources.memory` | Memory | `*quantity` | `null` | | `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `small` | | `size` | Persistent Volume Claim size, available for application data | `quantity` | `10Gi` | | `storageClass` | StorageClass used to store the data | `string` | `""` | @@ -44,21 +46,31 @@ For more details, read [Restic: Effective Backup from Stdin](https://blog.aenix. | `users` | Users configuration | `map[string]object` | `{...}` | | `users[name].password` | Password for the user | `*string` | `null` | | `users[name].readonly` | User is `readonly`, default is `false`. | `*bool` | `null` | +| `users[name].password` | Password for the user | `*string` | `null` | +| `users[name].readonly` | User is `readonly`, default is `false`. | `*bool` | `null` | ### Backup parameters -| Name | Description | Type | Value | -| ------------------------ | ---------------------------------------------- | --------- | ------------------------------------------------------ | -| `backup` | Backup configuration | `object` | `{}` | -| `backup.enabled` | Enable regular backups, default is `false` | `*bool` | `false` | -| `backup.s3Region` | AWS S3 region where backups are stored | `*string` | `us-east-1` | -| `backup.s3Bucket` | S3 bucket used for storing backups | `*string` | `s3.example.org/clickhouse-backups` | -| `backup.schedule` | Cron schedule for automated backups | `*string` | `0 2 * * *` | -| `backup.cleanupStrategy` | Retention strategy for cleaning up old backups | `*string` | `--keep-last=3 --keep-daily=3 --keep-within-weekly=1m` | -| `backup.s3AccessKey` | Access key for S3, used for authentication | `*string` | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` | -| `backup.s3SecretKey` | Secret key for S3, used for authentication | `*string` | `ju3eum4dekeich9ahM1te8waeGai0oog` | -| `backup.resticPassword` | Password for Restic backup encryption | `*string` | `ChaXoveekoh6eigh4siesheeda2quai0` | +| Name | Description | Type | Value | +| ------------------------ | ---------------------------------------------- | -------- | ------------------------------------------------------ | +| `backup` | Backup configuration | `object` | `{}` | +| `backup.enabled` | Enable regular backups, default is `false` | `bool` | `false` | +| `backup.s3Region` | AWS S3 region where backups are stored | `string` | `us-east-1` | +| `backup.s3Bucket` | S3 bucket used for storing backups | `string` | `s3.example.org/clickhouse-backups` | +| `backup.schedule` | Cron schedule for automated backups | `string` | `0 2 * * *` | +| `backup.cleanupStrategy` | Retention strategy for cleaning up old backups | `string` | `--keep-last=3 --keep-daily=3 --keep-within-weekly=1m` | +| `backup.s3AccessKey` | Access key for S3, used for authentication | `string` | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` | +| `backup.s3SecretKey` | Secret key for S3, used for authentication | `string` | `ju3eum4dekeich9ahM1te8waeGai0oog` | +| `backup.resticPassword` | Password for Restic backup encryption | `string` | `ChaXoveekoh6eigh4siesheeda2quai0` | +| `backup.enabled` | Enable regular backups, default is `false` | `bool` | `false` | +| `backup.s3Region` | AWS S3 region where backups are stored | `string` | `us-east-1` | +| `backup.s3Bucket` | S3 bucket used for storing backups | `string` | `s3.example.org/clickhouse-backups` | +| `backup.schedule` | Cron schedule for automated backups | `string` | `0 2 * * *` | +| `backup.cleanupStrategy` | Retention strategy for cleaning up old backups | `string` | `--keep-last=3 --keep-daily=3 --keep-within-weekly=1m` | +| `backup.s3AccessKey` | Access key for S3, used for authentication | `string` | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` | +| `backup.s3SecretKey` | Secret key for S3, used for authentication | `string` | `ju3eum4dekeich9ahM1te8waeGai0oog` | +| `backup.resticPassword` | Password for Restic backup encryption | `string` | `ChaXoveekoh6eigh4siesheeda2quai0` | ### Clickhouse Keeper parameters @@ -70,6 +82,10 @@ For more details, read [Restic: Effective Backup from Stdin](https://blog.aenix. | `clickhouseKeeper.size` | Persistent Volume Claim size, available for application data | `*quantity` | `1Gi` | | `clickhouseKeeper.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | | `clickhouseKeeper.replicas` | Number of keeper replicas | `*int` | `3` | +| `clickhouseKeeper.enabled` | Deploy ClickHouse Keeper for cluster coordination | `*bool` | `true` | +| `clickhouseKeeper.size` | Persistent Volume Claim size, available for application data | `*quantity` | `1Gi` | +| `clickhouseKeeper.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `clickhouseKeeper.replicas` | Number of keeper replicas | `*int` | `3` | ## Parameter examples and reference diff --git a/packages/apps/clickhouse/values.schema.json b/packages/apps/clickhouse/values.schema.json index 0c080fca..535fdabd 100644 --- a/packages/apps/clickhouse/values.schema.json +++ b/packages/apps/clickhouse/values.schema.json @@ -15,6 +15,16 @@ "s3SecretKey": "ju3eum4dekeich9ahM1te8waeGai0oog", "schedule": "0 2 * * *" }, + "required": [ + "cleanupStrategy", + "enabled", + "resticPassword", + "s3AccessKey", + "s3Bucket", + "s3Region", + "s3SecretKey", + "schedule" + ], "properties": { "cleanupStrategy": { "description": "Retention strategy for cleaning up old backups", diff --git a/packages/apps/clickhouse/values.yaml b/packages/apps/clickhouse/values.yaml index daa3977b..41424165 100644 --- a/packages/apps/clickhouse/values.yaml +++ b/packages/apps/clickhouse/values.yaml @@ -45,14 +45,14 @@ users: {} ## @section Backup parameters ## @param backup {backup} Backup configuration -## @field backup.enabled {*bool} Enable regular backups, default is `false` -## @field backup.s3Region {*string} AWS S3 region where backups are stored -## @field backup.s3Bucket {*string} S3 bucket used for storing backups -## @field backup.schedule {*string} Cron schedule for automated backups -## @field backup.cleanupStrategy {*string} Retention strategy for cleaning up old backups -## @field backup.s3AccessKey {*string} Access key for S3, used for authentication -## @field backup.s3SecretKey {*string} Secret key for S3, used for authentication -## @field backup.resticPassword {*string} Password for Restic backup encryption +## @field backup.enabled {bool} Enable regular backups, default is `false` +## @field backup.s3Region {string} AWS S3 region where backups are stored +## @field backup.s3Bucket {string} S3 bucket used for storing backups +## @field backup.schedule {string} Cron schedule for automated backups +## @field backup.cleanupStrategy {string} Retention strategy for cleaning up old backups +## @field backup.s3AccessKey {string} Access key for S3, used for authentication +## @field backup.s3SecretKey {string} Secret key for S3, used for authentication +## @field backup.resticPassword {string} Password for Restic backup encryption backup: enabled: false s3Region: us-east-1 diff --git a/packages/apps/ferretdb/README.md b/packages/apps/ferretdb/README.md index fce120b8..ca159bdc 100644 --- a/packages/apps/ferretdb/README.md +++ b/packages/apps/ferretdb/README.md @@ -14,6 +14,8 @@ Internally, FerretDB service is backed by Postgres. | `resources` | Explicit CPU and memory configuration for each FerretDB replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `{}` | | `resources.cpu` | CPU | `*quantity` | `null` | | `resources.memory` | Memory | `*quantity` | `null` | +| `resources.cpu` | CPU | `*quantity` | `null` | +| `resources.memory` | Memory | `*quantity` | `null` | | `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `micro` | | `size` | Persistent Volume Claim size, available for application data | `quantity` | `10Gi` | | `storageClass` | StorageClass used to store the data | `string` | `""` | @@ -27,22 +29,32 @@ Internally, FerretDB service is backed by Postgres. | `quorum` | Configuration for the quorum-based synchronous replication | `object` | `{}` | | `quorum.minSyncReplicas` | Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed | `int` | `0` | | `quorum.maxSyncReplicas` | Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the total number of replicas) | `int` | `0` | +| `quorum.minSyncReplicas` | Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed | `int` | `0` | +| `quorum.maxSyncReplicas` | Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the total number of replicas) | `int` | `0` | | `users` | Users configuration | `map[string]object` | `{...}` | | `users[name].password` | Password for the user | `*string` | `null` | +| `users[name].password` | Password for the user | `*string` | `null` | ### Backup parameters -| Name | Description | Type | Value | -| ------------------------ | ---------------------------------------------------------- | --------- | ----------------------------------- | -| `backup` | Backup configuration | `object` | `{}` | -| `backup.enabled` | Enable regular backups, default is `false`. | `*bool` | `false` | -| `backup.schedule` | Cron schedule for automated backups | `*string` | `0 2 * * * *` | -| `backup.retentionPolicy` | Retention policy | `*string` | `30d` | -| `backup.endpointURL` | S3 Endpoint used to upload data to the cloud | `*string` | `http://minio-gateway-service:9000` | -| `backup.destinationPath` | Path to store the backup (i.e. s3://bucket/path/to/folder) | `*string` | `s3://bucket/path/to/folder/` | -| `backup.s3AccessKey` | Access key for S3, used for authentication | `*string` | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` | -| `backup.s3SecretKey` | Secret key for S3, used for authentication | `*string` | `ju3eum4dekeich9ahM1te8waeGai0oog` | +| Name | Description | Type | Value | +| ------------------------ | ---------------------------------------------------------- | -------- | ----------------------------------- | +| `backup` | Backup configuration | `object` | `{}` | +| `backup.enabled` | Enable regular backups, default is `false`. | `bool` | `false` | +| `backup.schedule` | Cron schedule for automated backups | `string` | `0 2 * * * *` | +| `backup.retentionPolicy` | Retention policy | `string` | `30d` | +| `backup.endpointURL` | S3 Endpoint used to upload data to the cloud | `string` | `http://minio-gateway-service:9000` | +| `backup.destinationPath` | Path to store the backup (i.e. s3://bucket/path/to/folder) | `string` | `s3://bucket/path/to/folder/` | +| `backup.s3AccessKey` | Access key for S3, used for authentication | `string` | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` | +| `backup.s3SecretKey` | Secret key for S3, used for authentication | `string` | `ju3eum4dekeich9ahM1te8waeGai0oog` | +| `backup.enabled` | Enable regular backups, default is `false`. | `bool` | `false` | +| `backup.schedule` | Cron schedule for automated backups | `string` | `0 2 * * * *` | +| `backup.retentionPolicy` | Retention policy | `string` | `30d` | +| `backup.endpointURL` | S3 Endpoint used to upload data to the cloud | `string` | `http://minio-gateway-service:9000` | +| `backup.destinationPath` | Path to store the backup (i.e. s3://bucket/path/to/folder) | `string` | `s3://bucket/path/to/folder/` | +| `backup.s3AccessKey` | Access key for S3, used for authentication | `string` | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` | +| `backup.s3SecretKey` | Secret key for S3, used for authentication | `string` | `ju3eum4dekeich9ahM1te8waeGai0oog` | ### Bootstrap (recovery) parameters @@ -53,6 +65,9 @@ Internally, FerretDB service is backed by Postgres. | `bootstrap.enabled` | Restore database cluster from a backup | `*bool` | `false` | | `bootstrap.recoveryTime` | Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest. | `*string` | `""` | | `bootstrap.oldName` | Name of database cluster before deleting | `*string` | `""` | +| `bootstrap.enabled` | Restore database cluster from a backup | `*bool` | `false` | +| `bootstrap.recoveryTime` | Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest. | `*string` | `""` | +| `bootstrap.oldName` | Name of database cluster before deleting | `*string` | `""` | ## Parameter examples and reference diff --git a/packages/apps/ferretdb/values.schema.json b/packages/apps/ferretdb/values.schema.json index 669408ab..d75c55f6 100644 --- a/packages/apps/ferretdb/values.schema.json +++ b/packages/apps/ferretdb/values.schema.json @@ -14,6 +14,15 @@ "s3SecretKey": "ju3eum4dekeich9ahM1te8waeGai0oog", "schedule": "0 2 * * * *" }, + "required": [ + "destinationPath", + "enabled", + "endpointURL", + "retentionPolicy", + "s3AccessKey", + "s3SecretKey", + "schedule" + ], "properties": { "destinationPath": { "description": "Path to store the backup (i.e. s3://bucket/path/to/folder)", diff --git a/packages/apps/ferretdb/values.yaml b/packages/apps/ferretdb/values.yaml index 963ea626..18ba15ba 100644 --- a/packages/apps/ferretdb/values.yaml +++ b/packages/apps/ferretdb/values.yaml @@ -45,13 +45,13 @@ users: {} ## ## @param backup {backup} Backup configuration -## @field backup.enabled {*bool} Enable regular backups, default is `false`. -## @field backup.schedule {*string} Cron schedule for automated backups -## @field backup.retentionPolicy {*string} Retention policy -## @field backup.endpointURL {*string} S3 Endpoint used to upload data to the cloud -## @field backup.destinationPath {*string} Path to store the backup (i.e. s3://bucket/path/to/folder) -## @field backup.s3AccessKey {*string} Access key for S3, used for authentication -## @field backup.s3SecretKey {*string} Secret key for S3, used for authentication +## @field backup.enabled {bool} Enable regular backups, default is `false`. +## @field backup.schedule {string} Cron schedule for automated backups +## @field backup.retentionPolicy {string} Retention policy +## @field backup.endpointURL {string} S3 Endpoint used to upload data to the cloud +## @field backup.destinationPath {string} Path to store the backup (i.e. s3://bucket/path/to/folder) +## @field backup.s3AccessKey {string} Access key for S3, used for authentication +## @field backup.s3SecretKey {string} Secret key for S3, used for authentication backup: enabled: false schedule: "0 2 * * * *" diff --git a/packages/apps/http-cache/README.md b/packages/apps/http-cache/README.md index c3d504df..a79a1790 100644 --- a/packages/apps/http-cache/README.md +++ b/packages/apps/http-cache/README.md @@ -83,6 +83,15 @@ The deployment architecture is illustrated in the diagram below: | `haproxy.resources` | Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | | `haproxy.resources.cpu` | CPU | `*quantity` | `null` | | `haproxy.resources.memory` | Memory | `*quantity` | `null` | +| `haproxy.resources.cpu` | CPU | `*quantity` | `null` | +| `haproxy.resources.memory` | Memory | `*quantity` | `null` | +| `haproxy.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `nano` | +| `haproxy.replicas` | Number of HAProxy replicas | `int` | `2` | +| `haproxy.resources` | Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `haproxy.resources.cpu` | CPU | `*quantity` | `null` | +| `haproxy.resources.memory` | Memory | `*quantity` | `null` | +| `haproxy.resources.cpu` | CPU | `*quantity` | `null` | +| `haproxy.resources.memory` | Memory | `*quantity` | `null` | | `haproxy.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `nano` | @@ -95,6 +104,15 @@ The deployment architecture is illustrated in the diagram below: | `nginx.resources` | Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | | `nginx.resources.cpu` | CPU | `*quantity` | `null` | | `nginx.resources.memory` | Memory | `*quantity` | `null` | +| `nginx.resources.cpu` | CPU | `*quantity` | `null` | +| `nginx.resources.memory` | Memory | `*quantity` | `null` | +| `nginx.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `nano` | +| `nginx.replicas` | Number of Nginx replicas | `int` | `2` | +| `nginx.resources` | Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | +| `nginx.resources.cpu` | CPU | `*quantity` | `null` | +| `nginx.resources.memory` | Memory | `*quantity` | `null` | +| `nginx.resources.cpu` | CPU | `*quantity` | `null` | +| `nginx.resources.memory` | Memory | `*quantity` | `null` | | `nginx.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `nano` | diff --git a/packages/apps/http-cache/values.schema.json b/packages/apps/http-cache/values.schema.json index f95b9f8a..97597ff8 100644 --- a/packages/apps/http-cache/values.schema.json +++ b/packages/apps/http-cache/values.schema.json @@ -17,18 +17,137 @@ }, "haproxy": { "description": "HAProxy configuration", + "type": "object", "default": { "replicas": 2, "resources": {}, "resourcesPreset": "nano" + }, + "required": [ + "replicas", + "resources", + "resourcesPreset" + ], + "properties": { + "replicas": { + "description": "Number of HAProxy replicas", + "type": "integer", + "default": 2 + }, + "resources": { + "description": "Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "type": "object", + "default": {}, + "properties": { + "cpu": { + "description": "CPU", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "memory": { + "description": "Memory", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + } + } + }, + "resourcesPreset": { + "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "type": "string", + "default": "nano", + "enum": [ + "nano", + "micro", + "small", + "medium", + "large", + "xlarge", + "2xlarge" + ] + } } }, "nginx": { "description": "Nginx configuration", + "type": "object", "default": { "replicas": 2, "resources": {}, "resourcesPreset": "nano" + }, + "required": [ + "replicas", + "resourcesPreset" + ], + "properties": { + "replicas": { + "description": "Number of Nginx replicas", + "type": "integer", + "default": 2 + }, + "resources": { + "description": "Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "type": "object", + "default": {}, + "properties": { + "cpu": { + "description": "CPU", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "memory": { + "description": "Memory", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + } + } + }, + "resourcesPreset": { + "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "type": "string", + "default": "nano", + "enum": [ + "nano", + "micro", + "small", + "medium", + "large", + "xlarge", + "2xlarge" + ] + } } }, "size": { diff --git a/packages/apps/http-cache/values.yaml b/packages/apps/http-cache/values.yaml index 27dad974..3deb7090 100644 --- a/packages/apps/http-cache/values.yaml +++ b/packages/apps/http-cache/values.yaml @@ -28,8 +28,8 @@ haproxy: ## @field haproxy.replicas {int} Number of HAProxy replicas replicas: 2 ## @field haproxy.resources {resources} Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field haproxy.resources.cpu {*quantity} CPU - ## @field haproxy.resources.memory {*quantity} Memory + ## @field resources.cpu {*quantity} CPU + ## @field resources.memory {*quantity} Memory resources: {} # resources: # cpu: 4000m @@ -44,8 +44,6 @@ nginx: ## @field nginx.replicas {int} Number of Nginx replicas replicas: 2 ## @field nginx.resources {*resources} Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field nginx.resources.cpu {*quantity} CPU - ## @field nginx.resources.memory {*quantity} Memory # resources: # cpu: 4000m # memory: 4Gi diff --git a/packages/apps/kafka/README.md b/packages/apps/kafka/README.md index e7238ecd..32627857 100644 --- a/packages/apps/kafka/README.md +++ b/packages/apps/kafka/README.md @@ -11,13 +11,17 @@ ### Application-specific parameters -| Name | Description | Type | Value | -| ---------------------- | -------------------- | ------------------- | ----- | -| `topics` | Topics configuration | `[]object` | `[]` | -| `topics[i].name` | Topic name | `string` | `""` | -| `topics[i].partitions` | Number of partitions | `int` | `0` | -| `topics[i].replicas` | Number of replicas | `int` | `0` | -| `topics[i].config` | Topic configuration | `map[string]object` | `{}` | +| Name | Description | Type | Value | +| ---------------------- | -------------------- | ---------- | ----- | +| `topics` | Topics configuration | `[]object` | `[]` | +| `topics[i].name` | Topic name | `string` | `""` | +| `topics[i].partitions` | Number of partitions | `int` | `0` | +| `topics[i].replicas` | Number of replicas | `int` | `0` | +| `topics[i].config` | Topic configuration | `object` | `{}` | +| `topics[i].name` | Topic name | `string` | `""` | +| `topics[i].partitions` | Number of partitions | `int` | `0` | +| `topics[i].replicas` | Number of replicas | `int` | `0` | +| `topics[i].config` | Topic configuration | `object` | `{}` | ### Kafka configuration @@ -29,6 +33,17 @@ | `kafka.resources` | Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | | `kafka.resources.cpu` | CPU | `*quantity` | `null` | | `kafka.resources.memory` | Memory | `*quantity` | `null` | +| `kafka.resources.cpu` | CPU | `*quantity` | `null` | +| `kafka.resources.memory` | Memory | `*quantity` | `null` | +| `kafka.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `small` | +| `kafka.size` | Persistent Volume size for Kafka | `quantity` | `10Gi` | +| `kafka.storageClass` | StorageClass used to store the Kafka data | `string` | `""` | +| `kafka.replicas` | Number of Kafka replicas | `int` | `3` | +| `kafka.resources` | Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | +| `kafka.resources.cpu` | CPU | `*quantity` | `null` | +| `kafka.resources.memory` | Memory | `*quantity` | `null` | +| `kafka.resources.cpu` | CPU | `*quantity` | `null` | +| `kafka.resources.memory` | Memory | `*quantity` | `null` | | `kafka.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `small` | | `kafka.size` | Persistent Volume size for Kafka | `quantity` | `10Gi` | | `kafka.storageClass` | StorageClass used to store the Kafka data | `string` | `""` | @@ -43,6 +58,17 @@ | `zookeeper.resources` | Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | | `zookeeper.resources.cpu` | CPU | `*quantity` | `null` | | `zookeeper.resources.memory` | Memory | `*quantity` | `null` | +| `zookeeper.resources.cpu` | CPU | `*quantity` | `null` | +| `zookeeper.resources.memory` | Memory | `*quantity` | `null` | +| `zookeeper.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `small` | +| `zookeeper.size` | Persistent Volume size for ZooKeeper | `quantity` | `5Gi` | +| `zookeeper.storageClass` | StorageClass used to store the ZooKeeper data | `string` | `""` | +| `zookeeper.replicas` | Number of ZooKeeper replicas | `int` | `3` | +| `zookeeper.resources` | Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | +| `zookeeper.resources.cpu` | CPU | `*quantity` | `null` | +| `zookeeper.resources.memory` | Memory | `*quantity` | `null` | +| `zookeeper.resources.cpu` | CPU | `*quantity` | `null` | +| `zookeeper.resources.memory` | Memory | `*quantity` | `null` | | `zookeeper.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `small` | | `zookeeper.size` | Persistent Volume size for ZooKeeper | `quantity` | `5Gi` | | `zookeeper.storageClass` | StorageClass used to store the ZooKeeper data | `string` | `""` | diff --git a/packages/apps/kafka/values.schema.json b/packages/apps/kafka/values.schema.json index 94e927f8..59f8f3d4 100644 --- a/packages/apps/kafka/values.schema.json +++ b/packages/apps/kafka/values.schema.json @@ -9,12 +9,91 @@ }, "kafka": { "description": "Kafka configuration", + "type": "object", "default": { "replicas": 3, "resources": {}, "resourcesPreset": "small", "size": "10Gi", "storageClass": "" + }, + "required": [ + "replicas", + "resourcesPreset", + "size", + "storageClass" + ], + "properties": { + "replicas": { + "description": "Number of Kafka replicas", + "type": "integer", + "default": 3 + }, + "resources": { + "description": "Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "type": "object", + "default": {}, + "properties": { + "cpu": { + "description": "CPU", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "memory": { + "description": "Memory", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + } + } + }, + "resourcesPreset": { + "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "type": "string", + "default": "small", + "enum": [ + "nano", + "micro", + "small", + "medium", + "large", + "xlarge", + "2xlarge" + ] + }, + "size": { + "description": "Persistent Volume size for Kafka", + "default": "10Gi", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "storageClass": { + "description": "StorageClass used to store the Kafka data", + "type": "string" + } } }, "topics": { @@ -24,6 +103,7 @@ "items": { "type": "object", "required": [ + "config", "name", "partitions", "replicas" @@ -32,10 +112,7 @@ "config": { "description": "Topic configuration", "type": "object", - "additionalProperties": { - "type": "object", - "x-kubernetes-preserve-unknown-fields": true - } + "x-kubernetes-preserve-unknown-fields": true }, "name": { "description": "Topic name", @@ -54,12 +131,91 @@ }, "zookeeper": { "description": "Zookeeper configuration", + "type": "object", "default": { "replicas": 3, "resources": {}, "resourcesPreset": "small", "size": "5Gi", "storageClass": "" + }, + "required": [ + "replicas", + "resourcesPreset", + "size", + "storageClass" + ], + "properties": { + "replicas": { + "description": "Number of ZooKeeper replicas", + "type": "integer", + "default": 3 + }, + "resources": { + "description": "Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "type": "object", + "default": {}, + "properties": { + "cpu": { + "description": "CPU", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "memory": { + "description": "Memory", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + } + } + }, + "resourcesPreset": { + "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "type": "string", + "default": "small", + "enum": [ + "nano", + "micro", + "small", + "medium", + "large", + "xlarge", + "2xlarge" + ] + }, + "size": { + "description": "Persistent Volume size for ZooKeeper", + "default": "5Gi", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "storageClass": { + "description": "StorageClass used to store the ZooKeeper data", + "type": "string" + } } } } diff --git a/packages/apps/kafka/values.yaml b/packages/apps/kafka/values.yaml index d1d16a5c..d8567dfd 100644 --- a/packages/apps/kafka/values.yaml +++ b/packages/apps/kafka/values.yaml @@ -11,7 +11,7 @@ external: false ## @field topic.name {string} Topic name ## @field topic.partitions {int} Number of partitions ## @field topic.replicas {int} Number of replicas -## @field topic.config {map[string]object} Topic configuration +## @field topic.config {object} Topic configuration ## Example: ## topics: ## - name: Results @@ -37,8 +37,8 @@ kafka: ## @field kafka.replicas {int} Number of Kafka replicas replicas: 3 ## @field kafka.resources {*resources} Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field kafka.resources.cpu {*quantity} CPU - ## @field kafka.resources.memory {*quantity} Memory + ## @field resources.cpu {*quantity} CPU + ## @field resources.memory {*quantity} Memory # resources: # cpu: 4000m # memory: 4Gi @@ -58,8 +58,6 @@ zookeeper: ## @field zookeeper.replicas {int} Number of ZooKeeper replicas replicas: 3 ## @field zookeeper.resources {*resources} Explicit CPU and memory configuration for each replica. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field zookeeper.resources.cpu {*quantity} CPU - ## @field zookeeper.resources.memory {*quantity} Memory # resources: # cpu: 4000m # memory: 4Gi diff --git a/packages/apps/kubernetes/README.md b/packages/apps/kubernetes/README.md index c298d029..2c8033ea 100644 --- a/packages/apps/kubernetes/README.md +++ b/packages/apps/kubernetes/README.md @@ -104,77 +104,258 @@ See the reference for components utilized in this service: | `nodeGroups[name].resources` | Available resources for each worker node | `object` | `{}` | | `nodeGroups[name].resources.cpu` | Available CPU | `*quantity` | `null` | | `nodeGroups[name].resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `nodeGroups[name].resources.cpu` | Available CPU | `*quantity` | `null` | +| `nodeGroups[name].resources.memory` | Available memory (RAM) | `*quantity` | `null` | | `nodeGroups[name].gpus` | List of GPUs to attach (WARN: NVIDIA driver requires at least 4 GiB of RAM) | `[]object` | `[]` | | `nodeGroups[name].gpus.name` | Name of GPU, such as "nvidia.com/AD102GL_L40S" | `string` | `""` | +| `nodeGroups[name].gpus.name` | Name of GPU, such as "nvidia.com/AD102GL_L40S" | `string` | `""` | +| `nodeGroups[name].minReplicas` | Minimum amount of replicas | `int` | `0` | +| `nodeGroups[name].maxReplicas` | Maximum amount of replicas | `int` | `0` | +| `nodeGroups[name].instanceType` | Virtual machine instance type | `string` | `""` | +| `nodeGroups[name].ephemeralStorage` | Ephemeral storage size | `quantity` | `""` | +| `nodeGroups[name].roles` | List of node's roles | `[]string` | `[]` | +| `nodeGroups[name].resources` | Available resources for each worker node | `object` | `{}` | +| `nodeGroups[name].resources.cpu` | Available CPU | `*quantity` | `null` | +| `nodeGroups[name].resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `nodeGroups[name].resources.cpu` | Available CPU | `*quantity` | `null` | +| `nodeGroups[name].resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `nodeGroups[name].gpus` | List of GPUs to attach (WARN: NVIDIA driver requires at least 4 GiB of RAM) | `[]object` | `[]` | +| `nodeGroups[name].gpus.name` | Name of GPU, such as "nvidia.com/AD102GL_L40S" | `string` | `""` | +| `nodeGroups[name].gpus.name` | Name of GPU, such as "nvidia.com/AD102GL_L40S" | `string` | `""` | ### Cluster Addons -| Name | Description | Type | Value | -| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------- | -| `addons` | Cluster addons configuration | `object` | `{}` | -| `addons.certManager` | Cert-manager: automatically creates and manages SSL/TLS certificate | `object` | `{}` | -| `addons.certManager.enabled` | Enable cert-manager, which automatically creates and manages SSL/TLS certificates. | `bool` | `false` | -| `addons.certManager.valuesOverride` | value} Custom values to override | `map[string]object` | `{}` | -| `addons.cilium` | Cilium CNI plugin | `object` | `{}` | -| `addons.cilium.valuesOverride` | value} Custom values to override | `map[string]object` | `{}` | -| `addons.gatewayAPI` | Gateway API | `object` | `{}` | -| `addons.gatewayAPI.enabled` | Enable the Gateway API | `bool` | `false` | -| `addons.ingressNginx` | Ingress-NGINX Controller | `object` | `{}` | -| `addons.ingressNginx.enabled` | Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). | `bool` | `false` | -| `addons.ingressNginx.exposeMethod` | Method to expose the Ingress-NGINX controller. Allowed values: `Proxied`, `LoadBalancer`. | `string` | `{}` | -| `addons.ingressNginx.hosts` | List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`. | `[]string` | `[]` | -| `addons.ingressNginx.valuesOverride` | value} Custom values to override | `map[string]object` | `{}` | -| `addons.gpuOperator` | GPU-operator: NVIDIA GPU Operator | `object` | `{}` | -| `addons.gpuOperator.enabled` | Enable the GPU-operator | `bool` | `false` | -| `addons.gpuOperator.valuesOverride` | Custom values to override | `map[string]object` | `{}` | -| `addons.fluxcd` | Flux CD | `object` | `{}` | -| `addons.fluxcd.enabled` | Enable FluxCD | `bool` | `false` | -| `addons.fluxcd.valuesOverride` | Custom values to override | `map[string]object` | `{}` | -| `addons.monitoringAgents` | MonitoringAgents | `object` | `{}` | -| `addons.monitoringAgents.enabled` | Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage. | `bool` | `false` | -| `addons.monitoringAgents.valuesOverride` | Custom values to override | `map[string]object` | `{}` | -| `addons.verticalPodAutoscaler` | VerticalPodAutoscaler | `object` | `{}` | -| `addons.verticalPodAutoscaler.valuesOverride` | Custom values to override | `map[string]object` | `{}` | -| `addons.velero` | Velero | `object` | `{}` | -| `addons.velero.enabled` | Enable Velero for backup and recovery of a tenant Kubernetes cluster. | `bool` | `false` | -| `addons.velero.valuesOverride` | Custom values to override | `map[string]object` | `{}` | +| Name | Description | Type | Value | +| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | --------- | +| `addons` | Cluster addons configuration | `object` | `{}` | +| `addons.certManager` | Cert-manager: automatically creates and manages SSL/TLS certificate | `object` | `{}` | +| `addons.certManager.enabled` | Enable cert-manager, which automatically creates and manages SSL/TLS certificates. | `bool` | `false` | +| `addons.certManager.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.certManager.enabled` | Enable cert-manager, which automatically creates and manages SSL/TLS certificates. | `bool` | `false` | +| `addons.certManager.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.cilium` | Cilium CNI plugin | `object` | `{}` | +| `addons.cilium.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.cilium.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.gatewayAPI` | Gateway API | `object` | `{}` | +| `addons.gatewayAPI.enabled` | Enable the Gateway API | `bool` | `false` | +| `addons.gatewayAPI.enabled` | Enable the Gateway API | `bool` | `false` | +| `addons.ingressNginx` | Ingress-NGINX Controller | `object` | `{}` | +| `addons.ingressNginx.enabled` | Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). | `bool` | `false` | +| `addons.ingressNginx.exposeMethod` | Method to expose the Ingress-NGINX controller. Allowed values: `Proxied`, `LoadBalancer`. | `string` | `Proxied` | +| `addons.ingressNginx.hosts` | List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`. | `[]string` | `[]` | +| `addons.ingressNginx.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.ingressNginx.enabled` | Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). | `bool` | `false` | +| `addons.ingressNginx.exposeMethod` | Method to expose the Ingress-NGINX controller. Allowed values: `Proxied`, `LoadBalancer`. | `string` | `Proxied` | +| `addons.ingressNginx.hosts` | List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`. | `[]string` | `[]` | +| `addons.ingressNginx.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.gpuOperator` | GPU-operator: NVIDIA GPU Operator | `object` | `{}` | +| `addons.gpuOperator.enabled` | Enable the GPU-operator | `bool` | `false` | +| `addons.gpuOperator.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.gpuOperator.enabled` | Enable the GPU-operator | `bool` | `false` | +| `addons.gpuOperator.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.fluxcd` | Flux CD | `object` | `{}` | +| `addons.fluxcd.enabled` | Enable FluxCD | `bool` | `false` | +| `addons.fluxcd.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.fluxcd.enabled` | Enable FluxCD | `bool` | `false` | +| `addons.fluxcd.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.monitoringAgents` | MonitoringAgents | `object` | `{}` | +| `addons.monitoringAgents.enabled` | Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage. | `bool` | `false` | +| `addons.monitoringAgents.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.monitoringAgents.enabled` | Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage. | `bool` | `false` | +| `addons.monitoringAgents.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.verticalPodAutoscaler` | VerticalPodAutoscaler | `object` | `{}` | +| `addons.verticalPodAutoscaler.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.verticalPodAutoscaler.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.velero` | Velero | `object` | `{}` | +| `addons.velero.enabled` | Enable Velero for backup and recovery of a tenant Kubernetes cluster. | `bool` | `false` | +| `addons.velero.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.velero.enabled` | Enable Velero for backup and recovery of a tenant Kubernetes cluster. | `bool` | `false` | +| `addons.velero.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.certManager` | Cert-manager: automatically creates and manages SSL/TLS certificate | `object` | `{}` | +| `addons.certManager.enabled` | Enable cert-manager, which automatically creates and manages SSL/TLS certificates. | `bool` | `false` | +| `addons.certManager.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.certManager.enabled` | Enable cert-manager, which automatically creates and manages SSL/TLS certificates. | `bool` | `false` | +| `addons.certManager.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.cilium` | Cilium CNI plugin | `object` | `{}` | +| `addons.cilium.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.cilium.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.gatewayAPI` | Gateway API | `object` | `{}` | +| `addons.gatewayAPI.enabled` | Enable the Gateway API | `bool` | `false` | +| `addons.gatewayAPI.enabled` | Enable the Gateway API | `bool` | `false` | +| `addons.ingressNginx` | Ingress-NGINX Controller | `object` | `{}` | +| `addons.ingressNginx.enabled` | Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). | `bool` | `false` | +| `addons.ingressNginx.exposeMethod` | Method to expose the Ingress-NGINX controller. Allowed values: `Proxied`, `LoadBalancer`. | `string` | `Proxied` | +| `addons.ingressNginx.hosts` | List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`. | `[]string` | `[]` | +| `addons.ingressNginx.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.ingressNginx.enabled` | Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). | `bool` | `false` | +| `addons.ingressNginx.exposeMethod` | Method to expose the Ingress-NGINX controller. Allowed values: `Proxied`, `LoadBalancer`. | `string` | `Proxied` | +| `addons.ingressNginx.hosts` | List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`. | `[]string` | `[]` | +| `addons.ingressNginx.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.gpuOperator` | GPU-operator: NVIDIA GPU Operator | `object` | `{}` | +| `addons.gpuOperator.enabled` | Enable the GPU-operator | `bool` | `false` | +| `addons.gpuOperator.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.gpuOperator.enabled` | Enable the GPU-operator | `bool` | `false` | +| `addons.gpuOperator.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.fluxcd` | Flux CD | `object` | `{}` | +| `addons.fluxcd.enabled` | Enable FluxCD | `bool` | `false` | +| `addons.fluxcd.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.fluxcd.enabled` | Enable FluxCD | `bool` | `false` | +| `addons.fluxcd.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.monitoringAgents` | MonitoringAgents | `object` | `{}` | +| `addons.monitoringAgents.enabled` | Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage. | `bool` | `false` | +| `addons.monitoringAgents.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.monitoringAgents.enabled` | Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage. | `bool` | `false` | +| `addons.monitoringAgents.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.verticalPodAutoscaler` | VerticalPodAutoscaler | `object` | `{}` | +| `addons.verticalPodAutoscaler.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.verticalPodAutoscaler.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.velero` | Velero | `object` | `{}` | +| `addons.velero.enabled` | Enable Velero for backup and recovery of a tenant Kubernetes cluster. | `bool` | `false` | +| `addons.velero.valuesOverride` | Custom values to override | `object` | `{}` | +| `addons.velero.enabled` | Enable Velero for backup and recovery of a tenant Kubernetes cluster. | `bool` | `false` | +| `addons.velero.valuesOverride` | Custom values to override | `object` | `{}` | ### Kubernetes Control Plane Configuration -| Name | Description | Type | Value | -| --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------ | -| `controlPlane` | Control Plane Configuration | `object` | `{}` | -| `controlPlane.replicas` | Number of replicas for Kubernetes control plane components. | `int` | `2` | -| `controlPlane.apiServer` | Control plane API server configuration. | `object` | `{}` | -| `controlPlane.apiServer.resources` | Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | -| `controlPlane.apiServer.resources.cpu` | Available CPU | `*quantity` | `null` | -| `controlPlane.apiServer.resources.memory` | Available memory (RAM) | `*quantity` | `null` | -| `controlPlane.apiServer.resources.cpu` | Available CPU | `*quantity` | `null` | -| `controlPlane.apiServer.resources.memory` | Available memory (RAM) | `*quantity` | `null` | -| `controlPlane.apiServer.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `{}` | -| `controlPlane.controllerManager` | Controller Manager configuration. | `object` | `{}` | -| `controlPlane.controllerManager.resources` | Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | -| `controlPlane.controllerManager.resources.cpu` | Available CPU | `*quantity` | `null` | -| `controlPlane.controllerManager.resources.memory` | Available memory (RAM) | `*quantity` | `null` | -| `controlPlane.controllerManager.resources.cpu` | Available CPU | `*quantity` | `null` | -| `controlPlane.controllerManager.resources.memory` | Available memory (RAM) | `*quantity` | `null` | -| `controlPlane.controllerManager.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `{}` | -| `controlPlane.scheduler` | Scheduler configuration. | `object` | `{}` | -| `controlPlane.scheduler.resources` | Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | -| `controlPlane.scheduler.resources.cpu` | Available CPU | `*quantity` | `null` | -| `controlPlane.scheduler.resources.memory` | Available memory (RAM) | `*quantity` | `null` | -| `controlPlane.scheduler.resources.cpu` | Available CPU | `*quantity` | `null` | -| `controlPlane.scheduler.resources.memory` | Available memory (RAM) | `*quantity` | `null` | -| `controlPlane.scheduler.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `{}` | -| `controlPlane.konnectivity` | Konnectivity configuration. | `object` | `{}` | -| `controlPlane.konnectivity.server.resources` | Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | -| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | -| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | -| `controlPlane.konnectivity.resources.cpu` | Available CPU | `*quantity` | `null` | -| `controlPlane.konnectivity.resources.memory` | Available memory (RAM) | `*quantity` | `null` | -| `controlPlane.konnectivity.server.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `{}` | +| Name | Description | Type | Value | +| --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ----------- | -------- | +| `controlPlane` | Control Plane Configuration | `object` | `{}` | +| `controlPlane.replicas` | Number of replicas for Kubernetes control plane components. | `int` | `2` | +| `controlPlane.apiServer` | Control plane API server configuration. | `object` | `{}` | +| `controlPlane.apiServer.resources` | Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.apiServer.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.apiServer.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.apiServer.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.apiServer.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.apiServer.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `medium` | +| `controlPlane.apiServer.resources` | Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.apiServer.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.apiServer.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.apiServer.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.apiServer.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.apiServer.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `medium` | +| `controlPlane.controllerManager` | Controller Manager configuration. | `object` | `{}` | +| `controlPlane.controllerManager.resources` | Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.controllerManager.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.controllerManager.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.controllerManager.resources` | Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.controllerManager.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.controllerManager.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.scheduler` | Scheduler configuration. | `object` | `{}` | +| `controlPlane.scheduler.resources` | Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.scheduler.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.scheduler.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.scheduler.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.scheduler.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.scheduler.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.scheduler.resources` | Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.scheduler.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.scheduler.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.scheduler.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.scheduler.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.scheduler.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.konnectivity` | Konnectivity configuration. | `object` | `{}` | +| `controlPlane.konnectivity.server` | Konnectivity server configuration. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources` | Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.konnectivity.server.resources` | Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.konnectivity.server` | Konnectivity server configuration. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources` | Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.konnectivity.server.resources` | Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.replicas` | Number of replicas for Kubernetes control plane components. | `int` | `2` | +| `controlPlane.apiServer` | Control plane API server configuration. | `object` | `{}` | +| `controlPlane.apiServer.resources` | Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.apiServer.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.apiServer.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.apiServer.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.apiServer.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.apiServer.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `medium` | +| `controlPlane.apiServer.resources` | Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.apiServer.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.apiServer.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.apiServer.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.apiServer.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.apiServer.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `medium` | +| `controlPlane.controllerManager` | Controller Manager configuration. | `object` | `{}` | +| `controlPlane.controllerManager.resources` | Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.controllerManager.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.controllerManager.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.controllerManager.resources` | Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.controllerManager.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.controllerManager.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.controllerManager.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.scheduler` | Scheduler configuration. | `object` | `{}` | +| `controlPlane.scheduler.resources` | Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.scheduler.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.scheduler.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.scheduler.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.scheduler.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.scheduler.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.scheduler.resources` | Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.scheduler.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.scheduler.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.scheduler.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.scheduler.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.scheduler.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.konnectivity` | Konnectivity configuration. | `object` | `{}` | +| `controlPlane.konnectivity.server` | Konnectivity server configuration. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources` | Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.konnectivity.server.resources` | Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.konnectivity.server` | Konnectivity server configuration. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources` | Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | +| `controlPlane.konnectivity.server.resources` | Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.cpu` | Available CPU | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resources.memory` | Available memory (RAM) | `*quantity` | `null` | +| `controlPlane.konnectivity.server.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. | `string` | `micro` | ## Parameter examples and reference diff --git a/packages/apps/kubernetes/values.schema.json b/packages/apps/kubernetes/values.schema.json index 3733aa96..99ecc00c 100644 --- a/packages/apps/kubernetes/values.schema.json +++ b/packages/apps/kubernetes/values.schema.json @@ -4,6 +4,7 @@ "properties": { "addons": { "description": "Cluster addons configuration", + "type": "object", "default": { "certManager": { "enabled": false, @@ -40,10 +41,247 @@ "verticalPodAutoscaler": { "valuesOverride": {} } + }, + "required": [ + "certManager", + "cilium", + "fluxcd", + "gatewayAPI", + "gpuOperator", + "ingressNginx", + "monitoringAgents", + "velero", + "verticalPodAutoscaler" + ], + "properties": { + "certManager": { + "description": "Cert-manager: automatically creates and manages SSL/TLS certificate", + "type": "object", + "default": { + "enabled": false, + "valuesOverride": {} + }, + "required": [ + "enabled", + "valuesOverride" + ], + "properties": { + "enabled": { + "description": "Enable cert-manager, which automatically creates and manages SSL/TLS certificates.", + "type": "boolean", + "default": false + }, + "valuesOverride": { + "description": "Custom values to override", + "type": "object", + "default": {}, + "x-kubernetes-preserve-unknown-fields": true + } + } + }, + "cilium": { + "description": "Cilium CNI plugin", + "type": "object", + "default": { + "valuesOverride": {} + }, + "required": [ + "valuesOverride" + ], + "properties": { + "valuesOverride": { + "description": "Custom values to override", + "type": "object", + "default": {}, + "x-kubernetes-preserve-unknown-fields": true + } + } + }, + "fluxcd": { + "description": "Flux CD", + "type": "object", + "default": { + "enabled": false, + "valuesOverride": {} + }, + "required": [ + "enabled", + "valuesOverride" + ], + "properties": { + "enabled": { + "description": "Enable FluxCD", + "type": "boolean", + "default": false + }, + "valuesOverride": { + "description": "Custom values to override", + "type": "object", + "default": {}, + "x-kubernetes-preserve-unknown-fields": true + } + } + }, + "gatewayAPI": { + "description": "Gateway API", + "type": "object", + "default": { + "enabled": false + }, + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "description": "Enable the Gateway API", + "type": "boolean", + "default": false + } + } + }, + "gpuOperator": { + "description": "GPU-operator: NVIDIA GPU Operator", + "type": "object", + "default": { + "enabled": false, + "valuesOverride": {} + }, + "required": [ + "enabled", + "valuesOverride" + ], + "properties": { + "enabled": { + "description": "Enable the GPU-operator", + "type": "boolean", + "default": false + }, + "valuesOverride": { + "description": "Custom values to override", + "type": "object", + "default": {}, + "x-kubernetes-preserve-unknown-fields": true + } + } + }, + "ingressNginx": { + "description": "Ingress-NGINX Controller", + "type": "object", + "default": { + "enabled": false, + "exposeMethod": "Proxied", + "hosts": {}, + "valuesOverride": {} + }, + "required": [ + "enabled", + "exposeMethod", + "valuesOverride" + ], + "properties": { + "enabled": { + "description": "Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role).", + "type": "boolean", + "default": false + }, + "exposeMethod": { + "description": "Method to expose the Ingress-NGINX controller. Allowed values: `Proxied`, `LoadBalancer`.", + "type": "string", + "default": "Proxied", + "enum": [ + "Proxied", + "LoadBalancer" + ] + }, + "hosts": { + "description": "List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "valuesOverride": { + "description": "Custom values to override", + "type": "object", + "default": {}, + "x-kubernetes-preserve-unknown-fields": true + } + } + }, + "monitoringAgents": { + "description": "MonitoringAgents", + "type": "object", + "default": { + "enabled": false, + "valuesOverride": {} + }, + "required": [ + "enabled", + "valuesOverride" + ], + "properties": { + "enabled": { + "description": "Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage.", + "type": "boolean", + "default": false + }, + "valuesOverride": { + "description": "Custom values to override", + "type": "object", + "default": {}, + "x-kubernetes-preserve-unknown-fields": true + } + } + }, + "velero": { + "description": "Velero", + "type": "object", + "default": { + "enabled": false, + "valuesOverride": {} + }, + "required": [ + "enabled", + "valuesOverride" + ], + "properties": { + "enabled": { + "description": "Enable Velero for backup and recovery of a tenant Kubernetes cluster.", + "type": "boolean", + "default": false + }, + "valuesOverride": { + "description": "Custom values to override", + "type": "object", + "default": {}, + "x-kubernetes-preserve-unknown-fields": true + } + } + }, + "verticalPodAutoscaler": { + "description": "VerticalPodAutoscaler", + "type": "object", + "default": { + "valuesOverride": {} + }, + "required": [ + "valuesOverride" + ], + "properties": { + "valuesOverride": { + "description": "Custom values to override", + "type": "object", + "default": {}, + "x-kubernetes-preserve-unknown-fields": true + } + } + } } }, "controlPlane": { "description": "Control Plane Configuration", + "type": "object", "default": { "apiServer": { "resources": {}, @@ -64,6 +302,279 @@ "resources": {}, "resourcesPreset": "micro" } + }, + "required": [ + "apiServer", + "controllerManager", + "konnectivity", + "replicas", + "scheduler" + ], + "properties": { + "apiServer": { + "description": "Control plane API server configuration.", + "type": "object", + "default": { + "resources": {}, + "resourcesPreset": "medium" + }, + "required": [ + "resources", + "resourcesPreset" + ], + "properties": { + "resources": { + "description": "Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied.", + "type": "object", + "default": {}, + "properties": { + "cpu": { + "description": "Available CPU", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "memory": { + "description": "Available memory (RAM)", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + } + } + }, + "resourcesPreset": { + "description": "Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge.", + "type": "string", + "default": "medium", + "enum": [ + "nano", + "micro", + "small", + "medium", + "large", + "xlarge", + "2xlarge" + ] + } + } + }, + "controllerManager": { + "description": "Controller Manager configuration.", + "type": "object", + "default": { + "resources": {}, + "resourcesPreset": "micro" + }, + "required": [ + "resources", + "resourcesPreset" + ], + "properties": { + "resources": { + "description": "Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied.", + "type": "object", + "default": {}, + "properties": { + "cpu": { + "description": "Available CPU", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "memory": { + "description": "Available memory (RAM)", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + } + } + }, + "resourcesPreset": { + "description": "Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge.", + "type": "string", + "default": "micro", + "enum": [ + "nano", + "micro", + "small", + "medium", + "large", + "xlarge", + "2xlarge" + ] + } + } + }, + "konnectivity": { + "description": "Konnectivity configuration.", + "type": "object", + "default": { + "server": { + "resources": {}, + "resourcesPreset": "micro" + } + }, + "required": [ + "server" + ], + "properties": { + "server": { + "description": "Konnectivity server configuration.", + "type": "object", + "default": { + "resources": {}, + "resourcesPreset": "micro" + }, + "required": [ + "resources", + "resourcesPreset" + ], + "properties": { + "resources": { + "description": "Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied.", + "type": "object", + "default": {}, + "properties": { + "cpu": { + "description": "Available CPU", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "memory": { + "description": "Available memory (RAM)", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + } + } + }, + "resourcesPreset": { + "description": "Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge.", + "type": "string", + "default": "micro", + "enum": [ + "nano", + "micro", + "small", + "medium", + "large", + "xlarge", + "2xlarge" + ] + } + } + } + } + }, + "replicas": { + "description": "Number of replicas for Kubernetes control plane components.", + "type": "integer", + "default": 2 + }, + "scheduler": { + "description": "Scheduler configuration.", + "type": "object", + "default": { + "resources": {}, + "resourcesPreset": "micro" + }, + "required": [ + "resources", + "resourcesPreset" + ], + "properties": { + "resources": { + "description": "Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied.", + "type": "object", + "default": {}, + "properties": { + "cpu": { + "description": "Available CPU", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "memory": { + "description": "Available memory (RAM)", + "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + } + } + }, + "resourcesPreset": { + "description": "Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge.", + "type": "string", + "default": "micro", + "enum": [ + "nano", + "micro", + "small", + "medium", + "large", + "xlarge", + "2xlarge" + ] + } + } + } } }, "host": { @@ -73,6 +584,22 @@ "nodeGroups": { "description": "Worker nodes configuration", "type": "object", + "default": { + "md0": { + "ephemeralStorage": "20Gi", + "gpus": {}, + "instanceType": "u1.medium", + "maxReplicas": 10, + "minReplicas": 0, + "resources": { + "cpu": "", + "memory": "" + }, + "roles": [ + "ingress-nginx" + ] + } + }, "additionalProperties": { "type": "object", "required": [ diff --git a/packages/apps/kubernetes/values.yaml b/packages/apps/kubernetes/values.yaml index 3e514ff7..83f5886c 100644 --- a/packages/apps/kubernetes/values.yaml +++ b/packages/apps/kubernetes/values.yaml @@ -22,25 +22,21 @@ host: "" ## @field node.gpus {[]gpu} List of GPUs to attach (WARN: NVIDIA driver requires at least 4 GiB of RAM) ## @field gpu.name {string} Name of GPU, such as "nvidia.com/AD102GL_L40S" ## -#nodeGroups: -# md0: -# minReplicas: 0 -# maxReplicas: 10 -# instanceType: "u1.medium" -# ephemeralStorage: 20Gi -# roles: -# - ingress-nginx -# -# resources: -# cpu: "" -# memory: "" -# -# ## List of GPUs to attach (WARN: NVIDIA driver requires at least 4 GiB of RAM) -# ## e.g: -# ## instanceType: "u1.xlarge" -# ## gpus: -# ## - name: nvidia.com/AD102GL_L40S -# gpus: [] +nodeGroups: + md0: + minReplicas: 0 + maxReplicas: 10 + instanceType: "u1.medium" + ephemeralStorage: 20Gi + roles: + - ingress-nginx + resources: {} + ## List of GPUs to attach (WARN: NVIDIA driver requires at least 4 GiB of RAM) + ## e.g: + ## instanceType: "u1.xlarge" + ## gpus: + ## - name: nvidia.com/AD102GL_L40S + gpus: [] ## @section Cluster Addons @@ -50,53 +46,53 @@ addons: ## @field addons.certManager {certManager} Cert-manager: automatically creates and manages SSL/TLS certificate ## certManager: - ## @field addons.certManager.enabled {bool} Enable cert-manager, which automatically creates and manages SSL/TLS certificates. + ## @field certManager.enabled {bool} Enable cert-manager, which automatically creates and manages SSL/TLS certificates. enabled: false - ## @field addons.certManager.valuesOverride {map[string}value} Custom values to override + ## @field certManager.valuesOverride {object} Custom values to override valuesOverride: {} ## @field addons.cilium {cilium} Cilium CNI plugin ## cilium: - ## @field addons.cilium.valuesOverride {map[string}value} Custom values to override + ## @field cilium.valuesOverride {object} Custom values to override valuesOverride: {} ## @field addons.gatewayAPI {gatewayAPI} Gateway API ## gatewayAPI: - ## @field addons.gatewayAPI.enabled {bool} Enable the Gateway API + ## @field gatewayAPI.enabled {bool} Enable the Gateway API enabled: false ## @field addons.ingressNginx {ingressNginx} Ingress-NGINX Controller ## ingressNginx: - ## @field addons.ingressNginx.enabled {bool} Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). + ## @field ingressNginx.enabled {bool} Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). enabled: false - ## @field addons.ingressNginx.exposeMethod {string enum:"Proxied,LoadBalancer"} Method to expose the Ingress-NGINX controller. Allowed values: `Proxied`, `LoadBalancer`. + ## @field ingressNginx.exposeMethod {string enum:"Proxied,LoadBalancer"} Method to expose the Ingress-NGINX controller. Allowed values: `Proxied`, `LoadBalancer`. exposeMethod: Proxied - ## @field addons.ingressNginx.hosts {[]string} List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`. + ## @field ingressNginx.hosts {[]string} List of domain names that the parent cluster should route to this tenant cluster. Taken into account only when `exposeMethod` is set to `Proxied`. ## e.g: ## hosts: ## - example.org ## - foo.example.net ## hosts: [] - ## @field addons.ingressNginx.valuesOverride {map[string}value} Custom values to override + ## @field ingressNginx.valuesOverride {object} Custom values to override valuesOverride: {} ## @field addons.gpuOperator {gpuOperator} GPU-operator: NVIDIA GPU Operator ## gpuOperator: - ## @field addons.gpuOperator.enabled {bool} Enable the GPU-operator - ## @field addons.gpuOperator.valuesOverride {map[string]value} Custom values to override + ## @field gpuOperator.enabled {bool} Enable the GPU-operator + ## @field gpuOperator.valuesOverride {object} Custom values to override enabled: false valuesOverride: {} ## @field addons.fluxcd {fluxcd} Flux CD ## fluxcd: - ## @field addons.fluxcd.enabled {bool} Enable FluxCD - ## @field addons.fluxcd.valuesOverride {map[string]value} Custom values to override + ## @field fluxcd.enabled {bool} Enable FluxCD + ## @field fluxcd.valuesOverride {object} Custom values to override ## enabled: false valuesOverride: {} @@ -104,8 +100,8 @@ addons: ## @field addons.monitoringAgents {monitoringAgents} MonitoringAgents ## monitoringAgents: - ## @field addons.monitoringAgents.enabled {bool} Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage. - ## @field addons.monitoringAgents.valuesOverride {map[string]value} Custom values to override + ## @field monitoringAgents.enabled {bool} Enable monitoring agents (Fluent Bit and VMAgents) to send logs and metrics. If tenant monitoring is enabled, data is sent to tenant storage; otherwise, it goes to root storage. + ## @field monitoringAgents.valuesOverride {object} Custom values to override ## enabled: false valuesOverride: {} @@ -113,15 +109,15 @@ addons: ## @field addons.verticalPodAutoscaler {verticalPodAutoscaler} VerticalPodAutoscaler ## verticalPodAutoscaler: - ## @field addons.verticalPodAutoscaler.valuesOverride {map[string]value} Custom values to override + ## @field verticalPodAutoscaler.valuesOverride {object} Custom values to override ## valuesOverride: {} ## @field addons.velero {velero} Velero ## velero: - ## @field addons.velero.enabled {bool} Enable Velero for backup and recovery of a tenant Kubernetes cluster. - ## @field addons.velero.valuesOverride {map[string]value} Custom values to override + ## @field velero.enabled {bool} Enable Velero for backup and recovery of a tenant Kubernetes cluster. + ## @field velero.valuesOverride {object} Custom values to override ## enabled: false valuesOverride: {} @@ -134,42 +130,35 @@ controlPlane: replicas: 2 ## @field controlPlane.apiServer {apiServer} Control plane API server configuration. apiServer: - ## @field controlPlane.apiServer.resources {resources} Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field controlPlane.apiServer.resources.cpu {*quantity} Available CPU - ## @field controlPlane.apiServer.resources.memory {*quantity} Available memory (RAM) - resources: {} - ## @field controlPlane.apiServer.resourcesPreset {string enum:"nano,micro,small,medium,large,xlarge,2xlarge"} Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. + ## @field apiServer.resources {resources} Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied. ## e.g: ## resources: ## cpu: 4000m ## memory: 4Gi ## + resources: {} + ## @field apiServer.resourcesPreset {string enum:"nano,micro,small,medium,large,xlarge,2xlarge"} Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. resourcesPreset: "medium" ## @field controlPlane.controllerManager {controllerManager} Controller Manager configuration. controllerManager: - ## @field controlPlane.controllerManager.resources {resources} Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field controlPlane.controllerManager.resources.cpu {*quantity} Available CPU - ## @field controlPlane.controllerManager.resources.memory {*quantity} Available memory (RAM) - ## @field controlPlane.controllerManager.resourcesPreset {string enum:"nano,micro,small,medium,large,xlarge,2xlarge"} Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. + ## @field controllerManager.resources {resources} Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied. + ## @field controllerManager.resourcesPreset {string enum:"nano,micro,small,medium,large,xlarge,2xlarge"} Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. resourcesPreset: "micro" resources: {} ## @field controlPlane.scheduler {scheduler} Scheduler configuration. scheduler: - ## @field controlPlane.scheduler.resources {resources} Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field controlPlane.scheduler.resources.cpu {*quantity} Available CPU - ## @field controlPlane.scheduler.resources.memory {*quantity} Available memory (RAM) - ## @field controlPlane.scheduler.resourcesPreset {string enum:"nano,micro,small,medium,large,xlarge,2xlarge"} Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. + ## @field scheduler.resources {resources} Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied. + ## @field scheduler.resourcesPreset {string enum:"nano,micro,small,medium,large,xlarge,2xlarge"} Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. resourcesPreset: "micro" resources: {} ## @field controlPlane.konnectivity {konnectivity} Konnectivity configuration. konnectivity: + ## @field konnectivity.server {konnectivityServer} Konnectivity server configuration. server: - ## @field controlPlane.konnectivity.server.resources {resources} Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field controlPlane.konnectivity.resources.cpu {*quantity} Available CPU - ## @field controlPlane.konnectivity.resources.memory {*quantity} Available memory (RAM) - ## @field controlPlane.konnectivity.server.resourcesPreset {string enum:"nano,micro,small,medium,large,xlarge,2xlarge"} Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. + ## @field konnectivityServer.resources {resources} Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied. + ## @field konnectivityServer.resourcesPreset {string enum:"nano,micro,small,medium,large,xlarge,2xlarge"} Default sizing preset used when `resources` is omitted. Allowed values: nano, micro, small, medium, large, xlarge, 2xlarge. resourcesPreset: "micro" resources: {} diff --git a/packages/apps/mysql/README.md b/packages/apps/mysql/README.md index 013a667c..45db61da 100644 --- a/packages/apps/mysql/README.md +++ b/packages/apps/mysql/README.md @@ -74,6 +74,8 @@ more details: | `resources` | Explicit CPU and memory configuration for each MariaDB replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `{}` | | `resources.cpu` | CPU | `*quantity` | `null` | | `resources.memory` | Memory | `*quantity` | `null` | +| `resources.cpu` | CPU | `*quantity` | `null` | +| `resources.memory` | Memory | `*quantity` | `null` | | `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `nano` | | `size` | Persistent Volume Claim size, available for application data | `quantity` | `10Gi` | | `storageClass` | StorageClass used to store the data | `string` | `""` | @@ -87,25 +89,42 @@ more details: | `users` | Users configuration | `map[string]object` | `{...}` | | `users[name].password` | Password for the user | `string` | `""` | | `users[name].maxUserConnections` | Maximum amount of connections | `int` | `0` | +| `users[name].password` | Password for the user | `string` | `""` | +| `users[name].maxUserConnections` | Maximum amount of connections | `int` | `0` | | `databases` | Databases configuration | `map[string]object` | `{...}` | | `databases[name].roles` | Roles for the database | `*object` | `null` | | `databases[name].roles.admin` | List of users with admin privileges | `[]string` | `[]` | | `databases[name].roles.readonly` | List of users with read-only privileges | `[]string` | `[]` | +| `databases[name].roles.admin` | List of users with admin privileges | `[]string` | `[]` | +| `databases[name].roles.readonly` | List of users with read-only privileges | `[]string` | `[]` | +| `databases[name].roles` | Roles for the database | `*object` | `null` | +| `databases[name].roles.admin` | List of users with admin privileges | `[]string` | `[]` | +| `databases[name].roles.readonly` | List of users with read-only privileges | `[]string` | `[]` | +| `databases[name].roles.admin` | List of users with admin privileges | `[]string` | `[]` | +| `databases[name].roles.readonly` | List of users with read-only privileges | `[]string` | `[]` | ### Backup parameters -| Name | Description | Type | Value | -| ------------------------ | ---------------------------------------------- | --------- | ------------------------------------------------------ | -| `backup` | Backup configuration | `object` | `{}` | -| `backup.enabled` | Enable regular backups, default is `false`. | `*bool` | `false` | -| `backup.s3Region` | AWS S3 region where backups are stored | `*string` | `us-east-1` | -| `backup.s3Bucket` | S3 bucket used for storing backups | `*string` | `s3.example.org/postgres-backups` | -| `backup.schedule` | Cron schedule for automated backups | `*string` | `0 2 * * *` | -| `backup.cleanupStrategy` | Retention strategy for cleaning up old backups | `*string` | `--keep-last=3 --keep-daily=3 --keep-within-weekly=1m` | -| `backup.s3AccessKey` | Access key for S3, used for authentication | `*string` | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` | -| `backup.s3SecretKey` | Secret key for S3, used for authentication | `*string` | `ju3eum4dekeich9ahM1te8waeGai0oog` | -| `backup.resticPassword` | Password for Restic backup encryption | `*string` | `ChaXoveekoh6eigh4siesheeda2quai0` | +| Name | Description | Type | Value | +| ------------------------ | ---------------------------------------------- | -------- | ------------------------------------------------------ | +| `backup` | Backup configuration | `object` | `{}` | +| `backup.enabled` | Enable regular backups, default is `false`. | `bool` | `false` | +| `backup.s3Region` | AWS S3 region where backups are stored | `string` | `us-east-1` | +| `backup.s3Bucket` | S3 bucket used for storing backups | `string` | `s3.example.org/postgres-backups` | +| `backup.schedule` | Cron schedule for automated backups | `string` | `0 2 * * *` | +| `backup.cleanupStrategy` | Retention strategy for cleaning up old backups | `string` | `--keep-last=3 --keep-daily=3 --keep-within-weekly=1m` | +| `backup.s3AccessKey` | Access key for S3, used for authentication | `string` | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` | +| `backup.s3SecretKey` | Secret key for S3, used for authentication | `string` | `ju3eum4dekeich9ahM1te8waeGai0oog` | +| `backup.resticPassword` | Password for Restic backup encryption | `string` | `ChaXoveekoh6eigh4siesheeda2quai0` | +| `backup.enabled` | Enable regular backups, default is `false`. | `bool` | `false` | +| `backup.s3Region` | AWS S3 region where backups are stored | `string` | `us-east-1` | +| `backup.s3Bucket` | S3 bucket used for storing backups | `string` | `s3.example.org/postgres-backups` | +| `backup.schedule` | Cron schedule for automated backups | `string` | `0 2 * * *` | +| `backup.cleanupStrategy` | Retention strategy for cleaning up old backups | `string` | `--keep-last=3 --keep-daily=3 --keep-within-weekly=1m` | +| `backup.s3AccessKey` | Access key for S3, used for authentication | `string` | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` | +| `backup.s3SecretKey` | Secret key for S3, used for authentication | `string` | `ju3eum4dekeich9ahM1te8waeGai0oog` | +| `backup.resticPassword` | Password for Restic backup encryption | `string` | `ChaXoveekoh6eigh4siesheeda2quai0` | ## Parameter examples and reference diff --git a/packages/apps/mysql/values.schema.json b/packages/apps/mysql/values.schema.json index 310d45ab..9cfb09fd 100644 --- a/packages/apps/mysql/values.schema.json +++ b/packages/apps/mysql/values.schema.json @@ -15,6 +15,16 @@ "s3SecretKey": "ju3eum4dekeich9ahM1te8waeGai0oog", "schedule": "0 2 * * *" }, + "required": [ + "cleanupStrategy", + "enabled", + "resticPassword", + "s3AccessKey", + "s3Bucket", + "s3Region", + "s3SecretKey", + "schedule" + ], "properties": { "cleanupStrategy": { "description": "Retention strategy for cleaning up old backups", diff --git a/packages/apps/mysql/values.yaml b/packages/apps/mysql/values.yaml index 6ee40e59..0c4959f5 100644 --- a/packages/apps/mysql/values.yaml +++ b/packages/apps/mysql/values.yaml @@ -53,14 +53,14 @@ databases: {} ## @section Backup parameters ## ## @param backup {backup} Backup configuration -## @field backup.enabled {*bool} Enable regular backups, default is `false`. -## @field backup.s3Region {*string} AWS S3 region where backups are stored -## @field backup.s3Bucket {*string} S3 bucket used for storing backups -## @field backup.schedule {*string} Cron schedule for automated backups -## @field backup.cleanupStrategy {*string} Retention strategy for cleaning up old backups -## @field backup.s3AccessKey {*string} Access key for S3, used for authentication -## @field backup.s3SecretKey {*string} Secret key for S3, used for authentication -## @field backup.resticPassword {*string} Password for Restic backup encryption +## @field backup.enabled {bool} Enable regular backups, default is `false`. +## @field backup.s3Region {string} AWS S3 region where backups are stored +## @field backup.s3Bucket {string} S3 bucket used for storing backups +## @field backup.schedule {string} Cron schedule for automated backups +## @field backup.cleanupStrategy {string} Retention strategy for cleaning up old backups +## @field backup.s3AccessKey {string} Access key for S3, used for authentication +## @field backup.s3SecretKey {string} Secret key for S3, used for authentication +## @field backup.resticPassword {string} Password for Restic backup encryption backup: enabled: false s3Region: us-east-1 diff --git a/packages/apps/nats/README.md b/packages/apps/nats/README.md index 30883c90..04359409 100644 --- a/packages/apps/nats/README.md +++ b/packages/apps/nats/README.md @@ -28,8 +28,8 @@ It provides a data layer for cloud native applications, IoT messaging, and micro | `jetstream.enabled` | Enable or disable Jetstream. Set to `true` (default) to enable Jetstream for persistent messaging in NATS. | `bool` | `true` | | `jetstream.size` | Jetstream persistent storage size. Specifies the size of the persistent storage for Jetstream (message store). | `quantity` | `10Gi` | | `config` | NATS configuration | `object` | `{}` | -| `config.merge` | Additional configuration to merge into NATS config (see example) | `*object` | `null` | -| `config.resolver` | Additional resolver configuration to merge into NATS config (see example) | `object` | `{}` | +| `config.merge` | Additional configuration to merge into NATS config (see example) | `*object` | `{}` | +| `config.resolver` | Additional resolver configuration to merge into NATS config (see example) | `*object` | `{}` | ## Parameter examples and reference diff --git a/packages/apps/nats/values.yaml b/packages/apps/nats/values.yaml index 70b92490..f948f97d 100644 --- a/packages/apps/nats/values.yaml +++ b/packages/apps/nats/values.yaml @@ -39,7 +39,7 @@ jetstream: ## @param config {config} NATS configuration config: - ## @field config.merge {*merge} Additional configuration to merge into NATS config (see example) + ## @field config.merge {*object} Additional configuration to merge into NATS config (see example) ## Allows you to customize NATS server settings by merging additional configurations. ## For example, you can add extra parameters, configure authentication, or set custom settings. ## Default: {} @@ -67,7 +67,7 @@ config: ## include ./my-config-last.conf; ## } merge: {} - ## @field config.resolver {resolver} Additional resolver configuration to merge into NATS config (see example) + ## @field config.resolver {*object} Additional resolver configuration to merge into NATS config (see example) ## Allows you to customize NATS server settings by merging resolver configurations. ## Default: {} ## Example: https://github.com/nats-io/k8s/blob/94414664c254b0bbac3a07fc9693f6c4f8f88709/helm/charts/nats/values.yaml#L248-L270 diff --git a/packages/apps/postgres/README.md b/packages/apps/postgres/README.md index c312c3b7..f2e2a310 100644 --- a/packages/apps/postgres/README.md +++ b/packages/apps/postgres/README.md @@ -72,6 +72,8 @@ See: | `resources` | Explicit CPU and memory configuration for each PostgreSQL replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `{}` | | `resources.cpu` | CPU | `*quantity` | `null` | | `resources.memory` | Memory | `*quantity` | `null` | +| `resources.cpu` | CPU | `*quantity` | `null` | +| `resources.memory` | Memory | `*quantity` | `null` | | `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `micro` | | `size` | Persistent Volume Claim size, available for application data | `quantity` | `10Gi` | | `storageClass` | StorageClass used to store the data | `string` | `""` | @@ -85,16 +87,32 @@ See: | `postgresql` | PostgreSQL server configuration | `object` | `{}` | | `postgresql.parameters` | PostgreSQL server parameters | `object` | `{}` | | `postgresql.parameters.max_connections` | Determines the maximum number of concurrent connections to the database server. The default is typically 100 connections | `int` | `100` | +| `postgresql.parameters.max_connections` | Determines the maximum number of concurrent connections to the database server. The default is typically 100 connections | `int` | `100` | +| `postgresql.parameters` | PostgreSQL server parameters | `object` | `{}` | +| `postgresql.parameters.max_connections` | Determines the maximum number of concurrent connections to the database server. The default is typically 100 connections | `int` | `100` | +| `postgresql.parameters.max_connections` | Determines the maximum number of concurrent connections to the database server. The default is typically 100 connections | `int` | `100` | | `quorum` | Quorum configuration for synchronous replication | `object` | `{}` | | `quorum.minSyncReplicas` | Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed. | `int` | `0` | | `quorum.maxSyncReplicas` | Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances). | `int` | `0` | +| `quorum.minSyncReplicas` | Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed. | `int` | `0` | +| `quorum.maxSyncReplicas` | Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances). | `int` | `0` | | `users` | Users configuration | `map[string]object` | `{...}` | | `users[name].password` | Password for the user | `*string` | `null` | | `users[name].replication` | Whether the user has replication privileges | `*bool` | `null` | +| `users[name].password` | Password for the user | `*string` | `null` | +| `users[name].replication` | Whether the user has replication privileges | `*bool` | `null` | | `databases` | Databases configuration | `map[string]object` | `{...}` | | `databases[name].roles` | Roles for the database | `*object` | `null` | | `databases[name].roles.admin` | List of users with admin privileges | `[]string` | `[]` | | `databases[name].roles.readonly` | List of users with read-only privileges | `[]string` | `[]` | +| `databases[name].roles.admin` | List of users with admin privileges | `[]string` | `[]` | +| `databases[name].roles.readonly` | List of users with read-only privileges | `[]string` | `[]` | +| `databases[name].extensions` | Extensions enabled for the database | `[]string` | `[]` | +| `databases[name].roles` | Roles for the database | `*object` | `null` | +| `databases[name].roles.admin` | List of users with admin privileges | `[]string` | `[]` | +| `databases[name].roles.readonly` | List of users with read-only privileges | `[]string` | `[]` | +| `databases[name].roles.admin` | List of users with admin privileges | `[]string` | `[]` | +| `databases[name].roles.readonly` | List of users with read-only privileges | `[]string` | `[]` | | `databases[name].extensions` | Extensions enabled for the database | `[]string` | `[]` | @@ -110,6 +128,13 @@ See: | `backup.endpointURL` | S3 Endpoint used to upload data to the cloud | `*string` | `http://minio-gateway-service:9000` | | `backup.s3AccessKey` | Access key for S3, used for authentication | `*string` | `` | | `backup.s3SecretKey` | Secret key for S3, used for authentication | `*string` | `` | +| `backup.enabled` | Enable regular backups | `*bool` | `false` | +| `backup.schedule` | Cron schedule for automated backups | `*string` | `0 2 * * * *` | +| `backup.retentionPolicy` | Retention policy | `*string` | `30d` | +| `backup.destinationPath` | Path to store the backup (i.e. s3://bucket/path/to/folder) | `*string` | `s3://bucket/path/to/folder/` | +| `backup.endpointURL` | S3 Endpoint used to upload data to the cloud | `*string` | `http://minio-gateway-service:9000` | +| `backup.s3AccessKey` | Access key for S3, used for authentication | `*string` | `` | +| `backup.s3SecretKey` | Secret key for S3, used for authentication | `*string` | `` | ### Bootstrap (recovery) parameters @@ -120,6 +145,9 @@ See: | `bootstrap.enabled` | Restore database cluster from a backup | `bool` | `false` | | `bootstrap.recoveryTime` | Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest | `*string` | `""` | | `bootstrap.oldName` | Name of database cluster before deleting | `string` | `""` | +| `bootstrap.enabled` | Restore database cluster from a backup | `bool` | `false` | +| `bootstrap.recoveryTime` | Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest | `*string` | `""` | +| `bootstrap.oldName` | Name of database cluster before deleting | `string` | `""` | ## Parameter examples and reference diff --git a/packages/apps/rabbitmq/README.md b/packages/apps/rabbitmq/README.md index 3ef8f9ee..cfcf32e9 100644 --- a/packages/apps/rabbitmq/README.md +++ b/packages/apps/rabbitmq/README.md @@ -33,12 +33,12 @@ The service utilizes official RabbitMQ operator. This ensures the reliability an | `users[name].password` | Password for the user | `*string` | `null` | | `vhosts` | Virtual Hosts configuration | `map[string]object` | `{...}` | | `vhosts[name].roles` | Virtual host roles list | `object` | `{}` | -| `vhosts[name].roles.admin` | List of admin users | `[]*string` | `[]` | -| `vhosts[name].roles.readonly` | List of readonly users | `[]*string` | `[]` | +| `vhosts[name].roles.admin` | List of admin users | `[]string` | `[]` | +| `vhosts[name].roles.readonly` | List of readonly users | `[]string` | `[]` | | `vhost` | Virtual Host | `object` | `{}` | | `vhost.roles` | Virtual host roles list | `object` | `{}` | -| `vhost.roles.admin` | List of admin users | `[]*string` | `[]` | -| `vhost.roles.readonly` | List of readonly users | `[]*string` | `[]` | +| `vhost.roles.admin` | List of admin users | `[]string` | `[]` | +| `vhost.roles.readonly` | List of readonly users | `[]string` | `[]` | ## Parameter examples and reference diff --git a/packages/apps/rabbitmq/values.yaml b/packages/apps/rabbitmq/values.yaml index dbf68d3f..b5034b51 100644 --- a/packages/apps/rabbitmq/values.yaml +++ b/packages/apps/rabbitmq/values.yaml @@ -38,8 +38,8 @@ users: {} ## @param vhosts {map[string]vhost} Virtual Hosts configuration ## @param vhost {vhost} Virtual Host ## @field vhost.roles {roles} Virtual host roles list -## @field roles.admin {[]*string} List of admin users -## @field roles.readonly {[]*string} List of readonly users +## @field roles.admin {[]string} List of admin users +## @field roles.readonly {[]string} List of readonly users ## ## Example: ## vhosts: diff --git a/packages/apps/tcp-balancer/README.md b/packages/apps/tcp-balancer/README.md index 4e5eda0f..89eaea5f 100644 --- a/packages/apps/tcp-balancer/README.md +++ b/packages/apps/tcp-balancer/README.md @@ -18,6 +18,8 @@ Managed TCP Load Balancer Service efficiently utilizes HAProxy for load balancin | `resources` | Explicit CPU and memory configuration for each TCP Balancer replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | | `resources.cpu` | CPU | `*quantity` | `null` | | `resources.memory` | Memory | `*quantity` | `null` | +| `resources.cpu` | CPU | `*quantity` | `null` | +| `resources.memory` | Memory | `*quantity` | `null` | | `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `nano` | | `external` | Enable external access from outside the cluster | `bool` | `false` | @@ -31,6 +33,15 @@ Managed TCP Load Balancer Service efficiently utilizes HAProxy for load balancin | `httpAndHttps.targetPorts` | Target ports configuration | `object` | `{}` | | `httpAndHttps.targetPorts.http` | HTTP port number. | `int` | `80` | | `httpAndHttps.targetPorts.https` | HTTPS port number. | `int` | `443` | +| `httpAndHttps.targetPorts.http` | HTTP port number. | `int` | `80` | +| `httpAndHttps.targetPorts.https` | HTTPS port number. | `int` | `443` | +| `httpAndHttps.endpoints` | Endpoint addresses list | `[]string` | `[]` | +| `httpAndHttps.mode` | Mode for balancer. Allowed values: `tcp` and `tcp-with-proxy` | `string` | `tcp` | +| `httpAndHttps.targetPorts` | Target ports configuration | `object` | `{}` | +| `httpAndHttps.targetPorts.http` | HTTP port number. | `int` | `80` | +| `httpAndHttps.targetPorts.https` | HTTPS port number. | `int` | `443` | +| `httpAndHttps.targetPorts.http` | HTTP port number. | `int` | `80` | +| `httpAndHttps.targetPorts.https` | HTTPS port number. | `int` | `443` | | `httpAndHttps.endpoints` | Endpoint addresses list | `[]string` | `[]` | | `whitelistHTTP` | Secure HTTP by whitelisting client networks, `false` by default. | `bool` | `false` | | `whitelist` | List of allowed client networks | `[]string` | `[]` | diff --git a/packages/apps/vm-disk/README.md b/packages/apps/vm-disk/README.md index 5b2d096a..0b3dfe2b 100644 --- a/packages/apps/vm-disk/README.md +++ b/packages/apps/vm-disk/README.md @@ -6,10 +6,15 @@ A Virtual Machine Disk ### Common parameters -| Name | Description | Type | Value | -| -------------- | ------------------------------------------------------ | ---------- | ------------ | -| `source` | The source image location used to create a disk | `object` | `{}` | -| `optical` | Defines if disk should be considered optical | `bool` | `false` | -| `storage` | The size of the disk allocated for the virtual machine | `quantity` | `5Gi` | -| `storageClass` | StorageClass used to store the data | `string` | `replicated` | +| Name | Description | Type | Value | +| ------------------- | -------------------------------------------------------------------------------------------------------------------- | ---------- | ------------ | +| `source` | The source image location used to create a disk | `object` | `{}` | +| `source.image` | Use image by name: uploaded as "golden image" or from the list: `ubuntu`, `fedora`, `cirros`, `alpine`, and `talos`. | `*object` | `null` | +| `source.image.name` | Name of the image to use | `string` | `""` | +| `source.upload` | Upload local image | `*object` | `null` | +| `source.http` | Download image from an HTTP source | `*object` | `null` | +| `source.http.url` | URL to download the image | `string` | `""` | +| `optical` | Defines if disk should be considered optical | `bool` | `false` | +| `storage` | The size of the disk allocated for the virtual machine | `quantity` | `5Gi` | +| `storageClass` | StorageClass used to store the data | `string` | `replicated` | diff --git a/packages/apps/vm-disk/values.schema.json b/packages/apps/vm-disk/values.schema.json index 2e0762c9..530ff45c 100644 --- a/packages/apps/vm-disk/values.schema.json +++ b/packages/apps/vm-disk/values.schema.json @@ -14,15 +14,33 @@ "properties": { "http": { "description": "Download image from an HTTP source", - "type": "string" + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "description": "URL to download the image", + "type": "string" + } + } }, "image": { "description": "Use image by name: uploaded as \"golden image\" or from the list: `ubuntu`, `fedora`, `cirros`, `alpine`, and `talos`.", - "type": "string" + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "Name of the image to use", + "type": "string" + } + } }, "upload": { "description": "Upload local image", - "type": "string" + "type": "object" } } }, diff --git a/packages/apps/vm-disk/values.yaml b/packages/apps/vm-disk/values.yaml index fb844431..2679cfaa 100644 --- a/packages/apps/vm-disk/values.yaml +++ b/packages/apps/vm-disk/values.yaml @@ -1,19 +1,20 @@ ## @section Common parameters ## @param source {source} The source image location used to create a disk -## @field source.image {*string} Use image by name: uploaded as "golden image" or from the list: `ubuntu`, `fedora`, `cirros`, `alpine`, and `talos`. +## @field source.image {*uploadImage} Use image by name: uploaded as "golden image" or from the list: `ubuntu`, `fedora`, `cirros`, `alpine`, and `talos`. +## @field uploadImage.name {string} Name of the image to use ## Example using golden image: ## source: ## image: ## name: ubuntu ## -## @field source.upload {*string} Upload local image +## @field source.upload {*emptyobject} Upload local image ## Example upload local image: ## source: ## upload: {} ## -## @field source.http {*string} Download image from an HTTP source -## @field source.http.url {*string} URL to download the image +## @field source.http {*uploadHTTP} Download image from an HTTP source +## @field uploadHTTP.url {string} URL to download the image ## Example download image from http source: ## source: ## http: diff --git a/packages/apps/vm-instance/README.md b/packages/apps/vm-instance/README.md index d56c95ca..d6c1d2db 100644 --- a/packages/apps/vm-instance/README.md +++ b/packages/apps/vm-instance/README.md @@ -54,7 +54,7 @@ virtctl ssh @ | `resources.memory` | The amount of memory allocated to the virtual machine | `*quantity` | `null` | | `resources.sockets` | The number of CPU sockets allocated to the virtual machine (used to define vCPU topology) | `*quantity` | `null` | | `sshKeys` | List of SSH public keys for authentication. Can be a single key or a list of keys. | `[]string` | `[]` | -| `cloudInit` | cloud-init user data config. See cloud-init documentation for more details: [format](https://cloudinit.readthedocs.io/en/latest/explanation/format.html), [examples](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). | `object` | `""` | +| `cloudInit` | cloud-init user data config. See cloud-init documentation for more details: [format](https://cloudinit.readthedocs.io/en/latest/explanation/format.html), [examples](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). | `string` | `""` | | `cloudInitSeed` | A seed string to generate an SMBIOS UUID for the VM. | `string` | `""` | diff --git a/packages/apps/vm-instance/values.schema.json b/packages/apps/vm-instance/values.schema.json index 8cfb837f..639214f0 100644 --- a/packages/apps/vm-instance/values.schema.json +++ b/packages/apps/vm-instance/values.schema.json @@ -3,7 +3,8 @@ "type": "object", "properties": { "cloudInit": { - "description": "cloud-init user data config. See cloud-init documentation for more details: [format](https://cloudinit.readthedocs.io/en/latest/explanation/format.html), [examples](https://cloudinit.readthedocs.io/en/latest/explanation/format.html)." + "description": "cloud-init user data config. See cloud-init documentation for more details: [format](https://cloudinit.readthedocs.io/en/latest/explanation/format.html), [examples](https://cloudinit.readthedocs.io/en/latest/explanation/format.html).", + "type": "string" }, "cloudInitSeed": { "description": "A seed string to generate an SMBIOS UUID for the VM.", diff --git a/packages/apps/vm-instance/values.yaml b/packages/apps/vm-instance/values.yaml index a88e4b9f..99a24c6f 100644 --- a/packages/apps/vm-instance/values.yaml +++ b/packages/apps/vm-instance/values.yaml @@ -52,7 +52,7 @@ resources: {} ## sshKeys: [] -## @param cloudInit {cloudInit} cloud-init user data config. See cloud-init documentation for more details: [format](https://cloudinit.readthedocs.io/en/latest/explanation/format.html), [examples](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). +## @param cloudInit {string} cloud-init user data config. See cloud-init documentation for more details: [format](https://cloudinit.readthedocs.io/en/latest/explanation/format.html), [examples](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). ## - https://cloudinit.readthedocs.io/en/latest/explanation/format.html ## - https://cloudinit.readthedocs.io/en/latest/reference/examples.html ## Example: diff --git a/packages/extra/bootbox/README.md b/packages/extra/bootbox/README.md index a094b66f..51218bd1 100644 --- a/packages/extra/bootbox/README.md +++ b/packages/extra/bootbox/README.md @@ -15,6 +15,23 @@ | `machines[i].ip.address.address` | IP address | `string` | `""` | | `machines[i].ip.address.gateway` | IP gateway | `string` | `""` | | `machines[i].ip.address.netmask` | Netmask | `string` | `""` | +| `machines[i].ip.address.address` | IP address | `string` | `""` | +| `machines[i].ip.address.gateway` | IP gateway | `string` | `""` | +| `machines[i].ip.address.netmask` | Netmask | `string` | `""` | +| `machines[i].leaseTime` | Lease time | `int` | `0` | +| `machines[i].mac` | MAC addresses | `[]string` | `[]` | +| `machines[i].nameServers` | Name servers | `[]string` | `[]` | +| `machines[i].timeServers` | Time servers | `[]string` | `[]` | +| `machines[i].uefi` | UEFI | `bool` | `false` | +| `machines[i].hostname` | Hostname | `string` | `""` | +| `machines[i].arch` | Architecture | `string` | `""` | +| `machines[i].ip.address` | IP address | `object` | `{}` | +| `machines[i].ip.address.address` | IP address | `string` | `""` | +| `machines[i].ip.address.gateway` | IP gateway | `string` | `""` | +| `machines[i].ip.address.netmask` | Netmask | `string` | `""` | +| `machines[i].ip.address.address` | IP address | `string` | `""` | +| `machines[i].ip.address.gateway` | IP gateway | `string` | `""` | +| `machines[i].ip.address.netmask` | Netmask | `string` | `""` | | `machines[i].leaseTime` | Lease time | `int` | `0` | | `machines[i].mac` | MAC addresses | `[]string` | `[]` | | `machines[i].nameServers` | Name servers | `[]string` | `[]` | diff --git a/packages/extra/etcd/README.md b/packages/extra/etcd/README.md index 2ed8c5e8..b2b4e9f8 100644 --- a/packages/extra/etcd/README.md +++ b/packages/extra/etcd/README.md @@ -4,10 +4,14 @@ ### Common parameters -| Name | Description | Type | Value | -| -------------- | ----------------------------------- | ----------- | ----- | -| `size` | Persistent Volume size | `*quantity` | `4Gi` | -| `storageClass` | StorageClass used to store the data | `*string` | `""` | -| `replicas` | Number of etcd replicas | `*int` | `3` | -| `resources` | Resource configuration for etcd | `*object` | `{}` | +| Name | Description | Type | Value | +| ------------------ | ----------------------------------- | ----------- | ----- | +| `size` | Persistent Volume size | `*quantity` | `4Gi` | +| `storageClass` | StorageClass used to store the data | `*string` | `""` | +| `replicas` | Number of etcd replicas | `*int` | `3` | +| `resources` | Resource configuration for etcd | `*object` | `{}` | +| `resources.cpu` | The number of CPU cores allocated | `*quantity` | `4` | +| `resources.memory` | The amount of memory allocated | `*quantity` | `1Gi` | +| `resources.cpu` | The number of CPU cores allocated | `*quantity` | `4` | +| `resources.memory` | The amount of memory allocated | `*quantity` | `1Gi` | diff --git a/packages/extra/etcd/values.yaml b/packages/extra/etcd/values.yaml index cb3225b0..816cd5a7 100644 --- a/packages/extra/etcd/values.yaml +++ b/packages/extra/etcd/values.yaml @@ -9,8 +9,8 @@ storageClass: "" replicas: 3 ## @param resources {*resources} Resource configuration for etcd -## @param resources.cpu {*quantity} The number of CPU cores allocated -## @param resources.memory {*quantity} The amount of memory allocated +## @field resources.cpu {*quantity} The number of CPU cores allocated +## @field resources.memory {*quantity} The amount of memory allocated resources: cpu: 4 memory: 1Gi diff --git a/packages/extra/monitoring/README.md b/packages/extra/monitoring/README.md index 83602b03..0139f51d 100644 --- a/packages/extra/monitoring/README.md +++ b/packages/extra/monitoring/README.md @@ -23,23 +23,133 @@ | `metricsStorages[i].vminsert.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | | `metricsStorages[i].vminsert.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | | `metricsStorages[i].vminsert.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | | `metricsStorages[i].vminsert.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | | `metricsStorages[i].vminsert.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | | `metricsStorages[i].vminsert.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | +| `metricsStorages[i].vminsert.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | | `metricsStorages[i].vmselect` | Configuration for vmselect component of the storage instance | `*object` | `null` | | `metricsStorages[i].vmselect.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | | `metricsStorages[i].vmselect.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | | `metricsStorages[i].vmselect.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | | `metricsStorages[i].vmselect.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | | `metricsStorages[i].vmselect.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | | `metricsStorages[i].vmselect.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | +| `metricsStorages[i].vmselect.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | | `metricsStorages[i].vmstorage` | Configuration for vmstorage component of the storage instance | `*object` | `null` | | `metricsStorages[i].vmstorage.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | | `metricsStorages[i].vmstorage.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | | `metricsStorages[i].vmstorage.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | | `metricsStorages[i].vmstorage.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | | `metricsStorages[i].vmstorage.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | | `metricsStorages[i].vmstorage.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].name` | Name of the storage instance | `string` | `""` | +| `metricsStorages[i].retentionPeriod` | Retention period for the metrics in the storage instance | `string` | `""` | +| `metricsStorages[i].deduplicationInterval` | Deduplication interval for the metrics in the storage instance | `string` | `""` | +| `metricsStorages[i].storage` | Persistent Volume size for the storage instance | `string` | `""` | +| `metricsStorages[i].storageClassName` | StorageClass used to store the data | `*string` | `null` | +| `metricsStorages[i].vminsert` | Configuration for vminsert component of the storage instance | `*object` | `null` | +| `metricsStorages[i].vminsert.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | +| `metricsStorages[i].vminsert.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | +| `metricsStorages[i].vminsert.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vminsert.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect` | Configuration for vmselect component of the storage instance | `*object` | `null` | +| `metricsStorages[i].vmselect.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | +| `metricsStorages[i].vmselect.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | +| `metricsStorages[i].vmselect.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmselect.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage` | Configuration for vmstorage component of the storage instance | `*object` | `null` | +| `metricsStorages[i].vmstorage.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed` | Requests (minimum allowed/available resources) | `*object` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.cpu` | CPU request (minimum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.minAllowed.memory` | Memory request (minimum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed` | Limits (maximum allowed/available resources ) | `*object` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.cpu` | CPU limit (maximum available CPU) | `*quantity` | `null` | +| `metricsStorages[i].vmstorage.maxAllowed.memory` | Memory limit (maximum available memory) | `*quantity` | `null` | ### Logs storage configuration @@ -51,6 +161,10 @@ | `logsStorages[i].retentionPeriod` | Retention period for the logs in the storage instance | `string` | `""` | | `logsStorages[i].storage` | Persistent Volume size for the storage instance | `string` | `""` | | `logsStorages[i].storageClassName` | StorageClass used to store the data | `*string` | `null` | +| `logsStorages[i].name` | Name of the storage instance | `string` | `""` | +| `logsStorages[i].retentionPeriod` | Retention period for the logs in the storage instance | `string` | `""` | +| `logsStorages[i].storage` | Persistent Volume size for the storage instance | `string` | `""` | +| `logsStorages[i].storageClassName` | StorageClass used to store the data | `*string` | `null` | ### Alerta configuration @@ -64,14 +178,76 @@ | `alerta.resources.requests` | | `*object` | `null` | | `alerta.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | | `alerta.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `alerta.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `alerta.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | | `alerta.resources.limits` | | `*object` | `null` | | `alerta.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | | `alerta.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `alerta.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `alerta.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `alerta.resources.requests` | | `*object` | `null` | +| `alerta.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `alerta.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `alerta.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `alerta.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `alerta.resources.limits` | | `*object` | `null` | +| `alerta.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `alerta.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `alerta.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `alerta.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | | `alerta.alerts` | Configuration for alerts | `*object` | `null` | | `alerta.alerts.telegram` | Configuration for Telegram alerts | `*object` | `null` | | `alerta.alerts.telegram.token` | Telegram token for your bot | `string` | `""` | | `alerta.alerts.telegram.chatID` | Specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot | `string` | `""` | | `alerta.alerts.telegram.disabledSeverity` | List of severity without alerts, separated by comma like: "informational,warning" | `string` | `""` | +| `alerta.alerts.telegram.token` | Telegram token for your bot | `string` | `""` | +| `alerta.alerts.telegram.chatID` | Specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot | `string` | `""` | +| `alerta.alerts.telegram.disabledSeverity` | List of severity without alerts, separated by comma like: "informational,warning" | `string` | `""` | +| `alerta.alerts.telegram` | Configuration for Telegram alerts | `*object` | `null` | +| `alerta.alerts.telegram.token` | Telegram token for your bot | `string` | `""` | +| `alerta.alerts.telegram.chatID` | Specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot | `string` | `""` | +| `alerta.alerts.telegram.disabledSeverity` | List of severity without alerts, separated by comma like: "informational,warning" | `string` | `""` | +| `alerta.alerts.telegram.token` | Telegram token for your bot | `string` | `""` | +| `alerta.alerts.telegram.chatID` | Specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot | `string` | `""` | +| `alerta.alerts.telegram.disabledSeverity` | List of severity without alerts, separated by comma like: "informational,warning" | `string` | `""` | +| `alerta.storage` | Persistent Volume size for the database | `*string` | `10Gi` | +| `alerta.storageClassName` | StorageClass used to store the data | `*string` | `""` | +| `alerta.resources` | Resources configuration | `*object` | `null` | +| `alerta.resources.requests` | | `*object` | `null` | +| `alerta.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `alerta.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `alerta.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `alerta.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `alerta.resources.limits` | | `*object` | `null` | +| `alerta.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `alerta.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `alerta.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `alerta.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `alerta.resources.requests` | | `*object` | `null` | +| `alerta.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `alerta.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `alerta.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `alerta.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `alerta.resources.limits` | | `*object` | `null` | +| `alerta.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `alerta.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `alerta.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `alerta.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `alerta.alerts` | Configuration for alerts | `*object` | `null` | +| `alerta.alerts.telegram` | Configuration for Telegram alerts | `*object` | `null` | +| `alerta.alerts.telegram.token` | Telegram token for your bot | `string` | `""` | +| `alerta.alerts.telegram.chatID` | Specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot | `string` | `""` | +| `alerta.alerts.telegram.disabledSeverity` | List of severity without alerts, separated by comma like: "informational,warning" | `string` | `""` | +| `alerta.alerts.telegram.token` | Telegram token for your bot | `string` | `""` | +| `alerta.alerts.telegram.chatID` | Specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot | `string` | `""` | +| `alerta.alerts.telegram.disabledSeverity` | List of severity without alerts, separated by comma like: "informational,warning" | `string` | `""` | +| `alerta.alerts.telegram` | Configuration for Telegram alerts | `*object` | `null` | +| `alerta.alerts.telegram.token` | Telegram token for your bot | `string` | `""` | +| `alerta.alerts.telegram.chatID` | Specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot | `string` | `""` | +| `alerta.alerts.telegram.disabledSeverity` | List of severity without alerts, separated by comma like: "informational,warning" | `string` | `""` | +| `alerta.alerts.telegram.token` | Telegram token for your bot | `string` | `""` | +| `alerta.alerts.telegram.chatID` | Specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot | `string` | `""` | +| `alerta.alerts.telegram.disabledSeverity` | List of severity without alerts, separated by comma like: "informational,warning" | `string` | `""` | ### Grafana configuration @@ -81,11 +257,50 @@ | `grafana` | Configuration for Grafana | `object` | `{}` | | `grafana.db` | Database configuration | `*object` | `null` | | `grafana.db.size` | Persistent Volume size for the database | `*string` | `10Gi` | +| `grafana.db.size` | Persistent Volume size for the database | `*string` | `10Gi` | | `grafana.resources` | Resources configuration | `*object` | `null` | | `grafana.resources.requests` | | `*object` | `null` | | `grafana.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | | `grafana.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `grafana.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `grafana.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | | `grafana.resources.limits` | | `*object` | `null` | | `grafana.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | | `grafana.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `grafana.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `grafana.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `grafana.resources.requests` | | `*object` | `null` | +| `grafana.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `grafana.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `grafana.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `grafana.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `grafana.resources.limits` | | `*object` | `null` | +| `grafana.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `grafana.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `grafana.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `grafana.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `grafana.db` | Database configuration | `*object` | `null` | +| `grafana.db.size` | Persistent Volume size for the database | `*string` | `10Gi` | +| `grafana.db.size` | Persistent Volume size for the database | `*string` | `10Gi` | +| `grafana.resources` | Resources configuration | `*object` | `null` | +| `grafana.resources.requests` | | `*object` | `null` | +| `grafana.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `grafana.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `grafana.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `grafana.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `grafana.resources.limits` | | `*object` | `null` | +| `grafana.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `grafana.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `grafana.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `grafana.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `grafana.resources.requests` | | `*object` | `null` | +| `grafana.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `grafana.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `grafana.resources.requests.cpu` | CPU request (minimum available CPU) | `*quantity` | `100m` | +| `grafana.resources.requests.memory` | Memory request (minimum available memory) | `*quantity` | `256Mi` | +| `grafana.resources.limits` | | `*object` | `null` | +| `grafana.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `grafana.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | +| `grafana.resources.limits.cpu` | CPU limit (maximum available CPU) | `*quantity` | `1` | +| `grafana.resources.limits.memory` | Memory limit (maximum available memory) | `*quantity` | `1Gi` | diff --git a/packages/extra/seaweedfs/README.md b/packages/extra/seaweedfs/README.md index a2cb311e..9eea28d1 100644 --- a/packages/extra/seaweedfs/README.md +++ b/packages/extra/seaweedfs/README.md @@ -15,8 +15,13 @@ | `zones` | A map of zones for MultiZone topology. Each zone can have its own number of replicas and size. | `map[string]object` | `{...}` | | `zones[name].replicas` | Number of replicas in the zone | `int` | `0` | | `zones[name].size` | Zone storage size | `quantity` | `""` | +| `zones[name].replicas` | Number of replicas in the zone | `int` | `0` | +| `zones[name].size` | Zone storage size | `quantity` | `""` | | `filer` | Filer service configuration | `*object` | `{}` | | `filer.grpcHost` | The hostname used to expose or access the filer service externally. | `*string` | `""` | | `filer.grpcPort` | The port used to access the filer service externally. | `*int` | `443` | | `filer.whitelist` | A list of IP addresses or CIDR ranges that are allowed to access the filer service. | `[]*string` | `[]` | +| `filer.grpcHost` | The hostname used to expose or access the filer service externally. | `*string` | `""` | +| `filer.grpcPort` | The port used to access the filer service externally. | `*int` | `443` | +| `filer.whitelist` | A list of IP addresses or CIDR ranges that are allowed to access the filer service. | `[]*string` | `[]` |