diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index a075e0a0..685d41fe 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.9.0/cozyvalues-gen-linux-amd64.tar.gz | tar -xzvf- -C /usr/local/bin/ cozyvalues-gen + curl -sSL https://github.com/cozystack/cozyvalues-gen/releases/download/v1.0.5/cozyvalues-gen-linux-amd64.tar.gz | tar -xzvf- -C /usr/local/bin/ cozyvalues-gen - name: Run pre-commit hooks run: | diff --git a/packages/apps/clickhouse/README.md b/packages/apps/clickhouse/README.md index 3c90f498..3b7d4b6e 100644 --- a/packages/apps/clickhouse/README.md +++ b/packages/apps/clickhouse/README.md @@ -23,53 +23,53 @@ For more details, read [Restic: Effective Backup from Stdin](https://blog.aenix. ### Common parameters -| Name | Description | Type | Value | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | -| `replicas` | Number of Clickhouse replicas | `int` | `2` | -| `shards` | Number of Clickhouse shards | `int` | `1` | -| `resources` | Explicit CPU and memory configuration for each Clickhouse replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | -| `resources.cpu` | CPU available to each replica | `*quantity` | `null` | -| `resources.memory` | Memory (RAM) available to each replica | `*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` | `""` | +| Name | Description | Type | Value | +| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ------- | +| `replicas` | Number of ClickHouse replicas. | `int` | `2` | +| `shards` | Number of ClickHouse shards. | `int` | `1` | +| `resources` | Explicit CPU and memory configuration for each ClickHouse replica. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `small` | +| `size` | Persistent Volume Claim size available for application data. | `quantity` | `10Gi` | +| `storageClass` | StorageClass used to store the data. | `string` | `""` | ### Application-specific parameters -| Name | Description | Type | Value | -| ---------------------- | ------------------------------------------------------------ | ------------------- | ------- | -| `logStorageSize` | Size of Persistent Volume for logs | `quantity` | `2Gi` | -| `logTTL` | TTL (expiration time) for `query_log` and `query_thread_log` | `int` | `15` | -| `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` | +| Name | Description | Type | Value | +| ---------------------- | ------------------------------------------------------------- | ------------------- | ------- | +| `logStorageSize` | Size of Persistent Volume for logs. | `quantity` | `2Gi` | +| `logTTL` | TTL (expiration time) for `query_log` and `query_thread_log`. | `int` | `15` | +| `users` | Users configuration map. | `map[string]object` | `{}` | +| `users[name].password` | Password for the user. | `string` | `""` | +| `users[name].readonly` | User is readonly (default: false). | `bool` | `false` | ### 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` | `` | -| `backup.s3SecretKey` | Secret key for S3, used for authentication | `string` | `` | -| `backup.resticPassword` | Password for Restic backup encryption | `string` | `` | +| Name | Description | Type | Value | +| ------------------------ | ----------------------------------------------- | -------- | ------------------------------------------------------ | +| `backup` | Backup configuration. | `object` | `{}` | +| `backup.enabled` | Enable regular backups (default: 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 authentication. | `string` | `` | +| `backup.s3SecretKey` | Secret key for S3 authentication. | `string` | `` | +| `backup.resticPassword` | Password for Restic backup encryption. | `string` | `` | -### Clickhouse Keeper parameters +### ClickHouse Keeper parameters -| Name | Description | Type | Value | -| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | -| `clickhouseKeeper` | Clickhouse Keeper configuration | `*object` | `null` | -| `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` | +| Name | Description | Type | Value | +| ---------------------------------- | ------------------------------------------------------------ | ---------- | ------- | +| `clickhouseKeeper` | ClickHouse Keeper configuration. | `object` | `{}` | +| `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. | `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 87f96923..abb3aeb1 100644 --- a/packages/apps/clickhouse/values.schema.json +++ b/packages/apps/clickhouse/values.schema.json @@ -3,7 +3,7 @@ "type": "object", "properties": { "backup": { - "description": "Backup configuration", + "description": "Backup configuration.", "type": "object", "default": {}, "required": [ @@ -18,67 +18,64 @@ ], "properties": { "cleanupStrategy": { - "description": "Retention strategy for cleaning up old backups", + "description": "Retention strategy for cleaning up old backups.", "type": "string", "default": "--keep-last=3 --keep-daily=3 --keep-within-weekly=1m" }, "enabled": { - "description": "Enable regular backups, default is `false`", + "description": "Enable regular backups (default: false).", "type": "boolean", "default": false }, "resticPassword": { - "description": "Password for Restic backup encryption", + "description": "Password for Restic backup encryption.", "type": "string", "default": "\u003cpassword\u003e" }, "s3AccessKey": { - "description": "Access key for S3, used for authentication", + "description": "Access key for S3 authentication.", "type": "string", "default": "\u003cyour-access-key\u003e" }, "s3Bucket": { - "description": "S3 bucket used for storing backups", + "description": "S3 bucket used for storing backups.", "type": "string", "default": "s3.example.org/clickhouse-backups" }, "s3Region": { - "description": "AWS S3 region where backups are stored", + "description": "AWS S3 region where backups are stored.", "type": "string", "default": "us-east-1" }, "s3SecretKey": { - "description": "Secret key for S3, used for authentication", + "description": "Secret key for S3 authentication.", "type": "string", "default": "\u003cyour-secret-key\u003e" }, "schedule": { - "description": "Cron schedule for automated backups", + "description": "Cron schedule for automated backups.", "type": "string", "default": "0 2 * * *" } } }, "clickhouseKeeper": { - "description": "Clickhouse Keeper configuration", + "description": "ClickHouse Keeper configuration.", "type": "object", "default": {}, - "required": [ - "resourcesPreset" - ], "properties": { "enabled": { - "description": "Deploy ClickHouse Keeper for cluster coordination", + "description": "Deploy ClickHouse Keeper for cluster coordination.", "type": "boolean", "default": true }, "replicas": { - "description": "Number of Keeper replicas", + "description": "Number of Keeper replicas.", "type": "integer", "default": 3 }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset.", "type": "string", "default": "micro", "enum": [ @@ -92,7 +89,7 @@ ] }, "size": { - "description": "Persistent Volume Claim size, available for application data", + "description": "Persistent Volume Claim size available for application data.", "default": "1Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -108,7 +105,7 @@ } }, "logStorageSize": { - "description": "Size of Persistent Volume for logs", + "description": "Size of Persistent Volume for logs.", "default": "2Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -122,22 +119,22 @@ "x-kubernetes-int-or-string": true }, "logTTL": { - "description": "TTL (expiration time) for `query_log` and `query_thread_log`", + "description": "TTL (expiration time) for `query_log` and `query_thread_log`.", "type": "integer", "default": 15 }, "replicas": { - "description": "Number of Clickhouse replicas", + "description": "Number of ClickHouse replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for each Clickhouse replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration for each ClickHouse replica. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -150,7 +147,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -165,7 +162,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "small", "enum": [ @@ -179,12 +176,12 @@ ] }, "shards": { - "description": "Number of Clickhouse shards", + "description": "Number of ClickHouse shards.", "type": "integer", "default": 1 }, "size": { - "description": "Persistent Volume Claim size, available for application data", + "description": "Persistent Volume Claim size available for application data.", "default": "10Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -198,22 +195,23 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used to store the data.", + "type": "string", + "default": "" }, "users": { - "description": "Users configuration", + "description": "Users configuration map.", "type": "object", "default": {}, "additionalProperties": { "type": "object", "properties": { "password": { - "description": "Password for the user", + "description": "Password for the user.", "type": "string" }, "readonly": { - "description": "User is `readonly`, default is `false`.", + "description": "User is readonly (default: false).", "type": "boolean" } } diff --git a/packages/apps/clickhouse/values.yaml b/packages/apps/clickhouse/values.yaml index 1eb4379c..61ae0b88 100644 --- a/packages/apps/clickhouse/values.yaml +++ b/packages/apps/clickhouse/values.yaml @@ -1,36 +1,54 @@ +## ## @section Common parameters ## -## @param replicas {int} Number of Clickhouse replicas + +## @typedef {struct} Resources - Explicit CPU and memory configuration for each ClickHouse replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @param {int} replicas - Number of ClickHouse replicas. replicas: 2 -## @param shards {int} Number of Clickhouse shards + +## @param {int} shards - Number of ClickHouse shards. shards: 1 -## @param resources {*resources} Explicit CPU and memory configuration for each Clickhouse replica. When left empty, the preset defined in `resourcesPreset` is applied. -## @field resources.cpu {*quantity} CPU available to each replica -## @field resources.memory {*quantity} Memory (RAM) available to each replica -# resources: -# cpu: 4000m -# memory: 4Gi + +## @param {Resources} [resources] - Explicit CPU and memory configuration for each ClickHouse replica. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} - - -## @param 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`. +## @param {ResourcesPreset} resourcesPreset="small" - Default sizing preset used when `resources` is omitted. resourcesPreset: "small" -## @param size {quantity} Persistent Volume Claim size, available for application data + +## @param {quantity} size - Persistent Volume Claim size available for application data. size: 10Gi -## @param storageClass {string} StorageClass used to store the data + +## @param {string} storageClass - StorageClass used to store the data. storageClass: "" - +## ## @section Application-specific parameters ## -## @param logStorageSize {quantity} Size of Persistent Volume for logs + +## @param {quantity} logStorageSize - Size of Persistent Volume for logs. logStorageSize: 2Gi -## @param logTTL {int} TTL (expiration time) for `query_log` and `query_thread_log` + +## @param {int} logTTL - TTL (expiration time) for `query_log` and `query_thread_log`. logTTL: 15 -## @param users {map[string]user} Users configuration -## @field user.password {*string} Password for the user -## @field user.readonly {*bool} User is `readonly`, default is `false`. + +## @typedef {struct} User - User configuration. +## @field {string} [password] - Password for the user. +## @field {bool} [readonly] - User is readonly (default: false). + +## @param {map[string]User} users - Users configuration map. +users: {} ## Example: ## users: ## user1: @@ -39,20 +57,22 @@ logTTL: 15 ## readonly: true ## password: hackme ## -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 +## @typedef {struct} Backup - Backup configuration. +## @field {bool} enabled - Enable regular backups (default: false). +## @field {string} s3Region - AWS S3 region where backups are stored. +## @field {string} s3Bucket - S3 bucket used for storing backups. +## @field {string} schedule - Cron schedule for automated backups. +## @field {string} cleanupStrategy - Retention strategy for cleaning up old backups. +## @field {string} s3AccessKey - Access key for S3 authentication. +## @field {string} s3SecretKey - Secret key for S3 authentication. +## @field {string} resticPassword - Password for Restic backup encryption. + +## @param {Backup} backup - Backup configuration. backup: enabled: false s3Region: us-east-1 @@ -63,13 +83,17 @@ backup: s3SecretKey: "" resticPassword: "" +## +## @section ClickHouse Keeper parameters +## -## @section Clickhouse Keeper parameters -## @param clickhouseKeeper {*clickhouseKeeper} Clickhouse Keeper configuration -## @field clickhouseKeeper.enabled {*bool} Deploy ClickHouse Keeper for cluster coordination -## @field clickhouseKeeper.size {*quantity} Persistent Volume Claim size, available for application data -## @field clickhouseKeeper.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 clickhouseKeeper.replicas {*int} Number of Keeper replicas +## @typedef {struct} ClickHouseKeeper - ClickHouse Keeper configuration. +## @field {bool} [enabled] - Deploy ClickHouse Keeper for cluster coordination. +## @field {quantity} [size] - Persistent Volume Claim size available for application data. +## @field {ResourcesPreset} [resourcesPreset] - Default sizing preset. +## @field {int} [replicas] - Number of Keeper replicas. + +## @param {ClickHouseKeeper} clickhouseKeeper - ClickHouse Keeper configuration. clickhouseKeeper: enabled: true size: 1Gi diff --git a/packages/apps/ferretdb/README.md b/packages/apps/ferretdb/README.md index 6f31216b..91fc078e 100644 --- a/packages/apps/ferretdb/README.md +++ b/packages/apps/ferretdb/README.md @@ -8,51 +8,51 @@ Internally, FerretDB service is backed by Postgres. ### Common parameters -| Name | Description | Type | Value | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | -| `replicas` | Number of replicas | `int` | `2` | -| `resources` | Explicit CPU and memory configuration for each FerretDB replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | -| `resources.cpu` | CPU available to each replica | `*quantity` | `null` | -| `resources.memory` | Memory (RAM) available to each replica | `*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` | `""` | -| `external` | Enable external access from outside the cluster | `bool` | `false` | +| Name | Description | Type | Value | +| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------- | +| `replicas` | Number of replicas. | `int` | `2` | +| `resources` | Explicit CPU and memory configuration for each FerretDB replica. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `micro` | +| `size` | Persistent Volume Claim size available for application data. | `quantity` | `10Gi` | +| `storageClass` | StorageClass used to store the data. | `string` | `""` | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | ### Application-specific parameters -| Name | Description | Type | Value | -| ------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------- | -| `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` | -| `users` | Users configuration | `map[string]object` | `{...}` | -| `users[name].password` | Password for the user | `*string` | `null` | +| Name | Description | Type | Value | +| ------------------------ | ---------------------------------------------------------------------------------- | ------------------- | ----- | +| `quorum` | Configuration for quorum-based synchronous replication. | `object` | `{}` | +| `quorum.minSyncReplicas` | Minimum number of synchronous replicas required for commit. | `int` | `0` | +| `quorum.maxSyncReplicas` | Maximum number of synchronous replicas allowed (must be less than total replicas). | `int` | `0` | +| `users` | Users configuration map. | `map[string]object` | `{}` | +| `users[name].password` | Password for the user. | `string` | `""` | ### 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` | `` | -| `backup.s3SecretKey` | Secret key for S3, used for authentication | `string` | `` | +| Name | Description | Type | Value | +| ------------------------ | ------------------------------------------------------------ | -------- | ----------------------------------- | +| `backup` | Backup configuration. | `object` | `{}` | +| `backup.enabled` | Enable regular backups (default: false). | `bool` | `false` | +| `backup.schedule` | Cron schedule for automated backups. | `string` | `0 2 * * * *` | +| `backup.retentionPolicy` | Retention policy. | `string` | `30d` | +| `backup.endpointURL` | S3 endpoint URL for uploads. | `string` | `http://minio-gateway-service:9000` | +| `backup.destinationPath` | Path to store the backup (e.g. s3://bucket/path/to/folder/). | `string` | `s3://bucket/path/to/folder/` | +| `backup.s3AccessKey` | Access key for S3 authentication. | `string` | `` | +| `backup.s3SecretKey` | Secret key for S3 authentication. | `string` | `` | ### Bootstrap (recovery) parameters -| Name | Description | Type | Value | -| ------------------------ | --------------------------------------------------------------------------------------------------------------------- | --------- | ------- | -| `bootstrap` | Bootstrap (recovery) configuration | `object` | `{}` | -| `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` | `""` | +| Name | Description | Type | Value | +| ------------------------ | ------------------------------------------------------------------- | -------- | ------- | +| `bootstrap` | Bootstrap configuration. | `object` | `{}` | +| `bootstrap.enabled` | Restore database cluster from a backup. | `bool` | `false` | +| `bootstrap.recoveryTime` | Timestamp (RFC3339) for point-in-time recovery; empty means latest. | `string` | `""` | +| `bootstrap.oldName` | Name of database cluster before deletion. | `string` | `""` | ## Parameter examples and reference diff --git a/packages/apps/ferretdb/values.schema.json b/packages/apps/ferretdb/values.schema.json index cfe37927..f22a2340 100644 --- a/packages/apps/ferretdb/values.schema.json +++ b/packages/apps/ferretdb/values.schema.json @@ -3,7 +3,7 @@ "type": "object", "properties": { "backup": { - "description": "Backup configuration", + "description": "Backup configuration.", "type": "object", "default": {}, "required": [ @@ -17,69 +17,71 @@ ], "properties": { "destinationPath": { - "description": "Path to store the backup (i.e. s3://bucket/path/to/folder)", + "description": "Path to store the backup (e.g. s3://bucket/path/to/folder/).", "type": "string", "default": "s3://bucket/path/to/folder/" }, "enabled": { - "description": "Enable regular backups, default is `false`.", + "description": "Enable regular backups (default: false).", "type": "boolean", "default": false }, "endpointURL": { - "description": "S3 Endpoint used to upload data to the cloud", + "description": "S3 endpoint URL for uploads.", "type": "string", "default": "http://minio-gateway-service:9000" }, "retentionPolicy": { - "description": "Retention policy", + "description": "Retention policy.", "type": "string", "default": "30d" }, "s3AccessKey": { - "description": "Access key for S3, used for authentication", + "description": "Access key for S3 authentication.", "type": "string", "default": "\u003cyour-access-key\u003e" }, "s3SecretKey": { - "description": "Secret key for S3, used for authentication", + "description": "Secret key for S3 authentication.", "type": "string", "default": "\u003cyour-secret-key\u003e" }, "schedule": { - "description": "Cron schedule for automated backups", + "description": "Cron schedule for automated backups.", "type": "string", "default": "0 2 * * * *" } } }, "bootstrap": { - "description": "Bootstrap (recovery) configuration", + "description": "Bootstrap configuration.", "type": "object", "default": {}, "properties": { "enabled": { - "description": "Restore database cluster from a backup", + "description": "Restore database cluster from a backup.", "type": "boolean", "default": false }, "oldName": { - "description": "Name of database cluster before deleting", - "type": "string" + "description": "Name of database cluster before deletion.", + "type": "string", + "default": "" }, "recoveryTime": { - "description": "Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest.", - "type": "string" + "description": "Timestamp (RFC3339) for point-in-time recovery; empty means latest.", + "type": "string", + "default": "" } } }, "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "quorum": { - "description": "Configuration for the quorum-based synchronous replication", + "description": "Configuration for quorum-based synchronous replication.", "type": "object", "default": {}, "required": [ @@ -88,29 +90,29 @@ ], "properties": { "maxSyncReplicas": { - "description": "Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the total number of replicas)", + "description": "Maximum number of synchronous replicas allowed (must be less than total replicas).", "type": "integer", "default": 0 }, "minSyncReplicas": { - "description": "Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed", + "description": "Minimum number of synchronous replicas required for commit.", "type": "integer", "default": 0 } } }, "replicas": { - "description": "Number of replicas", + "description": "Number of replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for each FerretDB replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration for each FerretDB replica. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -123,7 +125,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -138,7 +140,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "micro", "enum": [ @@ -152,7 +154,7 @@ ] }, "size": { - "description": "Persistent Volume Claim size, available for application data", + "description": "Persistent Volume Claim size available for application data.", "default": "10Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -166,18 +168,19 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used to store the data.", + "type": "string", + "default": "" }, "users": { - "description": "Users configuration", + "description": "Users configuration map.", "type": "object", "default": {}, "additionalProperties": { "type": "object", "properties": { "password": { - "description": "Password for the user", + "description": "Password for the user.", "type": "string" } } diff --git a/packages/apps/ferretdb/values.yaml b/packages/apps/ferretdb/values.yaml index 5abcb215..fc905466 100644 --- a/packages/apps/ferretdb/values.yaml +++ b/packages/apps/ferretdb/values.yaml @@ -1,35 +1,56 @@ +## ## @section Common parameters ## -## @param replicas {int} Number of replicas + +## @typedef {struct} Resources - Explicit CPU and memory configuration for each FerretDB replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @param {int} replicas - Number of replicas. replicas: 2 -## @param resources {*resources} Explicit CPU and memory configuration for each FerretDB replica. When left empty, the preset defined in `resourcesPreset` is applied. -## @field resources.cpu {*quantity} CPU available to each replica -## @field resources.memory {*quantity} Memory (RAM) available to each replica -# resources: -# cpu: 4000m -# memory: 4Gi + +## @param {Resources} [resources] - Explicit CPU and memory configuration for each FerretDB replica. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} -## @param 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`. +## @param {ResourcesPreset} resourcesPreset="micro" - Default sizing preset used when `resources` is omitted. resourcesPreset: "micro" -## @param size {quantity} Persistent Volume Claim size, available for application data + +## @param {quantity} size - Persistent Volume Claim size available for application data. size: 10Gi -## @param storageClass {string} StorageClass used to store the data + +## @param {string} storageClass - StorageClass used to store the data. storageClass: "" -## @param external {bool} Enable external access from outside the cluster + +## @param {bool} external - Enable external access from outside the cluster. external: false +## ## @section Application-specific parameters ## -## @param quorum {quorum} Configuration for the quorum-based synchronous replication -## @field quorum.minSyncReplicas {int} Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed -## @field quorum.maxSyncReplicas {int} Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the total number of replicas) + +## @typedef {struct} Quorum - Configuration for quorum-based synchronous replication. +## @field {int} minSyncReplicas - Minimum number of synchronous replicas required for commit. +## @field {int} maxSyncReplicas - Maximum number of synchronous replicas allowed (must be less than total replicas). + +## @param {Quorum} quorum - Configuration for quorum-based synchronous replication. quorum: minSyncReplicas: 0 maxSyncReplicas: 0 -## @param users {map[string]user} Users configuration -## @field user.password {*string} Password for the user +## @typedef {struct} User - User configuration. +## @field {string} [password] - Password for the user. + +## @param {map[string]User} users - Users configuration map. +users: {} ## Example: ## users: ## user1: @@ -37,21 +58,21 @@ quorum: ## user2: ## password: hackme ## -users: {} - - +## ## @section Backup parameters ## -## @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 +## @typedef {struct} Backup - Backup configuration. +## @field {bool} enabled - Enable regular backups (default: false). +## @field {string} schedule - Cron schedule for automated backups. +## @field {string} retentionPolicy - Retention policy. +## @field {string} endpointURL - S3 endpoint URL for uploads. +## @field {string} destinationPath - Path to store the backup (e.g. s3://bucket/path/to/folder/). +## @field {string} s3AccessKey - Access key for S3 authentication. +## @field {string} s3SecretKey - Secret key for S3 authentication. + +## @param {Backup} backup - Backup configuration. backup: enabled: false schedule: "0 2 * * * *" @@ -61,18 +82,17 @@ backup: s3AccessKey: "" s3SecretKey: "" - +## ## @section Bootstrap (recovery) parameters ## -## @param bootstrap {bootstrap} Bootstrap (recovery) configuration -## @field bootstrap.enabled {*bool} Restore database cluster from a backup -## @field bootstrap.recoveryTime {*string} Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest. -## @field bootstrap.oldName {*string} Name of database cluster before deleting -## + +## @typedef {struct} Bootstrap - Bootstrap configuration for restoring a database cluster from a backup. +## @field {bool} [enabled] - Restore database cluster from a backup. +## @field {string} [recoveryTime] - Timestamp (RFC3339) for point-in-time recovery; empty means latest. +## @field {string} [oldName] - Name of database cluster before deletion. + +## @param {Bootstrap} bootstrap - Bootstrap configuration. bootstrap: enabled: false - # example: 2020-11-26 15:22:00.00000+00 recoveryTime: "" oldName: "" - - diff --git a/packages/apps/foundationdb/README.md b/packages/apps/foundationdb/README.md index ceebf571..4f7b6878 100644 --- a/packages/apps/foundationdb/README.md +++ b/packages/apps/foundationdb/README.md @@ -148,48 +148,48 @@ For Cozystack-specific issues, consult the Cozystack documentation or support ch ### Common parameters -| Name | Description | Type | Value | -| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ----------- | ------------------------ | -| `cluster` | Cluster configuration | `object` | `{}` | -| `cluster.processCounts` | Process counts for different roles | `object` | `{}` | -| `cluster.processCounts.stateless` | Number of stateless processes (-1 for automatic) | `int` | `-1` | -| `cluster.processCounts.storage` | Number of storage processes (determines cluster size) | `int` | `3` | -| `cluster.processCounts.cluster_controller` | Number of cluster controller processes | `int` | `1` | -| `cluster.version` | Version of FoundationDB to use | `string` | `7.3.63` | -| `cluster.redundancyMode` | Database redundancy mode (single, double, triple, three_datacenter, three_datacenter_fallback) | `string` | `double` | -| `cluster.storageEngine` | Storage engine (ssd-2, ssd-redwood-v1, ssd-rocksdb-v1, memory) | `string` | `ssd-2` | -| `cluster.faultDomain` | Fault domain configuration | `object` | `{}` | -| `cluster.faultDomain.key` | Fault domain key | `string` | `kubernetes.io/hostname` | -| `cluster.faultDomain.valueFrom` | Fault domain value source | `string` | `spec.nodeName` | -| `storage` | Storage configuration | `object` | `{}` | -| `storage.size` | Size of persistent volumes for each instance | `quantity` | `16Gi` | -| `storage.storageClass` | Storage class (if not set, uses cluster default) | `string` | `""` | -| `resources` | Explicit CPU and memory configuration for each FoundationDB instance. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | -| `resources.cpu` | CPU available to each instance | `*quantity` | `null` | -| `resources.memory` | Memory (RAM) available to each instance | `*quantity` | `null` | -| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `medium` | -| `backup` | Backup configuration | `object` | `{}` | -| `backup.enabled` | Enable backups | `bool` | `false` | -| `backup.s3` | S3 configuration for backups | `object` | `{}` | -| `backup.s3.bucket` | S3 bucket name | `string` | `""` | -| `backup.s3.endpoint` | S3 endpoint URL | `string` | `""` | -| `backup.s3.region` | S3 region | `string` | `us-east-1` | -| `backup.s3.credentials` | S3 credentials | `object` | `{}` | -| `backup.s3.credentials.accessKeyId` | S3 access key ID | `string` | `""` | -| `backup.s3.credentials.secretAccessKey` | S3 secret access key | `string` | `""` | -| `backup.retentionPolicy` | Retention policy for backups | `string` | `7d` | -| `monitoring` | Monitoring configuration | `object` | `{}` | -| `monitoring.enabled` | Enable WorkloadMonitor integration | `bool` | `true` | +| Name | Description | Type | Value | +| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------ | +| `cluster` | Cluster configuration. | `object` | `{}` | +| `cluster.processCounts` | Process counts for different roles. | `object` | `{}` | +| `cluster.processCounts.stateless` | Number of stateless processes (-1 for automatic). | `int` | `-1` | +| `cluster.processCounts.storage` | Number of storage processes (determines cluster size). | `int` | `3` | +| `cluster.processCounts.cluster_controller` | Number of cluster controller processes. | `int` | `1` | +| `cluster.version` | Version of FoundationDB to use. | `string` | `7.3.63` | +| `cluster.redundancyMode` | Database redundancy mode (single, double, triple, three_datacenter, three_datacenter_fallback). | `string` | `double` | +| `cluster.storageEngine` | Storage engine (ssd-2, ssd-redwood-v1, ssd-rocksdb-v1, memory). | `string` | `ssd-2` | +| `cluster.faultDomain` | Fault domain configuration. | `object` | `{}` | +| `cluster.faultDomain.key` | Fault domain key. | `string` | `kubernetes.io/hostname` | +| `cluster.faultDomain.valueFrom` | Fault domain value source. | `string` | `spec.nodeName` | +| `storage` | Storage configuration. | `object` | `{}` | +| `storage.size` | Size of persistent volumes for each instance. | `quantity` | `16Gi` | +| `storage.storageClass` | Storage class (if not set, uses cluster default). | `string` | `""` | +| `resources` | Explicit CPU and memory configuration for each FoundationDB instance. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `resources.cpu` | CPU available to each instance. | `quantity` | `""` | +| `resources.memory` | Memory (RAM) available to each instance. | `quantity` | `""` | +| `resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `medium` | +| `backup` | Backup configuration. | `object` | `{}` | +| `backup.enabled` | Enable backups. | `bool` | `false` | +| `backup.s3` | S3 configuration for backups. | `object` | `{}` | +| `backup.s3.bucket` | S3 bucket name. | `string` | `""` | +| `backup.s3.endpoint` | S3 endpoint URL. | `string` | `""` | +| `backup.s3.region` | S3 region. | `string` | `us-east-1` | +| `backup.s3.credentials` | S3 credentials. | `object` | `{}` | +| `backup.s3.credentials.accessKeyId` | S3 access key ID. | `string` | `""` | +| `backup.s3.credentials.secretAccessKey` | S3 secret access key. | `string` | `""` | +| `backup.retentionPolicy` | Retention policy for backups. | `string` | `7d` | +| `monitoring` | Monitoring configuration. | `object` | `{}` | +| `monitoring.enabled` | Enable WorkloadMonitor integration. | `bool` | `true` | ### FoundationDB configuration -| Name | Description | Type | Value | -| ---------------------------- | ----------------------------------------- | ---------- | --------- | -| `customParameters` | Custom parameters to pass to FoundationDB | `[]string` | `[]` | -| `imageType` | Container image deployment type | `string` | `unified` | -| `securityContext` | Security context for containers | `object` | `{}` | -| `securityContext.runAsUser` | User ID to run the container | `int` | `4059` | -| `securityContext.runAsGroup` | Group ID to run the container | `int` | `4059` | -| `automaticReplacements` | Enable automatic pod replacements | `bool` | `true` | +| Name | Description | Type | Value | +| ---------------------------- | ------------------------------------------ | ---------- | --------- | +| `customParameters` | Custom parameters to pass to FoundationDB. | `[]string` | `[]` | +| `imageType` | Container image deployment type. | `string` | `unified` | +| `securityContext` | Security context for containers. | `object` | `{}` | +| `securityContext.runAsUser` | User ID to run the container. | `int` | `4059` | +| `securityContext.runAsGroup` | Group ID to run the container. | `int` | `4059` | +| `automaticReplacements` | Enable automatic pod replacements. | `bool` | `true` | diff --git a/packages/apps/foundationdb/values.schema.json b/packages/apps/foundationdb/values.schema.json index 675d20c6..7b3a1ba5 100644 --- a/packages/apps/foundationdb/values.schema.json +++ b/packages/apps/foundationdb/values.schema.json @@ -3,12 +3,12 @@ "type": "object", "properties": { "automaticReplacements": { - "description": "Enable automatic pod replacements", + "description": "Enable automatic pod replacements.", "type": "boolean", "default": true }, "backup": { - "description": "Backup configuration", + "description": "Backup configuration.", "type": "object", "default": {}, "required": [ @@ -18,17 +18,17 @@ ], "properties": { "enabled": { - "description": "Enable backups", + "description": "Enable backups.", "type": "boolean", "default": false }, "retentionPolicy": { - "description": "Retention policy for backups", + "description": "Retention policy for backups.", "type": "string", "default": "7d" }, "s3": { - "description": "S3 configuration for backups", + "description": "S3 configuration for backups.", "type": "object", "default": {}, "required": [ @@ -39,11 +39,12 @@ ], "properties": { "bucket": { - "description": "S3 bucket name", - "type": "string" + "description": "S3 bucket name.", + "type": "string", + "default": "" }, "credentials": { - "description": "S3 credentials", + "description": "S3 credentials.", "type": "object", "default": {}, "required": [ @@ -52,21 +53,24 @@ ], "properties": { "accessKeyId": { - "description": "S3 access key ID", - "type": "string" + "description": "S3 access key ID.", + "type": "string", + "default": "" }, "secretAccessKey": { - "description": "S3 secret access key", - "type": "string" + "description": "S3 secret access key.", + "type": "string", + "default": "" } } }, "endpoint": { - "description": "S3 endpoint URL", - "type": "string" + "description": "S3 endpoint URL.", + "type": "string", + "default": "" }, "region": { - "description": "S3 region", + "description": "S3 region.", "type": "string", "default": "us-east-1" } @@ -75,7 +79,7 @@ } }, "cluster": { - "description": "Cluster configuration", + "description": "Cluster configuration.", "type": "object", "default": {}, "required": [ @@ -87,7 +91,7 @@ ], "properties": { "faultDomain": { - "description": "Fault domain configuration", + "description": "Fault domain configuration.", "type": "object", "default": {}, "required": [ @@ -96,19 +100,19 @@ ], "properties": { "key": { - "description": "Fault domain key", + "description": "Fault domain key.", "type": "string", "default": "kubernetes.io/hostname" }, "valueFrom": { - "description": "Fault domain value source", + "description": "Fault domain value source.", "type": "string", "default": "spec.nodeName" } } }, "processCounts": { - "description": "Process counts for different roles", + "description": "Process counts for different roles.", "type": "object", "default": {}, "required": [ @@ -118,41 +122,41 @@ ], "properties": { "cluster_controller": { - "description": "Number of cluster controller processes", + "description": "Number of cluster controller processes.", "type": "integer", "default": 1 }, "stateless": { - "description": "Number of stateless processes (-1 for automatic)", + "description": "Number of stateless processes (-1 for automatic).", "type": "integer", "default": -1 }, "storage": { - "description": "Number of storage processes (determines cluster size)", + "description": "Number of storage processes (determines cluster size).", "type": "integer", "default": 3 } } }, "redundancyMode": { - "description": "Database redundancy mode (single, double, triple, three_datacenter, three_datacenter_fallback)", + "description": "Database redundancy mode (single, double, triple, three_datacenter, three_datacenter_fallback).", "type": "string", "default": "double" }, "storageEngine": { - "description": "Storage engine (ssd-2, ssd-redwood-v1, ssd-rocksdb-v1, memory)", + "description": "Storage engine (ssd-2, ssd-redwood-v1, ssd-rocksdb-v1, memory).", "type": "string", "default": "ssd-2" }, "version": { - "description": "Version of FoundationDB to use", + "description": "Version of FoundationDB to use.", "type": "string", "default": "7.3.63" } } }, "customParameters": { - "description": "Custom parameters to pass to FoundationDB", + "description": "Custom parameters to pass to FoundationDB.", "type": "array", "default": [], "items": { @@ -160,7 +164,7 @@ } }, "imageType": { - "description": "Container image deployment type", + "description": "Container image deployment type.", "type": "string", "default": "unified", "enum": [ @@ -169,7 +173,7 @@ ] }, "monitoring": { - "description": "Monitoring configuration", + "description": "Monitoring configuration.", "type": "object", "default": {}, "required": [ @@ -177,19 +181,19 @@ ], "properties": { "enabled": { - "description": "Enable WorkloadMonitor integration", + "description": "Enable WorkloadMonitor integration.", "type": "boolean", "default": true } } }, "resources": { - "description": "Explicit CPU and memory configuration for each FoundationDB instance. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration for each FoundationDB instance. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each instance", + "description": "CPU available to each instance.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -202,7 +206,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each instance", + "description": "Memory (RAM) available to each instance.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -217,7 +221,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "medium", "enum": [ @@ -229,7 +233,7 @@ ] }, "securityContext": { - "description": "Security context for containers", + "description": "Security context for containers.", "type": "object", "default": {}, "required": [ @@ -238,19 +242,19 @@ ], "properties": { "runAsGroup": { - "description": "Group ID to run the container", + "description": "Group ID to run the container.", "type": "integer", "default": 4059 }, "runAsUser": { - "description": "User ID to run the container", + "description": "User ID to run the container.", "type": "integer", "default": 4059 } } }, "storage": { - "description": "Storage configuration", + "description": "Storage configuration.", "type": "object", "default": {}, "required": [ @@ -259,7 +263,7 @@ ], "properties": { "size": { - "description": "Size of persistent volumes for each instance", + "description": "Size of persistent volumes for each instance.", "default": "16Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -273,8 +277,9 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "Storage class (if not set, uses cluster default)", - "type": "string" + "description": "Storage class (if not set, uses cluster default).", + "type": "string", + "default": "" } } } diff --git a/packages/apps/foundationdb/values.yaml b/packages/apps/foundationdb/values.yaml index 902f986a..e908288a 100644 --- a/packages/apps/foundationdb/values.yaml +++ b/packages/apps/foundationdb/values.yaml @@ -1,61 +1,80 @@ -# Default values for foundationdb. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - +## ## @section Common parameters ## -## @param cluster {cluster} Cluster configuration -## @field cluster.processCounts {clusterProcessCounts} Process counts for different roles -## @field clusterProcessCounts.stateless {int} Number of stateless processes (-1 for automatic) -## @field clusterProcessCounts.storage {int} Number of storage processes (determines cluster size) -## @field clusterProcessCounts.cluster_controller {int} Number of cluster controller processes -## @field cluster.version {string} Version of FoundationDB to use -## @field cluster.redundancyMode {string} Database redundancy mode (single, double, triple, three_datacenter, three_datacenter_fallback) -## @field cluster.storageEngine {string} Storage engine (ssd-2, ssd-redwood-v1, ssd-rocksdb-v1, memory) -## @field cluster.faultDomain {clusterFaultDomain} Fault domain configuration -## @field clusterFaultDomain.key {string} Fault domain key -## @field clusterFaultDomain.valueFrom {string} Fault domain value source + +## @typedef {struct} ClusterProcessCounts - Process counts for different roles. +## @field {int} stateless - Number of stateless processes (-1 for automatic). +## @field {int} storage - Number of storage processes (determines cluster size). +## @field {int} cluster_controller - Number of cluster controller processes. + +## @typedef {struct} ClusterFaultDomain - Fault domain configuration. +## @field {string} key - Fault domain key. +## @field {string} valueFrom - Fault domain value source. + +## @typedef {struct} Cluster - Cluster configuration. +## @field {ClusterProcessCounts} processCounts - Process counts for different roles. +## @field {string} version - Version of FoundationDB to use. +## @field {string} redundancyMode - Database redundancy mode (single, double, triple, three_datacenter, three_datacenter_fallback). +## @field {string} storageEngine - Storage engine (ssd-2, ssd-redwood-v1, ssd-rocksdb-v1, memory). +## @field {ClusterFaultDomain} faultDomain - Fault domain configuration. + +## @param {Cluster} cluster - Cluster configuration. cluster: processCounts: - stateless: -1 # Automatically calculated - storage: 3 # Number of storage processes (determines cluster size) + stateless: -1 + storage: 3 cluster_controller: 1 version: "7.3.63" - redundancyMode: "double" # Database redundancy mode - storageEngine: "ssd-2" # Storage engine + redundancyMode: "double" + storageEngine: "ssd-2" faultDomain: key: "kubernetes.io/hostname" valueFrom: "spec.nodeName" -## @param storage {storage} Storage configuration -## @field storage.size {quantity} Size of persistent volumes for each instance -## @field storage.storageClass {string} Storage class (if not set, uses cluster default) +## @typedef {struct} Storage - Storage configuration. +## @field {quantity} size - Size of persistent volumes for each instance. +## @field {string} storageClass - Storage class (if not set, uses cluster default). + +## @param {Storage} storage - Storage configuration. storage: size: "16Gi" storageClass: "" -## @param resources {*resources} Explicit CPU and memory configuration for each FoundationDB instance. When left empty, the preset defined in `resourcesPreset` is applied. -## @field resources.cpu {*quantity} CPU available to each instance -## @field resources.memory {*quantity} Memory (RAM) available to each instance +## @typedef {struct} Resources - Explicit CPU and memory configuration for each FoundationDB instance. +## @field {quantity} [cpu] - CPU available to each instance. +## @field {quantity} [memory] - Memory (RAM) available to each instance. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @param {Resources} [resources] - Explicit CPU and memory configuration for each FoundationDB instance. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} - # resources: - # cpu: 2000m - # memory: 4Gi -## @param resourcesPreset {string enum:"small,medium,large,xlarge,2xlarge"} Default sizing preset used when `resources` is omitted. Allowed values: `small`, `medium`, `large`, `xlarge`, `2xlarge`. + +## @param {ResourcesPreset} resourcesPreset="medium" - Default sizing preset used when `resources` is omitted. resourcesPreset: "medium" -## @param backup {backup} Backup configuration -## @field backup.enabled {bool} Enable backups -## @field backup.s3 {backupS3} S3 configuration for backups -## @field backupS3.bucket {string} S3 bucket name -## @field backupS3.endpoint {string} S3 endpoint URL -## @field backupS3.region {string} S3 region -## @field backupS3.credentials {backupS3Credentials} S3 credentials -## @field backupS3Credentials.accessKeyId {string} S3 access key ID -## @field backupS3Credentials.secretAccessKey {string} S3 secret access key -## @field backup.retentionPolicy {string} Retention policy for backups +## @typedef {struct} BackupS3Credentials - S3 credentials. +## @field {string} accessKeyId - S3 access key ID. +## @field {string} secretAccessKey - S3 secret access key. + +## @typedef {struct} BackupS3 - S3 configuration for backups. +## @field {string} bucket - S3 bucket name. +## @field {string} endpoint - S3 endpoint URL. +## @field {string} region - S3 region. +## @field {BackupS3Credentials} credentials - S3 credentials. + +## @typedef {struct} Backup - Backup configuration. +## @field {bool} enabled - Enable backups. +## @field {BackupS3} s3 - S3 configuration for backups. +## @field {string} retentionPolicy - Retention policy for backups. + +## @param {Backup} backup - Backup configuration. backup: enabled: false s3: @@ -67,27 +86,35 @@ backup: secretAccessKey: "" retentionPolicy: "7d" -## @param monitoring {monitoring} Monitoring configuration -## @field monitoring.enabled {bool} Enable WorkloadMonitor integration +## @typedef {struct} Monitoring - Monitoring configuration. +## @field {bool} enabled - Enable WorkloadMonitor integration. + +## @param {Monitoring} monitoring - Monitoring configuration. monitoring: enabled: true +## ## @section FoundationDB configuration ## -## @param customParameters {[]string} Custom parameters to pass to FoundationDB -customParameters: [] -# Example: -# - knob_disable_posix_kernel_aio=1 -## @param imageType {string enum:"unified,split"} Container image deployment type +## @param {[]string} customParameters - Custom parameters to pass to FoundationDB. +customParameters: [] + +## @enum {string} ImageType - Container image deployment type. +## @value unified +## @value split + +## @param {ImageType} imageType="unified" - Container image deployment type. imageType: "unified" -## @param securityContext {securityContext} Security context for containers -## @field securityContext.runAsUser {int} User ID to run the container -## @field securityContext.runAsGroup {int} Group ID to run the container +## @typedef {struct} SecurityContext - Security context for containers. +## @field {int} runAsUser - User ID to run the container. +## @field {int} runAsGroup - Group ID to run the container. + +## @param {SecurityContext} securityContext - Security context for containers. securityContext: runAsUser: 4059 runAsGroup: 4059 -## @param automaticReplacements {bool} Enable automatic pod replacements -automaticReplacements: true \ No newline at end of file +## @param {bool} automaticReplacements - Enable automatic pod replacements. +automaticReplacements: true diff --git a/packages/apps/http-cache/README.md b/packages/apps/http-cache/README.md index f1ea73ee..c227d153 100644 --- a/packages/apps/http-cache/README.md +++ b/packages/apps/http-cache/README.md @@ -62,40 +62,40 @@ The deployment architecture is illustrated in the diagram below: | Name | Description | Type | Value | | -------------- | ------------------------------------------------------------ | ---------- | ------- | -| `size` | Persistent Volume Claim size, available for application data | `quantity` | `10Gi` | -| `storageClass` | StorageClass used to store the data | `string` | `""` | -| `external` | Enable external access from outside the cluster | `bool` | `false` | +| `size` | Persistent Volume Claim size available for application data. | `quantity` | `10Gi` | +| `storageClass` | StorageClass used to store the data. | `string` | `""` | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | ### Application-specific parameters -| Name | Description | Type | Value | -| ----------- | ----------------------------------------------- | ---------- | ----- | -| `endpoints` | Endpoints configuration, as a list of | `[]string` | `[]` | +| Name | Description | Type | Value | +| ----------- | ------------------------------------------------ | ---------- | ----- | +| `endpoints` | Endpoints configuration, as a list of . | `[]string` | `[]` | ### HAProxy parameters -| Name | Description | Type | Value | -| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------ | -| `haproxy` | HAProxy configuration | `object` | `{}` | -| `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 available to each replica | `*quantity` | `null` | -| `haproxy.resources.memory` | Memory (RAM) available to each replica | `*quantity` | `null` | -| `haproxy.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `nano` | +| Name | Description | Type | Value | +| -------------------------- | -------------------------------------------------------------------------------------------------------- | ---------- | ------ | +| `haproxy` | HAProxy configuration. | `object` | `{}` | +| `haproxy.replicas` | Number of HAProxy replicas. | `int` | `2` | +| `haproxy.resources` | Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `haproxy.resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `haproxy.resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `haproxy.resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `nano` | ### Nginx parameters -| Name | Description | Type | Value | -| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------ | -| `nginx` | Nginx configuration | `object` | `{}` | -| `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 available to each replica | `*quantity` | `null` | -| `nginx.resources.memory` | Memory (RAM) available to each replica | `*quantity` | `null` | -| `nginx.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `nano` | +| Name | Description | Type | Value | +| ------------------------ | -------------------------------------------------------------------------------------------------------- | ---------- | ------ | +| `nginx` | Nginx configuration. | `object` | `{}` | +| `nginx.replicas` | Number of Nginx replicas. | `int` | `2` | +| `nginx.resources` | Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `nginx.resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `nginx.resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `nginx.resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `nano` | ## Parameter examples and reference diff --git a/packages/apps/http-cache/values.schema.json b/packages/apps/http-cache/values.schema.json index f005e015..7fd1a37a 100644 --- a/packages/apps/http-cache/values.schema.json +++ b/packages/apps/http-cache/values.schema.json @@ -3,7 +3,7 @@ "type": "object", "properties": { "endpoints": { - "description": "Endpoints configuration, as a list of \u003cip:port\u003e", + "description": "Endpoints configuration, as a list of \u003cip:port\u003e.", "type": "array", "default": [], "items": { @@ -11,32 +11,31 @@ } }, "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "haproxy": { - "description": "HAProxy configuration", + "description": "HAProxy configuration.", "type": "object", "default": {}, "required": [ "replicas", - "resources", "resourcesPreset" ], "properties": { "replicas": { - "description": "Number of HAProxy 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.", + "description": "Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -49,7 +48,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -64,7 +63,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "nano", "enum": [ @@ -80,7 +79,7 @@ } }, "nginx": { - "description": "Nginx configuration", + "description": "Nginx configuration.", "type": "object", "default": {}, "required": [ @@ -89,17 +88,17 @@ ], "properties": { "replicas": { - "description": "Number of Nginx 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.", + "description": "Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -112,7 +111,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -127,7 +126,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "nano", "enum": [ @@ -143,7 +142,7 @@ } }, "size": { - "description": "Persistent Volume Claim size, available for application data", + "description": "Persistent Volume Claim size available for application data.", "default": "10Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -157,8 +156,9 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used to store the data.", + "type": "string", + "default": "" } } } \ No newline at end of file diff --git a/packages/apps/http-cache/values.yaml b/packages/apps/http-cache/values.yaml index 644bc8e1..d243bf9c 100644 --- a/packages/apps/http-cache/values.yaml +++ b/packages/apps/http-cache/values.yaml @@ -1,14 +1,22 @@ +## ## @section Common parameters ## -## @param size {quantity} Persistent Volume Claim size, available for application data -size: 10Gi -## @param storageClass {string} StorageClass used to store the data -storageClass: "" -## @param external {bool} Enable external access from outside the cluster -external: false -## @section Application-specific parameters -## @param endpoints {[]string} Endpoints configuration, as a list of +## @param {quantity} size - Persistent Volume Claim size available for application data. +size: 10Gi + +## @param {string} storageClass - StorageClass used to store the data. +storageClass: "" + +## @param {bool} external - Enable external access from outside the cluster. +external: false + +## +## @section Application-specific parameters +## + +## @param {[]string} endpoints - Endpoints configuration, as a list of . +endpoints: [] ## Example: ## endpoints: ## - 10.100.3.1:80 @@ -17,37 +25,46 @@ external: false ## - 10.100.3.12:80 ## - 10.100.3.3:80 ## - 10.100.3.13:80 + ## -endpoints: [] - - ## @section HAProxy parameters ## -## @param haproxy {haproxy} HAProxy configuration + +## @typedef {struct} Resources - Explicit CPU and memory configuration for each replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @typedef {struct} HAProxy - HAProxy configuration. +## @field {int} replicas - Number of HAProxy replicas. +## @field {Resources} [resources] - Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. +## @field {ResourcesPreset} resourcesPreset - Default sizing preset used when `resources` is omitted. + +## @param {HAProxy} haproxy - HAProxy configuration. 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 resources.cpu {*quantity} CPU available to each replica - ## @field resources.memory {*quantity} Memory (RAM) available to each replica resources: {} - # resources: - # cpu: 4000m - # memory: 4Gi - ## @field haproxy.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: "nano" +## ## @section Nginx parameters ## -## @param nginx {nginx} Nginx configuration -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. - # resources: - # cpu: 4000m - # memory: 4Gi - resources: {} - ## @field nginx.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`. +## @typedef {struct} Nginx - Nginx configuration. +## @field {int} replicas - Number of Nginx replicas. +## @field {Resources} [resources] - Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. +## @field {ResourcesPreset} resourcesPreset - Default sizing preset used when `resources` is omitted. + +## @param {Nginx} nginx - Nginx configuration. +nginx: + replicas: 2 + resources: {} resourcesPreset: "nano" diff --git a/packages/apps/kafka/README.md b/packages/apps/kafka/README.md index 00301364..35251d6f 100644 --- a/packages/apps/kafka/README.md +++ b/packages/apps/kafka/README.md @@ -4,48 +4,48 @@ ### Common parameters -| Name | Description | Type | Value | -| ---------- | ----------------------------------------------- | ------ | ------- | -| `external` | Enable external access from outside the cluster | `bool` | `false` | +| Name | Description | Type | Value | +| ---------- | ------------------------------------------------ | ------ | ------- | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | ### 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 | `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` | `{}` | ### Kafka configuration -| Name | Description | Type | Value | -| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | -| `kafka` | Kafka configuration | `object` | `{}` | -| `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 available to each replica | `*quantity` | `null` | -| `kafka.resources.memory` | Memory (RAM) available to each replica | `*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` | `""` | +| Name | Description | Type | Value | +| ------------------------ | -------------------------------------------------------------------------------------------------------- | ---------- | ------- | +| `kafka` | Kafka configuration. | `object` | `{}` | +| `kafka.replicas` | Number of Kafka replicas. | `int` | `3` | +| `kafka.resources` | Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `kafka.resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `kafka.resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `kafka.resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `small` | +| `kafka.size` | Persistent Volume size for Kafka. | `quantity` | `10Gi` | +| `kafka.storageClass` | StorageClass used to store the Kafka data. | `string` | `""` | -### Zookeeper configuration +### ZooKeeper configuration -| Name | Description | Type | Value | -| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | -| `zookeeper` | Zookeeper configuration | `object` | `{}` | -| `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 available to each replica | `*quantity` | `null` | -| `zookeeper.resources.memory` | Memory (RAM) available to each replica | `*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` | `""` | +| Name | Description | Type | Value | +| ---------------------------- | -------------------------------------------------------------------------------------------------------- | ---------- | ------- | +| `zookeeper` | ZooKeeper configuration. | `object` | `{}` | +| `zookeeper.replicas` | Number of ZooKeeper replicas. | `int` | `3` | +| `zookeeper.resources` | Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `zookeeper.resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `zookeeper.resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `zookeeper.resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `small` | +| `zookeeper.size` | Persistent Volume size for ZooKeeper. | `quantity` | `5Gi` | +| `zookeeper.storageClass` | StorageClass used to store the ZooKeeper data. | `string` | `""` | ## Parameter examples and reference diff --git a/packages/apps/kafka/values.schema.json b/packages/apps/kafka/values.schema.json index e9319153..4b375b63 100644 --- a/packages/apps/kafka/values.schema.json +++ b/packages/apps/kafka/values.schema.json @@ -3,12 +3,12 @@ "type": "object", "properties": { "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "kafka": { - "description": "Kafka configuration", + "description": "Kafka configuration.", "type": "object", "default": {}, "required": [ @@ -19,17 +19,17 @@ ], "properties": { "replicas": { - "description": "Number of Kafka 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.", + "description": "Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -42,7 +42,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -57,7 +57,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "small", "enum": [ @@ -71,7 +71,7 @@ ] }, "size": { - "description": "Persistent Volume size for Kafka", + "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": [ @@ -85,13 +85,14 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the Kafka data", - "type": "string" + "description": "StorageClass used to store the Kafka data.", + "type": "string", + "default": "" } } }, "topics": { - "description": "Topics configuration", + "description": "Topics configuration.", "type": "array", "default": [], "items": { @@ -104,27 +105,27 @@ ], "properties": { "config": { - "description": "Topic configuration", + "description": "Topic configuration.", "type": "object", "x-kubernetes-preserve-unknown-fields": true }, "name": { - "description": "Topic name", + "description": "Topic name.", "type": "string" }, "partitions": { - "description": "Number of partitions", + "description": "Number of partitions.", "type": "integer" }, "replicas": { - "description": "Number of replicas", + "description": "Number of replicas.", "type": "integer" } } } }, "zookeeper": { - "description": "Zookeeper configuration", + "description": "ZooKeeper configuration.", "type": "object", "default": {}, "required": [ @@ -135,17 +136,17 @@ ], "properties": { "replicas": { - "description": "Number of ZooKeeper 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.", + "description": "Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -158,7 +159,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -173,7 +174,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "small", "enum": [ @@ -187,7 +188,7 @@ ] }, "size": { - "description": "Persistent Volume size for ZooKeeper", + "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": [ @@ -201,8 +202,9 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the ZooKeeper data", - "type": "string" + "description": "StorageClass used to store the ZooKeeper data.", + "type": "string", + "default": "" } } } diff --git a/packages/apps/kafka/values.yaml b/packages/apps/kafka/values.yaml index 20005c56..9c232262 100644 --- a/packages/apps/kafka/values.yaml +++ b/packages/apps/kafka/values.yaml @@ -1,17 +1,22 @@ +## ## @section Common parameters ## -## @param external {bool} Enable external access from outside the cluster + +## @param {bool} external - Enable external access from outside the cluster. external: false - +## ## @section Application-specific parameters ## -## @param topics {[]topic} Topics configuration -## @field topic {topic} Topic -## @field topic.name {string} Topic name -## @field topic.partitions {int} Number of partitions -## @field topic.replicas {int} Number of replicas -## @field topic.config {object} Topic configuration + +## @typedef {struct} Topic - Topic configuration. +## @field {string} name - Topic name. +## @field {int} partitions - Number of partitions. +## @field {int} replicas - Number of replicas. +## @field {object} config - Topic configuration. + +## @param {[]Topic} topics - Topics configuration. +topics: [] ## Example: ## topics: ## - name: Results @@ -27,46 +32,54 @@ external: false ## min.insync.replicas: 2 ## partitions: 1 ## replicas: 3 -## -topics: [] +## ## @section Kafka configuration ## -## @param kafka {kafka} Kafka configuration + +## @typedef {struct} Resources - Explicit CPU and memory configuration for each replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @typedef {struct} Kafka - Kafka configuration. +## @field {int} replicas - Number of Kafka replicas. +## @field {Resources} [resources] - Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. +## @field {ResourcesPreset} resourcesPreset - Default sizing preset used when `resources` is omitted. +## @field {quantity} size - Persistent Volume size for Kafka. +## @field {string} storageClass - StorageClass used to store the Kafka data. + +## @param {Kafka} kafka - Kafka configuration. 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 resources.cpu {*quantity} CPU available to each replica - ## @field resources.memory {*quantity} Memory (RAM) available to each replica - # resources: - # cpu: 4000m - # memory: 4Gi resources: {} - ## @field kafka.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: "small" - ## @field kafka.size {quantity} Persistent Volume size for Kafka size: 10Gi - ## @field kafka.storageClass {string} StorageClass used to store the Kafka data storageClass: "" - -## @section Zookeeper configuration ## -## @param zookeeper {zookeeper} Zookeeper configuration +## @section ZooKeeper configuration +## + +## @typedef {struct} ZooKeeper - ZooKeeper configuration. +## @field {int} replicas - Number of ZooKeeper replicas. +## @field {Resources} [resources] - Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. +## @field {ResourcesPreset} resourcesPreset - Default sizing preset used when `resources` is omitted. +## @field {quantity} size - Persistent Volume size for ZooKeeper. +## @field {string} storageClass - StorageClass used to store the ZooKeeper data. + +## @param {ZooKeeper} zookeeper - ZooKeeper configuration. 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. - # resources: - # cpu: 4000m - # memory: 4Gi resources: {} - - ## @field zookeeper.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: "small" - ## @field zookeeper.size {quantity} Persistent Volume size for ZooKeeper size: 5Gi - ## @field zookeeper.storageClass {string} StorageClass used to store the ZooKeeper data storageClass: "" - diff --git a/packages/apps/kubernetes/README.md b/packages/apps/kubernetes/README.md index 9a4c06e2..4bc344a2 100644 --- a/packages/apps/kubernetes/README.md +++ b/packages/apps/kubernetes/README.md @@ -84,92 +84,92 @@ See the reference for components utilized in this service: ### Common Parameters -| Name | Description | Type | Value | -| -------------- | ----------------------------------- | -------- | ------------ | -| `storageClass` | StorageClass used to store the data | `string` | `replicated` | +| Name | Description | Type | Value | +| -------------- | ------------------------------------ | -------- | ------------ | +| `storageClass` | StorageClass used to store the data. | `string` | `replicated` | -### Application-specific parameters +### Application-specific Parameters -| Name | Description | Type | Value | -| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------- | ----------- | -| `version` | Kubernetes version given as vMAJOR.MINOR. Available are versions from 1.28 to 1.33. | `string` | `v1.33` | -| `host` | Hostname used to access the Kubernetes cluster externally. Defaults to `.` when empty. | `string` | `""` | -| `nodeGroups` | Worker nodes configuration | `map[string]object` | `{...}` | -| `nodeGroups[name].minReplicas` | Minimum amount of replicas | `int` | `0` | -| `nodeGroups[name].maxReplicas` | Maximum amount of replicas | `int` | `10` | -| `nodeGroups[name].instanceType` | Virtual machine instance type | `string` | `u1.medium` | -| `nodeGroups[name].ephemeralStorage` | Ephemeral storage size | `quantity` | `20Gi` | -| `nodeGroups[name].roles` | List of node's roles | `[]string` | `[]` | -| `nodeGroups[name].resources` | Resources available to each worker node | `object` | `{}` | -| `nodeGroups[name].resources.cpu` | CPU available to each worker node | `*quantity` | `null` | -| `nodeGroups[name].resources.memory` | Memory (RAM) available to each worker node | `*quantity` | `null` | -| `nodeGroups[name].gpus` | List of GPUs to attach (WARN: NVIDIA driver requires at least 4 GiB of RAM) | `[]object` | `{}` | -| `nodeGroups[name].gpus[i].name` | Name of GPU, such as "nvidia.com/AD102GL_L40S" | `string` | `""` | +| Name | Description | Type | Value | +| ----------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------- | ----------- | +| `nodeGroups` | Worker nodes configuration map. | `map[string]object` | `{...}` | +| `nodeGroups[name].minReplicas` | Minimum number of replicas. | `int` | `0` | +| `nodeGroups[name].maxReplicas` | Maximum number of replicas. | `int` | `10` | +| `nodeGroups[name].instanceType` | Virtual machine instance type. | `string` | `u1.medium` | +| `nodeGroups[name].ephemeralStorage` | Ephemeral storage size. | `quantity` | `20Gi` | +| `nodeGroups[name].roles` | List of node roles. | `[]string` | `[]` | +| `nodeGroups[name].resources` | CPU and memory resources for each worker node. | `object` | `{}` | +| `nodeGroups[name].resources.cpu` | CPU available. | `quantity` | `""` | +| `nodeGroups[name].resources.memory` | Memory (RAM) available. | `quantity` | `""` | +| `nodeGroups[name].gpus` | List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM). | `[]object` | `[]` | +| `nodeGroups[name].gpus[i].name` | Name of GPU, such as "nvidia.com/AD102GL_L40S". | `string` | `""` | +| `version` | Kubernetes version (vMAJOR.MINOR). Supported: 1.28–1.33. | `string` | `v1.33` | +| `host` | External hostname for Kubernetes cluster. Defaults to `.` if empty. | `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` | Custom values to override | `object` | `{}` | -| `addons.cilium` | Cilium CNI plugin | `object` | `{}` | -| `addons.cilium.valuesOverride` | Custom values to override | `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` | `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.fluxcd` | Flux CD | `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.verticalPodAutoscaler` | VerticalPodAutoscaler | `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.coredns` | Coredns | `object` | `{}` | -| `addons.coredns.valuesOverride` | Custom values to override | `object` | `{}` | +| Name | Description | Type | Value | +| --------------------------------------------- | --------------------------------------------------------------------------- | ---------- | --------- | +| `addons` | Cluster addons configuration. | `object` | `{}` | +| `addons.certManager` | Cert-manager addon. | `object` | `{}` | +| `addons.certManager.enabled` | Enable cert-manager. | `bool` | `false` | +| `addons.certManager.valuesOverride` | Custom Helm values overrides. | `object` | `{}` | +| `addons.cilium` | Cilium CNI plugin. | `object` | `{}` | +| `addons.cilium.valuesOverride` | Custom Helm values overrides. | `object` | `{}` | +| `addons.gatewayAPI` | Gateway API addon. | `object` | `{}` | +| `addons.gatewayAPI.enabled` | Enable Gateway API. | `bool` | `false` | +| `addons.ingressNginx` | Ingress-NGINX controller. | `object` | `{}` | +| `addons.ingressNginx.enabled` | Enable the controller (requires nodes labeled `ingress-nginx`). | `bool` | `false` | +| `addons.ingressNginx.exposeMethod` | Method to expose the controller. Allowed values: `Proxied`, `LoadBalancer`. | `string` | `Proxied` | +| `addons.ingressNginx.hosts` | Domains routed to this tenant cluster when `exposeMethod` is `Proxied`. | `[]string` | `[]` | +| `addons.ingressNginx.valuesOverride` | Custom Helm values overrides. | `object` | `{}` | +| `addons.gpuOperator` | NVIDIA GPU Operator. | `object` | `{}` | +| `addons.gpuOperator.enabled` | Enable GPU Operator. | `bool` | `false` | +| `addons.gpuOperator.valuesOverride` | Custom Helm values overrides. | `object` | `{}` | +| `addons.fluxcd` | FluxCD GitOps operator. | `object` | `{}` | +| `addons.fluxcd.enabled` | Enable FluxCD. | `bool` | `false` | +| `addons.fluxcd.valuesOverride` | Custom Helm values overrides. | `object` | `{}` | +| `addons.monitoringAgents` | Monitoring agents. | `object` | `{}` | +| `addons.monitoringAgents.enabled` | Enable monitoring agents. | `bool` | `false` | +| `addons.monitoringAgents.valuesOverride` | Custom Helm values overrides. | `object` | `{}` | +| `addons.verticalPodAutoscaler` | Vertical Pod Autoscaler. | `object` | `{}` | +| `addons.verticalPodAutoscaler.valuesOverride` | Custom Helm values overrides. | `object` | `{}` | +| `addons.velero` | Velero backup/restore addon. | `object` | `{}` | +| `addons.velero.enabled` | Enable Velero. | `bool` | `false` | +| `addons.velero.valuesOverride` | Custom Helm values overrides. | `object` | `{}` | +| `addons.coredns` | CoreDNS addon. | `object` | `{}` | +| `addons.coredns.valuesOverride` | Custom Helm values overrides. | `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` | CPU available to each worker node | `*quantity` | `null` | -| `controlPlane.apiServer.resources.memory` | Memory (RAM) available to each worker node | `*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` | CPU available to each worker node | `*quantity` | `null` | -| `controlPlane.controllerManager.resources.memory` | Memory (RAM) available to each worker node | `*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` | CPU available to each worker node | `*quantity` | `null` | -| `controlPlane.scheduler.resources.memory` | Memory (RAM) available to each worker node | `*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` | CPU available to each worker node | `*quantity` | `null` | -| `controlPlane.konnectivity.server.resources.memory` | Memory (RAM) available to each worker node | `*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` | +| Name | Description | Type | Value | +| --------------------------------------------------- | ------------------------------------------------ | ---------- | -------- | +| `controlPlane` | Kubernetes control-plane configuration. | `object` | `{}` | +| `controlPlane.replicas` | Number of control-plane replicas. | `int` | `2` | +| `controlPlane.apiServer` | API Server configuration. | `object` | `{}` | +| `controlPlane.apiServer.resources` | CPU and memory resources for API Server. | `object` | `{}` | +| `controlPlane.apiServer.resources.cpu` | CPU available. | `quantity` | `""` | +| `controlPlane.apiServer.resources.memory` | Memory (RAM) available. | `quantity` | `""` | +| `controlPlane.apiServer.resourcesPreset` | Preset if `resources` omitted. | `string` | `medium` | +| `controlPlane.controllerManager` | Controller Manager configuration. | `object` | `{}` | +| `controlPlane.controllerManager.resources` | CPU and memory resources for Controller Manager. | `object` | `{}` | +| `controlPlane.controllerManager.resources.cpu` | CPU available. | `quantity` | `""` | +| `controlPlane.controllerManager.resources.memory` | Memory (RAM) available. | `quantity` | `""` | +| `controlPlane.controllerManager.resourcesPreset` | Preset if `resources` omitted. | `string` | `micro` | +| `controlPlane.scheduler` | Scheduler configuration. | `object` | `{}` | +| `controlPlane.scheduler.resources` | CPU and memory resources for Scheduler. | `object` | `{}` | +| `controlPlane.scheduler.resources.cpu` | CPU available. | `quantity` | `""` | +| `controlPlane.scheduler.resources.memory` | Memory (RAM) available. | `quantity` | `""` | +| `controlPlane.scheduler.resourcesPreset` | Preset if `resources` omitted. | `string` | `micro` | +| `controlPlane.konnectivity` | Konnectivity configuration. | `object` | `{}` | +| `controlPlane.konnectivity.server` | Konnectivity Server configuration. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources` | CPU and memory resources for Konnectivity. | `object` | `{}` | +| `controlPlane.konnectivity.server.resources.cpu` | CPU available. | `quantity` | `""` | +| `controlPlane.konnectivity.server.resources.memory` | Memory (RAM) available. | `quantity` | `""` | +| `controlPlane.konnectivity.server.resourcesPreset` | Preset if `resources` omitted. | `string` | `micro` | ## Parameter examples and reference diff --git a/packages/apps/kubernetes/values.schema.json b/packages/apps/kubernetes/values.schema.json index a4085e08..6092d35e 100644 --- a/packages/apps/kubernetes/values.schema.json +++ b/packages/apps/kubernetes/values.schema.json @@ -3,7 +3,7 @@ "type": "object", "properties": { "addons": { - "description": "Cluster addons configuration", + "description": "Cluster addons configuration.", "type": "object", "default": {}, "required": [ @@ -20,7 +20,7 @@ ], "properties": { "certManager": { - "description": "Cert-manager: automatically creates and manages SSL/TLS certificate", + "description": "Cert-manager addon.", "type": "object", "default": {}, "required": [ @@ -29,12 +29,12 @@ ], "properties": { "enabled": { - "description": "Enable cert-manager, which automatically creates and manages SSL/TLS certificates.", + "description": "Enable cert-manager.", "type": "boolean", "default": false }, "valuesOverride": { - "description": "Custom values to override", + "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true @@ -42,7 +42,7 @@ } }, "cilium": { - "description": "Cilium CNI plugin", + "description": "Cilium CNI plugin.", "type": "object", "default": {}, "required": [ @@ -50,7 +50,7 @@ ], "properties": { "valuesOverride": { - "description": "Custom values to override", + "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true @@ -58,7 +58,7 @@ } }, "coredns": { - "description": "Coredns", + "description": "CoreDNS addon.", "type": "object", "default": {}, "required": [ @@ -66,7 +66,7 @@ ], "properties": { "valuesOverride": { - "description": "Custom values to override", + "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true @@ -74,7 +74,7 @@ } }, "fluxcd": { - "description": "Flux CD", + "description": "FluxCD GitOps operator.", "type": "object", "default": {}, "required": [ @@ -83,12 +83,12 @@ ], "properties": { "enabled": { - "description": "Enable FluxCD", + "description": "Enable FluxCD.", "type": "boolean", "default": false }, "valuesOverride": { - "description": "Custom values to override", + "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true @@ -96,7 +96,7 @@ } }, "gatewayAPI": { - "description": "Gateway API", + "description": "Gateway API addon.", "type": "object", "default": {}, "required": [ @@ -104,14 +104,14 @@ ], "properties": { "enabled": { - "description": "Enable the Gateway API", + "description": "Enable Gateway API.", "type": "boolean", "default": false } } }, "gpuOperator": { - "description": "GPU-operator: NVIDIA GPU Operator", + "description": "NVIDIA GPU Operator.", "type": "object", "default": {}, "required": [ @@ -120,12 +120,12 @@ ], "properties": { "enabled": { - "description": "Enable the GPU-operator", + "description": "Enable GPU Operator.", "type": "boolean", "default": false }, "valuesOverride": { - "description": "Custom values to override", + "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true @@ -133,7 +133,7 @@ } }, "ingressNginx": { - "description": "Ingress-NGINX Controller", + "description": "Ingress-NGINX controller.", "type": "object", "default": {}, "required": [ @@ -143,21 +143,17 @@ ], "properties": { "enabled": { - "description": "Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role).", + "description": "Enable the controller (requires nodes labeled `ingress-nginx`).", "type": "boolean", "default": false }, "exposeMethod": { - "description": "Method to expose the Ingress-NGINX controller. Allowed values: `Proxied`, `LoadBalancer`.", + "description": "Method to expose the controller. Allowed values: `Proxied`, `LoadBalancer`.", "type": "string", - "default": "Proxied", - "enum": [ - "Proxied", - "LoadBalancer" - ] + "default": "Proxied" }, "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`.", + "description": "Domains routed to this tenant cluster when `exposeMethod` is `Proxied`.", "type": "array", "default": [], "items": { @@ -165,7 +161,7 @@ } }, "valuesOverride": { - "description": "Custom values to override", + "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true @@ -173,7 +169,7 @@ } }, "monitoringAgents": { - "description": "MonitoringAgents", + "description": "Monitoring agents.", "type": "object", "default": {}, "required": [ @@ -182,12 +178,12 @@ ], "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.", + "description": "Enable monitoring agents.", "type": "boolean", "default": false }, "valuesOverride": { - "description": "Custom values to override", + "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true @@ -195,7 +191,7 @@ } }, "velero": { - "description": "Velero", + "description": "Velero backup/restore addon.", "type": "object", "default": {}, "required": [ @@ -204,12 +200,12 @@ ], "properties": { "enabled": { - "description": "Enable Velero for backup and recovery of a tenant Kubernetes cluster.", + "description": "Enable Velero.", "type": "boolean", "default": false }, "valuesOverride": { - "description": "Custom values to override", + "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true @@ -217,7 +213,7 @@ } }, "verticalPodAutoscaler": { - "description": "VerticalPodAutoscaler", + "description": "Vertical Pod Autoscaler.", "type": "object", "default": {}, "required": [ @@ -225,7 +221,7 @@ ], "properties": { "valuesOverride": { - "description": "Custom values to override", + "description": "Custom Helm values overrides.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true @@ -235,7 +231,7 @@ } }, "controlPlane": { - "description": "Control Plane Configuration", + "description": "Kubernetes control-plane configuration.", "type": "object", "default": {}, "required": [ @@ -247,7 +243,7 @@ ], "properties": { "apiServer": { - "description": "Control plane API server configuration.", + "description": "API Server configuration.", "type": "object", "default": {}, "required": [ @@ -256,12 +252,12 @@ ], "properties": { "resources": { - "description": "Explicit CPU and memory configuration for the API Server. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "CPU and memory resources for API Server.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each worker node", + "description": "CPU available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -274,7 +270,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each worker node", + "description": "Memory (RAM) available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -289,7 +285,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Preset if `resources` omitted.", "type": "string", "default": "medium", "enum": [ @@ -314,12 +310,12 @@ ], "properties": { "resources": { - "description": "Explicit CPU and memory configuration for the Controller Manager. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "CPU and memory resources for Controller Manager.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each worker node", + "description": "CPU available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -332,7 +328,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each worker node", + "description": "Memory (RAM) available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -347,7 +343,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Preset if `resources` omitted.", "type": "string", "default": "micro", "enum": [ @@ -371,7 +367,7 @@ ], "properties": { "server": { - "description": "Konnectivity server configuration.", + "description": "Konnectivity Server configuration.", "type": "object", "default": {}, "required": [ @@ -380,12 +376,12 @@ ], "properties": { "resources": { - "description": "Explicit CPU and memory configuration for Konnectivity. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "CPU and memory resources for Konnectivity.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each worker node", + "description": "CPU available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -398,7 +394,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each worker node", + "description": "Memory (RAM) available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -413,7 +409,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Preset if `resources` omitted.", "type": "string", "default": "micro", "enum": [ @@ -431,7 +427,7 @@ } }, "replicas": { - "description": "Number of replicas for Kubernetes control plane components.", + "description": "Number of control-plane replicas.", "type": "integer", "default": 2 }, @@ -445,12 +441,12 @@ ], "properties": { "resources": { - "description": "Explicit CPU and memory configuration for the Scheduler. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "CPU and memory resources for Scheduler.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each worker node", + "description": "CPU available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -463,7 +459,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each worker node", + "description": "Memory (RAM) available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -478,7 +474,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Preset if `resources` omitted.", "type": "string", "default": "micro", "enum": [ @@ -496,11 +492,12 @@ } }, "host": { - "description": "Hostname used to access the Kubernetes cluster externally. Defaults to `.` when empty.", - "type": "string" + "description": "External hostname for Kubernetes cluster. Defaults to `.` if empty.", + "type": "string", + "default": "" }, "nodeGroups": { - "description": "Worker nodes configuration", + "description": "Worker nodes configuration map.", "type": "object", "default": { "md0": { @@ -526,7 +523,7 @@ ], "properties": { "ephemeralStorage": { - "description": "Ephemeral storage size", + "description": "Ephemeral storage size.", "default": "20Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -540,9 +537,8 @@ "x-kubernetes-int-or-string": true }, "gpus": { - "description": "List of GPUs to attach (WARN: NVIDIA driver requires at least 4 GiB of RAM)", + "description": "List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM).", "type": "array", - "default": [], "items": { "type": "object", "required": [ @@ -550,34 +546,33 @@ ], "properties": { "name": { - "description": "Name of GPU, such as \"nvidia.com/AD102GL_L40S\"", + "description": "Name of GPU, such as \"nvidia.com/AD102GL_L40S\".", "type": "string" } } } }, "instanceType": { - "description": "Virtual machine instance type", + "description": "Virtual machine instance type.", "type": "string", "default": "u1.medium" }, "maxReplicas": { - "description": "Maximum amount of replicas", + "description": "Maximum number of replicas.", "type": "integer", "default": 10 }, "minReplicas": { - "description": "Minimum amount of replicas", + "description": "Minimum number of replicas.", "type": "integer", "default": 0 }, "resources": { - "description": "Resources available to each worker node", + "description": "CPU and memory resources for each worker node.", "type": "object", - "default": {}, "properties": { "cpu": { - "description": "CPU available to each worker node", + "description": "CPU available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -590,7 +585,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each worker node", + "description": "Memory (RAM) available.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -605,7 +600,7 @@ } }, "roles": { - "description": "List of node's roles", + "description": "List of node roles.", "type": "array", "items": { "type": "string" @@ -615,12 +610,12 @@ } }, "storageClass": { - "description": "StorageClass used to store the data", + "description": "StorageClass used to store the data.", "type": "string", "default": "replicated" }, "version": { - "description": "Kubernetes version given as vMAJOR.MINOR. Available are versions from 1.28 to 1.33.", + "description": "Kubernetes version (vMAJOR.MINOR). Supported: 1.28–1.33.", "type": "string", "default": "v1.33", "enum": [ diff --git a/packages/apps/kubernetes/values.yaml b/packages/apps/kubernetes/values.yaml index d9bbf7db..312e0634 100644 --- a/packages/apps/kubernetes/values.yaml +++ b/packages/apps/kubernetes/values.yaml @@ -1,27 +1,40 @@ +## ## @section Common Parameters +## -## @param storageClass {string} StorageClass used to store the data +## @param {string} storageClass - StorageClass used to store the data. storageClass: replicated -## @section Application-specific parameters -## @param version {string} Kubernetes version given as vMAJOR.MINOR. Available are versions from 1.28 to 1.33. -version: "v1.33" -## @param host {string} Hostname used to access the Kubernetes cluster externally. Defaults to `.` when empty. -host: "" - -## @param nodeGroups {map[string]nodeGroup} Worker nodes configuration -## @field nodeGroup {nodeGroup} Node configuration -## @field nodeGroup.minReplicas {int default=0} Minimum amount of replicas -## @field nodeGroup.maxReplicas {int default=10} Maximum amount of replicas -## @field nodeGroup.instanceType {string default="u1.medium"} Virtual machine instance type -## @field nodeGroup.ephemeralStorage {quantity default="20Gi"} Ephemeral storage size -## @field nodeGroup.roles {[]string default=[]} List of node's roles -## @field nodeGroup.resources {resources default={}} Resources available to each worker node -## @field resources.cpu {*quantity} CPU available to each worker node -## @field resources.memory {*quantity} Memory (RAM) available to each worker node -## @field nodeGroup.gpus {[]gpu default={}} 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" ## +## @section Application-specific Parameters +## + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @typedef {struct} Resources - Explicit CPU and memory configuration for a node or component. +## @field {quantity} [cpu] - CPU available. +## @field {quantity} [memory] - Memory (RAM) available. + +## @typedef {struct} GPU - GPU configuration. +## @field {string} name - Name of GPU, such as "nvidia.com/AD102GL_L40S". + +## @typedef {struct} NodeGroup - Worker node group configuration. +## @field {int} minReplicas=0 - Minimum number of replicas. +## @field {int} maxReplicas=10 - Maximum number of replicas. +## @field {string} instanceType="u1.medium" - Virtual machine instance type. +## @field {quantity} ephemeralStorage="20Gi" - Ephemeral storage size. +## @field {[]string} roles - List of node roles. +## @field {Resources} resources - CPU and memory resources for each worker node. +## @field {[]GPU} gpus - List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM). + +## @param {map[string]NodeGroup} nodeGroups - Worker nodes configuration map. nodeGroups: md0: minReplicas: 0 @@ -31,141 +44,142 @@ nodeGroups: 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: [] +## @param {string} version - Kubernetes version (vMAJOR.MINOR). Supported: 1.28–1.33. +version: "v1.33" +## @param {string} host - External hostname for Kubernetes cluster. Defaults to `.` if empty. +host: "" + +## ## @section Cluster Addons ## -## @param addons {addons} Cluster addons configuration + +## @typedef {struct} CertManagerAddon - cert-manager addon. +## @field {bool} enabled - Enable cert-manager. +## @field {object} valuesOverride - Custom Helm values overrides. + +## @typedef {struct} CiliumAddon - Cilium CNI plugin. +## @field {object} valuesOverride - Custom Helm values overrides. + +## @typedef {struct} GatewayAPIAddon - Gateway API addon. +## @field {bool} enabled - Enable Gateway API. + +## @typedef {struct} IngressNginxAddon - Ingress-NGINX controller. +## @field {bool} enabled - Enable the controller (requires nodes labeled `ingress-nginx`). +## @field {string} exposeMethod - Method to expose the controller. Allowed values: `Proxied`, `LoadBalancer`. +## @field {[]string} hosts - Domains routed to this tenant cluster when `exposeMethod` is `Proxied`. +## @field {object} valuesOverride - Custom Helm values overrides. + +## @typedef {struct} GPUOperatorAddon - NVIDIA GPU Operator. +## @field {bool} enabled - Enable GPU Operator. +## @field {object} valuesOverride - Custom Helm values overrides. + +## @typedef {struct} FluxCDAddon - FluxCD GitOps operator. +## @field {bool} enabled - Enable FluxCD. +## @field {object} valuesOverride - Custom Helm values overrides. + +## @typedef {struct} MonitoringAgentsAddon - Monitoring agents (Fluent Bit, VMAgents). +## @field {bool} enabled - Enable monitoring agents. +## @field {object} valuesOverride - Custom Helm values overrides. + +## @typedef {struct} VerticalPodAutoscalerAddon - Vertical Pod Autoscaler. +## @field {object} valuesOverride - Custom Helm values overrides. + +## @typedef {struct} VeleroAddon - Velero backup and recovery addon. +## @field {bool} enabled - Enable Velero. +## @field {object} valuesOverride - Custom Helm values overrides. + +## @typedef {struct} CoreDNSAddon - CoreDNS addon. +## @field {object} valuesOverride - Custom Helm values overrides. + +## @typedef {struct} Addons - Cluster addons configuration. +## @field {CertManagerAddon} certManager - Cert-manager addon. +## @field {CiliumAddon} cilium - Cilium CNI plugin. +## @field {GatewayAPIAddon} gatewayAPI - Gateway API addon. +## @field {IngressNginxAddon} ingressNginx - Ingress-NGINX controller. +## @field {GPUOperatorAddon} gpuOperator - NVIDIA GPU Operator. +## @field {FluxCDAddon} fluxcd - FluxCD GitOps operator. +## @field {MonitoringAgentsAddon} monitoringAgents - Monitoring agents. +## @field {VerticalPodAutoscalerAddon} verticalPodAutoscaler - Vertical Pod Autoscaler. +## @field {VeleroAddon} velero - Velero backup/restore addon. +## @field {CoreDNSAddon} coredns - CoreDNS addon. + +## @param {Addons} addons - Cluster addons configuration. addons: - ## @field addons.certManager {certManager} Cert-manager: automatically creates and manages SSL/TLS certificate - ## certManager: - ## @field certManager.enabled {bool} Enable cert-manager, which automatically creates and manages SSL/TLS certificates. enabled: false - ## @field certManager.valuesOverride {object} Custom values to override valuesOverride: {} - - ## @field addons.cilium {cilium} Cilium CNI plugin - ## cilium: - ## @field cilium.valuesOverride {object} Custom values to override valuesOverride: {} - - ## @field addons.gatewayAPI {gatewayAPI} Gateway API - ## gatewayAPI: - ## @field gatewayAPI.enabled {bool} Enable the Gateway API enabled: false - - ## @field addons.ingressNginx {ingressNginx} Ingress-NGINX Controller - ## ingressNginx: - ## @field ingressNginx.enabled {bool} Enable the Ingress-NGINX controller (requires nodes labeled with the 'ingress-nginx' role). enabled: false - ## @field ingressNginx.exposeMethod {string enum:"Proxied,LoadBalancer"} Method to expose the Ingress-NGINX controller. Allowed values: `Proxied`, `LoadBalancer`. exposeMethod: 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 ingressNginx.valuesOverride {object} Custom values to override valuesOverride: {} - - ## @field addons.gpuOperator {gpuOperator} GPU-operator: NVIDIA GPU Operator - ## gpuOperator: - ## @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 fluxcd.enabled {bool} Enable FluxCD - ## @field fluxcd.valuesOverride {object} Custom values to override - ## enabled: false valuesOverride: {} - - ## @field addons.monitoringAgents {monitoringAgents} MonitoringAgents - ## monitoringAgents: - ## @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: {} - - ## @field addons.verticalPodAutoscaler {verticalPodAutoscaler} VerticalPodAutoscaler - ## verticalPodAutoscaler: - ## @field verticalPodAutoscaler.valuesOverride {object} Custom values to override - ## valuesOverride: {} - - ## @field addons.velero {velero} Velero - ## velero: - ## @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: {} - - ## @field addons.coredns {coredns} Coredns - ## coredns: - ## @field coredns.valuesOverride {object} Custom values to override - ## valuesOverride: {} +## ## @section Kubernetes Control Plane Configuration ## -## @param controlPlane {controlPlane} Control Plane Configuration + +## @typedef {struct} APIServer - API Server configuration. +## @field {Resources} resources - CPU and memory resources for API Server. +## @field {ResourcesPreset} resourcesPreset="medium" - Preset if `resources` omitted. + +## @typedef {struct} ControllerManager - Controller Manager configuration. +## @field {Resources} resources - CPU and memory resources for Controller Manager. +## @field {ResourcesPreset} resourcesPreset="micro" - Preset if `resources` omitted. + +## @typedef {struct} Scheduler - Scheduler configuration. +## @field {Resources} resources - CPU and memory resources for Scheduler. +## @field {ResourcesPreset} resourcesPreset="micro" - Preset if `resources` omitted. + +## @typedef {struct} KonnectivityServer - Konnectivity Server configuration. +## @field {Resources} resources - CPU and memory resources for Konnectivity. +## @field {ResourcesPreset} resourcesPreset="micro" - Preset if `resources` omitted. + +## @typedef {struct} Konnectivity - Konnectivity configuration. +## @field {KonnectivityServer} server - Konnectivity Server configuration. + +## @typedef {struct} ControlPlane - Kubernetes control plane configuration. +## @field {int} replicas=2 - Number of control-plane replicas. +## @field {APIServer} apiServer - API Server configuration. +## @field {ControllerManager} controllerManager - Controller Manager configuration. +## @field {Scheduler} scheduler - Scheduler configuration. +## @field {Konnectivity} konnectivity - Konnectivity configuration. + +## @param {ControlPlane} controlPlane - Kubernetes control-plane configuration. controlPlane: - ## @field controlPlane.replicas {int} Number of replicas for Kubernetes control plane components. replicas: 2 - ## @field controlPlane.apiServer {apiServer} Control plane API server configuration. apiServer: - ## @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 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. + resourcesPreset: "micro" scheduler: - ## @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. + resourcesPreset: "micro" konnectivity: - ## @field konnectivity.server {konnectivityServer} Konnectivity server configuration. server: - ## @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: {} + resourcesPreset: "micro" diff --git a/packages/apps/mysql/README.md b/packages/apps/mysql/README.md index 20345586..6ea0352f 100644 --- a/packages/apps/mysql/README.md +++ b/packages/apps/mysql/README.md @@ -69,44 +69,44 @@ more details: ### Common parameters -| Name | Description | Type | Value | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | -| `replicas` | Number of MariaDB replicas | `int` | `2` | -| `resources` | Explicit CPU and memory configuration for each MariaDB replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | -| `resources.cpu` | CPU available to each replica | `*quantity` | `null` | -| `resources.memory` | Memory (RAM) available to each replica | `*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` | `""` | -| `external` | Enable external access from outside the cluster | `bool` | `false` | +| Name | Description | Type | Value | +| ------------------ | --------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------- | +| `replicas` | Number of MariaDB replicas. | `int` | `2` | +| `resources` | Explicit CPU and memory configuration for each MariaDB replica. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `nano` | +| `size` | Persistent Volume Claim size available for application data. | `quantity` | `10Gi` | +| `storageClass` | StorageClass used to store the data. | `string` | `""` | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | ### Application-specific parameters -| Name | Description | Type | Value | -| -------------------------------- | --------------------------------------- | ------------------- | ------- | -| `users` | Users configuration | `map[string]object` | `{...}` | -| `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` | `[]` | +| Name | Description | Type | Value | +| -------------------------------- | ---------------------------------------- | ------------------- | ----- | +| `users` | Users configuration map. | `map[string]object` | `{}` | +| `users[name].password` | Password for the user. | `string` | `""` | +| `users[name].maxUserConnections` | Maximum number of connections. | `int` | `0` | +| `databases` | Databases configuration map. | `map[string]object` | `{}` | +| `databases[name].roles` | Roles assigned to users. | `object` | `{}` | +| `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/mysql-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` | `` | -| `backup.s3SecretKey` | Secret key for S3, used for authentication | `string` | `` | -| `backup.resticPassword` | Password for Restic backup encryption | `string` | `` | +| Name | Description | Type | Value | +| ------------------------ | ----------------------------------------------- | -------- | ------------------------------------------------------ | +| `backup` | Backup configuration. | `object` | `{}` | +| `backup.enabled` | Enable regular backups (default: 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/mysql-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 authentication. | `string` | `` | +| `backup.s3SecretKey` | Secret key for S3 authentication. | `string` | `` | +| `backup.resticPassword` | Password for Restic backup encryption. | `string` | `` | ## Parameter examples and reference diff --git a/packages/apps/mysql/values.schema.json b/packages/apps/mysql/values.schema.json index e675b64d..d5db33ab 100644 --- a/packages/apps/mysql/values.schema.json +++ b/packages/apps/mysql/values.schema.json @@ -3,7 +3,7 @@ "type": "object", "properties": { "backup": { - "description": "Backup configuration", + "description": "Backup configuration.", "type": "object", "default": {}, "required": [ @@ -18,67 +18,67 @@ ], "properties": { "cleanupStrategy": { - "description": "Retention strategy for cleaning up old backups", + "description": "Retention strategy for cleaning up old backups.", "type": "string", "default": "--keep-last=3 --keep-daily=3 --keep-within-weekly=1m" }, "enabled": { - "description": "Enable regular backups, default is `false`.", + "description": "Enable regular backups (default: false).", "type": "boolean", "default": false }, "resticPassword": { - "description": "Password for Restic backup encryption", + "description": "Password for Restic backup encryption.", "type": "string", "default": "\u003cpassword\u003e" }, "s3AccessKey": { - "description": "Access key for S3, used for authentication", + "description": "Access key for S3 authentication.", "type": "string", "default": "\u003cyour-access-key\u003e" }, "s3Bucket": { - "description": "S3 bucket used for storing backups", + "description": "S3 bucket used for storing backups.", "type": "string", "default": "s3.example.org/mysql-backups" }, "s3Region": { - "description": "AWS S3 region where backups are stored", + "description": "AWS S3 region where backups are stored.", "type": "string", "default": "us-east-1" }, "s3SecretKey": { - "description": "Secret key for S3, used for authentication", + "description": "Secret key for S3 authentication.", "type": "string", "default": "\u003cyour-secret-key\u003e" }, "schedule": { - "description": "Cron schedule for automated backups", + "description": "Cron schedule for automated backups.", "type": "string", "default": "0 2 * * *" } } }, "databases": { - "description": "Databases configuration", + "description": "Databases configuration map.", "type": "object", "default": {}, "additionalProperties": { "type": "object", "properties": { "roles": { - "description": "Roles for the database", + "description": "Roles assigned to users.", "type": "object", "properties": { "admin": { - "description": "List of users with admin privileges", + "description": "List of users with admin privileges.", "type": "array", "items": { "type": "string" } }, "readonly": { - "description": "List of users with read-only privileges", + "description": "List of users with read-only privileges.", "type": "array", "items": { "type": "string" @@ -90,22 +90,22 @@ } }, "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "replicas": { - "description": "Number of MariaDB replicas", + "description": "Number of MariaDB replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for each MariaDB replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration for each MariaDB replica. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -118,7 +118,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -133,7 +133,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "nano", "enum": [ @@ -147,7 +147,7 @@ ] }, "size": { - "description": "Persistent Volume Claim size, available for application data", + "description": "Persistent Volume Claim size available for application data.", "default": "10Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -161,11 +161,12 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used to store the data.", + "type": "string", + "default": "" }, "users": { - "description": "Users configuration", + "description": "Users configuration map.", "type": "object", "default": {}, "additionalProperties": { @@ -176,11 +177,11 @@ ], "properties": { "maxUserConnections": { - "description": "Maximum amount of connections", + "description": "Maximum number of connections.", "type": "integer" }, "password": { - "description": "Password for the user", + "description": "Password for the user.", "type": "string" } } diff --git a/packages/apps/mysql/values.yaml b/packages/apps/mysql/values.yaml index 4d18dc31..0d08ca58 100644 --- a/packages/apps/mysql/values.yaml +++ b/packages/apps/mysql/values.yaml @@ -1,28 +1,48 @@ +## ## @section Common parameters ## -## @param replicas {int} Number of MariaDB replicas + +## @typedef {struct} Resources - Explicit CPU and memory configuration for each MariaDB replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @param {int} replicas - Number of MariaDB replicas. replicas: 2 -## @param resources {*resources} Explicit CPU and memory configuration for each MariaDB replica. When left empty, the preset defined in `resourcesPreset` is applied. -## @field resources.cpu {*quantity} CPU available to each replica -## @field resources.memory {*quantity} Memory (RAM) available to each replica + +## @param {Resources} [resources] - Explicit CPU and memory configuration for each MariaDB replica. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} - # resources: - # cpu: 4000m - # memory: 4Gi -## @param 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`. + +## @param {ResourcesPreset} resourcesPreset="nano" - Default sizing preset used when `resources` is omitted. resourcesPreset: "nano" -## @param size {quantity} Persistent Volume Claim size, available for application data + +## @param {quantity} size - Persistent Volume Claim size available for application data. size: 10Gi -## @param storageClass {string} StorageClass used to store the data + +## @param {string} storageClass - StorageClass used to store the data. storageClass: "" -## @param external {bool} Enable external access from outside the cluster + +## @param {bool} external - Enable external access from outside the cluster. external: false +## ## @section Application-specific parameters ## -## @param users {map[string]user} Users configuration -## @field user.password {string} Password for the user -## @field user.maxUserConnections {int} Maximum amount of connections + +## @typedef {struct} User - User configuration. +## @field {string} password - Password for the user. +## @field {int} maxUserConnections - Maximum number of connections. + +## @param {map[string]User} users - Users configuration map. +users: {} ## Example: ## users: ## user1: @@ -31,15 +51,16 @@ external: false ## user2: ## maxUserConnections: 1000 ## password: hackme -## -users: {} +## @typedef {struct} DatabaseRoles - Role assignments for a database. +## @field {[]string} [admin] - List of users with admin privileges. +## @field {[]string} [readonly] - List of users with read-only privileges. -## @param databases {map[string]database} Databases configuration -## @field database.roles {*databaseRoles} Roles for the database -## @field databaseRoles.admin {[]string} List of users with admin privileges -## @field databaseRoles.readonly {[]string} List of users with read-only privileges -## +## @typedef {struct} Database - Database configuration. +## @field {DatabaseRoles} [roles] - Roles assigned to users. + +## @param {map[string]Database} databases - Databases configuration map. +databases: {} ## Example: ## databases: ## myapp1: @@ -48,19 +69,22 @@ users: {} ## - user1 ## readonly: ## - user2 -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 + +## @typedef {struct} Backup - Backup configuration. +## @field {bool} enabled - Enable regular backups (default: false). +## @field {string} s3Region - AWS S3 region where backups are stored. +## @field {string} s3Bucket - S3 bucket used for storing backups. +## @field {string} schedule - Cron schedule for automated backups. +## @field {string} cleanupStrategy - Retention strategy for cleaning up old backups. +## @field {string} s3AccessKey - Access key for S3 authentication. +## @field {string} s3SecretKey - Secret key for S3 authentication. +## @field {string} resticPassword - Password for Restic backup encryption. + +## @param {Backup} backup - Backup configuration. backup: enabled: false s3Region: us-east-1 @@ -70,4 +94,3 @@ backup: s3AccessKey: "" s3SecretKey: "" resticPassword: "" - diff --git a/packages/apps/nats/README.md b/packages/apps/nats/README.md index 24317583..7220c52c 100644 --- a/packages/apps/nats/README.md +++ b/packages/apps/nats/README.md @@ -7,29 +7,29 @@ It provides a data layer for cloud native applications, IoT messaging, and micro ### Common parameters -| Name | Description | Type | Value | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | -| `replicas` | Number of replicas | `int` | `2` | -| `resources` | Explicit CPU and memory configuration for each NATS replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | -| `resources.cpu` | CPU available to each replica | `*quantity` | `null` | -| `resources.memory` | Memory (RAM) available to each replica | `*quantity` | `null` | -| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `nano` | -| `storageClass` | StorageClass used to store the data | `string` | `""` | -| `external` | Enable external access from outside the cluster | `bool` | `false` | +| Name | Description | Type | Value | +| ------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ---------- | ------- | +| `replicas` | Number of replicas. | `int` | `2` | +| `resources` | Explicit CPU and memory configuration for each NATS replica. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `nano` | +| `storageClass` | StorageClass used to store the data. | `string` | `""` | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | ### Application-specific parameters -| Name | Description | Type | Value | -| ---------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------- | ------- | -| `users` | Users configuration | `map[string]object` | `{...}` | -| `users[name].password` | Password for the user | `*string` | `null` | -| `jetstream` | Jetstream configuration | `object` | `{}` | -| `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` | `{}` | -| `config.resolver` | Additional resolver configuration to merge into NATS config (see example) | `*object` | `{}` | +| Name | Description | Type | Value | +| ---------------------- | ------------------------------------------------------------- | ------------------- | ------ | +| `users` | Users configuration map. | `map[string]object` | `{}` | +| `users[name].password` | Password for the user. | `string` | `""` | +| `jetstream` | Jetstream configuration. | `object` | `{}` | +| `jetstream.enabled` | Enable or disable Jetstream for persistent messaging in NATS. | `bool` | `true` | +| `jetstream.size` | Jetstream persistent storage size. | `quantity` | `10Gi` | +| `config` | NATS configuration. | `object` | `{}` | +| `config.merge` | Additional configuration to merge into NATS config. | `*object` | `{}` | +| `config.resolver` | Additional resolver configuration to merge into NATS config. | `*object` | `{}` | ## Parameter examples and reference diff --git a/packages/apps/nats/values.schema.json b/packages/apps/nats/values.schema.json index d211df82..3ef5fef7 100644 --- a/packages/apps/nats/values.schema.json +++ b/packages/apps/nats/values.schema.json @@ -3,18 +3,18 @@ "type": "object", "properties": { "config": { - "description": "NATS configuration", + "description": "NATS configuration.", "type": "object", "default": {}, "properties": { "merge": { - "description": "Additional configuration to merge into NATS config (see example)", + "description": "Additional configuration to merge into NATS config.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true }, "resolver": { - "description": "Additional resolver configuration to merge into NATS config (see example)", + "description": "Additional resolver configuration to merge into NATS config.", "type": "object", "default": {}, "x-kubernetes-preserve-unknown-fields": true @@ -22,12 +22,12 @@ } }, "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "jetstream": { - "description": "Jetstream configuration", + "description": "Jetstream configuration.", "type": "object", "default": {}, "required": [ @@ -36,12 +36,12 @@ ], "properties": { "enabled": { - "description": "Enable or disable Jetstream. Set to `true` (default) to enable Jetstream for persistent messaging in NATS.", + "description": "Enable or disable Jetstream for persistent messaging in NATS.", "type": "boolean", "default": true }, "size": { - "description": "Jetstream persistent storage size. Specifies the size of the persistent storage for Jetstream (message store).", + "description": "Jetstream persistent storage size.", "default": "10Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -57,17 +57,17 @@ } }, "replicas": { - "description": "Number of replicas", + "description": "Number of replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for each NATS replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration for each NATS replica. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -80,7 +80,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -95,7 +95,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "nano", "enum": [ @@ -109,18 +109,19 @@ ] }, "storageClass": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used to store the data.", + "type": "string", + "default": "" }, "users": { - "description": "Users configuration", + "description": "Users configuration map.", "type": "object", "default": {}, "additionalProperties": { "type": "object", "properties": { "password": { - "description": "Password for the user", + "description": "Password for the user.", "type": "string" } } diff --git a/packages/apps/nats/values.yaml b/packages/apps/nats/values.yaml index 5cd40a7c..31d97713 100644 --- a/packages/apps/nats/values.yaml +++ b/packages/apps/nats/values.yaml @@ -1,75 +1,64 @@ +## ## @section Common parameters ## -## @param replicas {int} Number of replicas + +## @typedef {struct} Resources - Explicit CPU and memory configuration for each NATS replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @param {int} replicas - Number of replicas. replicas: 2 -## @param resources {*resources} Explicit CPU and memory configuration for each NATS replica. When left empty, the preset defined in `resourcesPreset` is applied. -## @field resources.cpu {*quantity} CPU available to each replica -## @field resources.memory {*quantity} Memory (RAM) available to each replica + +## @param {Resources} [resources] - Explicit CPU and memory configuration for each NATS replica. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} - # resources: - # cpu: 4000m - # memory: 4Gi -## @param 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`. + +## @param {ResourcesPreset} resourcesPreset="nano" - Default sizing preset used when `resources` is omitted. resourcesPreset: "nano" -## @param storageClass {string} StorageClass used to store the data + +## @param {string} storageClass - StorageClass used to store the data. storageClass: "" -## @param external {bool} Enable external access from outside the cluster + +## @param {bool} external - Enable external access from outside the cluster. external: false +## ## @section Application-specific parameters ## -## @param users {map[string]user} Users configuration -## @field user.password {*string} Password for the user + +## @typedef {struct} User - User configuration. +## @field {string} [password] - Password for the user. + +## @param {map[string]User} users - Users configuration map. +users: {} ## Example: ## users: ## user1: ## password: strongpassword ## user2: {} -users: {} -## @param jetstream {jetstream} Jetstream configuration +## @typedef {struct} Jetstream - Jetstream configuration. +## @field {bool} enabled=true - Enable or disable Jetstream for persistent messaging in NATS. +## @field {quantity} size - Jetstream persistent storage size. + +## @param {Jetstream} jetstream - Jetstream configuration. jetstream: - ## @field jetstream.enabled {bool} Enable or disable Jetstream. Set to `true` (default) to enable Jetstream for persistent messaging in NATS. - ## - ## Default: true enabled: true - ## @field jetstream.size {quantity} Jetstream persistent storage size. Specifies the size of the persistent storage for Jetstream (message store). - ## size: 10Gi -## @param config {config} NATS configuration -config: - ## @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: {} - ## example: - ## - ## merge: - ## $include: ./my-config.conf - ## zzz$include: ./my-config-last.conf - ## server_name: nats - ## authorization: - ## token: << $TOKEN >> - ## jetstream: - ## max_memory_store: << 1GB >> - ## - ## will yield the config: - ## { - ## include ./my-config.conf; - ## "authorization": { - ## "token": $TOKEN - ## }, - ## "jetstream": { - ## "max_memory_store": 1GB - ## }, - ## "server_name": "nats", - ## include ./my-config-last.conf; - ## } - merge: {} - ## @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 - resolver: {} +## @typedef {struct} Config - NATS configuration. +## @field {*object} [merge] - Additional configuration to merge into NATS config. +## @field {*object} [resolver] - Additional resolver configuration to merge into NATS config. +## @param {Config} config - NATS configuration. +config: + merge: {} + resolver: {} diff --git a/packages/apps/postgres/README.md b/packages/apps/postgres/README.md index 7c31e499..61e8e05f 100644 --- a/packages/apps/postgres/README.md +++ b/packages/apps/postgres/README.md @@ -66,60 +66,78 @@ See: ### Common parameters -| Name | Description | Type | Value | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | -| `replicas` | Number of Postgres replicas | `int` | `2` | -| `resources` | Explicit CPU and memory configuration for each PostgreSQL replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | -| `resources.cpu` | CPU available to each replica | `*quantity` | `null` | -| `resources.memory` | Memory (RAM) available to each replica | `*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` | `""` | -| `external` | Enable external access from outside the cluster | `bool` | `false` | +| Name | Description | Type | Value | +| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ------- | +| `replicas` | Number of Postgres replicas. | `int` | `2` | +| `resources` | Explicit CPU and memory configuration for each PostgreSQL replica. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `micro` | +| `size` | Persistent Volume Claim size available for application data. | `quantity` | `10Gi` | +| `storageClass` | StorageClass used to store the data. | `string` | `""` | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | ### Application-specific parameters -| Name | Description | Type | Value | -| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------- | ------- | -| `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` | -| `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` | -| `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` | -| `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].extensions` | Extensions enabled for the database | `[]string` | `[]` | +| Name | Description | Type | Value | +| --------------------------------------- | ---------------------------------------------------------------- | -------- | ----- | +| `postgresql` | PostgreSQL server configuration. | `object` | `{}` | +| `postgresql.parameters` | PostgreSQL server parameters. | `object` | `{}` | +| `postgresql.parameters.max_connections` | Maximum number of concurrent connections to the database server. | `int` | `100` | + + +### Quorum-based synchronous replication + +| Name | Description | Type | Value | +| ------------------------ | ---------------------------------------------------------------------------------- | -------- | ----- | +| `quorum` | Quorum configuration for synchronous replication. | `object` | `{}` | +| `quorum.minSyncReplicas` | Minimum number of synchronous replicas required for commit. | `int` | `0` | +| `quorum.maxSyncReplicas` | Maximum number of synchronous replicas allowed (must be less than total replicas). | `int` | `0` | + + +### Users configuration + +| Name | Description | Type | Value | +| ------------------------- | -------------------------------------------- | ------------------- | ------- | +| `users` | Users configuration map. | `map[string]object` | `{}` | +| `users[name].password` | Password for the user. | `string` | `""` | +| `users[name].replication` | Whether the user has replication privileges. | `bool` | `false` | + + +### Databases configuration + +| Name | Description | Type | Value | +| -------------------------------- | ---------------------------------------- | ------------------- | ----- | +| `databases` | Databases configuration map. | `map[string]object` | `{}` | +| `databases[name].roles` | Roles assigned to users. | `object` | `{}` | +| `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` | List of enabled PostgreSQL extensions. | `[]string` | `[]` | ### Backup parameters -| Name | Description | Type | Value | -| ------------------------ | ---------------------------------------------------------- | --------- | ----------------------------------- | -| `backup` | Backup configuration | `object` | `{}` | -| `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` | `` | +| Name | Description | Type | Value | +| ------------------------ | ------------------------------------------------------ | -------- | ----------------------------------- | +| `backup` | Backup configuration. | `object` | `{}` | +| `backup.enabled` | Enable regular backups. | `bool` | `false` | +| `backup.schedule` | Cron schedule for automated backups. | `string` | `0 2 * * * *` | +| `backup.retentionPolicy` | Retention policy (e.g. "30d"). | `string` | `30d` | +| `backup.destinationPath` | Destination path for backups (e.g. s3://bucket/path/). | `string` | `s3://bucket/path/to/folder/` | +| `backup.endpointURL` | S3 endpoint URL for uploads. | `string` | `http://minio-gateway-service:9000` | +| `backup.s3AccessKey` | Access key for S3 authentication. | `string` | `` | +| `backup.s3SecretKey` | Secret key for S3 authentication. | `string` | `` | ### Bootstrap (recovery) parameters -| Name | Description | Type | Value | -| ------------------------ | -------------------------------------------------------------------------------------------------------------------- | --------- | ------- | -| `bootstrap` | Bootstrap configuration | `object` | `{}` | -| `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` | `""` | +| Name | Description | Type | Value | +| ------------------------ | ------------------------------------------------------------------- | -------- | ------- | +| `bootstrap` | Bootstrap configuration. | `object` | `{}` | +| `bootstrap.enabled` | Whether to restore from a backup. | `bool` | `false` | +| `bootstrap.recoveryTime` | Timestamp (RFC3339) for point-in-time recovery; empty means latest. | `string` | `""` | +| `bootstrap.oldName` | Previous cluster name before deletion. | `string` | `""` | ## Parameter examples and reference diff --git a/packages/apps/postgres/values.schema.json b/packages/apps/postgres/values.schema.json index 151280db..ba4f6b36 100644 --- a/packages/apps/postgres/values.schema.json +++ b/packages/apps/postgres/values.schema.json @@ -3,49 +3,52 @@ "type": "object", "properties": { "backup": { - "description": "Backup configuration", + "description": "Backup configuration.", "type": "object", "default": {}, + "required": [ + "enabled" + ], "properties": { "destinationPath": { - "description": "Path to store the backup (i.e. s3://bucket/path/to/folder)", + "description": "Destination path for backups (e.g. s3://bucket/path/).", "type": "string", "default": "s3://bucket/path/to/folder/" }, "enabled": { - "description": "Enable regular backups", + "description": "Enable regular backups.", "type": "boolean", "default": false }, "endpointURL": { - "description": "S3 Endpoint used to upload data to the cloud", + "description": "S3 endpoint URL for uploads.", "type": "string", "default": "http://minio-gateway-service:9000" }, "retentionPolicy": { - "description": "Retention policy", + "description": "Retention policy (e.g. \"30d\").", "type": "string", "default": "30d" }, "s3AccessKey": { - "description": "Access key for S3, used for authentication", + "description": "Access key for S3 authentication.", "type": "string", "default": "\u003cyour-access-key\u003e" }, "s3SecretKey": { - "description": "Secret key for S3, used for authentication", + "description": "Secret key for S3 authentication.", "type": "string", "default": "\u003cyour-secret-key\u003e" }, "schedule": { - "description": "Cron schedule for automated backups", + "description": "Cron schedule for automated backups.", "type": "string", "default": "0 2 * * * *" } } }, "bootstrap": { - "description": "Bootstrap configuration", + "description": "Bootstrap configuration.", "type": "object", "default": {}, "required": [ @@ -54,47 +57,49 @@ ], "properties": { "enabled": { - "description": "Restore database cluster from a backup", + "description": "Whether to restore from a backup.", "type": "boolean", "default": false }, "oldName": { - "description": "Name of database cluster before deleting", - "type": "string" + "description": "Previous cluster name before deletion.", + "type": "string", + "default": "" }, "recoveryTime": { - "description": "Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest", - "type": "string" + "description": "Timestamp (RFC3339) for point-in-time recovery; empty means latest.", + "type": "string", + "default": "" } } }, "databases": { - "description": "Databases configuration", + "description": "Databases configuration map.", "type": "object", "default": {}, "additionalProperties": { "type": "object", "properties": { "extensions": { - "description": "Extensions enabled for the database", + "description": "List of enabled PostgreSQL extensions.", "type": "array", "items": { "type": "string" } }, "roles": { - "description": "Roles for the database", + "description": "Roles assigned to users.", "type": "object", "properties": { "admin": { - "description": "List of users with admin privileges", + "description": "List of users with admin privileges.", "type": "array", "items": { "type": "string" } }, "readonly": { - "description": "List of users with read-only privileges", + "description": "List of users with read-only privileges.", "type": "array", "items": { "type": "string" @@ -106,28 +111,22 @@ } }, "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "postgresql": { - "description": "PostgreSQL server configuration", + "description": "PostgreSQL server configuration.", "type": "object", "default": {}, - "required": [ - "parameters" - ], "properties": { "parameters": { - "description": "PostgreSQL server parameters", + "description": "PostgreSQL server parameters.", "type": "object", "default": {}, - "required": [ - "max_connections" - ], "properties": { "max_connections": { - "description": "Determines the maximum number of concurrent connections to the database server. The default is typically 100 connections", + "description": "Maximum number of concurrent connections to the database server.", "type": "integer", "default": 100 } @@ -136,7 +135,7 @@ } }, "quorum": { - "description": "Quorum configuration for synchronous replication", + "description": "Quorum configuration for synchronous replication.", "type": "object", "default": {}, "required": [ @@ -145,29 +144,29 @@ ], "properties": { "maxSyncReplicas": { - "description": "Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances).", + "description": "Maximum number of synchronous replicas allowed (must be less than total replicas).", "type": "integer", "default": 0 }, "minSyncReplicas": { - "description": "Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed.", + "description": "Minimum number of synchronous replicas required for commit.", "type": "integer", "default": 0 } } }, "replicas": { - "description": "Number of Postgres replicas", + "description": "Number of Postgres replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for each PostgreSQL replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration for each PostgreSQL replica. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -180,7 +179,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -195,7 +194,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "micro", "enum": [ @@ -209,7 +208,7 @@ ] }, "size": { - "description": "Persistent Volume Claim size, available for application data", + "description": "Persistent Volume Claim size available for application data.", "default": "10Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -223,22 +222,23 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used to store the data.", + "type": "string", + "default": "" }, "users": { - "description": "Users configuration", + "description": "Users configuration map.", "type": "object", "default": {}, "additionalProperties": { "type": "object", "properties": { "password": { - "description": "Password for the user", + "description": "Password for the user.", "type": "string" }, "replication": { - "description": "Whether the user has replication privileges", + "description": "Whether the user has replication privileges.", "type": "boolean" } } diff --git a/packages/apps/postgres/values.yaml b/packages/apps/postgres/values.yaml index 4444486c..a0d5e741 100644 --- a/packages/apps/postgres/values.yaml +++ b/packages/apps/postgres/values.yaml @@ -1,44 +1,76 @@ +## ## @section Common parameters ## -## @param replicas {int} Number of Postgres replicas + +## @typedef {struct} Resources - Explicit CPU and memory configuration for each PostgreSQL replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @param {int} replicas - Number of Postgres replicas. replicas: 2 -## @param resources {*resources} Explicit CPU and memory configuration for each PostgreSQL replica. When left empty, the preset defined in `resourcesPreset` is applied. -## @field resources.cpu {*quantity} CPU available to each replica -## @field resources.memory {*quantity} Memory (RAM) available to each replica + +## @param {Resources} [resources] - Explicit CPU and memory configuration for each PostgreSQL replica. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} - # resources: - # cpu: 4000m - # memory: 4Gi -## @param 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`. + +## @param {ResourcesPreset} resourcesPreset="micro" - Default sizing preset used when `resources` is omitted. resourcesPreset: "micro" -## @param size {quantity} Persistent Volume Claim size, available for application data + +## @param {quantity} size - Persistent Volume Claim size available for application data. size: 10Gi -## @param storageClass {string} StorageClass used to store the data + +## @param {string} storageClass - StorageClass used to store the data. storageClass: "" -## @param external {bool} Enable external access from outside the cluster + +## @param {bool} external - Enable external access from outside the cluster. external: false -## @section Application-specific parameters -## @param postgresql {postgresql} PostgreSQL server configuration -## @field postgresql.parameters {postgresqlParameters} PostgreSQL server parameters -## @field postgresqlParameters.max_connections {int} Determines the maximum number of concurrent connections to the database server. The default is typically 100 connections ## +## @section Application-specific parameters +## + +## @typedef {struct} PostgreSQLParameters - PostgreSQL server parameters. +## @field {int} [max_connections] - Maximum number of concurrent connections to the database server. + +## @typedef {struct} PostgreSQL - PostgreSQL server configuration. +## @field {PostgreSQLParameters} [parameters] - PostgreSQL server parameters. + +## @param {PostgreSQL} postgresql - PostgreSQL server configuration. postgresql: parameters: max_connections: 100 -## Configuration for the quorum-based synchronous replication -## @param quorum {quorum} Quorum configuration for synchronous replication -## @field quorum.minSyncReplicas {int} Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed. -## @field quorum.maxSyncReplicas {int} Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances). +## +## @section Quorum-based synchronous replication +## + +## @typedef {struct} Quorum - Quorum configuration for synchronous replication. +## @field {int} minSyncReplicas - Minimum number of synchronous replicas required for commit. +## @field {int} maxSyncReplicas - Maximum number of synchronous replicas allowed (must be less than total replicas). + +## @param {Quorum} quorum - Quorum configuration for synchronous replication. quorum: minSyncReplicas: 0 maxSyncReplicas: 0 -## @param users {map[string]user} Users configuration -## @field user.password {*string} Password for the user -## @field user.replication {*bool} Whether the user has replication privileges ## +## @section Users configuration +## + +## @typedef {struct} User - User configuration. +## @field {string} [password] - Password for the user. +## @field {bool} [replication] - Whether the user has replication privileges. + +## @param {map[string]User} users - Users configuration map. +users: {} ## Example: ## users: ## user1: @@ -49,15 +81,21 @@ quorum: ## password: qwerty123 ## debezium: ## replication: true -## -users: {} -## @param databases {map[string]database} Databases configuration -## @field database.roles {*databaseRoles} Roles for the database -## @field databaseRoles.admin {[]string} List of users with admin privileges -## @field databaseRoles.readonly {[]string} List of users with read-only privileges -## @field database.extensions {[]string} Extensions enabled for the database ## +## @section Databases configuration +## + +## @typedef {struct} DatabaseRoles - Role assignments for a database. +## @field {[]string} [admin] - List of users with admin privileges. +## @field {[]string} [readonly] - List of users with read-only privileges. + +## @typedef {struct} Database - Database configuration. +## @field {DatabaseRoles} [roles] - Roles assigned to users. +## @field {[]string} [extensions] - List of enabled PostgreSQL extensions. + +## @param {map[string]Database} databases - Databases configuration map. +databases: {} ## Example: ## databases: ## myapp: @@ -73,18 +111,21 @@ users: {} ## - airflow ## extensions: ## - hstore -databases: {} +## ## @section Backup parameters +## -## @param backup {backup} Backup configuration -## @field backup.enabled {*bool} Enable regular backups -## @field backup.schedule {*string} Cron schedule for automated backups -## @field backup.retentionPolicy {*string} Retention policy -## @field backup.destinationPath {*string} Path to store the backup (i.e. s3://bucket/path/to/folder) -## @field backup.endpointURL {*string} S3 Endpoint used to upload data to the cloud -## @field backup.s3AccessKey {*string} Access key for S3, used for authentication -## @field backup.s3SecretKey {*string} Secret key for S3, used for authentication +## @typedef {struct} Backup - Backup configuration. +## @field {bool} enabled - Enable regular backups. +## @field {string} [schedule] - Cron schedule for automated backups. +## @field {string} [retentionPolicy] - Retention policy (e.g. "30d"). +## @field {string} [destinationPath] - Destination path for backups (e.g. s3://bucket/path/). +## @field {string} [endpointURL] - S3 endpoint URL for uploads. +## @field {string} [s3AccessKey] - Access key for S3 authentication. +## @field {string} [s3SecretKey] - Secret key for S3 authentication. + +## @param {Backup} backup - Backup configuration. backup: enabled: false retentionPolicy: 30d @@ -94,16 +135,18 @@ backup: s3AccessKey: "" s3SecretKey: "" -## @section Bootstrap (recovery) parameters - -## @param bootstrap {bootstrap} Bootstrap configuration -## @field bootstrap.enabled {bool} Restore database cluster from a backup -## @field bootstrap.recoveryTime {*string} Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest -## @field bootstrap.oldName {string} Name of database cluster before deleting ## +## @section Bootstrap (recovery) parameters +## + +## @typedef {struct} Bootstrap - Bootstrap configuration for restoring a database cluster from a backup. +## @field {bool} enabled - Whether to restore from a backup. +## @field {string} [recoveryTime] - Timestamp (RFC3339) for point-in-time recovery; empty means latest. +## @field {string} oldName - Previous cluster name before deletion. + +## @param {Bootstrap} bootstrap - Bootstrap configuration. bootstrap: enabled: false # example: 2020-11-26 15:22:00.00000+00 recoveryTime: "" oldName: "" - diff --git a/packages/apps/rabbitmq/README.md b/packages/apps/rabbitmq/README.md index a9fa121c..4b19c7b3 100644 --- a/packages/apps/rabbitmq/README.md +++ b/packages/apps/rabbitmq/README.md @@ -13,28 +13,28 @@ The service utilizes official RabbitMQ operator. This ensures the reliability an ### Common parameters -| Name | Description | Type | Value | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | -| `replicas` | Number of RabbitMQ replicas | `int` | `3` | -| `resources` | Explicit CPU and memory configuration for each RabbitMQ replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | -| `resources.cpu` | CPU available to each replica | `*quantity` | `null` | -| `resources.memory` | Memory (RAM) available to each replica | `*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` | `""` | -| `external` | Enable external access from outside the cluster | `bool` | `false` | +| Name | Description | Type | Value | +| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------- | +| `replicas` | Number of RabbitMQ replicas. | `int` | `3` | +| `resources` | Explicit CPU and memory configuration for each RabbitMQ replica. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `nano` | +| `size` | Persistent Volume Claim size available for application data. | `quantity` | `10Gi` | +| `storageClass` | StorageClass used to store the data. | `string` | `""` | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | ### Application-specific parameters -| Name | Description | Type | Value | -| ----------------------------- | --------------------------- | ------------------- | ------- | -| `users` | Users configuration | `map[string]object` | `{...}` | -| `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` | `[]` | +| Name | Description | Type | Value | +| ----------------------------- | -------------------------------- | ------------------- | ----- | +| `users` | Users configuration map. | `map[string]object` | `{}` | +| `users[name].password` | Password for the user. | `string` | `""` | +| `vhosts` | Virtual hosts configuration map. | `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` | `[]` | ## Parameter examples and reference diff --git a/packages/apps/rabbitmq/values.schema.json b/packages/apps/rabbitmq/values.schema.json index 3278fd99..04b8fa11 100644 --- a/packages/apps/rabbitmq/values.schema.json +++ b/packages/apps/rabbitmq/values.schema.json @@ -3,22 +3,22 @@ "type": "object", "properties": { "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "replicas": { - "description": "Number of RabbitMQ replicas", + "description": "Number of RabbitMQ replicas.", "type": "integer", "default": 3 }, "resources": { - "description": "Explicit CPU and memory configuration for each RabbitMQ replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration for each RabbitMQ replica. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -31,7 +31,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -46,7 +46,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "nano", "enum": [ @@ -60,7 +60,7 @@ ] }, "size": { - "description": "Persistent Volume Claim size, available for application data", + "description": "Persistent Volume Claim size available for application data.", "default": "10Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -74,25 +74,26 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used to store the data.", + "type": "string", + "default": "" }, "users": { - "description": "Users configuration", + "description": "Users configuration map.", "type": "object", "default": {}, "additionalProperties": { "type": "object", "properties": { "password": { - "description": "Password for the user", + "description": "Password for the user.", "type": "string" } } } }, "vhosts": { - "description": "Virtual Hosts configuration", + "description": "Virtual hosts configuration map.", "type": "object", "default": {}, "additionalProperties": { @@ -102,18 +103,18 @@ ], "properties": { "roles": { - "description": "Virtual host roles list", + "description": "Virtual host roles list.", "type": "object", "properties": { "admin": { - "description": "List of admin users", + "description": "List of admin users.", "type": "array", "items": { "type": "string" } }, "readonly": { - "description": "List of readonly users", + "description": "List of readonly users.", "type": "array", "items": { "type": "string" diff --git a/packages/apps/rabbitmq/values.yaml b/packages/apps/rabbitmq/values.yaml index 30dfe2e8..65d5de44 100644 --- a/packages/apps/rabbitmq/values.yaml +++ b/packages/apps/rabbitmq/values.yaml @@ -1,29 +1,47 @@ +## ## @section Common parameters ## -## @param replicas {int} Number of RabbitMQ replicas + +## @typedef {struct} Resources - Explicit CPU and memory configuration for each RabbitMQ replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @param {int} replicas - Number of RabbitMQ replicas. replicas: 3 -## @param resources {*resources} Explicit CPU and memory configuration for each RabbitMQ replica. When left empty, the preset defined in `resourcesPreset` is applied. -## @field resources.cpu {*quantity} CPU available to each replica -## @field resources.memory {*quantity} Memory (RAM) available to each replica -# resources: -# cpu: 4000m -# memory: 4Gi + +## @param {Resources} [resources] - Explicit CPU and memory configuration for each RabbitMQ replica. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} -## @param 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`. +## @param {ResourcesPreset} resourcesPreset="nano" - Default sizing preset used when `resources` is omitted. resourcesPreset: "nano" -## @param size {quantity} Persistent Volume Claim size, available for application data + +## @param {quantity} size - Persistent Volume Claim size available for application data. size: 10Gi -## @param storageClass {string} StorageClass used to store the data + +## @param {string} storageClass - StorageClass used to store the data. storageClass: "" -## @param external {bool} Enable external access from outside the cluster + +## @param {bool} external - Enable external access from outside the cluster. external: false - +## ## @section Application-specific parameters ## -## @param users {map[string]user} Users configuration -## @field user.password {*string} Password for the user + +## @typedef {struct} User - User configuration. +## @field {string} [password] - Password for the user. + +## @param {map[string]User} users - Users configuration map. +users: {} ## Example: ## users: ## user1: @@ -32,14 +50,16 @@ external: false ## password: hackme ## user3: ## password: testtest -## -users: {} -## @param vhosts {map[string]vhost} Virtual Hosts configuration -## @field vhost.roles {roles} Virtual host roles list -## @field roles.admin {[]string} List of admin users -## @field roles.readonly {[]string} List of readonly users -## +## @typedef {struct} Roles - Virtual host roles. +## @field {[]string} [admin] - List of admin users. +## @field {[]string} [readonly] - List of readonly users. + +## @typedef {struct} Vhost - Virtual host configuration. +## @field {Roles} roles - Virtual host roles list. + +## @param {map[string]Vhost} vhosts - Virtual hosts configuration map. +vhosts: {} ## Example: ## vhosts: ## myapp: @@ -53,5 +73,3 @@ users: {} ## roles: ## admin: ## - user3 -vhosts: {} - diff --git a/packages/apps/redis/README.md b/packages/apps/redis/README.md index b1e6a4e6..00f41d36 100644 --- a/packages/apps/redis/README.md +++ b/packages/apps/redis/README.md @@ -13,23 +13,23 @@ Service utilizes the Spotahome Redis Operator for efficient management and orche ### Common parameters -| Name | Description | Type | Value | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | -| `replicas` | Number of Redis replicas | `int` | `2` | -| `resources` | Explicit CPU and memory configuration for each Redis replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | -| `resources.cpu` | CPU available to each replica | `*quantity` | `null` | -| `resources.memory` | Memory (RAM) available to each replica | `*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` | `1Gi` | -| `storageClass` | StorageClass used to store the data | `string` | `""` | -| `external` | Enable external access from outside the cluster | `bool` | `false` | +| Name | Description | Type | Value | +| ------------------ | ------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------- | +| `replicas` | Number of Redis replicas. | `int` | `2` | +| `resources` | Explicit CPU and memory configuration for each Redis replica. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `nano` | +| `size` | Persistent Volume Claim size available for application data. | `quantity` | `1Gi` | +| `storageClass` | StorageClass used to store the data. | `string` | `""` | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | ### Application-specific parameters -| Name | Description | Type | Value | -| ------------- | -------------------------- | ------ | ------ | -| `authEnabled` | Enable password generation | `bool` | `true` | +| Name | Description | Type | Value | +| ------------- | --------------------------- | ------ | ------ | +| `authEnabled` | Enable password generation. | `bool` | `true` | ## Parameter examples and reference diff --git a/packages/apps/redis/values.schema.json b/packages/apps/redis/values.schema.json index 0c94e967..db338803 100644 --- a/packages/apps/redis/values.schema.json +++ b/packages/apps/redis/values.schema.json @@ -3,27 +3,27 @@ "type": "object", "properties": { "authEnabled": { - "description": "Enable password generation", + "description": "Enable password generation.", "type": "boolean", "default": true }, "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "replicas": { - "description": "Number of Redis replicas", + "description": "Number of Redis replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for each Redis replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration for each Redis replica. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -36,7 +36,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -51,7 +51,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "nano", "enum": [ @@ -65,7 +65,7 @@ ] }, "size": { - "description": "Persistent Volume Claim size, available for application data", + "description": "Persistent Volume Claim size available for application data.", "default": "1Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -79,8 +79,9 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used to store the data.", + "type": "string", + "default": "" } } } \ No newline at end of file diff --git a/packages/apps/redis/values.yaml b/packages/apps/redis/values.yaml index 518f43d4..87b01a57 100644 --- a/packages/apps/redis/values.yaml +++ b/packages/apps/redis/values.yaml @@ -1,25 +1,41 @@ +## ## @section Common parameters ## -## @param replicas {int} Number of Redis replicas + +## @typedef {struct} Resources - Explicit CPU and memory configuration for each Redis replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @param {int} replicas - Number of Redis replicas. replicas: 2 -## @param resources {*resources} Explicit CPU and memory configuration for each Redis replica. When left empty, the preset defined in `resourcesPreset` is applied. -## @field resources.cpu {*quantity} CPU available to each replica -## @field resources.memory {*quantity} Memory (RAM) available to each replica + +## @param {Resources} [resources] - Explicit CPU and memory configuration for each Redis replica. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} - # resources: - # cpu: 4000m - # memory: 4Gi -## @param 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`. + +## @param {ResourcesPreset} resourcesPreset="nano" - Default sizing preset used when `resources` is omitted. resourcesPreset: "nano" -## @param size {quantity} Persistent Volume Claim size, available for application data + +## @param {quantity} size - Persistent Volume Claim size available for application data. size: 1Gi -## @param storageClass {string} StorageClass used to store the data + +## @param {string} storageClass - StorageClass used to store the data. storageClass: "" -## @param external {bool} Enable external access from outside the cluster + +## @param {bool} external - Enable external access from outside the cluster. external: false - +## ## @section Application-specific parameters ## -## @param authEnabled {bool} Enable password generation + +## @param {bool} authEnabled - Enable password generation. authEnabled: true diff --git a/packages/apps/tcp-balancer/README.md b/packages/apps/tcp-balancer/README.md index 0409ea3c..c25990aa 100644 --- a/packages/apps/tcp-balancer/README.md +++ b/packages/apps/tcp-balancer/README.md @@ -12,28 +12,28 @@ Managed TCP Load Balancer Service efficiently utilizes HAProxy for load balancin ### Common parameters -| Name | Description | Type | Value | -| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ----------- | ------- | -| `replicas` | Number of HAProxy replicas | `int` | `2` | -| `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 available to each replica | `*quantity` | `null` | -| `resources.memory` | Memory (RAM) available to each replica | `*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` | +| Name | Description | Type | Value | +| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------- | +| `replicas` | Number of HAProxy replicas. | `int` | `2` | +| `resources` | Explicit CPU and memory configuration for each TCP Balancer replica. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `nano` | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | ### Application-specific parameters -| Name | Description | Type | Value | -| -------------------------------- | ---------------------------------------------------------------- | ---------- | ------- | -| `httpAndHttps` | HTTP and HTTPS configuration | `object` | `{}` | -| `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.endpoints` | Endpoint addresses list | `[]string` | `[]` | -| `whitelistHTTP` | Secure HTTP by whitelisting client networks, `false` by default. | `bool` | `false` | -| `whitelist` | List of allowed client networks | `[]string` | `[]` | +| Name | Description | Type | Value | +| -------------------------------- | ------------------------------------------------------------- | ---------- | ------- | +| `httpAndHttps` | HTTP and HTTPS configuration. | `object` | `{}` | +| `httpAndHttps.mode` | Mode for balancer. | `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.endpoints` | Endpoint addresses list. | `[]string` | `[]` | +| `whitelistHTTP` | Secure HTTP by whitelisting client networks (default: false). | `bool` | `false` | +| `whitelist` | List of allowed client networks. | `[]string` | `[]` | ## Parameter examples and reference diff --git a/packages/apps/tcp-balancer/values.schema.json b/packages/apps/tcp-balancer/values.schema.json index 950716e0..ea30664a 100644 --- a/packages/apps/tcp-balancer/values.schema.json +++ b/packages/apps/tcp-balancer/values.schema.json @@ -3,12 +3,12 @@ "type": "object", "properties": { "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "httpAndHttps": { - "description": "HTTP and HTTPS configuration", + "description": "HTTP and HTTPS configuration.", "type": "object", "default": {}, "required": [ @@ -17,7 +17,7 @@ ], "properties": { "endpoints": { - "description": "Endpoint addresses list", + "description": "Endpoint addresses list.", "type": "array", "default": [], "items": { @@ -25,7 +25,7 @@ } }, "mode": { - "description": "Mode for balancer. Allowed values: `tcp` and `tcp-with-proxy`", + "description": "Mode for balancer.", "type": "string", "default": "tcp", "enum": [ @@ -34,7 +34,7 @@ ] }, "targetPorts": { - "description": "Target ports configuration", + "description": "Target ports configuration.", "type": "object", "default": {}, "required": [ @@ -57,16 +57,17 @@ } }, "replicas": { - "description": "Number of HAProxy replicas", + "description": "Number of HAProxy replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for each TCP Balancer replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration for each TCP Balancer replica. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", + "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -79,7 +80,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -94,7 +95,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "nano", "enum": [ @@ -108,7 +109,7 @@ ] }, "whitelist": { - "description": "List of allowed client networks", + "description": "List of allowed client networks.", "type": "array", "default": [], "items": { @@ -116,7 +117,7 @@ } }, "whitelistHTTP": { - "description": "Secure HTTP by whitelisting client networks, `false` by default.", + "description": "Secure HTTP by whitelisting client networks (default: false).", "type": "boolean", "default": false } diff --git a/packages/apps/tcp-balancer/values.yaml b/packages/apps/tcp-balancer/values.yaml index b763ceb3..9451ff8a 100644 --- a/packages/apps/tcp-balancer/values.yaml +++ b/packages/apps/tcp-balancer/values.yaml @@ -1,44 +1,50 @@ +## ## @section Common parameters ## -## @param replicas {int} Number of HAProxy replicas + +## @typedef {struct} Resources - Explicit CPU and memory configuration for each TCP Balancer replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @param {int} replicas - Number of HAProxy replicas. replicas: 2 -## @param resources {*resources} Explicit CPU and memory configuration for each TCP Balancer replica. When left empty, the preset defined in `resourcesPreset` is applied. -## @field resources.cpu {*quantity} CPU available to each replica -## @field resources.memory {*quantity} Memory (RAM) available to each replica -#resources: {} -# resources: -# cpu: 4000m -# memory: 4Gi -## @param 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`. + +## @param {Resources} [resources] - Explicit CPU and memory configuration for each TCP Balancer replica. When omitted, the preset defined in `resourcesPreset` is applied. +resources: {} + +## @param {ResourcesPreset} resourcesPreset="nano" - Default sizing preset used when `resources` is omitted. resourcesPreset: "nano" -## -## @param external {bool} Enable external access from outside the cluster + +## @param {bool} external - Enable external access from outside the cluster. external: false - +## ## @section Application-specific parameters ## -## @param httpAndHttps {httpAndHttps} HTTP and HTTPS configuration -## @field httpAndHttps.mode {string enum:"tcp,tcp-with-proxy"} Mode for balancer. Allowed values: `tcp` and `tcp-with-proxy` -## @field httpAndHttps.targetPorts {targetPorts} Target ports configuration -## @field targetPorts.http {int} HTTP port number. -## @field targetPorts.https {int} HTTPS port number. -## @field httpAndHttps.endpoints {[]string} Endpoint addresses list -## Example: -## -## httpAndHttps: -## mode: tcp -## targetPorts: -## http: 80 -## https: 443 -## endpoints: -## - 10.100.3.1 -## - 10.100.3.11 -## - 10.100.3.2 -## - 10.100.3.12 -## - 10.100.3.3 -## - 10.100.3.13 +## @enum {string} Mode - Mode for balancer. +## @value tcp +## @value tcp-with-proxy + +## @typedef {struct} TargetPorts - Target ports configuration. +## @field {int} http - HTTP port number. +## @field {int} https - HTTPS port number. + +## @typedef {struct} HttpAndHttps - HTTP and HTTPS configuration. +## @field {Mode} mode - Mode for balancer. +## @field {TargetPorts} targetPorts - Target ports configuration. +## @field {[]string} endpoints - Endpoint addresses list. + +## @param {HttpAndHttps} httpAndHttps - HTTP and HTTPS configuration. httpAndHttps: mode: tcp targetPorts: @@ -46,14 +52,14 @@ httpAndHttps: https: 443 endpoints: [] -## @param whitelistHTTP {bool} Secure HTTP by whitelisting client networks, `false` by default. -## @param whitelist {[]string} List of allowed client networks +## @param {bool} whitelistHTTP - Secure HTTP by whitelisting client networks (default: false). +whitelistHTTP: false ## Example: ## whitelistHTTP: true ## whitelist: ## - "1.2.3.4" ## - "10.100.0.0/16" ## -whitelistHTTP: false -whitelist: [] +## @param {[]string} whitelist - List of allowed client networks. +whitelist: [] diff --git a/packages/apps/tenant/README.md b/packages/apps/tenant/README.md index 3d53b466..222c98a5 100644 --- a/packages/apps/tenant/README.md +++ b/packages/apps/tenant/README.md @@ -69,13 +69,13 @@ tenant-u1 ### Common parameters -| Name | Description | Type | Value | -| ---------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------- | ------- | -| `host` | The hostname used to access tenant services (defaults to using the tenant name as a subdomain for it's parent tenant host). | `*string` | `""` | -| `etcd` | Deploy own Etcd cluster | `bool` | `false` | -| `monitoring` | Deploy own Monitoring Stack | `bool` | `false` | -| `ingress` | Deploy own Ingress Controller | `bool` | `false` | -| `seaweedfs` | Deploy own SeaweedFS | `bool` | `false` | -| `isolated` | Enforce tenant namespace with network policies, `true` by default | `bool` | `true` | -| `resourceQuotas` | Define resource quotas for the tenant | `map[string]quantity` | `{}` | +| Name | Description | Type | Value | +| ---------------- | -------------------------------------------------------------------------------------------------------------------------- | --------------------- | ------- | +| `host` | The hostname used to access tenant services (defaults to using the tenant name as a subdomain for its parent tenant host). | `string` | `""` | +| `etcd` | Deploy own Etcd cluster. | `bool` | `false` | +| `monitoring` | Deploy own Monitoring Stack. | `bool` | `false` | +| `ingress` | Deploy own Ingress Controller. | `bool` | `false` | +| `seaweedfs` | Deploy own SeaweedFS. | `bool` | `false` | +| `isolated` | Enforce tenant namespace with network policies (default: true). | `bool` | `true` | +| `resourceQuotas` | Define resource quotas for the tenant. | `map[string]quantity` | `{}` | diff --git a/packages/apps/tenant/values.schema.json b/packages/apps/tenant/values.schema.json index 1a5b8567..7690e2b4 100644 --- a/packages/apps/tenant/values.schema.json +++ b/packages/apps/tenant/values.schema.json @@ -3,31 +3,32 @@ "type": "object", "properties": { "etcd": { - "description": "Deploy own Etcd cluster", + "description": "Deploy own Etcd cluster.", "type": "boolean", "default": false }, "host": { - "description": "The hostname used to access tenant services (defaults to using the tenant name as a subdomain for it's parent tenant host).", - "type": "string" + "description": "The hostname used to access tenant services (defaults to using the tenant name as a subdomain for its parent tenant host).", + "type": "string", + "default": "" }, "ingress": { - "description": "Deploy own Ingress Controller", + "description": "Deploy own Ingress Controller.", "type": "boolean", "default": false }, "isolated": { - "description": "Enforce tenant namespace with network policies, `true` by default", + "description": "Enforce tenant namespace with network policies (default: true).", "type": "boolean", "default": true }, "monitoring": { - "description": "Deploy own Monitoring Stack", + "description": "Deploy own Monitoring Stack.", "type": "boolean", "default": false }, "resourceQuotas": { - "description": "Define resource quotas for the tenant", + "description": "Define resource quotas for the tenant.", "type": "object", "default": {}, "additionalProperties": { @@ -44,7 +45,7 @@ } }, "seaweedfs": { - "description": "Deploy own SeaweedFS", + "description": "Deploy own SeaweedFS.", "type": "boolean", "default": false } diff --git a/packages/apps/tenant/values.yaml b/packages/apps/tenant/values.yaml index ae41bf5b..4543bb6b 100644 --- a/packages/apps/tenant/values.yaml +++ b/packages/apps/tenant/values.yaml @@ -1,21 +1,24 @@ +## ## @section Common parameters +## -## @param host {*string} The hostname used to access tenant services (defaults to using the tenant name as a subdomain for it's parent tenant host). -## @param etcd {bool} Deploy own Etcd cluster -## @param monitoring {bool} Deploy own Monitoring Stack -## @param ingress {bool} Deploy own Ingress Controller -## @param seaweedfs {bool} Deploy own SeaweedFS -## @param isolated {bool} Enforce tenant namespace with network policies, `true` by default +## @param {string} [host] - The hostname used to access tenant services (defaults to using the tenant name as a subdomain for its parent tenant host). host: "" + +## @param {bool} etcd - Deploy own Etcd cluster. etcd: false + +## @param {bool} monitoring - Deploy own Monitoring Stack. monitoring: false + +## @param {bool} ingress - Deploy own Ingress Controller. ingress: false + +## @param {bool} seaweedfs - Deploy own SeaweedFS. seaweedfs: false + +## @param {bool} isolated - Enforce tenant namespace with network policies (default: true). isolated: true -## @param resourceQuotas {map[string]quantity} Define resource quotas for the tenant + +## @param {map[string]quantity} resourceQuotas - Define resource quotas for the tenant. resourceQuotas: {} -# resourceQuotas: -# cpu: "1" -# memory: "1Gi" -# nvidia.com/gpu: 4 -# storage: 100Gi diff --git a/packages/apps/virtual-machine/README.md b/packages/apps/virtual-machine/README.md index 969d47ea..1d23e87a 100644 --- a/packages/apps/virtual-machine/README.md +++ b/packages/apps/virtual-machine/README.md @@ -36,27 +36,27 @@ virtctl ssh @ ### Common parameters -| Name | Description | Type | Value | -| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------ | -| `external` | Enable external access from outside the cluster | `bool` | `false` | -| `externalMethod` | Specify method to pass through the traffic to the virtual machine. Allowed values: `WholeIP` and `PortList` | `string` | `PortList` | -| `externalPorts` | Specify ports to forward from outside the cluster | `[]int` | `[22]` | -| `running` | if the virtual machine should be running | `bool` | `true` | -| `instanceType` | Virtual Machine instance type | `string` | `u1.medium` | -| `instanceProfile` | Virtual Machine preferences profile | `string` | `ubuntu` | -| `systemDisk` | System disk configuration | `object` | `{}` | -| `systemDisk.image` | The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine`, `fedora` and `talos` | `string` | `ubuntu` | -| `systemDisk.storage` | The size of the disk allocated for the virtual machine | `string` | `5Gi` | -| `systemDisk.storageClass` | StorageClass used to store the data | `*string` | `replicated` | -| `gpus` | List of GPUs to attach | `[]object` | `[]` | -| `gpus[i].name` | The name of the GPU to attach. This should match the GPU resource name in the cluster. | `string` | `""` | -| `resources` | Resources | `*object` | `null` | -| `resources.cpu` | The number of CPU cores 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` | -| `resources.memory` | The amount of memory allocated to the virtual machine | `*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/reference/examples.html). | `string` | `""` | -| `cloudInitSeed` | A seed string to generate an SMBIOS UUID for the VM. | `string` | `""` | +| Name | Description | Type | Value | +| ------------------------- | ------------------------------------------------------- | ---------- | ------------ | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | +| `externalMethod` | Method to pass through traffic to the VM. | `string` | `PortList` | +| `externalPorts` | Ports to forward from outside the cluster. | `[]int` | `[22]` | +| `running` | Whether the virtual machine should be running. | `bool` | `true` | +| `instanceType` | Virtual Machine instance type. | `string` | `u1.medium` | +| `instanceProfile` | Virtual Machine preferences profile. | `string` | `ubuntu` | +| `systemDisk` | System disk configuration. | `object` | `{}` | +| `systemDisk.image` | The base image for the virtual machine. | `string` | `ubuntu` | +| `systemDisk.storage` | The size of the disk allocated for the virtual machine. | `string` | `5Gi` | +| `systemDisk.storageClass` | StorageClass used to store the data. | `string` | `replicated` | +| `gpus` | List of GPUs to attach. | `[]object` | `[]` | +| `gpus[i].name` | The name of the GPU resource to attach. | `string` | `""` | +| `resources` | Resource configuration for the virtual machine. | `object` | `{}` | +| `resources.cpu` | Number of CPU cores allocated. | `quantity` | `""` | +| `resources.sockets` | Number of CPU sockets (vCPU topology). | `quantity` | `""` | +| `resources.memory` | Amount of memory allocated. | `quantity` | `""` | +| `sshKeys` | List of SSH public keys for authentication. | `[]string` | `[]` | +| `cloudInit` | Cloud-init user data. | `string` | `""` | +| `cloudInitSeed` | Seed string to generate SMBIOS UUID for the VM. | `string` | `""` | ## U Series diff --git a/packages/apps/virtual-machine/values.schema.json b/packages/apps/virtual-machine/values.schema.json index a31c82f4..c88568b3 100644 --- a/packages/apps/virtual-machine/values.schema.json +++ b/packages/apps/virtual-machine/values.schema.json @@ -3,20 +3,22 @@ "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/reference/examples.html).", - "type": "string" + "description": "Cloud-init user data.", + "type": "string", + "default": "" }, "cloudInitSeed": { - "description": "A seed string to generate an SMBIOS UUID for the VM.", - "type": "string" + "description": "Seed string to generate SMBIOS UUID for the VM.", + "type": "string", + "default": "" }, "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "externalMethod": { - "description": "Specify method to pass through the traffic to the virtual machine. Allowed values: `WholeIP` and `PortList`", + "description": "Method to pass through traffic to the VM.", "type": "string", "default": "PortList", "enum": [ @@ -25,7 +27,7 @@ ] }, "externalPorts": { - "description": "Specify ports to forward from outside the cluster", + "description": "Ports to forward from outside the cluster.", "type": "array", "default": [ 22 @@ -35,7 +37,7 @@ } }, "gpus": { - "description": "List of GPUs to attach", + "description": "List of GPUs to attach.", "type": "array", "default": [], "items": { @@ -45,14 +47,14 @@ ], "properties": { "name": { - "description": "The name of the GPU to attach. This should match the GPU resource name in the cluster.", + "description": "The name of the GPU resource to attach.", "type": "string" } } } }, "instanceProfile": { - "description": "Virtual Machine preferences profile", + "description": "Virtual Machine preferences profile.", "type": "string", "default": "ubuntu", "enum": [ @@ -102,17 +104,17 @@ ] }, "instanceType": { - "description": "Virtual Machine instance type", + "description": "Virtual Machine instance type.", "type": "string", "default": "u1.medium" }, "resources": { - "description": "Resources", + "description": "Resource configuration for the virtual machine.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "The number of CPU cores allocated to the virtual machine", + "description": "Number of CPU cores allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -125,7 +127,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "The amount of memory allocated to the virtual machine", + "description": "Amount of memory allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -138,7 +140,7 @@ "x-kubernetes-int-or-string": true }, "sockets": { - "description": "The number of CPU sockets allocated to the virtual machine (used to define vCPU topology)", + "description": "Number of CPU sockets (vCPU topology).", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -153,12 +155,12 @@ } }, "running": { - "description": "if the virtual machine should be running", + "description": "Whether the virtual machine should be running.", "type": "boolean", "default": true }, "sshKeys": { - "description": "List of SSH public keys for authentication. Can be a single key or a list of keys.", + "description": "List of SSH public keys for authentication.", "type": "array", "default": [], "items": { @@ -166,7 +168,7 @@ } }, "systemDisk": { - "description": "System disk configuration", + "description": "System disk configuration.", "type": "object", "default": {}, "required": [ @@ -175,7 +177,7 @@ ], "properties": { "image": { - "description": "The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine`, `fedora` and `talos`", + "description": "The base image for the virtual machine.", "type": "string", "default": "ubuntu", "enum": [ @@ -187,12 +189,12 @@ ] }, "storage": { - "description": "The size of the disk allocated for the virtual machine", + "description": "The size of the disk allocated for the virtual machine.", "type": "string", "default": "5Gi" }, "storageClass": { - "description": "StorageClass used to store the data", + "description": "StorageClass used to store the data.", "type": "string", "default": "replicated" } diff --git a/packages/apps/virtual-machine/values.yaml b/packages/apps/virtual-machine/values.yaml index c0046d96..2f15759e 100644 --- a/packages/apps/virtual-machine/values.yaml +++ b/packages/apps/virtual-machine/values.yaml @@ -1,76 +1,87 @@ - +## ## @section Common parameters ## -## @param external {bool} Enable external access from outside the cluster + +## @enum {string} ExternalMethod - Method to pass through traffic to the VM. +## @value PortList - Forward selected ports only. +## @value WholeIP - Forward all traffic for the IP. + +## @enum {string} SystemImage - The base image for the virtual machine. +## @value ubuntu +## @value cirros +## @value alpine +## @value fedora +## @value talos + +## @typedef {struct} SystemDisk - System disk configuration. +## @field {SystemImage} image - The base image for the virtual machine. +## @field {string} storage - The size of the disk allocated for the virtual machine. +## @field {string} [storageClass] - StorageClass used to store the data. + +## @typedef {struct} GPU - GPU device configuration. +## @field {string} name - The name of the GPU resource to attach. + +## @typedef {struct} Resources - Resource configuration for the virtual machine. +## @field {quantity} [cpu] - Number of CPU cores allocated. +## @field {quantity} [sockets] - Number of CPU sockets (vCPU topology). +## @field {quantity} [memory] - Amount of memory allocated. + +## @param {bool} external - Enable external access from outside the cluster. external: false -## @param externalMethod {string enum:"PortList,WholeIP"} Specify method to pass through the traffic to the virtual machine. Allowed values: `WholeIP` and `PortList` + +## @param {ExternalMethod} externalMethod - Method to pass through traffic to the VM. externalMethod: "PortList" -## @param externalPorts {[]int} Specify ports to forward from outside the cluster + +## @param {[]int} externalPorts - Ports to forward from outside the cluster. externalPorts: - 22 -## @param running {bool} if the virtual machine should be running +## @param {bool} running - Whether the virtual machine should be running. running: true -## @param instanceType {string} Virtual Machine instance type -## @param instanceProfile {string} Virtual Machine preferences profile -## +## @param {string} instanceType - Virtual Machine instance type. +## @param {string} instanceProfile - Virtual Machine preferences profile. instanceType: "u1.medium" instanceProfile: ubuntu -## @param systemDisk {systemDisk} System disk configuration -## @field systemDisk.image {string enum:"ubuntu,cirros,alpine,fedora,talos"} The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine`, `fedora` and `talos` -## @field systemDisk.storage {string} The size of the disk allocated for the virtual machine -## @field systemDisk.storageClass {*string} StorageClass used to store the data -## +## @param {SystemDisk} systemDisk - System disk configuration. systemDisk: image: ubuntu storage: 5Gi storageClass: replicated -## @param gpus {[]gpu} List of GPUs to attach -## @field gpu.name {string} The name of the GPU to attach. This should match the GPU resource name in the cluster. +## @param {[]GPU} gpus - List of GPUs to attach. +gpus: [] ## Example: ## gpus: ## - name: nvidia.com/GA102GL_A10 -gpus: [] - -## @param resources {*resources} Resources -## @field resources.cpu {*quantity} The number of CPU cores allocated to the virtual machine -## @field resources.sockets {*quantity} The number of CPU sockets allocated to the virtual machine (used to define vCPU topology) -## @field resources.memory {*quantity} The amount of memory allocated to the virtual machine +## @param {Resources} [resources] - Resource configuration for the virtual machine. +resources: {} ## Example: ## resources: ## cpu: "4" ## sockets: "1" ## memory: "8Gi" -resources: {} -## @param sshKeys {[]string} List of SSH public keys for authentication. Can be a single key or a list of keys. +## @param {[]string} sshKeys - List of SSH public keys for authentication. +sshKeys: [] ## Example: ## sshKeys: ## - ssh-rsa ... ## - ssh-ed25519 ... ## -sshKeys: [] -## @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/reference/examples.html). -## - https://cloudinit.readthedocs.io/en/latest/explanation/format.html -## - https://cloudinit.readthedocs.io/en/latest/reference/examples.html +## @param {string} cloudInit - Cloud-init user data. +cloudInit: "" ## Example: ## cloudInit: | ## #cloud-config ## password: ubuntu ## chpasswd: { expire: False } ## -cloudInit: "" -## @param cloudInitSeed {string} A seed string to generate an SMBIOS UUID for the VM. -## Change it to any new value to force a full cloud-init reconfiguration. Change it when you want to apply -## to an existing VM settings that are usually written only once, like new SSH keys or new network configuration. -## An empty value does nothing (and the existing UUID is not reverted). Please note that changing this value -## does not trigger a VM restart. You must perform the restart separately. +## @param {string} cloudInitSeed - Seed string to generate SMBIOS UUID for the VM. +cloudInitSeed: "" ## Example: ## cloudInitSeed: "upd1" -cloudInitSeed: "" diff --git a/packages/apps/vm-disk/README.md b/packages/apps/vm-disk/README.md index 0b3dfe2b..b8a4cdac 100644 --- a/packages/apps/vm-disk/README.md +++ b/packages/apps/vm-disk/README.md @@ -6,15 +6,15 @@ A Virtual Machine Disk ### Common parameters -| 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` | +| Name | Description | Type | Value | +| ------------------- | ------------------------------------------------------------------------------------------------------------------------ | ---------- | ------------ | +| `source` | The source image location used to create a disk. | `object` | `{}` | +| `source.image` | Use image by name. | `*object` | `null` | +| `source.image.name` | Name of the image to use (uploaded as "golden image" or from the list: `ubuntu`, `fedora`, `cirros`, `alpine`, `talos`). | `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 530ff45c..cd2215d8 100644 --- a/packages/apps/vm-disk/values.schema.json +++ b/packages/apps/vm-disk/values.schema.json @@ -3,49 +3,48 @@ "type": "object", "properties": { "optical": { - "description": "Defines if disk should be considered optical", + "description": "Defines if disk should be considered optical.", "type": "boolean", "default": false }, "source": { - "description": "The source image location used to create a disk", + "description": "The source image location used to create a disk.", "type": "object", "default": {}, "properties": { "http": { - "description": "Download image from an HTTP source", + "description": "Download image from an HTTP source.", "type": "object", "required": [ "url" ], "properties": { "url": { - "description": "URL to download the image", + "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`.", + "description": "Use image by name.", "type": "object", "required": [ "name" ], "properties": { "name": { - "description": "Name of the image to use", + "description": "Name of the image to use (uploaded as \"golden image\" or from the list: `ubuntu`, `fedora`, `cirros`, `alpine`, `talos`).", "type": "string" } } }, "upload": { - "description": "Upload local image", - "type": "object" + "description": "Upload local image." } } }, "storage": { - "description": "The size of the disk allocated for the virtual machine", + "description": "The size of the disk allocated for the virtual machine.", "default": "5Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -59,7 +58,7 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the data", + "description": "StorageClass used to store the data.", "type": "string", "default": "replicated" } diff --git a/packages/apps/vm-disk/values.yaml b/packages/apps/vm-disk/values.yaml index 2679cfaa..33bd174f 100644 --- a/packages/apps/vm-disk/values.yaml +++ b/packages/apps/vm-disk/values.yaml @@ -1,38 +1,28 @@ +## ## @section Common parameters +## -## @param source {source} The source image location used to create a disk -## @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 {*emptyobject} Upload local image -## Example upload local image: -## source: -## upload: {} -## -## @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: -## url: "https://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img" -## -## Well known public images: -## ubuntu: https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img -## fedora: https://download.fedoraproject.org/pub/fedora/linux/releases/40/Cloud/x86_64/images/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2 -## cirros: https://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img -## alpine: https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/cloud/nocloud_alpine-3.20.2-x86_64-bios-tiny-r0.qcow2 -## talos: https://github.com/siderolabs/talos/releases/download/v1.7.6/nocloud-amd64.raw.xz +## @typedef {struct} SourceImage - Use image by name. +## @field {string} name - Name of the image to use (uploaded as "golden image" or from the list: `ubuntu`, `fedora`, `cirros`, `alpine`, `talos`). +## @typedef {struct} SourceUpload - Upload local image. + +## @typedef {struct} SourceHTTP - Download image from an HTTP source. +## @field {string} url - URL to download the image. + +## @typedef {struct} Source - The source image location used to create a disk. +## @field {*SourceImage} [image] - Use image by name. +## @field {*SourceUpload} [upload] - Upload local image. +## @field {*SourceHTTP} [http] - Download image from an HTTP source. + +## @param {Source} source - The source image location used to create a disk. source: {} -## @param optical {bool} Defines if disk should be considered optical +## @param {bool} optical - Defines if disk should be considered optical. optical: false -## @param storage {quantity} The size of the disk allocated for the virtual machine -## @param storageClass {string} StorageClass used to store the data +## @param {quantity} storage - The size of the disk allocated for the virtual machine. storage: 5Gi + +## @param {string} storageClass - StorageClass used to store the data. storageClass: replicated diff --git a/packages/apps/vm-instance/README.md b/packages/apps/vm-instance/README.md index 0d120e05..4d555763 100644 --- a/packages/apps/vm-instance/README.md +++ b/packages/apps/vm-instance/README.md @@ -36,26 +36,26 @@ virtctl ssh @ ### Common parameters -| Name | Description | Type | Value | -| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ----------- | -| `external` | Enable external access from outside the cluster | `bool` | `false` | -| `externalMethod` | Specify method to pass through the traffic to the virtual machine. Allowed values: `WholeIP` and `PortList` | `string` | `PortList` | -| `externalPorts` | Ports to forward from outside the cluster | `[]int` | `[22]` | -| `running` | Determines if the virtual machine should be running | `bool` | `true` | -| `instanceType` | Virtual Machine instance type | `string` | `u1.medium` | -| `instanceProfile` | Virtual Machine preferences profile | `string` | `ubuntu` | -| `disks` | List of disks to attach | `[]object` | `[]` | -| `disks[i].name` | Disk name | `string` | `""` | -| `disks[i].bus` | Disk bus type, such as "sata" | `*string` | `null` | -| `gpus` | List of GPUs to attach (WARN: NVIDIA driver requires at least 4 GiB of RAM) | `[]object` | `[]` | -| `gpus[i].name` | Name of GPU, such as "nvidia.com/AD102GL_L40S" | `string` | `""` | -| `resources` | Resources | `*object` | `null` | -| `resources.cpu` | The number of CPU cores allocated to the virtual machine | `*quantity` | `null` | -| `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/reference/examples.html). | `string` | `""` | -| `cloudInitSeed` | A seed string to generate an SMBIOS UUID for the VM. | `string` | `""` | +| Name | Description | Type | Value | +| ------------------- | ------------------------------------------------------------------- | ---------- | ----------- | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | +| `externalMethod` | Method to pass through traffic to the VM. | `string` | `PortList` | +| `externalPorts` | Ports to forward from outside the cluster. | `[]int` | `[22]` | +| `running` | Determines if the virtual machine should be running. | `bool` | `true` | +| `instanceType` | Virtual Machine instance type. | `string` | `u1.medium` | +| `instanceProfile` | Virtual Machine preferences profile. | `string` | `ubuntu` | +| `disks` | List of disks to attach. | `[]object` | `[]` | +| `disks[i].name` | Disk name. | `string` | `""` | +| `disks[i].bus` | Disk bus type (e.g. "sata"). | `string` | `""` | +| `gpus` | List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM). | `[]object` | `[]` | +| `gpus[i].name` | The name of the GPU resource to attach. | `string` | `""` | +| `resources` | Resource configuration for the virtual machine. | `object` | `{}` | +| `resources.cpu` | Number of CPU cores allocated. | `quantity` | `""` | +| `resources.memory` | Amount of memory allocated. | `quantity` | `""` | +| `resources.sockets` | Number of CPU sockets (vCPU topology). | `quantity` | `""` | +| `sshKeys` | List of SSH public keys for authentication. | `[]string` | `[]` | +| `cloudInit` | Cloud-init user data. | `string` | `""` | +| `cloudInitSeed` | Seed string to generate SMBIOS UUID for the VM. | `string` | `""` | ## U Series diff --git a/packages/apps/vm-instance/values.schema.json b/packages/apps/vm-instance/values.schema.json index b19c886f..1a6b88d9 100644 --- a/packages/apps/vm-instance/values.schema.json +++ b/packages/apps/vm-instance/values.schema.json @@ -3,15 +3,17 @@ "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/reference/examples.html).", - "type": "string" + "description": "Cloud-init user data.", + "type": "string", + "default": "" }, "cloudInitSeed": { - "description": "A seed string to generate an SMBIOS UUID for the VM.", - "type": "string" + "description": "Seed string to generate SMBIOS UUID for the VM.", + "type": "string", + "default": "" }, "disks": { - "description": "List of disks to attach", + "description": "List of disks to attach.", "type": "array", "default": [], "items": { @@ -21,23 +23,23 @@ ], "properties": { "bus": { - "description": "Disk bus type, such as \"sata\"", + "description": "Disk bus type (e.g. \"sata\").", "type": "string" }, "name": { - "description": "Disk name", + "description": "Disk name.", "type": "string" } } } }, "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "externalMethod": { - "description": "Specify method to pass through the traffic to the virtual machine. Allowed values: `WholeIP` and `PortList`", + "description": "Method to pass through traffic to the VM.", "type": "string", "default": "PortList", "enum": [ @@ -46,7 +48,7 @@ ] }, "externalPorts": { - "description": "Ports to forward from outside the cluster", + "description": "Ports to forward from outside the cluster.", "type": "array", "default": [ 22 @@ -56,7 +58,7 @@ } }, "gpus": { - "description": "List of GPUs to attach (WARN: NVIDIA driver requires at least 4 GiB of RAM)", + "description": "List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM).", "type": "array", "default": [], "items": { @@ -66,14 +68,14 @@ ], "properties": { "name": { - "description": "Name of GPU, such as \"nvidia.com/AD102GL_L40S\"", + "description": "The name of the GPU resource to attach.", "type": "string" } } } }, "instanceProfile": { - "description": "Virtual Machine preferences profile", + "description": "Virtual Machine preferences profile.", "type": "string", "default": "ubuntu", "enum": [ @@ -123,17 +125,17 @@ ] }, "instanceType": { - "description": "Virtual Machine instance type", + "description": "Virtual Machine instance type.", "type": "string", "default": "u1.medium" }, "resources": { - "description": "Resources", + "description": "Resource configuration for the virtual machine.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "The number of CPU cores allocated to the virtual machine", + "description": "Number of CPU cores allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -146,7 +148,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "The amount of memory allocated to the virtual machine", + "description": "Amount of memory allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -159,7 +161,7 @@ "x-kubernetes-int-or-string": true }, "sockets": { - "description": "The number of CPU sockets allocated to the virtual machine (used to define vCPU topology)", + "description": "Number of CPU sockets (vCPU topology).", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -174,12 +176,12 @@ } }, "running": { - "description": "Determines if the virtual machine should be running", + "description": "Determines if the virtual machine should be running.", "type": "boolean", "default": true }, "sshKeys": { - "description": "List of SSH public keys for authentication. Can be a single key or a list of keys.", + "description": "List of SSH public keys for authentication.", "type": "array", "default": [], "items": { diff --git a/packages/apps/vm-instance/values.yaml b/packages/apps/vm-instance/values.yaml index f41b17e9..0235f930 100644 --- a/packages/apps/vm-instance/values.yaml +++ b/packages/apps/vm-instance/values.yaml @@ -1,73 +1,77 @@ +## ## @section Common parameters +## -## @param external {bool} Enable external access from outside the cluster +## @enum {string} ExternalMethod - Method to pass through traffic to the VM. +## @value PortList - Forward selected ports only. +## @value WholeIP - Forward all traffic for the IP. + +## @typedef {struct} Disk - Disk configuration. +## @field {string} name - Disk name. +## @field {string} [bus] - Disk bus type (e.g. "sata"). + +## @typedef {struct} GPU - GPU device configuration. +## @field {string} name - The name of the GPU resource to attach. + +## @typedef {struct} Resources - Resource configuration for the virtual machine. +## @field {quantity} [cpu] - Number of CPU cores allocated. +## @field {quantity} [memory] - Amount of memory allocated. +## @field {quantity} [sockets] - Number of CPU sockets (vCPU topology). + +## @param {bool} external - Enable external access from outside the cluster. external: false -## @param externalMethod {string enum:"PortList,WholeIP"} Specify method to pass through the traffic to the virtual machine. Allowed values: `WholeIP` and `PortList` + +## @param {ExternalMethod} externalMethod - Method to pass through traffic to the VM. externalMethod: PortList -## @param externalPorts {[]int} Ports to forward from outside the cluster + +## @param {[]int} externalPorts - Ports to forward from outside the cluster. externalPorts: - 22 -## @param running {bool} Determines if the virtual machine should be running +## @param {bool} running - Determines if the virtual machine should be running. running: true -## @param instanceType {string} Virtual Machine instance type +## @param {string} instanceType - Virtual Machine instance type. instanceType: "u1.medium" -## @param instanceProfile {string} Virtual Machine preferences profile + +## @param {string} instanceProfile - Virtual Machine preferences profile. instanceProfile: ubuntu -## @param disks {[]disk} List of disks to attach -## @field disk.name {string} Disk name -## @field disk.bus {*string} Disk bus type, such as "sata" +## @param {[]Disk} disks - List of disks to attach. +disks: [] ## Example: ## disks: ## - name: example-system ## - name: example-data ## bus: sata -disks: [] -## @param 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" +## @param {[]GPU} gpus - List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM). +gpus: [] ## Example: ## gpus: ## - name: nvidia.com/GA102GL_A10 -gpus: [] -## @param resources {*resources} Resources -## @field resources.cpu {*quantity} The number of CPU cores allocated to the virtual machine -## @field resources.memory {*quantity} The amount of memory allocated to the virtual machine -## @field resources.sockets {*quantity} The number of CPU sockets allocated to the virtual machine (used to define vCPU topology) -## Example -## resources: -## cpu: "4" -## sockets: "1" -## memory: "8Gi" +## @param {Resources} [resources] - Resource configuration for the virtual machine. resources: {} -## @param sshKeys {[]string} List of SSH public keys for authentication. Can be a single key or a list of keys. +## @param {[]string} sshKeys - List of SSH public keys for authentication. +sshKeys: [] ## Example: ## sshKeys: ## - ssh-rsa ... ## - ssh-ed25519 ... ## -sshKeys: [] -## @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/reference/examples.html). -## - https://cloudinit.readthedocs.io/en/latest/explanation/format.html -## - https://cloudinit.readthedocs.io/en/latest/reference/examples.html +## @param {string} cloudInit - Cloud-init user data. +cloudInit: "" ## Example: ## cloudInit: | ## #cloud-config ## password: ubuntu ## chpasswd: { expire: False } ## -cloudInit: "" -## @param cloudInitSeed {string} A seed string to generate an SMBIOS UUID for the VM. +## @param {string} cloudInitSeed - Seed string to generate SMBIOS UUID for the VM. cloudInitSeed: "" -## Change it to any new value to force a full cloud-init reconfiguration. Change it when you want to apply -## to an existing VM settings that are usually written only once, like new SSH keys or new network configuration. -## An empty value does nothing (and the existing UUID is not reverted). Please note that changing this value -## does not trigger a VM restart. You must perform the restart separately. ## Example: ## cloudInitSeed: "upd1" diff --git a/packages/apps/vpn/README.md b/packages/apps/vpn/README.md index 373d02e4..b8bd7209 100644 --- a/packages/apps/vpn/README.md +++ b/packages/apps/vpn/README.md @@ -19,24 +19,24 @@ Furthermore, Shadowbox is compatible with standard Shadowsocks clients, providin ### Common parameters -| Name | Description | Type | Value | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | -| `replicas` | Number of VPN server replicas | `int` | `2` | -| `resources` | Explicit CPU and memory configuration for each VPN server replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | -| `resources.cpu` | CPU available to each replica | `*quantity` | `null` | -| `resources.memory` | Memory (RAM) available to each replica | `*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` | +| Name | Description | Type | Value | +| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ------- | +| `replicas` | Number of VPN server replicas. | `int` | `2` | +| `resources` | Explicit CPU and memory configuration for each VPN server replica. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `nano` | +| `external` | Enable external access from outside the cluster. | `bool` | `false` | ### Application-specific parameters -| Name | Description | Type | Value | -| ---------------------- | ----------------------------------------------------------------------------------------------------- | ------------------- | ------- | -| `host` | Host used to substitute into generated URLs | `string` | `""` | -| `users` | Users configuration | `map[string]object` | `{...}` | -| `users[name].password` | Password for the user, autogenerated if none provided | `*string` | `null` | -| `externalIPs` | List of externalIPs for service. Optional. If not specified will use LoadBalancer service by default. | `[]*string` | `[]` | +| Name | Description | Type | Value | +| ---------------------- | ------------------------------------------------------------------------------------------------------ | ------------------- | ----- | +| `host` | Host used to substitute into generated URLs. | `string` | `""` | +| `users` | Users configuration map. | `map[string]object` | `{}` | +| `users[name].password` | Password for the user (autogenerated if not provided). | `string` | `""` | +| `externalIPs` | List of externalIPs for service. Optional. If not specified, will use LoadBalancer service by default. | `[]string` | `[]` | ## Parameter examples and reference diff --git a/packages/apps/vpn/values.schema.json b/packages/apps/vpn/values.schema.json index 1dbf277e..14e85262 100644 --- a/packages/apps/vpn/values.schema.json +++ b/packages/apps/vpn/values.schema.json @@ -3,12 +3,12 @@ "type": "object", "properties": { "external": { - "description": "Enable external access from outside the cluster", + "description": "Enable external access from outside the cluster.", "type": "boolean", "default": false }, "externalIPs": { - "description": "List of externalIPs for service. Optional. If not specified will use LoadBalancer service by default.", + "description": "List of externalIPs for service. Optional. If not specified, will use LoadBalancer service by default.", "type": "array", "default": [], "items": { @@ -16,21 +16,22 @@ } }, "host": { - "description": "Host used to substitute into generated URLs", - "type": "string" + "description": "Host used to substitute into generated URLs.", + "type": "string", + "default": "" }, "replicas": { - "description": "Number of VPN server replicas", + "description": "Number of VPN server replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for each VPN server replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration for each VPN server replica. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -43,7 +44,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -58,7 +59,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "nano", "enum": [ @@ -72,14 +73,14 @@ ] }, "users": { - "description": "Users configuration", + "description": "Users configuration map.", "type": "object", "default": {}, "additionalProperties": { "type": "object", "properties": { "password": { - "description": "Password for the user, autogenerated if none provided", + "description": "Password for the user (autogenerated if not provided).", "type": "string" } } diff --git a/packages/apps/vpn/values.yaml b/packages/apps/vpn/values.yaml index e8879d5f..5923e273 100644 --- a/packages/apps/vpn/values.yaml +++ b/packages/apps/vpn/values.yaml @@ -1,42 +1,49 @@ +## ## @section Common parameters ## -## @param replicas {int} Number of VPN server replicas + +## @typedef {struct} Resources - Explicit CPU and memory configuration for each VPN server replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @param {int} replicas - Number of VPN server replicas. replicas: 2 -## @param resources {*resources} Explicit CPU and memory configuration for each VPN server replica. When left empty, the preset defined in `resourcesPreset` is applied. -## @field resources.cpu {*quantity} CPU available to each replica -## @field resources.memory {*quantity} Memory (RAM) available to each replica + +## @param {Resources} [resources] - Explicit CPU and memory configuration for each VPN server replica. When omitted, the preset defined in `resourcesPreset` is applied. resources: {} -# resources: -# cpu: 4000m -# memory: 4Gi -## -## @param 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`. + +## @param {ResourcesPreset} resourcesPreset="nano" - Default sizing preset used when `resources` is omitted. resourcesPreset: "nano" -## @param external {bool} Enable external access from outside the cluster + +## @param {bool} external - Enable external access from outside the cluster. external: false - +## ## @section Application-specific parameters ## -## @param host {string} Host used to substitute into generated URLs + +## @param {string} host - Host used to substitute into generated URLs. host: "" -## @param users {map[string]user} Users configuration -## @field user.password {*string} Password for the user, autogenerated if none provided +## @typedef {struct} User - User configuration. +## @field {string} [password] - Password for the user (autogenerated if not provided). + +## @param {map[string]User} users - Users configuration map. +users: {} ## Example: ## users: ## user1: ## password: hackme ## user2: {} # autogenerated password -users: {} -## @param externalIPs {[]*string} List of externalIPs for service. Optional. If not specified will use LoadBalancer service by default. -## -## e.g: -## externalIPs: -## - "11.22.33.44" -## - "11.22.33.45" -## - "11.22.33.46" -## +## @param {[]string} externalIPs - List of externalIPs for service. Optional. If not specified, will use LoadBalancer service by default. externalIPs: [] - diff --git a/packages/extra/bootbox/README.md b/packages/extra/bootbox/README.md index a094b66f..70add719 100644 --- a/packages/extra/bootbox/README.md +++ b/packages/extra/bootbox/README.md @@ -4,20 +4,20 @@ ### Common parameters -| Name | Description | Type | Value | -| -------------------------------- | ---------------------------------------------------- | ---------- | ------- | -| `whitelistHTTP` | Secure HTTP by enabling client networks whitelisting | `bool` | `true` | -| `whitelist` | List of client networks | `[]string` | `[]` | -| `machines` | Configuration of physical machine instances | `[]object` | `[]` | -| `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].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` | +| Name | Description | Type | Value | +| ------------------------- | ----------------------------------------------------- | ---------- | ------- | +| `whitelistHTTP` | Secure HTTP by enabling client networks whitelisting. | `bool` | `true` | +| `whitelist` | List of client networks. | `[]string` | `[]` | +| `machines` | Configuration of physical machine instances. | `[]object` | `[]` | +| `machines[i].hostname` | Hostname. | `string` | `""` | +| `machines[i].arch` | Architecture. | `string` | `""` | +| `machines[i].ip` | IP address configuration. | `object` | `{}` | +| `machines[i].ip.address` | IP address. | `string` | `""` | +| `machines[i].ip.gateway` | IP gateway. | `string` | `""` | +| `machines[i].ip.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` | diff --git a/packages/extra/bootbox/values.schema.json b/packages/extra/bootbox/values.schema.json index ae8dca07..994f47cd 100644 --- a/packages/extra/bootbox/values.schema.json +++ b/packages/extra/bootbox/values.schema.json @@ -3,7 +3,7 @@ "type": "object", "properties": { "machines": { - "description": "Configuration of physical machine instances", + "description": "Configuration of physical machine instances.", "type": "array", "default": [], "items": { @@ -17,78 +17,70 @@ ], "properties": { "arch": { - "description": "Architecture", + "description": "Architecture.", "type": "string" }, "hostname": { - "description": "Hostname", + "description": "Hostname.", "type": "string" }, "ip": { + "description": "IP address configuration.", "type": "object", "required": [ - "address" + "address", + "gateway", + "netmask" ], "properties": { "address": { - "description": "IP address", - "type": "object", - "required": [ - "address", - "gateway", - "netmask" - ], - "properties": { - "address": { - "description": "IP address", - "type": "string" - }, - "gateway": { - "description": "IP gateway", - "type": "string" - }, - "netmask": { - "description": "Netmask", - "type": "string" - } - } + "description": "IP address.", + "type": "string" + }, + "gateway": { + "description": "IP gateway.", + "type": "string" + }, + "netmask": { + "description": "Netmask.", + "type": "string" } } }, "leaseTime": { - "description": "Lease time", + "description": "Lease time.", "type": "integer" }, "mac": { - "description": "MAC addresses", + "description": "MAC addresses.", "type": "array", "items": { "type": "string" } }, "nameServers": { - "description": "Name servers", + "description": "Name servers.", "type": "array", "items": { "type": "string" } }, "timeServers": { - "description": "Time servers", + "description": "Time servers.", "type": "array", "items": { "type": "string" } }, "uefi": { - "description": "UEFI", + "description": "UEFI.", "type": "boolean" } } } }, "whitelist": { - "description": "List of client networks", + "description": "List of client networks.", "type": "array", "default": [], "items": { @@ -96,7 +88,7 @@ } }, "whitelistHTTP": { - "description": "Secure HTTP by enabling client networks whitelisting", + "description": "Secure HTTP by enabling client networks whitelisting.", "type": "boolean", "default": true } diff --git a/packages/extra/bootbox/values.yaml b/packages/extra/bootbox/values.yaml index c334f4db..ed447083 100644 --- a/packages/extra/bootbox/values.yaml +++ b/packages/extra/bootbox/values.yaml @@ -1,30 +1,35 @@ +## ## @section Common parameters +## -## @param whitelistHTTP {bool} Secure HTTP by enabling client networks whitelisting -## @param whitelist {[]string} List of client networks +## @param {bool} whitelistHTTP - Secure HTTP by enabling client networks whitelisting. +whitelistHTTP: true ## Example: ## whitelistHTTP: true ## whitelist: ## - "1.2.3.4" ## - "10.8.0.0/16" -## -whitelistHTTP: true + +## @param {[]string} whitelist - List of client networks. whitelist: [] -## @param machines {[]machine} Configuration of physical machine instances -## @field machine {machine} Machine configuration -## @field machine.hostname {string} Hostname -## @field machine.arch {string} Architecture -## @field machine.ip.address {machineConfig} IP address -## @field machineConfig.address {string} IP address -## @field machineConfig.gateway {string} IP gateway -## @field machineConfig.netmask {string} Netmask -## @field machine.leaseTime {int} Lease time -## @field machine.mac {[]string} MAC addresses -## @field machine.nameServers {[]string} Name servers -## @field machine.timeServers {[]string} Time servers -## @field machine.uefi {bool} UEFI -## +## @typedef {struct} MachineConfig - IP address configuration. +## @field {string} address - IP address. +## @field {string} gateway - IP gateway. +## @field {string} netmask - Netmask. + +## @typedef {struct} Machine - Machine configuration. +## @field {string} hostname - Hostname. +## @field {string} arch - Architecture. +## @field {MachineConfig} ip - IP address configuration. +## @field {int} leaseTime - Lease time. +## @field {[]string} mac - MAC addresses. +## @field {[]string} nameServers - Name servers. +## @field {[]string} timeServers - Time servers. +## @field {bool} uefi - UEFI. + +## @param {[]Machine} machines - Configuration of physical machine instances. +machines: [] ## Example: ## machines: ## - hostname: machine1 @@ -38,5 +43,3 @@ whitelist: [] ## nameServers: [1.1.1.1,8.8.8.8] ## timeServers: [pool.ntp.org] ## uefi: true - -machines: [] diff --git a/packages/extra/etcd/README.md b/packages/extra/etcd/README.md index 3bdb920b..daf9f114 100644 --- a/packages/extra/etcd/README.md +++ b/packages/extra/etcd/README.md @@ -4,12 +4,12 @@ ### 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` | `null` | -| `resources.cpu` | The number of CPU cores allocated | `*quantity` | `1000m` | -| `resources.memory` | The amount of memory allocated | `*quantity` | `512Mi` | +| 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` | Number of CPU cores allocated. | `quantity` | `1000m` | +| `resources.memory` | Amount of memory allocated. | `quantity` | `512Mi` | diff --git a/packages/extra/etcd/values.schema.json b/packages/extra/etcd/values.schema.json index ee6960de..0f696c57 100644 --- a/packages/extra/etcd/values.schema.json +++ b/packages/extra/etcd/values.schema.json @@ -3,17 +3,17 @@ "type": "object", "properties": { "replicas": { - "description": "Number of etcd replicas", + "description": "Number of etcd replicas.", "type": "integer", "default": 3 }, "resources": { - "description": "Resource configuration for etcd", + "description": "Resource configuration for etcd.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "The number of CPU cores allocated", + "description": "Number of CPU cores allocated.", "default": "1000m", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -27,7 +27,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "The amount of memory allocated", + "description": "Amount of memory allocated.", "default": "512Mi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -43,7 +43,7 @@ } }, "size": { - "description": "Persistent Volume size", + "description": "Persistent Volume size.", "default": "4Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -57,8 +57,9 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used to store the data.", + "type": "string", + "default": "" } } } \ No newline at end of file diff --git a/packages/extra/etcd/values.yaml b/packages/extra/etcd/values.yaml index 43214f6d..8dac251d 100644 --- a/packages/extra/etcd/values.yaml +++ b/packages/extra/etcd/values.yaml @@ -1,16 +1,21 @@ -## @section Common parameters - -## @param size {*quantity} Persistent Volume size -## @param storageClass {*string} StorageClass used to store the data -## @param replicas {*int} Number of etcd replicas ## +## @section Common parameters +## + +## @param {quantity} [size] - Persistent Volume size. size: 4Gi + +## @param {string} [storageClass] - StorageClass used to store the data. storageClass: "" + +## @param {int} [replicas] - Number of etcd replicas. replicas: 3 -## @param resources {*resources} Resource configuration for etcd -## @field resources.cpu {*quantity} The number of CPU cores allocated -## @field resources.memory {*quantity} The amount of memory allocated +## @typedef {struct} Resources - Resource configuration for etcd. +## @field {quantity} [cpu] - Number of CPU cores allocated. +## @field {quantity} [memory] - Amount of memory allocated. + +## @param {Resources} [resources] - Resource configuration for etcd. resources: cpu: 1000m memory: 512Mi diff --git a/packages/extra/ingress/README.md b/packages/extra/ingress/README.md index 8982748f..0e786dfb 100644 --- a/packages/extra/ingress/README.md +++ b/packages/extra/ingress/README.md @@ -4,13 +4,13 @@ ### Common parameters -| Name | Description | Type | Value | -| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ----------- | ------- | -| `replicas` | Number of ingress-nginx replicas | `int` | `2` | -| `whitelist` | List of client networks | `[]*string` | `[]` | -| `cloudflareProxy` | Restoring original visitor IPs when Cloudflare proxied is enabled | `bool` | `false` | -| `resources` | Explicit CPU and memory configuration for each ingress-nginx replica. When left empty, the preset defined in `resourcesPreset` is applied. | `*object` | `null` | -| `resources.cpu` | CPU available to each replica | `*quantity` | `null` | -| `resources.memory` | Memory (RAM) available to each replica | `*quantity` | `null` | -| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `micro` | +| Name | Description | Type | Value | +| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------- | +| `replicas` | Number of ingress-nginx replicas. | `int` | `2` | +| `whitelist` | List of client networks. | `[]string` | `[]` | +| `cloudflareProxy` | Restoring original visitor IPs when Cloudflare proxied is enabled. | `bool` | `false` | +| `resources` | Explicit CPU and memory configuration for each ingress-nginx replica. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `resources.cpu` | CPU available to each replica. | `quantity` | `""` | +| `resources.memory` | Memory (RAM) available to each replica. | `quantity` | `""` | +| `resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `micro` | diff --git a/packages/extra/ingress/values.schema.json b/packages/extra/ingress/values.schema.json index b7dc0373..650a5824 100644 --- a/packages/extra/ingress/values.schema.json +++ b/packages/extra/ingress/values.schema.json @@ -3,22 +3,22 @@ "type": "object", "properties": { "cloudflareProxy": { - "description": "Restoring original visitor IPs when Cloudflare proxied is enabled", + "description": "Restoring original visitor IPs when Cloudflare proxied is enabled.", "type": "boolean", "default": false }, "replicas": { - "description": "Number of ingress-nginx replicas", + "description": "Number of ingress-nginx replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for each ingress-nginx replica. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration for each ingress-nginx replica. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU available to each replica", + "description": "CPU available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -31,7 +31,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory (RAM) available to each replica", + "description": "Memory (RAM) available to each replica.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -46,7 +46,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "micro", "enum": [ @@ -60,7 +60,7 @@ ] }, "whitelist": { - "description": "List of client networks", + "description": "List of client networks.", "type": "array", "default": [], "items": { diff --git a/packages/extra/ingress/values.yaml b/packages/extra/ingress/values.yaml index f63799b3..e1529a4e 100644 --- a/packages/extra/ingress/values.yaml +++ b/packages/extra/ingress/values.yaml @@ -1,26 +1,39 @@ -## @section Common parameters - -## @param replicas {int} Number of ingress-nginx replicas ## +## @section Common parameters +## + +## @param {int} replicas - Number of ingress-nginx replicas. replicas: 2 -## @param whitelist {[]*string} List of client networks +## @param {[]string} whitelist - List of client networks. +whitelist: [] ## Example: ## whitelist: ## - "1.2.3.4" ## - "10.100.0.0/16" -whitelist: [] -## @param cloudflareProxy {bool} Restoring original visitor IPs when Cloudflare proxied is enabled +## @param {bool} cloudflareProxy - Restoring original visitor IPs when Cloudflare proxied is enabled. cloudflareProxy: false -## @param resources {*resources} Explicit CPU and memory configuration for each ingress-nginx replica. When left empty, the preset defined in `resourcesPreset` is applied. -## @field resources.cpu {*quantity} CPU available to each replica -## @field resources.memory {*quantity} Memory (RAM) available to each replica +## @typedef {struct} Resources - Explicit CPU and memory configuration for each ingress-nginx replica. +## @field {quantity} [cpu] - CPU available to each replica. +## @field {quantity} [memory] - Memory (RAM) available to each replica. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @param {Resources} [resources] - Explicit CPU and memory configuration for each ingress-nginx replica. When omitted, the preset defined in `resourcesPreset` is applied. +resources: {} ## Example: ## resources: ## cpu: 4000m ## memory: 4Gi -resources: {} -## @param 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`. + +## @param {ResourcesPreset} resourcesPreset="micro" - Default sizing preset used when `resources` is omitted. resourcesPreset: "micro" diff --git a/packages/extra/monitoring/README.md b/packages/extra/monitoring/README.md index 06dbc97e..3666765b 100644 --- a/packages/extra/monitoring/README.md +++ b/packages/extra/monitoring/README.md @@ -4,90 +4,90 @@ ### Common parameters -| Name | Description | Type | Value | -| ------ | --------------------------------------------------------------------------------------------------------- | -------- | ----- | -| `host` | The hostname used to access the grafana externally (defaults to 'grafana' subdomain for the tenant host). | `string` | `""` | +| Name | Description | Type | Value | +| ------ | ----------------------------------------------------------------------------------------------------- | -------- | ----- | +| `host` | The hostname used to access Grafana externally (defaults to 'grafana' subdomain for the tenant host). | `string` | `""` | ### Metrics storage configuration -| Name | Description | Type | Value | -| ------------------------------------------------ | -------------------------------------------------------------- | ----------- | ------- | -| `metricsStorages` | Configuration of metrics storage instances | `[]object` | `[...]` | -| `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` | `10Gi` | -| `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.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].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.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].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.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` | +| Name | Description | Type | Value | +| ------------------------------------------------ | ------------------------------------------- | ---------- | ------- | +| `metricsStorages` | Configuration of metrics storage instances. | `[]object` | `[...]` | +| `metricsStorages[i].name` | Name of the storage instance. | `string` | `""` | +| `metricsStorages[i].retentionPeriod` | Retention period for metrics. | `string` | `""` | +| `metricsStorages[i].deduplicationInterval` | Deduplication interval for metrics. | `string` | `""` | +| `metricsStorages[i].storage` | Persistent volume size. | `string` | `10Gi` | +| `metricsStorages[i].storageClassName` | StorageClass used for the data. | `string` | `""` | +| `metricsStorages[i].vminsert` | Configuration for vminsert. | `object` | `{}` | +| `metricsStorages[i].vminsert.minAllowed` | Minimum guaranteed resources. | `object` | `{}` | +| `metricsStorages[i].vminsert.minAllowed.cpu` | CPU request. | `quantity` | `""` | +| `metricsStorages[i].vminsert.minAllowed.memory` | Memory request. | `quantity` | `""` | +| `metricsStorages[i].vminsert.maxAllowed` | Maximum allowed resources. | `object` | `{}` | +| `metricsStorages[i].vminsert.maxAllowed.cpu` | CPU limit. | `quantity` | `""` | +| `metricsStorages[i].vminsert.maxAllowed.memory` | Memory limit. | `quantity` | `""` | +| `metricsStorages[i].vmselect` | Configuration for vmselect. | `object` | `{}` | +| `metricsStorages[i].vmselect.minAllowed` | Minimum guaranteed resources. | `object` | `{}` | +| `metricsStorages[i].vmselect.minAllowed.cpu` | CPU request. | `quantity` | `""` | +| `metricsStorages[i].vmselect.minAllowed.memory` | Memory request. | `quantity` | `""` | +| `metricsStorages[i].vmselect.maxAllowed` | Maximum allowed resources. | `object` | `{}` | +| `metricsStorages[i].vmselect.maxAllowed.cpu` | CPU limit. | `quantity` | `""` | +| `metricsStorages[i].vmselect.maxAllowed.memory` | Memory limit. | `quantity` | `""` | +| `metricsStorages[i].vmstorage` | Configuration for vmstorage. | `object` | `{}` | +| `metricsStorages[i].vmstorage.minAllowed` | Minimum guaranteed resources. | `object` | `{}` | +| `metricsStorages[i].vmstorage.minAllowed.cpu` | CPU request. | `quantity` | `""` | +| `metricsStorages[i].vmstorage.minAllowed.memory` | Memory request. | `quantity` | `""` | +| `metricsStorages[i].vmstorage.maxAllowed` | Maximum allowed resources. | `object` | `{}` | +| `metricsStorages[i].vmstorage.maxAllowed.cpu` | CPU limit. | `quantity` | `""` | +| `metricsStorages[i].vmstorage.maxAllowed.memory` | Memory limit. | `quantity` | `""` | ### Logs storage configuration -| Name | Description | Type | Value | -| ---------------------------------- | ----------------------------------------------------- | ---------- | ------------ | -| `logsStorages` | Configuration of logs storage instances | `[]object` | `[...]` | -| `logsStorages[i].name` | Name of the storage instance | `string` | `""` | -| `logsStorages[i].retentionPeriod` | Retention period for the logs in the storage instance | `string` | `1` | -| `logsStorages[i].storage` | Persistent Volume size for the storage instance | `string` | `10Gi` | -| `logsStorages[i].storageClassName` | StorageClass used to store the data | `*string` | `replicated` | +| Name | Description | Type | Value | +| ---------------------------------- | ---------------------------------------- | ---------- | ------------ | +| `logsStorages` | Configuration of logs storage instances. | `[]object` | `[...]` | +| `logsStorages[i].name` | Name of the storage instance. | `string` | `""` | +| `logsStorages[i].retentionPeriod` | Retention period for logs. | `string` | `1` | +| `logsStorages[i].storage` | Persistent volume size. | `string` | `10Gi` | +| `logsStorages[i].storageClassName` | StorageClass used to store the data. | `string` | `replicated` | ### Alerta configuration -| Name | Description | Type | Value | -| ----------------------------------------- | ----------------------------------------------------------------------------------- | ----------- | ------- | -| `alerta` | Configuration for Alerta service | `object` | `{}` | -| `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.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.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.slack` | Configuration for Slack alerts | `*object` | `null` | -| `alerta.alerts.slack.url` | Configuration uri for Slack alerts | `*string` | `""` | +| Name | Description | Type | Value | +| ----------------------------------------- | ----------------------------------------------------------------- | ---------- | ------- | +| `alerta` | Configuration for the Alerta service. | `object` | `{}` | +| `alerta.storage` | Persistent volume size for the database. | `string` | `10Gi` | +| `alerta.storageClassName` | StorageClass used for the database. | `string` | `""` | +| `alerta.resources` | Resource configuration. | `object` | `{}` | +| `alerta.resources.requests` | Resource requests. | `object` | `{}` | +| `alerta.resources.requests.cpu` | CPU request. | `quantity` | `100m` | +| `alerta.resources.requests.memory` | Memory request. | `quantity` | `256Mi` | +| `alerta.resources.limits` | Resource limits. | `object` | `{}` | +| `alerta.resources.limits.cpu` | CPU limit. | `quantity` | `1` | +| `alerta.resources.limits.memory` | Memory limit. | `quantity` | `1Gi` | +| `alerta.alerts` | Alert routing configuration. | `object` | `{}` | +| `alerta.alerts.telegram` | Configuration for Telegram alerts. | `object` | `{}` | +| `alerta.alerts.telegram.token` | Telegram bot token. | `string` | `""` | +| `alerta.alerts.telegram.chatID` | Telegram chat ID(s), separated by commas. | `string` | `""` | +| `alerta.alerts.telegram.disabledSeverity` | List of severities without alerts (e.g. "informational,warning"). | `string` | `""` | +| `alerta.alerts.slack` | Configuration for Slack alerts. | `object` | `{}` | +| `alerta.alerts.slack.url` | Configuration uri for Slack alerts. | `string` | `""` | ### Grafana configuration -| Name | Description | Type | Value | -| ----------------------------------- | ----------------------------------------- | ----------- | ------- | -| `grafana` | Configuration for Grafana | `object` | `{}` | -| `grafana.db` | Database configuration | `*object` | `null` | -| `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.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` | +| Name | Description | Type | Value | +| ----------------------------------- | ---------------------------------------- | ---------- | ------- | +| `grafana` | Configuration for Grafana. | `object` | `{}` | +| `grafana.db` | Database configuration. | `object` | `{}` | +| `grafana.db.size` | Persistent volume size for the database. | `string` | `10Gi` | +| `grafana.resources` | Resource configuration. | `object` | `{}` | +| `grafana.resources.requests` | Resource requests. | `object` | `{}` | +| `grafana.resources.requests.cpu` | CPU request. | `quantity` | `100m` | +| `grafana.resources.requests.memory` | Memory request. | `quantity` | `256Mi` | +| `grafana.resources.limits` | Resource limits. | `object` | `{}` | +| `grafana.resources.limits.cpu` | CPU limit. | `quantity` | `1` | +| `grafana.resources.limits.memory` | Memory limit. | `quantity` | `1Gi` | diff --git a/packages/extra/monitoring/values.schema.json b/packages/extra/monitoring/values.schema.json index 505b5bef..de81acd1 100644 --- a/packages/extra/monitoring/values.schema.json +++ b/packages/extra/monitoring/values.schema.json @@ -3,63 +3,70 @@ "type": "object", "properties": { "alerta": { - "description": "Configuration for Alerta service", + "description": "Configuration for the Alerta service.", "type": "object", "default": {}, "properties": { "alerts": { - "description": "Configuration for alerts", + "description": "Alert routing configuration.", "type": "object", "default": {}, "properties": { "slack": { - "description": "Configuration for Slack alerts", + "description": "Configuration for Slack alerts.", "type": "object", "default": {}, + "required": [ + "url" + ], "properties": { "url": { - "description": "Configuration uri for Slack alerts", - "type": "string" + "description": "Configuration uri for Slack alerts.", + "type": "string", + "default": "" } } }, "telegram": { - "description": "Configuration for Telegram alerts", + "description": "Configuration for Telegram alerts.", "type": "object", "default": {}, "required": [ "chatID", - "disabledSeverity", "token" ], "properties": { "chatID": { - "description": "Specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot", - "type": "string" + "description": "Telegram chat ID(s), separated by commas.", + "type": "string", + "default": "" }, "disabledSeverity": { - "description": "List of severity without alerts, separated by comma like: \"informational,warning\"", - "type": "string" + "description": "List of severities without alerts (e.g. \"informational,warning\").", + "type": "string", + "default": "" }, "token": { - "description": "Telegram token for your bot", - "type": "string" + "description": "Telegram bot token.", + "type": "string", + "default": "" } } } } }, "resources": { - "description": "Resources configuration", + "description": "Resource configuration.", "type": "object", "default": {}, "properties": { "limits": { + "description": "Resource limits.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU limit (maximum available CPU)", + "description": "CPU limit.", "default": 1, "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -73,7 +80,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory limit (maximum available memory)", + "description": "Memory limit.", "default": "1Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -89,11 +96,12 @@ } }, "requests": { + "description": "Resource requests.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU request (minimum available CPU)", + "description": "CPU request.", "default": "100m", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -107,7 +115,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory request (minimum available memory)", + "description": "Memory request.", "default": "256Mi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -125,44 +133,46 @@ } }, "storage": { - "description": "Persistent Volume size for the database", + "description": "Persistent volume size for the database.", "type": "string", "default": "10Gi" }, "storageClassName": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used for the database.", + "type": "string", + "default": "" } } }, "grafana": { - "description": "Configuration for Grafana", + "description": "Configuration for Grafana.", "type": "object", "default": {}, "properties": { "db": { - "description": "Database configuration", + "description": "Database configuration.", "type": "object", "default": {}, "properties": { "size": { - "description": "Persistent Volume size for the database", + "description": "Persistent volume size for the database.", "type": "string", "default": "10Gi" } } }, "resources": { - "description": "Resources configuration", + "description": "Resource configuration.", "type": "object", "default": {}, "properties": { "limits": { + "description": "Resource limits.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU limit (maximum available CPU)", + "description": "CPU limit.", "default": 1, "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -176,7 +186,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory limit (maximum available memory)", + "description": "Memory limit.", "default": "1Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -192,11 +202,12 @@ } }, "requests": { + "description": "Resource requests.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "CPU request (minimum available CPU)", + "description": "CPU request.", "default": "100m", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -210,7 +221,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory request (minimum available memory)", + "description": "Memory request.", "default": "256Mi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -230,11 +241,12 @@ } }, "host": { - "description": "The hostname used to access the grafana externally (defaults to 'grafana' subdomain for the tenant host).", - "type": "string" + "description": "The hostname used to access Grafana externally (defaults to 'grafana' subdomain for the tenant host).", + "type": "string", + "default": "" }, "logsStorages": { - "description": "Configuration of logs storage instances", + "description": "Configuration of logs storage instances.", "type": "array", "default": [ { @@ -249,25 +261,26 @@ "required": [ "name", "retentionPeriod", - "storage" + "storage", + "storageClassName" ], "properties": { "name": { - "description": "Name of the storage instance", + "description": "Name of the storage instance.", "type": "string" }, "retentionPeriod": { - "description": "Retention period for the logs in the storage instance", + "description": "Retention period for logs.", "type": "string", "default": "1" }, "storage": { - "description": "Persistent Volume size for the storage instance", + "description": "Persistent volume size.", "type": "string", "default": "10Gi" }, "storageClassName": { - "description": "StorageClass used to store the data", + "description": "StorageClass used to store the data.", "type": "string", "default": "replicated" } @@ -275,7 +288,7 @@ } }, "metricsStorages": { - "description": "Configuration of metrics storage instances", + "description": "Configuration of metrics storage instances.", "type": "array", "default": [ { @@ -303,36 +316,36 @@ ], "properties": { "deduplicationInterval": { - "description": "Deduplication interval for the metrics in the storage instance", + "description": "Deduplication interval for metrics.", "type": "string" }, "name": { - "description": "Name of the storage instance", + "description": "Name of the storage instance.", "type": "string" }, "retentionPeriod": { - "description": "Retention period for the metrics in the storage instance", + "description": "Retention period for metrics.", "type": "string" }, "storage": { - "description": "Persistent Volume size for the storage instance", + "description": "Persistent volume size.", "type": "string", "default": "10Gi" }, "storageClassName": { - "description": "StorageClass used to store the data", + "description": "StorageClass used for the data.", "type": "string" }, "vminsert": { - "description": "Configuration for vminsert component of the storage instance", + "description": "Configuration for vminsert.", "type": "object", "properties": { "maxAllowed": { - "description": "Limits (maximum allowed/available resources )", + "description": "Maximum allowed resources.", "type": "object", "properties": { "cpu": { - "description": "CPU limit (maximum available CPU)", + "description": "CPU limit.", "default": 1, "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -346,7 +359,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory limit (maximum available memory)", + "description": "Memory limit.", "default": "1Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -362,11 +375,11 @@ } }, "minAllowed": { - "description": "Requests (minimum allowed/available resources)", + "description": "Minimum guaranteed resources.", "type": "object", "properties": { "cpu": { - "description": "CPU request (minimum available CPU)", + "description": "CPU request.", "default": "100m", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -380,7 +393,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory request (minimum available memory)", + "description": "Memory request.", "default": "256Mi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -398,15 +411,15 @@ } }, "vmselect": { - "description": "Configuration for vmselect component of the storage instance", + "description": "Configuration for vmselect.", "type": "object", "properties": { "maxAllowed": { - "description": "Limits (maximum allowed/available resources )", + "description": "Maximum allowed resources.", "type": "object", "properties": { "cpu": { - "description": "CPU limit (maximum available CPU)", + "description": "CPU limit.", "default": 1, "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -420,7 +433,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory limit (maximum available memory)", + "description": "Memory limit.", "default": "1Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -436,11 +449,11 @@ } }, "minAllowed": { - "description": "Requests (minimum allowed/available resources)", + "description": "Minimum guaranteed resources.", "type": "object", "properties": { "cpu": { - "description": "CPU request (minimum available CPU)", + "description": "CPU request.", "default": "100m", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -454,7 +467,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory request (minimum available memory)", + "description": "Memory request.", "default": "256Mi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -472,15 +485,15 @@ } }, "vmstorage": { - "description": "Configuration for vmstorage component of the storage instance", + "description": "Configuration for vmstorage.", "type": "object", "properties": { "maxAllowed": { - "description": "Limits (maximum allowed/available resources )", + "description": "Maximum allowed resources.", "type": "object", "properties": { "cpu": { - "description": "CPU limit (maximum available CPU)", + "description": "CPU limit.", "default": 1, "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -494,7 +507,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory limit (maximum available memory)", + "description": "Memory limit.", "default": "1Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -510,11 +523,11 @@ } }, "minAllowed": { - "description": "Requests (minimum allowed/available resources)", + "description": "Minimum guaranteed resources.", "type": "object", "properties": { "cpu": { - "description": "CPU request (minimum available CPU)", + "description": "CPU request.", "default": "100m", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -528,7 +541,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "Memory request (minimum available memory)", + "description": "Memory request.", "default": "256Mi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ diff --git a/packages/extra/monitoring/values.yaml b/packages/extra/monitoring/values.yaml index 72aab9a9..d687f213 100644 --- a/packages/extra/monitoring/values.yaml +++ b/packages/extra/monitoring/values.yaml @@ -1,29 +1,41 @@ ## @section Common parameters +## -## @param host {string} The hostname used to access the grafana externally (defaults to 'grafana' subdomain for the tenant host). +## @param {string} host - The hostname used to access Grafana externally (defaults to 'grafana' subdomain for the tenant host). host: "" +## ## @section Metrics storage configuration +## -## @param metricsStorages {[]metricsStorage} Configuration of metrics storage instances -## @field metricsStorage.name {string} Name of the storage instance -## @field metricsStorage.retentionPeriod {string} Retention period for the metrics in the storage instance -## @field metricsStorage.deduplicationInterval {string} Deduplication interval for the metrics in the storage instance -## @field metricsStorage.storage {string default="10Gi"} Persistent Volume size for the storage instance -## @field metricsStorage.storageClassName {*string} StorageClass used to store the data -## @field metricsStorage.vminsert {*vmcomponent} Configuration for vminsert component of the storage instance -## @field metricsStorage.vmselect {*vmcomponent} Configuration for vmselect component of the storage instance -## @field metricsStorage.vmstorage {*vmcomponent} Configuration for vmstorage component of the storage instance +## @typedef {struct} Request - Minimum guaranteed resources. +## @field {quantity} [cpu] - CPU request. +## @field {quantity} [memory] - Memory request. -## @field request.cpu {*quantity} CPU request (minimum available CPU) -## @field request.memory {*quantity} Memory request (minimum available memory) -## @field limit.cpu {*quantity} CPU limit (maximum available CPU) -## @field limit.memory {*quantity} Memory limit (maximum available memory) -## @field vmcomponent.minAllowed {*request} Requests (minimum allowed/available resources) -## @field vmcomponent.maxAllowed {*limit} Limits (maximum allowed/available resources ) -## @field resources.requests {*request} -## @field resources.limits {*limit} +## @typedef {struct} Limit - Maximum allowed resources. +## @field {quantity} [cpu] - CPU limit. +## @field {quantity} [memory] - Memory limit. +## @typedef {struct} VMComponent - VictoriaMetrics component configuration. +## @field {Request} [minAllowed] - Minimum guaranteed resources. +## @field {Limit} [maxAllowed] - Maximum allowed resources. + +## @typedef {struct} Resources - Combined resource configuration. +## @field {Request} [requests] - Resource requests. +## @field {Limit} [limits] - Resource limits. + +## @typedef {struct} MetricsStorage - Configuration of metrics storage instance. +## @field {string} name - Name of the storage instance. +## @field {string} retentionPeriod - Retention period for metrics. +## @field {string} deduplicationInterval - Deduplication interval for metrics. +## @field {string} storage="10Gi" - Persistent volume size. +## @field {string} [storageClassName] - StorageClass used for the data. +## @field {VMComponent} [vminsert] - Configuration for vminsert. +## @field {VMComponent} [vmselect] - Configuration for vmselect. +## @field {VMComponent} [vmstorage] - Configuration for vmstorage. + +## @param {[]MetricsStorage} metricsStorages - Configuration of metrics storage instances. +metricsStorages: ## Example: ## metricsStorages: ## - name: shortterm @@ -52,8 +64,6 @@ host: "" ## maxAllowed: ## cpu: 4000m ## memory: 8Gi -## -metricsStorages: - name: shortterm retentionPeriod: "3d" deduplicationInterval: "15s" @@ -65,33 +75,46 @@ metricsStorages: storage: 10Gi storageClassName: "" -## @section Logs storage configuration - -## @param logsStorages {[]logsStorage} Configuration of logs storage instances -## @field logsStorage.name {string} Name of the storage instance -## @field logsStorage.retentionPeriod {string default=1} Retention period for the logs in the storage instance -## @field logsStorage.storage {string default="10Gi"} Persistent Volume size for the storage instance -## @field logsStorage.storageClassName {*string default="replicated"} StorageClass used to store the data ## +## @section Logs storage configuration +## + +## @typedef {struct} LogsStorage - Configuration of logs storage instance. +## @field {string} name - Name of the storage instance. +## @field {string} retentionPeriod="1" - Retention period for logs. +## @field {string} storage="10Gi" - Persistent volume size. +## @field {string} storageClassName="replicated" - StorageClass used to store the data. + +## @param {[]LogsStorage} logsStorages - Configuration of logs storage instances. logsStorages: - name: generic retentionPeriod: "1" storage: 10Gi storageClassName: replicated +## ## @section Alerta configuration +## -## @param alerta {alerta} Configuration for Alerta service -## @field alerta.storage {*string} Persistent Volume size for the database -## @field alerta.storageClassName {*string} StorageClass used to store the data -## @field alerta.resources {*resources} Resources configuration -## @field alerta.alerts {*alerts} Configuration for alerts -## @field alerts.telegram {*telegramAlerts} Configuration for Telegram alerts -## @field telegramAlerts.token {string} Telegram token for your bot -## @field telegramAlerts.chatID {string} Specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot -## @field telegramAlerts.disabledSeverity {string} List of severity without alerts, separated by comma like: "informational,warning" -## @field alerts.slack {*slackAlerts} Configuration for Slack alerts -## @field slackAlerts.url {*string} Configuration uri for Slack alerts +## @typedef {struct} TelegramAlerts - Telegram alert configuration. +## @field {string} token - Telegram bot token. +## @field {string} chatID - Telegram chat ID(s), separated by commas. +## @field {string} [disabledSeverity] - List of severities without alerts (e.g. "informational,warning"). + +## @typedef {struct} SlackAlerts - Slack alert configuration. +## @field {string} url - Configuration uri for Slack alerts. + +## @typedef {struct} Alerts - Alert routing configuration. +## @field {TelegramAlerts} [telegram] - Configuration for Telegram alerts. +## @field {SlackAlerts} [slack] - Configuration for Slack alerts. + +## @typedef {struct} Alerta - Configuration for the Alerta service. +## @field {string} [storage] - Persistent volume size for the database. +## @field {string} [storageClassName] - StorageClass used for the database. +## @field {Resources} [resources] - Resource configuration. +## @field {Alerts} [alerts] - Alert routing configuration. + +## @param {Alerta} alerta - Configuration for the Alerta service. alerta: storage: 10Gi storageClassName: "" @@ -103,28 +126,24 @@ alerta: cpu: 100m memory: 256Mi alerts: - ## example: - ## telegram: - ## token: "7262461387:AAGtwq16iwuVtWtzoN6TUEMpF00fpC9Xz34" - ## chatID: "-4520856007" - ## disabledSeverity: "informational,warning" - ## telegram: token: "" chatID: "" disabledSeverity: "" - slack: url: "" - +## ## @section Grafana configuration +## -## @param grafana {grafana} Configuration for Grafana -## @field grafana.db {*grafanaDB} Database configuration -## @field grafanaDB.size {*string} Persistent Volume size for the database -## @field grafana.resources {*resources} Resources configuration +## @typedef {struct} GrafanaDB - Grafana database configuration. +## @field {string} [size] - Persistent volume size for the database. +## @typedef {struct} Grafana - Grafana service configuration. +## @field {GrafanaDB} [db] - Database configuration. +## @field {Resources} [resources] - Resource configuration. +## @param {Grafana} grafana - Configuration for Grafana. grafana: db: size: 10Gi diff --git a/packages/extra/seaweedfs/README.md b/packages/extra/seaweedfs/README.md index fac09cbf..a6ad408f 100644 --- a/packages/extra/seaweedfs/README.md +++ b/packages/extra/seaweedfs/README.md @@ -4,55 +4,55 @@ ### Common parameters -| Name | Description | Type | Value | -| ------------------- | ------------------------------------------------------------------------------------------------------ | --------- | -------- | -| `host` | The hostname used to access the SeaweedFS externally (defaults to 's3' subdomain for the tenant host). | `*string` | `""` | -| `topology` | The topology of the SeaweedFS cluster. (allowed values: Simple, MultiZone, Client) | `string` | `Simple` | -| `replicationFactor` | Replication factor: number of replicas for each volume in the SeaweedFS cluster. | `int` | `2` | +| Name | Description | Type | Value | +| ------------------- | -------------------------------------------------------------------------------------------------- | -------- | -------- | +| `host` | The hostname used to access SeaweedFS externally (defaults to 's3' subdomain for the tenant host). | `string` | `""` | +| `topology` | The topology of the SeaweedFS cluster. | `string` | `Simple` | +| `replicationFactor` | Replication factor: number of replicas for each volume in the SeaweedFS cluster. | `int` | `2` | ### SeaweedFS Components Configuration -| Name | Description | Type | Value | -| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------- | -| `db` | Database Configuration | `object` | `{}` | -| `db.replicas` | Number of database replicas | `*int` | `2` | -| `db.size` | Persistent Volume size | `*quantity` | `10Gi` | -| `db.storageClass` | StorageClass used to store the data | `*string` | `""` | -| `db.resources` | Explicit CPU and memory configuration for the database. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | -| `db.resources.cpu` | The number of CPU cores allocated | `*quantity` | `null` | -| `db.resources.memory` | The amount of memory allocated | `*quantity` | `null` | -| `db.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `small` | -| `master` | Master service configuration | `*object` | `null` | -| `master.replicas` | Number of master replicas | `*int` | `3` | -| `master.resources` | Explicit CPU and memory configuration for the master. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | -| `master.resources.cpu` | The number of CPU cores allocated | `*quantity` | `null` | -| `master.resources.memory` | The amount of memory allocated | `*quantity` | `null` | -| `master.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `small` | -| `filer` | Filer service configuration | `*object` | `null` | -| `filer.replicas` | Number of filer replicas | `*int` | `2` | -| `filer.resources` | Explicit CPU and memory configuration for the filer. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | -| `filer.resources.cpu` | The number of CPU cores allocated | `*quantity` | `null` | -| `filer.resources.memory` | The amount of memory allocated | `*quantity` | `null` | -| `filer.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `small` | -| `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` | `[]` | -| `volume` | Volume service configuration | `*object` | `null` | -| `volume.replicas` | Number of volume replicas | `*int` | `2` | -| `volume.size` | Persistent Volume size | `*quantity` | `10Gi` | -| `volume.storageClass` | StorageClass used to store the data | `*string` | `""` | -| `volume.resources` | Explicit CPU and memory configuration for the volume. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | -| `volume.resources.cpu` | The number of CPU cores allocated | `*quantity` | `null` | -| `volume.resources.memory` | The amount of memory allocated | `*quantity` | `null` | -| `volume.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `small` | -| `volume.zones` | A map of zones for MultiZone topology. Each zone can have its own number of replicas and size. | `map[string]object` | `{}` | -| `volume.zones[name].replicas` | Number of replicas in the zone | `*int` | `null` | -| `volume.zones[name].size` | Zone storage size | `*quantity` | `null` | -| `s3` | S3 service configuration | `*object` | `null` | -| `s3.replicas` | Number of s3 replicas | `*int` | `2` | -| `s3.resources` | Explicit CPU and memory configuration for the s3. When left empty, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | -| `s3.resources.cpu` | The number of CPU cores allocated | `*quantity` | `null` | -| `s3.resources.memory` | The amount of memory allocated | `*quantity` | `null` | -| `s3.resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `small` | +| Name | Description | Type | Value | +| ----------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------- | ------- | +| `db` | Database configuration. | `object` | `{}` | +| `db.replicas` | Number of database replicas. | `int` | `2` | +| `db.size` | Persistent Volume size. | `quantity` | `10Gi` | +| `db.storageClass` | StorageClass used to store the data. | `string` | `""` | +| `db.resources` | Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `db.resources.cpu` | Number of CPU cores allocated. | `quantity` | `""` | +| `db.resources.memory` | Amount of memory allocated. | `quantity` | `""` | +| `db.resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `small` | +| `master` | Master service configuration. | `object` | `{}` | +| `master.replicas` | Number of master replicas. | `int` | `3` | +| `master.resources` | Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `master.resources.cpu` | Number of CPU cores allocated. | `quantity` | `""` | +| `master.resources.memory` | Amount of memory allocated. | `quantity` | `""` | +| `master.resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `small` | +| `filer` | Filer service configuration. | `object` | `{}` | +| `filer.replicas` | Number of filer replicas. | `int` | `2` | +| `filer.resources` | Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `filer.resources.cpu` | Number of CPU cores allocated. | `quantity` | `""` | +| `filer.resources.memory` | Amount of memory allocated. | `quantity` | `""` | +| `filer.resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `small` | +| `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` | `[]` | +| `volume` | Volume service configuration. | `object` | `{}` | +| `volume.replicas` | Number of volume replicas. | `int` | `2` | +| `volume.size` | Persistent Volume size. | `quantity` | `10Gi` | +| `volume.storageClass` | StorageClass used to store the data. | `string` | `""` | +| `volume.resources` | Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `volume.resources.cpu` | Number of CPU cores allocated. | `quantity` | `""` | +| `volume.resources.memory` | Amount of memory allocated. | `quantity` | `""` | +| `volume.resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `small` | +| `volume.zones` | A map of zones for MultiZone topology. Each zone can have its own number of replicas and size. | `map[string]object` | `{}` | +| `volume.zones[name].replicas` | Number of replicas in the zone. | `int` | `0` | +| `volume.zones[name].size` | Zone storage size. | `quantity` | `""` | +| `s3` | S3 service configuration. | `object` | `{}` | +| `s3.replicas` | Number of S3 replicas. | `int` | `2` | +| `s3.resources` | Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. | `object` | `{}` | +| `s3.resources.cpu` | Number of CPU cores allocated. | `quantity` | `""` | +| `s3.resources.memory` | Amount of memory allocated. | `quantity` | `""` | +| `s3.resourcesPreset` | Default sizing preset used when `resources` is omitted. | `string` | `small` | diff --git a/packages/extra/seaweedfs/values.schema.json b/packages/extra/seaweedfs/values.schema.json index e336441f..4003df9e 100644 --- a/packages/extra/seaweedfs/values.schema.json +++ b/packages/extra/seaweedfs/values.schema.json @@ -3,26 +3,22 @@ "type": "object", "properties": { "db": { - "description": "Database Configuration", + "description": "Database configuration.", "type": "object", "default": {}, - "required": [ - "resources", - "resourcesPreset" - ], "properties": { "replicas": { - "description": "Number of database replicas", + "description": "Number of database replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for the database. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "The number of CPU cores allocated", + "description": "Number of CPU cores allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -35,7 +31,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "The amount of memory allocated", + "description": "Amount of memory allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -50,7 +46,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "small", "enum": [ @@ -64,7 +60,7 @@ ] }, "size": { - "description": "Persistent Volume size", + "description": "Persistent Volume size.", "default": "10Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -78,23 +74,21 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used to store the data.", + "type": "string", + "default": "" } } }, "filer": { - "description": "Filer service configuration", + "description": "Filer service configuration.", "type": "object", "default": {}, - "required": [ - "resources", - "resourcesPreset" - ], "properties": { "grpcHost": { "description": "The hostname used to expose or access the filer service externally.", - "type": "string" + "type": "string", + "default": "" }, "grpcPort": { "description": "The port used to access the filer service externally.", @@ -102,17 +96,17 @@ "default": 443 }, "replicas": { - "description": "Number of filer replicas", + "description": "Number of filer replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for the filer. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "The number of CPU cores allocated", + "description": "Number of CPU cores allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -125,7 +119,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "The amount of memory allocated", + "description": "Amount of memory allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -140,7 +134,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "small", "enum": [ @@ -164,30 +158,27 @@ } }, "host": { - "description": "The hostname used to access the SeaweedFS externally (defaults to 's3' subdomain for the tenant host).", - "type": "string" + "description": "The hostname used to access SeaweedFS externally (defaults to 's3' subdomain for the tenant host).", + "type": "string", + "default": "" }, "master": { - "description": "Master service configuration", + "description": "Master service configuration.", "type": "object", "default": {}, - "required": [ - "resources", - "resourcesPreset" - ], "properties": { "replicas": { - "description": "Number of master replicas", + "description": "Number of master replicas.", "type": "integer", "default": 3 }, "resources": { - "description": "Explicit CPU and memory configuration for the master. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "The number of CPU cores allocated", + "description": "Number of CPU cores allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -200,7 +191,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "The amount of memory allocated", + "description": "Amount of memory allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -215,7 +206,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "small", "enum": [ @@ -236,26 +227,22 @@ "default": 2 }, "s3": { - "description": "S3 service configuration", + "description": "S3 service configuration.", "type": "object", "default": {}, - "required": [ - "resources", - "resourcesPreset" - ], "properties": { "replicas": { - "description": "Number of s3 replicas", + "description": "Number of S3 replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for the s3. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "The number of CPU cores allocated", + "description": "Number of CPU cores allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -268,7 +255,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "The amount of memory allocated", + "description": "Amount of memory allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -283,7 +270,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "small", "enum": [ @@ -299,7 +286,7 @@ } }, "topology": { - "description": "The topology of the SeaweedFS cluster. (allowed values: Simple, MultiZone, Client)", + "description": "The topology of the SeaweedFS cluster.", "type": "string", "default": "Simple", "enum": [ @@ -309,26 +296,22 @@ ] }, "volume": { - "description": "Volume service configuration", + "description": "Volume service configuration.", "type": "object", "default": {}, - "required": [ - "resources", - "resourcesPreset" - ], "properties": { "replicas": { - "description": "Number of volume replicas", + "description": "Number of volume replicas.", "type": "integer", "default": 2 }, "resources": { - "description": "Explicit CPU and memory configuration for the volume. When left empty, the preset defined in `resourcesPreset` is applied.", + "description": "Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.", "type": "object", "default": {}, "properties": { "cpu": { - "description": "The number of CPU cores allocated", + "description": "Number of CPU cores allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -341,7 +324,7 @@ "x-kubernetes-int-or-string": true }, "memory": { - "description": "The amount of memory allocated", + "description": "Amount of memory allocated.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { @@ -356,7 +339,7 @@ } }, "resourcesPreset": { - "description": "Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`.", + "description": "Default sizing preset used when `resources` is omitted.", "type": "string", "default": "small", "enum": [ @@ -370,7 +353,7 @@ ] }, "size": { - "description": "Persistent Volume size", + "description": "Persistent Volume size.", "default": "10Gi", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ @@ -384,8 +367,9 @@ "x-kubernetes-int-or-string": true }, "storageClass": { - "description": "StorageClass used to store the data", - "type": "string" + "description": "StorageClass used to store the data.", + "type": "string", + "default": "" }, "zones": { "description": "A map of zones for MultiZone topology. Each zone can have its own number of replicas and size.", @@ -395,11 +379,11 @@ "type": "object", "properties": { "replicas": { - "description": "Number of replicas in the zone", + "description": "Number of replicas in the zone.", "type": "integer" }, "size": { - "description": "Zone storage size", + "description": "Zone storage size.", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "anyOf": [ { diff --git a/packages/extra/seaweedfs/values.yaml b/packages/extra/seaweedfs/values.yaml index d4eb33e5..e2fc02fd 100644 --- a/packages/extra/seaweedfs/values.yaml +++ b/packages/extra/seaweedfs/values.yaml @@ -1,96 +1,109 @@ +## ## @section Common parameters +## -## @param host {*string} The hostname used to access the SeaweedFS externally (defaults to 's3' subdomain for the tenant host). +## @param {string} [host] - The hostname used to access SeaweedFS externally (defaults to 's3' subdomain for the tenant host). host: "" -## @param topology {string enum:"Simple,MultiZone,Client"} The topology of the SeaweedFS cluster. (allowed values: Simple, MultiZone, Client) +## @enum {string} Topology - The topology of the SeaweedFS cluster. +## @value Simple +## @value MultiZone +## @value Client + +## @param {Topology} topology="Simple" - The topology of the SeaweedFS cluster. topology: Simple -## @param replicationFactor {int} Replication factor: number of replicas for each volume in the SeaweedFS cluster. +## @param {int} replicationFactor - Replication factor: number of replicas for each volume in the SeaweedFS cluster. replicationFactor: 2 +## ## @section SeaweedFS Components Configuration ## -## @param db {db} Database Configuration + +## @typedef {struct} Resources - Resource configuration. +## @field {quantity} [cpu] - Number of CPU cores allocated. +## @field {quantity} [memory] - Amount of memory allocated. + +## @enum {string} ResourcesPreset - Default sizing preset. +## @value nano +## @value micro +## @value small +## @value medium +## @value large +## @value xlarge +## @value 2xlarge + +## @typedef {struct} DB - Database configuration. +## @field {int} [replicas] - Number of database replicas. +## @field {quantity} [size] - Persistent Volume size. +## @field {string} [storageClass] - StorageClass used to store the data. +## @field {Resources} [resources] - Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. +## @field {ResourcesPreset} [resourcesPreset] - Default sizing preset used when `resources` is omitted. + +## @param {DB} db - Database configuration. db: - ## @field db.replicas {*int} Number of database replicas - ## @field db.size {*quantity} Persistent Volume size - ## @field db.storageClass {*string} StorageClass used to store the data replicas: 2 size: "10Gi" storageClass: "" - ## @field db.resources {resources} Explicit CPU and memory configuration for the database. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field resources {*resources} Resource configuration for etcd - ## @field resources.cpu {*quantity} The number of CPU cores allocated - ## @field resources.memory {*quantity} The amount of memory allocated - ## e.g: - ## resources: - ## cpu: 4000m - ## memory: 4Gi - ## - ## @field db.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`. resources: {} resourcesPreset: "small" -## @param master {*master} Master service configuration +## @typedef {struct} Master - Master service configuration. +## @field {int} [replicas] - Number of master replicas. +## @field {Resources} [resources] - Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. +## @field {ResourcesPreset} [resourcesPreset] - Default sizing preset used when `resources` is omitted. + +## @param {Master} [master] - Master service configuration. master: - ## @field master.replicas {*int} Number of master replicas - ## @field master.resources {resources} Explicit CPU and memory configuration for the master. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field master.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`. replicas: 3 resources: {} resourcesPreset: "small" -## @param filer {*filer} Filer service configuration +## @typedef {struct} Filer - Filer service configuration. +## @field {int} [replicas] - Number of filer replicas. +## @field {Resources} [resources] - Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. +## @field {ResourcesPreset} [resourcesPreset] - Default sizing preset used when `resources` is omitted. +## @field {string} [grpcHost] - The hostname used to expose or access the filer service externally. +## @field {int} [grpcPort] - The port used to access the filer service externally. +## @field {[]string} [whitelist] - A list of IP addresses or CIDR ranges that are allowed to access the filer service. + +## @param {Filer} [filer] - Filer service configuration. filer: - ## @field filer.replicas {*int} Number of filer replicas - ## @field filer.resources {resources} Explicit CPU and memory configuration for the filer. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field filer.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`. replicas: 2 resources: {} resourcesPreset: "small" - - ## @field filer.grpcHost {*string} The hostname used to expose or access the filer service externally. - ## @field filer.grpcPort {*int} The port used to access the filer service externally. - ## @field filer.whitelist {[]*string} A list of IP addresses or CIDR ranges that are allowed to access the filer service. grpcHost: "" grpcPort: 443 whitelist: [] -## @param volume {*volume} Volume service configuration +## @typedef {struct} Zone - Zone configuration. +## @field {int} [replicas] - Number of replicas in the zone. +## @field {quantity} [size] - Zone storage size. + +## @typedef {struct} Volume - Volume service configuration. +## @field {int} [replicas] - Number of volume replicas. +## @field {quantity} [size] - Persistent Volume size. +## @field {string} [storageClass] - StorageClass used to store the data. +## @field {Resources} [resources] - Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. +## @field {ResourcesPreset} [resourcesPreset] - Default sizing preset used when `resources` is omitted. +## @field {map[string]Zone} [zones] - A map of zones for MultiZone topology. Each zone can have its own number of replicas and size. + +## @param {Volume} [volume] - Volume service configuration. volume: - ## @field volume.replicas {*int} Number of volume replicas - ## @field volume.size {*quantity} Persistent Volume size - ## @field volume.storageClass {*string} StorageClass used to store the data - ## @field volume.resources {resources} Explicit CPU and memory configuration for the volume. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field volume.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`. replicas: 2 size: 10Gi storageClass: "" resources: {} resourcesPreset: "small" - - ## @field volume.zones {map[string]zone} A map of zones for MultiZone topology. Each zone can have its own number of replicas and size. - ## @field zone.replicas {*int} Number of replicas in the zone - ## @field zone.size {*quantity} Zone storage size - ## Example: - ## zones: - ## dc1: - ## replicas: 2 - ## size: 10Gi - ## dc2: - ## replicas: 2 - ## size: 10Gi - ## dc3: - ## replicas: 2 - ## size: 10Gi zones: {} -## @param s3 {*s3} S3 service configuration +## @typedef {struct} S3 - S3 service configuration. +## @field {int} [replicas] - Number of S3 replicas. +## @field {Resources} [resources] - Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied. +## @field {ResourcesPreset} [resourcesPreset] - Default sizing preset used when `resources` is omitted. + +## @param {S3} [s3] - S3 service configuration. s3: - ## @field s3.replicas {*int} Number of s3 replicas - ## @field s3.resources {resources} Explicit CPU and memory configuration for the s3. When left empty, the preset defined in `resourcesPreset` is applied. - ## @field s3.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`. replicas: 2 resources: {} resourcesPreset: "small" diff --git a/packages/system/cozystack-resource-definitions/cozyrds/bootbox.yaml b/packages/system/cozystack-resource-definitions/cozyrds/bootbox.yaml index 87e35626..f47bf8f6 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/bootbox.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/bootbox.yaml @@ -8,7 +8,7 @@ spec: plural: bootboxes singular: bootbox openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"machines":{"description":"Configuration of physical machine instances","type":"array","default":[],"items":{"type":"object","required":["arch","hostname","ip","leaseTime","uefi"],"properties":{"arch":{"description":"Architecture","type":"string"},"hostname":{"description":"Hostname","type":"string"},"ip":{"type":"object","required":["address"],"properties":{"address":{"description":"IP address","type":"object","required":["address","gateway","netmask"],"properties":{"address":{"description":"IP address","type":"string"},"gateway":{"description":"IP gateway","type":"string"},"netmask":{"description":"Netmask","type":"string"}}}}},"leaseTime":{"description":"Lease time","type":"integer"},"mac":{"description":"MAC addresses","type":"array","items":{"type":"string"}},"nameServers":{"description":"Name servers","type":"array","items":{"type":"string"}},"timeServers":{"description":"Time servers","type":"array","items":{"type":"string"}},"uefi":{"description":"UEFI","type":"boolean"}}}},"whitelist":{"description":"List of client networks","type":"array","default":[],"items":{"type":"string"}},"whitelistHTTP":{"description":"Secure HTTP by enabling client networks whitelisting","type":"boolean","default":true}}} + {"title":"Chart Values","type":"object","properties":{"machines":{"description":"Configuration of physical machine instances.","type":"array","default":[],"items":{"type":"object","required":["arch","hostname","ip","leaseTime","uefi"],"properties":{"arch":{"description":"Architecture.","type":"string"},"hostname":{"description":"Hostname.","type":"string"},"ip":{"description":"IP address configuration.","type":"object","required":["address","gateway","netmask"],"properties":{"address":{"description":"IP address.","type":"string"},"gateway":{"description":"IP gateway.","type":"string"},"netmask":{"description":"Netmask.","type":"string"}}},"leaseTime":{"description":"Lease time.","type":"integer"},"mac":{"description":"MAC addresses.","type":"array","items":{"type":"string"}},"nameServers":{"description":"Name servers.","type":"array","items":{"type":"string"}},"timeServers":{"description":"Time servers.","type":"array","items":{"type":"string"}},"uefi":{"description":"UEFI.","type":"boolean"}}}},"whitelist":{"description":"List of client networks.","type":"array","default":[],"items":{"type":"string"}},"whitelistHTTP":{"description":"Secure HTTP by enabling client networks whitelisting.","type":"boolean","default":true}}} release: prefix: "" labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/clickhouse.yaml b/packages/system/cozystack-resource-definitions/cozyrds/clickhouse.yaml index 49cf575f..6948fce0 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/clickhouse.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/clickhouse.yaml @@ -8,7 +8,7 @@ spec: singular: clickhouse plural: clickhouses openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"backup":{"description":"Backup configuration","type":"object","default":{},"required":["cleanupStrategy","enabled","resticPassword","s3AccessKey","s3Bucket","s3Region","s3SecretKey","schedule"],"properties":{"cleanupStrategy":{"description":"Retention strategy for cleaning up old backups","type":"string","default":"--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"},"enabled":{"description":"Enable regular backups, default is `false`","type":"boolean","default":false},"resticPassword":{"description":"Password for Restic backup encryption","type":"string","default":""},"s3AccessKey":{"description":"Access key for S3, used for authentication","type":"string","default":""},"s3Bucket":{"description":"S3 bucket used for storing backups","type":"string","default":"s3.example.org/clickhouse-backups"},"s3Region":{"description":"AWS S3 region where backups are stored","type":"string","default":"us-east-1"},"s3SecretKey":{"description":"Secret key for S3, used for authentication","type":"string","default":""},"schedule":{"description":"Cron schedule for automated backups","type":"string","default":"0 2 * * *"}}},"clickhouseKeeper":{"description":"Clickhouse Keeper configuration","type":"object","default":{},"required":["resourcesPreset"],"properties":{"enabled":{"description":"Deploy ClickHouse Keeper for cluster coordination","type":"boolean","default":true},"replicas":{"description":"Number of Keeper replicas","type":"integer","default":3},"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"]},"size":{"description":"Persistent Volume Claim size, available for application data","default":"1Gi","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}}},"logStorageSize":{"description":"Size of Persistent Volume for logs","default":"2Gi","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},"logTTL":{"description":"TTL (expiration time) for `query_log` and `query_thread_log`","type":"integer","default":15},"replicas":{"description":"Number of Clickhouse replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each Clickhouse replica. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica","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 (RAM) available to each replica","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"]},"shards":{"description":"Number of Clickhouse shards","type":"integer","default":1},"size":{"description":"Persistent Volume Claim size, available for application data","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 data","type":"string"},"users":{"description":"Users configuration","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user","type":"string"},"readonly":{"description":"User is `readonly`, default is `false`.","type":"boolean"}}}}}} + {"title":"Chart Values","type":"object","properties":{"backup":{"description":"Backup configuration.","type":"object","default":{},"required":["cleanupStrategy","enabled","resticPassword","s3AccessKey","s3Bucket","s3Region","s3SecretKey","schedule"],"properties":{"cleanupStrategy":{"description":"Retention strategy for cleaning up old backups.","type":"string","default":"--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"},"enabled":{"description":"Enable regular backups (default: false).","type":"boolean","default":false},"resticPassword":{"description":"Password for Restic backup encryption.","type":"string","default":""},"s3AccessKey":{"description":"Access key for S3 authentication.","type":"string","default":""},"s3Bucket":{"description":"S3 bucket used for storing backups.","type":"string","default":"s3.example.org/clickhouse-backups"},"s3Region":{"description":"AWS S3 region where backups are stored.","type":"string","default":"us-east-1"},"s3SecretKey":{"description":"Secret key for S3 authentication.","type":"string","default":""},"schedule":{"description":"Cron schedule for automated backups.","type":"string","default":"0 2 * * *"}}},"clickhouseKeeper":{"description":"ClickHouse Keeper configuration.","type":"object","default":{},"properties":{"enabled":{"description":"Deploy ClickHouse Keeper for cluster coordination.","type":"boolean","default":true},"replicas":{"description":"Number of Keeper replicas.","type":"integer","default":3},"resourcesPreset":{"description":"Default sizing preset.","type":"string","default":"micro","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"size":{"description":"Persistent Volume Claim size available for application data.","default":"1Gi","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}}},"logStorageSize":{"description":"Size of Persistent Volume for logs.","default":"2Gi","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},"logTTL":{"description":"TTL (expiration time) for `query_log` and `query_thread_log`.","type":"integer","default":15},"replicas":{"description":"Number of ClickHouse replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each ClickHouse replica. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"small","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"shards":{"description":"Number of ClickHouse shards.","type":"integer","default":1},"size":{"description":"Persistent Volume Claim size available for application data.","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 data.","type":"string","default":""},"users":{"description":"Users configuration map.","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user.","type":"string"},"readonly":{"description":"User is readonly (default: false).","type":"boolean"}}}}}} release: prefix: clickhouse- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/etcd.yaml b/packages/system/cozystack-resource-definitions/cozyrds/etcd.yaml index eeece147..7381469d 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/etcd.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/etcd.yaml @@ -8,7 +8,7 @@ spec: plural: etcds singular: etcd openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"replicas":{"description":"Number of etcd replicas","type":"integer","default":3},"resources":{"description":"Resource configuration for etcd","type":"object","default":{},"properties":{"cpu":{"description":"The number of CPU cores allocated","default":"1000m","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":"The amount of memory allocated","default":"512Mi","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}}},"size":{"description":"Persistent Volume size","default":"4Gi","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 data","type":"string"}}} + {"title":"Chart Values","type":"object","properties":{"replicas":{"description":"Number of etcd replicas.","type":"integer","default":3},"resources":{"description":"Resource configuration for etcd.","type":"object","default":{},"properties":{"cpu":{"description":"Number of CPU cores allocated.","default":"1000m","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":"Amount of memory allocated.","default":"512Mi","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}}},"size":{"description":"Persistent Volume size.","default":"4Gi","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 data.","type":"string","default":""}}} release: prefix: "" labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/ferretdb.yaml b/packages/system/cozystack-resource-definitions/cozyrds/ferretdb.yaml index 853d5d22..f7bdeb82 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/ferretdb.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/ferretdb.yaml @@ -8,7 +8,7 @@ spec: plural: ferretdbs singular: ferretdb openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"backup":{"description":"Backup configuration","type":"object","default":{},"required":["destinationPath","enabled","endpointURL","retentionPolicy","s3AccessKey","s3SecretKey","schedule"],"properties":{"destinationPath":{"description":"Path to store the backup (i.e. s3://bucket/path/to/folder)","type":"string","default":"s3://bucket/path/to/folder/"},"enabled":{"description":"Enable regular backups, default is `false`.","type":"boolean","default":false},"endpointURL":{"description":"S3 Endpoint used to upload data to the cloud","type":"string","default":"http://minio-gateway-service:9000"},"retentionPolicy":{"description":"Retention policy","type":"string","default":"30d"},"s3AccessKey":{"description":"Access key for S3, used for authentication","type":"string","default":""},"s3SecretKey":{"description":"Secret key for S3, used for authentication","type":"string","default":""},"schedule":{"description":"Cron schedule for automated backups","type":"string","default":"0 2 * * * *"}}},"bootstrap":{"description":"Bootstrap (recovery) configuration","type":"object","default":{},"properties":{"enabled":{"description":"Restore database cluster from a backup","type":"boolean","default":false},"oldName":{"description":"Name of database cluster before deleting","type":"string"},"recoveryTime":{"description":"Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest.","type":"string"}}},"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"quorum":{"description":"Configuration for the quorum-based synchronous replication","type":"object","default":{},"required":["maxSyncReplicas","minSyncReplicas"],"properties":{"maxSyncReplicas":{"description":"Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the total number of replicas)","type":"integer","default":0},"minSyncReplicas":{"description":"Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed","type":"integer","default":0}}},"replicas":{"description":"Number of replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each FerretDB replica. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica","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 (RAM) available to each replica","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"]},"size":{"description":"Persistent Volume Claim size, available for application data","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 data","type":"string"},"users":{"description":"Users configuration","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user","type":"string"}}}}}} + {"title":"Chart Values","type":"object","properties":{"backup":{"description":"Backup configuration.","type":"object","default":{},"required":["destinationPath","enabled","endpointURL","retentionPolicy","s3AccessKey","s3SecretKey","schedule"],"properties":{"destinationPath":{"description":"Path to store the backup (e.g. s3://bucket/path/to/folder/).","type":"string","default":"s3://bucket/path/to/folder/"},"enabled":{"description":"Enable regular backups (default: false).","type":"boolean","default":false},"endpointURL":{"description":"S3 endpoint URL for uploads.","type":"string","default":"http://minio-gateway-service:9000"},"retentionPolicy":{"description":"Retention policy.","type":"string","default":"30d"},"s3AccessKey":{"description":"Access key for S3 authentication.","type":"string","default":""},"s3SecretKey":{"description":"Secret key for S3 authentication.","type":"string","default":""},"schedule":{"description":"Cron schedule for automated backups.","type":"string","default":"0 2 * * * *"}}},"bootstrap":{"description":"Bootstrap configuration.","type":"object","default":{},"properties":{"enabled":{"description":"Restore database cluster from a backup.","type":"boolean","default":false},"oldName":{"description":"Name of database cluster before deletion.","type":"string","default":""},"recoveryTime":{"description":"Timestamp (RFC3339) for point-in-time recovery; empty means latest.","type":"string","default":""}}},"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"quorum":{"description":"Configuration for quorum-based synchronous replication.","type":"object","default":{},"required":["maxSyncReplicas","minSyncReplicas"],"properties":{"maxSyncReplicas":{"description":"Maximum number of synchronous replicas allowed (must be less than total replicas).","type":"integer","default":0},"minSyncReplicas":{"description":"Minimum number of synchronous replicas required for commit.","type":"integer","default":0}}},"replicas":{"description":"Number of replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each FerretDB replica. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"micro","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"size":{"description":"Persistent Volume Claim size available for application data.","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 data.","type":"string","default":""},"users":{"description":"Users configuration map.","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user.","type":"string"}}}}}} release: prefix: ferretdb- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/http-cache.yaml b/packages/system/cozystack-resource-definitions/cozyrds/http-cache.yaml index 583d8fa8..70de0418 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/http-cache.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/http-cache.yaml @@ -8,7 +8,7 @@ spec: plural: httpcaches singular: httpcache openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"endpoints":{"description":"Endpoints configuration, as a list of ","type":"array","default":[],"items":{"type":"string"}},"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"haproxy":{"description":"HAProxy configuration","type":"object","default":{},"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 available to each replica","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 (RAM) available to each replica","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":{},"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 available to each replica","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 (RAM) available to each replica","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":{"description":"Persistent Volume Claim size, available for application data","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 data","type":"string"}}} + {"title":"Chart Values","type":"object","properties":{"endpoints":{"description":"Endpoints configuration, as a list of .","type":"array","default":[],"items":{"type":"string"}},"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"haproxy":{"description":"HAProxy configuration.","type":"object","default":{},"required":["replicas","resourcesPreset"],"properties":{"replicas":{"description":"Number of HAProxy replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"nano","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]}}},"nginx":{"description":"Nginx configuration.","type":"object","default":{},"required":["replicas","resourcesPreset"],"properties":{"replicas":{"description":"Number of Nginx replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"nano","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]}}},"size":{"description":"Persistent Volume Claim size available for application data.","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 data.","type":"string","default":""}}} release: prefix: http-cache- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/ingress.yaml b/packages/system/cozystack-resource-definitions/cozyrds/ingress.yaml index 80d52549..2e00f6ed 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/ingress.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/ingress.yaml @@ -8,7 +8,7 @@ spec: plural: ingresses singular: ingress openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"cloudflareProxy":{"description":"Restoring original visitor IPs when Cloudflare proxied is enabled","type":"boolean","default":false},"replicas":{"description":"Number of ingress-nginx replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each ingress-nginx replica. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica","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 (RAM) available to each replica","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"]},"whitelist":{"description":"List of client networks","type":"array","default":[],"items":{"type":"string"}}}} + {"title":"Chart Values","type":"object","properties":{"cloudflareProxy":{"description":"Restoring original visitor IPs when Cloudflare proxied is enabled.","type":"boolean","default":false},"replicas":{"description":"Number of ingress-nginx replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each ingress-nginx replica. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"micro","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"whitelist":{"description":"List of client networks.","type":"array","default":[],"items":{"type":"string"}}}} release: prefix: "" labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/kafka.yaml b/packages/system/cozystack-resource-definitions/cozyrds/kafka.yaml index 05594e07..7009d241 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/kafka.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/kafka.yaml @@ -8,7 +8,7 @@ spec: plural: kafkas singular: kafka openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"kafka":{"description":"Kafka configuration","type":"object","default":{},"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 available to each replica","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 (RAM) available to each replica","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":{"description":"Topics configuration","type":"array","default":[],"items":{"type":"object","required":["config","name","partitions","replicas"],"properties":{"config":{"description":"Topic configuration","type":"object","x-kubernetes-preserve-unknown-fields":true},"name":{"description":"Topic name","type":"string"},"partitions":{"description":"Number of partitions","type":"integer"},"replicas":{"description":"Number of replicas","type":"integer"}}}},"zookeeper":{"description":"Zookeeper configuration","type":"object","default":{},"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 available to each replica","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 (RAM) available to each replica","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"}}}}} + {"title":"Chart Values","type":"object","properties":{"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"kafka":{"description":"Kafka configuration.","type":"object","default":{},"required":["replicas","resourcesPreset","size","storageClass"],"properties":{"replicas":{"description":"Number of Kafka replicas.","type":"integer","default":3},"resources":{"description":"Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","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","default":""}}},"topics":{"description":"Topics configuration.","type":"array","default":[],"items":{"type":"object","required":["config","name","partitions","replicas"],"properties":{"config":{"description":"Topic configuration.","type":"object","x-kubernetes-preserve-unknown-fields":true},"name":{"description":"Topic name.","type":"string"},"partitions":{"description":"Number of partitions.","type":"integer"},"replicas":{"description":"Number of replicas.","type":"integer"}}}},"zookeeper":{"description":"ZooKeeper configuration.","type":"object","default":{},"required":["replicas","resourcesPreset","size","storageClass"],"properties":{"replicas":{"description":"Number of ZooKeeper replicas.","type":"integer","default":3},"resources":{"description":"Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","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","default":""}}}}} release: prefix: kafka- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/kubernetes.yaml b/packages/system/cozystack-resource-definitions/cozyrds/kubernetes.yaml index db9ec9dc..86e8694d 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/kubernetes.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/kubernetes.yaml @@ -8,7 +8,7 @@ spec: singular: kubernetes plural: kuberneteses openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"addons":{"description":"Cluster addons configuration","type":"object","default":{},"required":["certManager","cilium","coredns","fluxcd","gatewayAPI","gpuOperator","ingressNginx","monitoringAgents","velero","verticalPodAutoscaler"],"properties":{"certManager":{"description":"Cert-manager: automatically creates and manages SSL/TLS certificate","type":"object","default":{},"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":{},"required":["valuesOverride"],"properties":{"valuesOverride":{"description":"Custom values to override","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}},"coredns":{"description":"Coredns","type":"object","default":{},"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":{},"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":{},"required":["enabled"],"properties":{"enabled":{"description":"Enable the Gateway API","type":"boolean","default":false}}},"gpuOperator":{"description":"GPU-operator: NVIDIA GPU Operator","type":"object","default":{},"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":{},"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":{},"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":{},"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":{},"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":{},"required":["apiServer","controllerManager","konnectivity","replicas","scheduler"],"properties":{"apiServer":{"description":"Control plane API server configuration.","type":"object","default":{},"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":"CPU available to each worker node","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 (RAM) available to each worker node","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":{},"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":"CPU available to each worker node","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 (RAM) available to each worker node","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":{},"required":["server"],"properties":{"server":{"description":"Konnectivity server configuration.","type":"object","default":{},"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":"CPU available to each worker node","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 (RAM) available to each worker node","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":{},"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":"CPU available to each worker node","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 (RAM) available to each worker node","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":{"description":"Hostname used to access the Kubernetes cluster externally. Defaults to `.` when empty.","type":"string"},"nodeGroups":{"description":"Worker nodes configuration","type":"object","default":{"md0":{"ephemeralStorage":"20Gi","gpus":[],"instanceType":"u1.medium","maxReplicas":10,"minReplicas":0,"resources":{},"roles":["ingress-nginx"]}},"additionalProperties":{"type":"object","required":["ephemeralStorage","instanceType","maxReplicas","minReplicas","resources"],"properties":{"ephemeralStorage":{"description":"Ephemeral storage size","default":"20Gi","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},"gpus":{"description":"List of GPUs to attach (WARN: NVIDIA driver requires at least 4 GiB of RAM)","type":"array","default":[],"items":{"type":"object","required":["name"],"properties":{"name":{"description":"Name of GPU, such as \"nvidia.com/AD102GL_L40S\"","type":"string"}}}},"instanceType":{"description":"Virtual machine instance type","type":"string","default":"u1.medium"},"maxReplicas":{"description":"Maximum amount of replicas","type":"integer","default":10},"minReplicas":{"description":"Minimum amount of replicas","type":"integer","default":0},"resources":{"description":"Resources available to each worker node","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each worker node","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 (RAM) available to each worker node","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}}},"roles":{"description":"List of node's roles","type":"array","items":{"type":"string"}}}}},"storageClass":{"description":"StorageClass used to store the data","type":"string","default":"replicated"},"version":{"description":"Kubernetes version given as vMAJOR.MINOR. Available are versions from 1.28 to 1.33.","type":"string","default":"v1.33","enum":["v1.28","v1.29","v1.30","v1.31","v1.32","v1.33"]}}} + {"title":"Chart Values","type":"object","properties":{"addons":{"description":"Cluster addons configuration.","type":"object","default":{},"required":["certManager","cilium","coredns","fluxcd","gatewayAPI","gpuOperator","ingressNginx","monitoringAgents","velero","verticalPodAutoscaler"],"properties":{"certManager":{"description":"Cert-manager addon.","type":"object","default":{},"required":["enabled","valuesOverride"],"properties":{"enabled":{"description":"Enable cert-manager.","type":"boolean","default":false},"valuesOverride":{"description":"Custom Helm values overrides.","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}},"cilium":{"description":"Cilium CNI plugin.","type":"object","default":{},"required":["valuesOverride"],"properties":{"valuesOverride":{"description":"Custom Helm values overrides.","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}},"coredns":{"description":"CoreDNS addon.","type":"object","default":{},"required":["valuesOverride"],"properties":{"valuesOverride":{"description":"Custom Helm values overrides.","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}},"fluxcd":{"description":"FluxCD GitOps operator.","type":"object","default":{},"required":["enabled","valuesOverride"],"properties":{"enabled":{"description":"Enable FluxCD.","type":"boolean","default":false},"valuesOverride":{"description":"Custom Helm values overrides.","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}},"gatewayAPI":{"description":"Gateway API addon.","type":"object","default":{},"required":["enabled"],"properties":{"enabled":{"description":"Enable Gateway API.","type":"boolean","default":false}}},"gpuOperator":{"description":"NVIDIA GPU Operator.","type":"object","default":{},"required":["enabled","valuesOverride"],"properties":{"enabled":{"description":"Enable GPU Operator.","type":"boolean","default":false},"valuesOverride":{"description":"Custom Helm values overrides.","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}},"ingressNginx":{"description":"Ingress-NGINX controller.","type":"object","default":{},"required":["enabled","exposeMethod","valuesOverride"],"properties":{"enabled":{"description":"Enable the controller (requires nodes labeled `ingress-nginx`).","type":"boolean","default":false},"exposeMethod":{"description":"Method to expose the controller. Allowed values: `Proxied`, `LoadBalancer`.","type":"string","default":"Proxied"},"hosts":{"description":"Domains routed to this tenant cluster when `exposeMethod` is `Proxied`.","type":"array","default":[],"items":{"type":"string"}},"valuesOverride":{"description":"Custom Helm values overrides.","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}},"monitoringAgents":{"description":"Monitoring agents.","type":"object","default":{},"required":["enabled","valuesOverride"],"properties":{"enabled":{"description":"Enable monitoring agents.","type":"boolean","default":false},"valuesOverride":{"description":"Custom Helm values overrides.","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}},"velero":{"description":"Velero backup/restore addon.","type":"object","default":{},"required":["enabled","valuesOverride"],"properties":{"enabled":{"description":"Enable Velero.","type":"boolean","default":false},"valuesOverride":{"description":"Custom Helm values overrides.","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}},"verticalPodAutoscaler":{"description":"Vertical Pod Autoscaler.","type":"object","default":{},"required":["valuesOverride"],"properties":{"valuesOverride":{"description":"Custom Helm values overrides.","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}}}},"controlPlane":{"description":"Kubernetes control-plane configuration.","type":"object","default":{},"required":["apiServer","controllerManager","konnectivity","replicas","scheduler"],"properties":{"apiServer":{"description":"API Server configuration.","type":"object","default":{},"required":["resources","resourcesPreset"],"properties":{"resources":{"description":"CPU and memory resources for API Server.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available.","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 (RAM) available.","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":"Preset if `resources` omitted.","type":"string","default":"medium","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]}}},"controllerManager":{"description":"Controller Manager configuration.","type":"object","default":{},"required":["resources","resourcesPreset"],"properties":{"resources":{"description":"CPU and memory resources for Controller Manager.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available.","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 (RAM) available.","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":"Preset if `resources` omitted.","type":"string","default":"micro","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]}}},"konnectivity":{"description":"Konnectivity configuration.","type":"object","default":{},"required":["server"],"properties":{"server":{"description":"Konnectivity Server configuration.","type":"object","default":{},"required":["resources","resourcesPreset"],"properties":{"resources":{"description":"CPU and memory resources for Konnectivity.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available.","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 (RAM) available.","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":"Preset if `resources` omitted.","type":"string","default":"micro","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]}}}}},"replicas":{"description":"Number of control-plane replicas.","type":"integer","default":2},"scheduler":{"description":"Scheduler configuration.","type":"object","default":{},"required":["resources","resourcesPreset"],"properties":{"resources":{"description":"CPU and memory resources for Scheduler.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available.","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 (RAM) available.","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":"Preset if `resources` omitted.","type":"string","default":"micro","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]}}}}},"host":{"description":"External hostname for Kubernetes cluster. Defaults to `.` if empty.","type":"string","default":""},"nodeGroups":{"description":"Worker nodes configuration map.","type":"object","default":{"md0":{"ephemeralStorage":"20Gi","gpus":[],"instanceType":"u1.medium","maxReplicas":10,"minReplicas":0,"resources":{},"roles":["ingress-nginx"]}},"additionalProperties":{"type":"object","required":["ephemeralStorage","instanceType","maxReplicas","minReplicas","resources"],"properties":{"ephemeralStorage":{"description":"Ephemeral storage size.","default":"20Gi","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},"gpus":{"description":"List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM).","type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"description":"Name of GPU, such as \"nvidia.com/AD102GL_L40S\".","type":"string"}}}},"instanceType":{"description":"Virtual machine instance type.","type":"string","default":"u1.medium"},"maxReplicas":{"description":"Maximum number of replicas.","type":"integer","default":10},"minReplicas":{"description":"Minimum number of replicas.","type":"integer","default":0},"resources":{"description":"CPU and memory resources for each worker node.","type":"object","properties":{"cpu":{"description":"CPU available.","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 (RAM) available.","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}}},"roles":{"description":"List of node roles.","type":"array","items":{"type":"string"}}}}},"storageClass":{"description":"StorageClass used to store the data.","type":"string","default":"replicated"},"version":{"description":"Kubernetes version (vMAJOR.MINOR). Supported: 1.28–1.33.","type":"string","default":"v1.33","enum":["v1.28","v1.29","v1.30","v1.31","v1.32","v1.33"]}}} release: prefix: kubernetes- labels: @@ -28,7 +28,7 @@ spec: tags: - compute icon: PHN2ZyB3aWR0aD0iMTQ0IiBoZWlnaHQ9IjE0NCIgdmlld0JveD0iMCAwIDE0NCAxNDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxNDQiIGhlaWdodD0iMTQ0IiByeD0iMjQiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl82ODFfMjg0NSkiLz4KPHBhdGggZD0iTTcxLjk5NjggMTlDNzAuMzAzOSAxOS4wMDAyIDY4LjkzMTIgMjAuNTMyMiA2OC45MzE0IDIyLjQyMjFDNjguOTMxNCAyMi40NTExIDY4LjkzNzMgMjIuNDc4OCA2OC45Mzc5IDIyLjUwNzZDNjguOTM1NCAyMi43NjQ0IDY4LjkyMzEgMjMuMDczNyA2OC45MzE0IDIzLjI5NzNDNjguOTcxNyAyNC4zODczIDY5LjIwODIgMjUuMjIxNiA2OS4zNTA2IDI2LjIyNThDNjkuNjA4NCAyOC4zNzUyIDY5LjgyNDUgMzAuMTU2OSA2OS42OTEyIDMxLjgxM0M2OS41NjE1IDMyLjQzNzUgNjkuMTAzNyAzMy4wMDg2IDY4LjY5NTYgMzMuNDA1Nkw2OC42MjM1IDM0LjcwODZDNjYuNzgzOSAzNC44NjE3IDY0LjkzMTkgMzUuMTQyMSA2My4wODIxIDM1LjU2NDFDNTUuMTIyNiAzNy4zNzk4IDQ4LjI2OTUgNDEuNDk5MSA0My4wNTIgNDcuMDYwOUM0Mi43MTM0IDQ2LjgyODggNDIuMTIxMSA0Ni40MDE5IDQxLjk0NSA0Ni4yNzEyQzQxLjM5NzcgNDYuMzQ1NCA0MC44NDQ1IDQ2LjUxNTEgNDAuMTI0MSA0Ni4wOTM1QzM4Ljc1MjIgNDUuMTY1NyAzNy41MDI4IDQzLjg4NTEgMzUuOTkxIDQyLjM0MjRDMzUuMjk4MiA0MS42MDQ0IDM0Ljc5NjYgNDAuOTAxOCAzMy45NzM1IDQwLjE5MDRDMzMuNzg2NiA0MC4wMjg5IDMzLjUwMTQgMzkuODEwNCAzMy4yOTIzIDM5LjY0NDJDMzIuNjQ4OSAzOS4xMjg4IDMxLjg5IDM4Ljg2IDMxLjE1NyAzOC44MzQ4QzMwLjIxNDcgMzguODAyNCAyOS4zMDc1IDM5LjE3MjUgMjguNzEzOCAzOS45MjA2QzI3LjY1ODQgNDEuMjUwNiAyNy45OTYzIDQzLjI4MzMgMjkuNDY3MSA0NC40NjE0QzI5LjQ4MiA0NC40NzM0IDI5LjQ5NzkgNDQuNDgyNyAyOS41MTI5IDQ0LjQ5NDNDMjkuNzE1IDQ0LjY1ODkgMjkuOTYyNSA0NC44Njk4IDMwLjE0ODMgNDUuMDA3NkMzMS4wMjE3IDQ1LjY1NTUgMzEuODE5NSA0NS45ODcyIDMyLjY4OTcgNDYuNTAxNUMzNC41MjMxIDQ3LjYzOTEgMzYuMDQzIDQ4LjU4MjMgMzcuMjQ4NiA0OS43MTk2QzM3LjcxOTQgNTAuMjIzNyAzNy44MDE2IDUxLjExMjIgMzcuODY0MyA1MS40OTY0TDM4Ljg0NjggNTIuMzc4MkMzMy41ODcyIDYwLjMzMDggMzEuMTUzIDcwLjE1MzkgMzIuNTkxNSA4MC4xNjI3TDMxLjMwNzcgODAuNTM3OEMzMC45NjkzIDgwLjk3NjggMzAuNDkxMiA4MS42Njc2IDI5Ljk5MTEgODEuODczOEMyOC40MTM4IDgyLjM3MjkgMjYuNjM4NyA4Mi41NTYyIDI0LjQ5NTYgODIuNzgxOUMyMy40ODk0IDgyLjg2NiAyMi42MjEzIDgyLjgxNTggMjEuNTU0NiA4My4wMTg4QzIxLjMxOTggODMuMDYzNSAyMC45OTI3IDgzLjE0OTEgMjAuNzM1OCA4My4yMDk3QzIwLjcyNjkgODMuMjExNiAyMC43MTg2IDgzLjIxNDIgMjAuNzA5NiA4My4yMTYyQzIwLjY5NTYgODMuMjE5NSAyMC42NzcyIDgzLjIyNjMgMjAuNjYzOCA4My4yMjk0QzE4Ljg1NyA4My42NjggMTcuNjk2MyA4NS4zMzY1IDE4LjA2OTkgODYuOTgwNUMxOC40NDM3IDg4LjYyNDggMjAuMjA4NiA4OS42MjQ4IDIyLjAyNjIgODkuMjMxMkMyMi4wMzkzIDg5LjIyODIgMjIuMDU4NCA4OS4yMjc3IDIyLjA3MiA4OS4yMjQ2QzIyLjA5MjYgODkuMjE5OSAyMi4xMTA2IDg5LjIwOTkgMjIuMTMxIDg5LjIwNDlDMjIuMzg0NCA4OS4xNDkgMjIuNzAxOSA4OS4wODY4IDIyLjkyMzYgODkuMDI3MkMyMy45NzIzIDg4Ljc0NTEgMjQuNzMxOCA4OC4zMzA2IDI1LjY3NDYgODcuOTY3N0MyNy43MDI5IDg3LjIzNjggMjkuMzgyOCA4Ni42MjYyIDMxLjAxOTUgODYuMzg4M0MzMS43MDMgODYuMzM0NSAzMi40MjMyIDg2LjgxMiAzMi43ODE0IDg3LjAxMzRMMzQuMTE3NyA4Ni43ODMxQzM3LjE5MjYgOTYuMzYxMyA0My42MzY2IDEwNC4xMDMgNTEuNzk2MyAxMDguOTYxTDUxLjIzOTYgMTEwLjMwM0M1MS40NDAzIDExMC44MjQgNTEuNjYxNiAxMTEuNTMgNTEuNTEyMSAxMTIuMDQ1QzUwLjkxNzEgMTEzLjU5NSA0OS44OTggMTE1LjIzMSA0OC43Mzc0IDExNy4wNTVDNDguMTc1NSAxMTcuODk4IDQ3LjYwMDQgMTE4LjU1MiA0Ny4wOTM0IDExOS41MTZDNDYuOTcyIDExOS43NDcgNDYuODE3NSAxMjAuMTAyIDQ2LjcwMDQgMTIwLjM0NkM0NS45MTI1IDEyMi4wMzkgNDYuNDkwNCAxMjMuOTkgNDguMDAzOCAxMjQuNzIyQzQ5LjUyNjggMTI1LjQ1OSA1MS40MTcxIDEyNC42ODIgNTIuMjM1MiAxMjIuOTg1QzUyLjIzNjQgMTIyLjk4MiA1Mi4yNDA2IDEyMi45OCA1Mi4yNDE3IDEyMi45NzhDNTIuMjQyNiAxMjIuOTc2IDUyLjI0MDkgMTIyLjk3MyA1Mi4yNDE3IDEyMi45NzFDNTIuMzU4MiAxMjIuNzMxIDUyLjUyMzMgMTIyLjQxNSA1Mi42MjE2IDEyMi4xODhDNTMuMDU2IDEyMS4xODkgNTMuMjAwNSAxMjAuMzMyIDUzLjUwNTkgMTE5LjM2NUM1NC4zMTcgMTE3LjMxOCA1NC43NjI2IDExNS4xNyA1NS44NzkxIDExMy44MzJDNTYuMTg0OSAxMTMuNDY2IDU2LjY4MzMgMTEzLjMyNSA1Ny4yMDAxIDExMy4xODZMNTcuODk0NCAxMTEuOTIyQzY1LjAwOCAxMTQuNjY1IDcyLjk3MDUgMTE1LjQwMiA4MC45MjQ1IDExMy41ODdDODIuNzM5MSAxMTMuMTczIDg0LjQ5MDggMTEyLjYzNyA4Ni4xODQzIDExMS45OTRDODYuMzc5NCAxMTIuMzQyIDg2Ljc0MiAxMTMuMDExIDg2LjgzOTMgMTEzLjE3OUM4Ny4zNjQ0IDExMy4zNTEgODcuOTM3NyAxMTMuNDM5IDg4LjQwNDcgMTE0LjEzM0M4OS4yNDAxIDExNS41NjcgODkuODExNCAxMTcuMjYzIDkwLjUwNzMgMTE5LjMxMkM5MC44MTI4IDEyMC4yNzkgOTAuOTYzOCAxMjEuMTM2IDkxLjM5ODEgMTIyLjEzNkM5MS40OTcxIDEyMi4zNjMgOTEuNjYxNCAxMjIuNjg0IDkxLjc3OCAxMjIuOTI1QzkyLjU5NDQgMTI0LjYyOCA5NC40OTA3IDEyNS40MDcgOTYuMDE1OSAxMjQuNjY5Qzk3LjUyOTIgMTIzLjkzNyA5OC4xMDc3IDEyMS45ODYgOTcuMzE5NCAxMjAuMjkzQzk3LjIwMjMgMTIwLjA0OSA5Ny4wNDEyIDExOS42OTUgOTYuOTE5OCAxMTkuNDY0Qzk2LjQxMjcgMTE4LjQ5OSA5NS44Mzc3IDExNy44NTIgOTUuMjc1OCAxMTcuMDA5Qzk0LjExNTIgMTE1LjE4NSA5My4xNTI2IDExMy42NyA5Mi41NTc1IDExMi4xMkM5Mi4zMDg3IDExMS4zMiA5Mi41OTk1IDExMC44MjMgOTIuNzkzMyAxMTAuMzAzQzkyLjY3NzIgMTEwLjE3IDkyLjQyODggMTA5LjQxNCA5Mi4yODI0IDEwOS4wNTlDMTAwLjc2MiAxMDQuMDI5IDEwNy4wMTcgOTUuOTk4NSAxMDkuOTU1IDg2LjcyMzlDMTEwLjM1MSA4Ni43ODY1IDExMS4wNDEgODYuOTA5MSAxMTEuMjY1IDg2Ljk1NDJDMTExLjcyNiA4Ni42NDg3IDExMi4xNDkgODYuMjUwMSAxMTIuOTgxIDg2LjMxNTlDMTE0LjYxNyA4Ni41NTM3IDExNi4yOTcgODcuMTY0NSAxMTguMzI2IDg3Ljg5NTNDMTE5LjI2OCA4OC4yNTgxIDEyMC4wMjggODguNjc5MyAxMjEuMDc3IDg4Ljk2MTRDMTIxLjI5OCA4OS4wMjEgMTIxLjYxNiA4OS4wNzY2IDEyMS44NjkgODkuMTMyNUMxMjEuODg5IDg5LjEzNzUgMTIxLjkwOCA4OS4xNDc1IDEyMS45MjggODkuMTUyMkMxMjEuOTQyIDg5LjE1NTMgMTIxLjk2MSA4OS4xNTU4IDEyMS45NzQgODkuMTU4OEMxMjMuNzkyIDg5LjU1MiAxMjUuNTU3IDg4LjU1MjYgMTI1LjkzIDg2LjkwODFDMTI2LjMwMyA4NS4yNjQxIDEyNS4xNDMgODMuNTk1MiAxMjMuMzM2IDgzLjE1N0MxMjMuMDc0IDgzLjA5NyAxMjIuNzAxIDgyLjk5NSAxMjIuNDQ2IDgyLjk0NjVDMTIxLjM3OSA4Mi43NDM1IDEyMC41MTEgODIuNzkzNSAxMTkuNTA1IDgyLjcwOTVDMTE3LjM2MSA4Mi40ODM5IDExNS41ODYgODIuMzAwNCAxMTQuMDA5IDgxLjgwMTRDMTEzLjM2NiA4MS41NTA3IDExMi45MDggODAuNzgxOSAxMTIuNjg2IDgwLjQ2NTVMMTExLjQ0OCA4MC4xMDM1QzExMi4wOSA3NS40MzggMTExLjkxNyA3MC41ODI1IDExMC44MDYgNjUuNzI0M0MxMDkuNjg1IDYwLjgyMDggMTA3LjcwNCA1Ni4zMzYxIDEwNS4wNjIgNTIuMzg0OEMxMDUuMzc5IDUyLjA5NDggMTA1Ljk3OSA1MS41NjEyIDEwNi4xNDkgNTEuNDA0M0MxMDYuMTk5IDUwLjg1MTcgMTA2LjE1NiA1MC4yNzIyIDEwNi43MjUgNDkuNjYwM0MxMDcuOTMxIDQ4LjUyMyAxMDkuNDUxIDQ3LjU3OTkgMTExLjI4NCA0Ni40NDIzQzExMi4xNTQgNDUuOTI3OSAxMTIuOTU5IDQ1LjU5NjQgMTEzLjgzMiA0NC45NDg0QzExNC4wMyA0NC44MDE5IDExNC4yOTkgNDQuNTY5OSAxMTQuNTA3IDQ0LjQwMjJDMTE1Ljk3NyA0My4yMjM3IDExNi4zMTYgNDEuMTkxMSAxMTUuMjYgMzkuODYxNEMxMTQuMjA0IDM4LjUzMTcgMTEyLjE1OSAzOC40MDY1IDExMC42ODggMzkuNTg1QzExMC40NzkgMzkuNzUxNiAxMTAuMTk1IDM5Ljk2ODggMTEwLjAwNyA0MC4xMzEyQzEwOS4xODQgNDAuODQyNiAxMDguNjc2IDQxLjU0NTIgMTA3Ljk4MyA0Mi4yODMyQzEwNi40NzEgNDMuODI1OSAxMDUuMjIyIDQ1LjExMyAxMDMuODUgNDYuMDQwOUMxMDMuMjU1IDQ2LjM4ODUgMTAyLjM4NSA0Ni4yNjgyIDEwMS45OSA0Ni4yNDQ5TDEwMC44MjQgNDcuMDgwNkM5NC4xNzUzIDQwLjA3NjMgODUuMTIzNSAzNS41OTgyIDc1LjM3NjYgMzQuNzI4M0M3NS4zNDk0IDM0LjMxNzkgNzUuMzEzNyAzMy41NzYxIDc1LjMwNDYgMzMuMzUyOUM3NC45MDU2IDMyLjk2OTMgNzQuNDIzNSAzMi42NDE4IDc0LjMwMjQgMzEuODEzQzc0LjE2OTEgMzAuMTU2OSA3NC4zOTE3IDI4LjM3NTIgNzQuNjQ5NiAyNi4yMjU4Qzc0Ljc5MTkgMjUuMjIxNiA3NS4wMjg0IDI0LjM4NzMgNzUuMDY4OCAyMy4yOTczQzc1LjA3OCAyMy4wNDk1IDc1LjA2MzIgMjIuNjkgNzUuMDYyMiAyMi40MjIxQzc1LjA2MiAyMC41MzIyIDczLjY4OTggMTguOTk5OCA3MS45OTY4IDE5Wk02OC4xNTg1IDQyLjg4ODZMNjcuMjQ4IDU5LjA0NDdMNjcuMTgyNSA1OS4wNzc2QzY3LjEyMTQgNjAuNTIyOSA2NS45Mzc1IDYxLjY3NyA2NC40ODM5IDYxLjY3N0M2My44ODg0IDYxLjY3NyA2My4zMzg4IDYxLjQ4NDkgNjIuODkyMiA2MS4xNTcxTDYyLjg2NiA2MS4xNzAzTDQ5LjY4MDcgNTEuNzc5NEM1My43MzMxIDQ3Ljc3NTkgNTguOTE2NCA0NC44MTcyIDY0Ljg5IDQzLjQ1NDZDNjUuOTgxMiA0My4yMDU2IDY3LjA3MTkgNDMuMDIwOSA2OC4xNTg1IDQyLjg4ODZaTTc1Ljg0MTcgNDIuODg4NkM4Mi44MTU5IDQzLjc1MDQgODkuMjY1NyA0Ni45MjMyIDk0LjIwODEgNTEuNzg2TDgxLjEwOCA2MS4xMTc2TDgxLjA2MjEgNjEuMDk3OUM3OS44OTk0IDYxLjk1MTIgNzguMjYxMSA2MS43Mzk0IDc3LjM1NDggNjAuNTk3OEM3Ni45ODM1IDYwLjEzMDEgNzYuNzg4NyA1OS41ODAxIDc2Ljc2NTMgNTkuMDI0OUw3Ni43NTIyIDU5LjAxODRMNzUuODQxNyA0Mi44ODg2Wk00NC44OTkxIDU3LjgxNEw1Ni45MzgyIDY4LjYzM0w1Ni45MjUxIDY4LjY5ODhDNTguMDExNyA2OS42NDc5IDU4LjE3MiA3MS4yOTQ5IDU3LjI2NTcgNzIuNDM2OEM1Ni44OTQ0IDcyLjkwNDUgNTYuMzk3NSA3My4yMTgyIDU1Ljg2MzkgNzMuMzY0N0w1NS44NTA4IDczLjQxNzNMNDAuNDE4OCA3Ny44OTIzQzM5LjYzMzQgNzAuNjc2NSA0MS4zMjYxIDYzLjY2MjEgNDQuODk5MSA1Ny44MTRaTTk5LjAwOTQgNTcuODIwNkMxMDAuNzk4IDYwLjczMzYgMTAyLjE1MyA2My45ODcxIDEwMi45NTkgNjcuNTE0M0MxMDMuNzU2IDcwLjk5OTEgMTAzLjk1NiA3NC40Nzc4IDEwMy42MjcgNzcuODM5N0w4OC4xMTY2IDczLjM1MTVMODguMTAzNSA3My4yODU3Qzg2LjcxNDUgNzIuOTA0MyA4NS44NjA5IDcxLjQ4NDggODYuMTg0MyA3MC4wNjExQzg2LjMxNjggNjkuNDc3OCA4Ni42MjQ5IDY4Ljk4NDQgODcuMDQyMyA2OC42MTk4TDg3LjAzNTggNjguNTg2OUw5OS4wMDk0IDU3LjgyMDZaTTY5LjUyNzQgNjkuNDY4OEg3NC40NTk2TDc3LjUyNTEgNzMuMzE4Nkw3Ni40MjQ3IDc4LjEyMjZMNzEuOTk2OCA4MC4yNjE0TDY3LjU1NTggNzguMTE2MUw2Ni40NTU0IDczLjMxMkw2OS41Mjc0IDY5LjQ2ODhaTTg1LjMzOTMgODIuNjQzN0M4NS41NDg5IDgyLjYzMzEgODUuNzU3NiA4Mi42NTIgODUuOTYxNiA4Mi42ODk4TDg1Ljk4NzggODIuNjU2OUwxMDEuOTUgODUuMzY4MkM5OS42MTQyIDkxLjk2MjQgOTUuMTQ0IDk3LjY3NSA4OS4xNzExIDEwMS40OThMODIuOTc0NyA4Ni40NjA2TDgyLjk5NDQgODYuNDM0M0M4Mi40MjUyIDg1LjEwNTUgODIuOTk0OCA4My41NDcyIDg0LjMwNDQgODIuOTEzNUM4NC42Mzk3IDgyLjc1MTMgODQuOTkgODIuNjYxNCA4NS4zMzkzIDgyLjY0MzdaTTU4LjUyOTggODIuNzA5NUM1OS43NDggODIuNzI2NyA2MC44NDA2IDgzLjU3NjEgNjEuMTIzNyA4NC44MjJDNjEuMjU2MiA4NS40MDUyIDYxLjE5MTcgODUuOTgzMSA2MC45NzMgODYuNDkzNUw2MS4wMTg5IDg2LjU1MjdMNTQuODg4IDEwMS40MzlDNDkuMTU1OSA5Ny43NDMyIDQ0LjU5MDQgOTIuMjA5OSA0Mi4xNDgxIDg1LjQyMDhMNTcuOTczMSA4Mi43MjI3TDU3Ljk5OTMgODIuNzU1NkM1OC4xNzYzIDgyLjcyMjkgNTguMzU1OCA4Mi43MDcxIDU4LjUyOTggODIuNzA5NVpNNzEuODk4NiA4OS4yMzEyQzcyLjMyMjkgODkuMjE1NSA3Mi43NTM0IDg5LjMwMyA3My4xNjI3IDg5LjUwMUM3My42OTkyIDg5Ljc2MDYgNzQuMTEzNiA5MC4xNjkyIDc0LjM3NDUgOTAuNjU5Mkg3NC40MzM0TDgyLjIzNDYgMTA0LjgyMUM4MS4yMjIxIDEwNS4xNjIgODAuMTgxMyAxMDUuNDU0IDc5LjExNjcgMTA1LjY5N0M3My4xNTA1IDEwNy4wNTggNjcuMjAzMiAxMDYuNjQ1IDYxLjgxOCAxMDQuODAyTDY5LjU5OTUgOTAuNjY1OEg2OS42MTI2QzcwLjA3OTUgODkuNzg4OCA3MC45NjUgODkuMjY1NiA3MS44OTg2IDg5LjIzMTJaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjI1Ii8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfNjgxXzI4NDUiIHgxPSIxMCIgeTE9IjE1LjUiIHgyPSIxNDQiIHkyPSIxMzEuNSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNEQ4N0ZGIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzA1NDdEMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo= - keysOrder: [["apiVersion"], ["appVersion"], ["kind"], ["metadata"], ["metadata", "name"], ["spec", "storageClass"], ["spec", "version"], ["spec", "host"], ["spec", "nodeGroups"], ["spec", "nodeGroups", "md0"], ["spec", "nodeGroups", "md0", "minReplicas"], ["spec", "nodeGroups", "md0", "maxReplicas"], ["spec", "nodeGroups", "md0", "instanceType"], ["spec", "nodeGroups", "md0", "ephemeralStorage"], ["spec", "nodeGroups", "md0", "roles"], ["spec", "nodeGroups", "md0", "resources"], ["spec", "nodeGroups", "md0", "gpus"], ["spec", "addons"], ["spec", "addons", "certManager"], ["spec", "addons", "certManager", "enabled"], ["spec", "addons", "certManager", "valuesOverride"], ["spec", "addons", "cilium"], ["spec", "addons", "cilium", "valuesOverride"], ["spec", "addons", "gatewayAPI"], ["spec", "addons", "gatewayAPI", "enabled"], ["spec", "addons", "ingressNginx"], ["spec", "addons", "ingressNginx", "enabled"], ["spec", "addons", "ingressNginx", "exposeMethod"], ["spec", "addons", "ingressNginx", "hosts"], ["spec", "addons", "ingressNginx", "valuesOverride"], ["spec", "addons", "gpuOperator"], ["spec", "addons", "gpuOperator", "enabled"], ["spec", "addons", "gpuOperator", "valuesOverride"], ["spec", "addons", "fluxcd"], ["spec", "addons", "fluxcd", "enabled"], ["spec", "addons", "fluxcd", "valuesOverride"], ["spec", "addons", "monitoringAgents"], ["spec", "addons", "monitoringAgents", "enabled"], ["spec", "addons", "monitoringAgents", "valuesOverride"], ["spec", "addons", "verticalPodAutoscaler"], ["spec", "addons", "verticalPodAutoscaler", "valuesOverride"], ["spec", "addons", "velero"], ["spec", "addons", "velero", "enabled"], ["spec", "addons", "velero", "valuesOverride"], ["spec", "addons", "coredns"], ["spec", "addons", "coredns", "valuesOverride"], ["spec", "controlPlane"], ["spec", "controlPlane", "replicas"], ["spec", "controlPlane", "apiServer"], ["spec", "controlPlane", "apiServer", "resources"], ["spec", "controlPlane", "apiServer", "resourcesPreset"], ["spec", "controlPlane", "controllerManager"], ["spec", "controlPlane", "controllerManager", "resourcesPreset"], ["spec", "controlPlane", "controllerManager", "resources"], ["spec", "controlPlane", "scheduler"], ["spec", "controlPlane", "scheduler", "resourcesPreset"], ["spec", "controlPlane", "scheduler", "resources"], ["spec", "controlPlane", "konnectivity"], ["spec", "controlPlane", "konnectivity", "server"], ["spec", "controlPlane", "konnectivity", "server", "resourcesPreset"], ["spec", "controlPlane", "konnectivity", "server", "resources"]] + keysOrder: [["apiVersion"], ["appVersion"], ["kind"], ["metadata"], ["metadata", "name"], ["spec", "storageClass"], ["spec", "nodeGroups"], ["spec", "nodeGroups", "md0"], ["spec", "nodeGroups", "md0", "minReplicas"], ["spec", "nodeGroups", "md0", "maxReplicas"], ["spec", "nodeGroups", "md0", "instanceType"], ["spec", "nodeGroups", "md0", "ephemeralStorage"], ["spec", "nodeGroups", "md0", "roles"], ["spec", "nodeGroups", "md0", "resources"], ["spec", "nodeGroups", "md0", "gpus"], ["spec", "version"], ["spec", "host"], ["spec", "addons"], ["spec", "addons", "certManager"], ["spec", "addons", "certManager", "enabled"], ["spec", "addons", "certManager", "valuesOverride"], ["spec", "addons", "cilium"], ["spec", "addons", "cilium", "valuesOverride"], ["spec", "addons", "gatewayAPI"], ["spec", "addons", "gatewayAPI", "enabled"], ["spec", "addons", "ingressNginx"], ["spec", "addons", "ingressNginx", "enabled"], ["spec", "addons", "ingressNginx", "exposeMethod"], ["spec", "addons", "ingressNginx", "hosts"], ["spec", "addons", "ingressNginx", "valuesOverride"], ["spec", "addons", "gpuOperator"], ["spec", "addons", "gpuOperator", "enabled"], ["spec", "addons", "gpuOperator", "valuesOverride"], ["spec", "addons", "fluxcd"], ["spec", "addons", "fluxcd", "enabled"], ["spec", "addons", "fluxcd", "valuesOverride"], ["spec", "addons", "monitoringAgents"], ["spec", "addons", "monitoringAgents", "enabled"], ["spec", "addons", "monitoringAgents", "valuesOverride"], ["spec", "addons", "verticalPodAutoscaler"], ["spec", "addons", "verticalPodAutoscaler", "valuesOverride"], ["spec", "addons", "velero"], ["spec", "addons", "velero", "enabled"], ["spec", "addons", "velero", "valuesOverride"], ["spec", "addons", "coredns"], ["spec", "addons", "coredns", "valuesOverride"], ["spec", "controlPlane"], ["spec", "controlPlane", "replicas"], ["spec", "controlPlane", "apiServer"], ["spec", "controlPlane", "apiServer", "resources"], ["spec", "controlPlane", "apiServer", "resourcesPreset"], ["spec", "controlPlane", "controllerManager"], ["spec", "controlPlane", "controllerManager", "resources"], ["spec", "controlPlane", "controllerManager", "resourcesPreset"], ["spec", "controlPlane", "scheduler"], ["spec", "controlPlane", "scheduler", "resources"], ["spec", "controlPlane", "scheduler", "resourcesPreset"], ["spec", "controlPlane", "konnectivity"], ["spec", "controlPlane", "konnectivity", "server"], ["spec", "controlPlane", "konnectivity", "server", "resources"], ["spec", "controlPlane", "konnectivity", "server", "resourcesPreset"]] secrets: exclude: [] include: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/monitoring.yaml b/packages/system/cozystack-resource-definitions/cozyrds/monitoring.yaml index 82271a35..520e4671 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/monitoring.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/monitoring.yaml @@ -8,7 +8,7 @@ spec: singular: monitoring plural: monitorings openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"alerta":{"description":"Configuration for Alerta service","type":"object","default":{},"properties":{"alerts":{"description":"Configuration for alerts","type":"object","default":{},"properties":{"slack":{"description":"Configuration for Slack alerts","type":"object","default":{},"properties":{"url":{"description":"Configuration uri for Slack alerts","type":"string"}}},"telegram":{"description":"Configuration for Telegram alerts","type":"object","default":{},"required":["chatID","disabledSeverity","token"],"properties":{"chatID":{"description":"Specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot","type":"string"},"disabledSeverity":{"description":"List of severity without alerts, separated by comma like: \"informational,warning\"","type":"string"},"token":{"description":"Telegram token for your bot","type":"string"}}}}},"resources":{"description":"Resources configuration","type":"object","default":{},"properties":{"limits":{"type":"object","default":{},"properties":{"cpu":{"description":"CPU limit (maximum available CPU)","default":1,"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 limit (maximum available memory)","default":"1Gi","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}}},"requests":{"type":"object","default":{},"properties":{"cpu":{"description":"CPU request (minimum available CPU)","default":"100m","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 request (minimum available memory)","default":"256Mi","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}}}}},"storage":{"description":"Persistent Volume size for the database","type":"string","default":"10Gi"},"storageClassName":{"description":"StorageClass used to store the data","type":"string"}}},"grafana":{"description":"Configuration for Grafana","type":"object","default":{},"properties":{"db":{"description":"Database configuration","type":"object","default":{},"properties":{"size":{"description":"Persistent Volume size for the database","type":"string","default":"10Gi"}}},"resources":{"description":"Resources configuration","type":"object","default":{},"properties":{"limits":{"type":"object","default":{},"properties":{"cpu":{"description":"CPU limit (maximum available CPU)","default":1,"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 limit (maximum available memory)","default":"1Gi","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}}},"requests":{"type":"object","default":{},"properties":{"cpu":{"description":"CPU request (minimum available CPU)","default":"100m","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 request (minimum available memory)","default":"256Mi","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}}}}}}},"host":{"description":"The hostname used to access the grafana externally (defaults to 'grafana' subdomain for the tenant host).","type":"string"},"logsStorages":{"description":"Configuration of logs storage instances","type":"array","default":[{"name":"generic","retentionPeriod":"1","storage":"10Gi","storageClassName":"replicated"}],"items":{"type":"object","required":["name","retentionPeriod","storage"],"properties":{"name":{"description":"Name of the storage instance","type":"string"},"retentionPeriod":{"description":"Retention period for the logs in the storage instance","type":"string","default":"1"},"storage":{"description":"Persistent Volume size for the storage instance","type":"string","default":"10Gi"},"storageClassName":{"description":"StorageClass used to store the data","type":"string","default":"replicated"}}}},"metricsStorages":{"description":"Configuration of metrics storage instances","type":"array","default":[{"deduplicationInterval":"15s","name":"shortterm","retentionPeriod":"3d","storage":"10Gi","storageClassName":""},{"deduplicationInterval":"5m","name":"longterm","retentionPeriod":"14d","storage":"10Gi","storageClassName":""}],"items":{"type":"object","required":["deduplicationInterval","name","retentionPeriod","storage"],"properties":{"deduplicationInterval":{"description":"Deduplication interval for the metrics in the storage instance","type":"string"},"name":{"description":"Name of the storage instance","type":"string"},"retentionPeriod":{"description":"Retention period for the metrics in the storage instance","type":"string"},"storage":{"description":"Persistent Volume size for the storage instance","type":"string","default":"10Gi"},"storageClassName":{"description":"StorageClass used to store the data","type":"string"},"vminsert":{"description":"Configuration for vminsert component of the storage instance","type":"object","properties":{"maxAllowed":{"description":"Limits (maximum allowed/available resources )","type":"object","properties":{"cpu":{"description":"CPU limit (maximum available CPU)","default":1,"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 limit (maximum available memory)","default":"1Gi","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}}},"minAllowed":{"description":"Requests (minimum allowed/available resources)","type":"object","properties":{"cpu":{"description":"CPU request (minimum available CPU)","default":"100m","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 request (minimum available memory)","default":"256Mi","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}}}}},"vmselect":{"description":"Configuration for vmselect component of the storage instance","type":"object","properties":{"maxAllowed":{"description":"Limits (maximum allowed/available resources )","type":"object","properties":{"cpu":{"description":"CPU limit (maximum available CPU)","default":1,"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 limit (maximum available memory)","default":"1Gi","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}}},"minAllowed":{"description":"Requests (minimum allowed/available resources)","type":"object","properties":{"cpu":{"description":"CPU request (minimum available CPU)","default":"100m","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 request (minimum available memory)","default":"256Mi","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}}}}},"vmstorage":{"description":"Configuration for vmstorage component of the storage instance","type":"object","properties":{"maxAllowed":{"description":"Limits (maximum allowed/available resources )","type":"object","properties":{"cpu":{"description":"CPU limit (maximum available CPU)","default":1,"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 limit (maximum available memory)","default":"1Gi","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}}},"minAllowed":{"description":"Requests (minimum allowed/available resources)","type":"object","properties":{"cpu":{"description":"CPU request (minimum available CPU)","default":"100m","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 request (minimum available memory)","default":"256Mi","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}}}}}}}}}} + {"title":"Chart Values","type":"object","properties":{"alerta":{"description":"Configuration for the Alerta service.","type":"object","default":{},"properties":{"alerts":{"description":"Alert routing configuration.","type":"object","default":{},"properties":{"slack":{"description":"Configuration for Slack alerts.","type":"object","default":{},"required":["url"],"properties":{"url":{"description":"Configuration uri for Slack alerts.","type":"string","default":""}}},"telegram":{"description":"Configuration for Telegram alerts.","type":"object","default":{},"required":["chatID","token"],"properties":{"chatID":{"description":"Telegram chat ID(s), separated by commas.","type":"string","default":""},"disabledSeverity":{"description":"List of severities without alerts (e.g. \"informational,warning\").","type":"string","default":""},"token":{"description":"Telegram bot token.","type":"string","default":""}}}}},"resources":{"description":"Resource configuration.","type":"object","default":{},"properties":{"limits":{"description":"Resource limits.","type":"object","default":{},"properties":{"cpu":{"description":"CPU limit.","default":1,"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 limit.","default":"1Gi","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}}},"requests":{"description":"Resource requests.","type":"object","default":{},"properties":{"cpu":{"description":"CPU request.","default":"100m","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 request.","default":"256Mi","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}}}}},"storage":{"description":"Persistent volume size for the database.","type":"string","default":"10Gi"},"storageClassName":{"description":"StorageClass used for the database.","type":"string","default":""}}},"grafana":{"description":"Configuration for Grafana.","type":"object","default":{},"properties":{"db":{"description":"Database configuration.","type":"object","default":{},"properties":{"size":{"description":"Persistent volume size for the database.","type":"string","default":"10Gi"}}},"resources":{"description":"Resource configuration.","type":"object","default":{},"properties":{"limits":{"description":"Resource limits.","type":"object","default":{},"properties":{"cpu":{"description":"CPU limit.","default":1,"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 limit.","default":"1Gi","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}}},"requests":{"description":"Resource requests.","type":"object","default":{},"properties":{"cpu":{"description":"CPU request.","default":"100m","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 request.","default":"256Mi","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}}}}}}},"host":{"description":"The hostname used to access Grafana externally (defaults to 'grafana' subdomain for the tenant host).","type":"string","default":""},"logsStorages":{"description":"Configuration of logs storage instances.","type":"array","default":[{"name":"generic","retentionPeriod":"1","storage":"10Gi","storageClassName":"replicated"}],"items":{"type":"object","required":["name","retentionPeriod","storage","storageClassName"],"properties":{"name":{"description":"Name of the storage instance.","type":"string"},"retentionPeriod":{"description":"Retention period for logs.","type":"string","default":"1"},"storage":{"description":"Persistent volume size.","type":"string","default":"10Gi"},"storageClassName":{"description":"StorageClass used to store the data.","type":"string","default":"replicated"}}}},"metricsStorages":{"description":"Configuration of metrics storage instances.","type":"array","default":[{"deduplicationInterval":"15s","name":"shortterm","retentionPeriod":"3d","storage":"10Gi","storageClassName":""},{"deduplicationInterval":"5m","name":"longterm","retentionPeriod":"14d","storage":"10Gi","storageClassName":""}],"items":{"type":"object","required":["deduplicationInterval","name","retentionPeriod","storage"],"properties":{"deduplicationInterval":{"description":"Deduplication interval for metrics.","type":"string"},"name":{"description":"Name of the storage instance.","type":"string"},"retentionPeriod":{"description":"Retention period for metrics.","type":"string"},"storage":{"description":"Persistent volume size.","type":"string","default":"10Gi"},"storageClassName":{"description":"StorageClass used for the data.","type":"string"},"vminsert":{"description":"Configuration for vminsert.","type":"object","properties":{"maxAllowed":{"description":"Maximum allowed resources.","type":"object","properties":{"cpu":{"description":"CPU limit.","default":1,"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 limit.","default":"1Gi","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}}},"minAllowed":{"description":"Minimum guaranteed resources.","type":"object","properties":{"cpu":{"description":"CPU request.","default":"100m","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 request.","default":"256Mi","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}}}}},"vmselect":{"description":"Configuration for vmselect.","type":"object","properties":{"maxAllowed":{"description":"Maximum allowed resources.","type":"object","properties":{"cpu":{"description":"CPU limit.","default":1,"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 limit.","default":"1Gi","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}}},"minAllowed":{"description":"Minimum guaranteed resources.","type":"object","properties":{"cpu":{"description":"CPU request.","default":"100m","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 request.","default":"256Mi","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}}}}},"vmstorage":{"description":"Configuration for vmstorage.","type":"object","properties":{"maxAllowed":{"description":"Maximum allowed resources.","type":"object","properties":{"cpu":{"description":"CPU limit.","default":1,"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 limit.","default":"1Gi","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}}},"minAllowed":{"description":"Minimum guaranteed resources.","type":"object","properties":{"cpu":{"description":"CPU request.","default":"100m","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 request.","default":"256Mi","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}}}}}}}}}} release: prefix: "" labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/mysql.yaml b/packages/system/cozystack-resource-definitions/cozyrds/mysql.yaml index 6f78b077..142b55b1 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/mysql.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/mysql.yaml @@ -8,7 +8,7 @@ spec: plural: mysqls singular: mysql openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"backup":{"description":"Backup configuration","type":"object","default":{},"required":["cleanupStrategy","enabled","resticPassword","s3AccessKey","s3Bucket","s3Region","s3SecretKey","schedule"],"properties":{"cleanupStrategy":{"description":"Retention strategy for cleaning up old backups","type":"string","default":"--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"},"enabled":{"description":"Enable regular backups, default is `false`.","type":"boolean","default":false},"resticPassword":{"description":"Password for Restic backup encryption","type":"string","default":""},"s3AccessKey":{"description":"Access key for S3, used for authentication","type":"string","default":""},"s3Bucket":{"description":"S3 bucket used for storing backups","type":"string","default":"s3.example.org/mysql-backups"},"s3Region":{"description":"AWS S3 region where backups are stored","type":"string","default":"us-east-1"},"s3SecretKey":{"description":"Secret key for S3, used for authentication","type":"string","default":""},"schedule":{"description":"Cron schedule for automated backups","type":"string","default":"0 2 * * *"}}},"databases":{"description":"Databases configuration","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"roles":{"description":"Roles for the database","type":"object","properties":{"admin":{"description":"List of users with admin privileges","type":"array","items":{"type":"string"}},"readonly":{"description":"List of users with read-only privileges","type":"array","items":{"type":"string"}}}}}}},"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"replicas":{"description":"Number of MariaDB replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each MariaDB replica. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica","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 (RAM) available to each replica","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":{"description":"Persistent Volume Claim size, available for application data","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 data","type":"string"},"users":{"description":"Users configuration","type":"object","default":{},"additionalProperties":{"type":"object","required":["maxUserConnections","password"],"properties":{"maxUserConnections":{"description":"Maximum amount of connections","type":"integer"},"password":{"description":"Password for the user","type":"string"}}}}}} + {"title":"Chart Values","type":"object","properties":{"backup":{"description":"Backup configuration.","type":"object","default":{},"required":["cleanupStrategy","enabled","resticPassword","s3AccessKey","s3Bucket","s3Region","s3SecretKey","schedule"],"properties":{"cleanupStrategy":{"description":"Retention strategy for cleaning up old backups.","type":"string","default":"--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"},"enabled":{"description":"Enable regular backups (default: false).","type":"boolean","default":false},"resticPassword":{"description":"Password for Restic backup encryption.","type":"string","default":""},"s3AccessKey":{"description":"Access key for S3 authentication.","type":"string","default":""},"s3Bucket":{"description":"S3 bucket used for storing backups.","type":"string","default":"s3.example.org/mysql-backups"},"s3Region":{"description":"AWS S3 region where backups are stored.","type":"string","default":"us-east-1"},"s3SecretKey":{"description":"Secret key for S3 authentication.","type":"string","default":""},"schedule":{"description":"Cron schedule for automated backups.","type":"string","default":"0 2 * * *"}}},"databases":{"description":"Databases configuration map.","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"roles":{"description":"Roles assigned to users.","type":"object","properties":{"admin":{"description":"List of users with admin privileges.","type":"array","items":{"type":"string"}},"readonly":{"description":"List of users with read-only privileges.","type":"array","items":{"type":"string"}}}}}}},"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"replicas":{"description":"Number of MariaDB replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each MariaDB replica. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"nano","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"size":{"description":"Persistent Volume Claim size available for application data.","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 data.","type":"string","default":""},"users":{"description":"Users configuration map.","type":"object","default":{},"additionalProperties":{"type":"object","required":["maxUserConnections","password"],"properties":{"maxUserConnections":{"description":"Maximum number of connections.","type":"integer"},"password":{"description":"Password for the user.","type":"string"}}}}}} release: prefix: mysql- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/nats.yaml b/packages/system/cozystack-resource-definitions/cozyrds/nats.yaml index 692075a9..258f8f40 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/nats.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/nats.yaml @@ -8,7 +8,7 @@ spec: plural: natses singular: nats openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"config":{"description":"NATS configuration","type":"object","default":{},"properties":{"merge":{"description":"Additional configuration to merge into NATS config (see example)","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true},"resolver":{"description":"Additional resolver configuration to merge into NATS config (see example)","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}},"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"jetstream":{"description":"Jetstream configuration","type":"object","default":{},"required":["enabled","size"],"properties":{"enabled":{"description":"Enable or disable Jetstream. Set to `true` (default) to enable Jetstream for persistent messaging in NATS.","type":"boolean","default":true},"size":{"description":"Jetstream persistent storage size. Specifies the size of the persistent storage for Jetstream (message store).","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}}},"replicas":{"description":"Number of replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each NATS replica. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica","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 (RAM) available to each replica","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"]},"storageClass":{"description":"StorageClass used to store the data","type":"string"},"users":{"description":"Users configuration","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user","type":"string"}}}}}} + {"title":"Chart Values","type":"object","properties":{"config":{"description":"NATS configuration.","type":"object","default":{},"properties":{"merge":{"description":"Additional configuration to merge into NATS config.","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true},"resolver":{"description":"Additional resolver configuration to merge into NATS config.","type":"object","default":{},"x-kubernetes-preserve-unknown-fields":true}}},"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"jetstream":{"description":"Jetstream configuration.","type":"object","default":{},"required":["enabled","size"],"properties":{"enabled":{"description":"Enable or disable Jetstream for persistent messaging in NATS.","type":"boolean","default":true},"size":{"description":"Jetstream persistent storage size.","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}}},"replicas":{"description":"Number of replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each NATS replica. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"nano","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"storageClass":{"description":"StorageClass used to store the data.","type":"string","default":""},"users":{"description":"Users configuration map.","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user.","type":"string"}}}}}} release: prefix: nats- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/postgres.yaml b/packages/system/cozystack-resource-definitions/cozyrds/postgres.yaml index 17363553..010586fe 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/postgres.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/postgres.yaml @@ -8,7 +8,7 @@ spec: singular: postgres plural: postgreses openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"backup":{"description":"Backup configuration","type":"object","default":{},"properties":{"destinationPath":{"description":"Path to store the backup (i.e. s3://bucket/path/to/folder)","type":"string","default":"s3://bucket/path/to/folder/"},"enabled":{"description":"Enable regular backups","type":"boolean","default":false},"endpointURL":{"description":"S3 Endpoint used to upload data to the cloud","type":"string","default":"http://minio-gateway-service:9000"},"retentionPolicy":{"description":"Retention policy","type":"string","default":"30d"},"s3AccessKey":{"description":"Access key for S3, used for authentication","type":"string","default":""},"s3SecretKey":{"description":"Secret key for S3, used for authentication","type":"string","default":""},"schedule":{"description":"Cron schedule for automated backups","type":"string","default":"0 2 * * * *"}}},"bootstrap":{"description":"Bootstrap configuration","type":"object","default":{},"required":["enabled","oldName"],"properties":{"enabled":{"description":"Restore database cluster from a backup","type":"boolean","default":false},"oldName":{"description":"Name of database cluster before deleting","type":"string"},"recoveryTime":{"description":"Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest","type":"string"}}},"databases":{"description":"Databases configuration","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"extensions":{"description":"Extensions enabled for the database","type":"array","items":{"type":"string"}},"roles":{"description":"Roles for the database","type":"object","properties":{"admin":{"description":"List of users with admin privileges","type":"array","items":{"type":"string"}},"readonly":{"description":"List of users with read-only privileges","type":"array","items":{"type":"string"}}}}}}},"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"postgresql":{"description":"PostgreSQL server configuration","type":"object","default":{},"required":["parameters"],"properties":{"parameters":{"description":"PostgreSQL server parameters","type":"object","default":{},"required":["max_connections"],"properties":{"max_connections":{"description":"Determines the maximum number of concurrent connections to the database server. The default is typically 100 connections","type":"integer","default":100}}}}},"quorum":{"description":"Quorum configuration for synchronous replication","type":"object","default":{},"required":["maxSyncReplicas","minSyncReplicas"],"properties":{"maxSyncReplicas":{"description":"Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances).","type":"integer","default":0},"minSyncReplicas":{"description":"Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed.","type":"integer","default":0}}},"replicas":{"description":"Number of Postgres replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each PostgreSQL replica. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica","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 (RAM) available to each replica","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"]},"size":{"description":"Persistent Volume Claim size, available for application data","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 data","type":"string"},"users":{"description":"Users configuration","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user","type":"string"},"replication":{"description":"Whether the user has replication privileges","type":"boolean"}}}}}} + {"title":"Chart Values","type":"object","properties":{"backup":{"description":"Backup configuration.","type":"object","default":{},"required":["enabled"],"properties":{"destinationPath":{"description":"Destination path for backups (e.g. s3://bucket/path/).","type":"string","default":"s3://bucket/path/to/folder/"},"enabled":{"description":"Enable regular backups.","type":"boolean","default":false},"endpointURL":{"description":"S3 endpoint URL for uploads.","type":"string","default":"http://minio-gateway-service:9000"},"retentionPolicy":{"description":"Retention policy (e.g. \"30d\").","type":"string","default":"30d"},"s3AccessKey":{"description":"Access key for S3 authentication.","type":"string","default":""},"s3SecretKey":{"description":"Secret key for S3 authentication.","type":"string","default":""},"schedule":{"description":"Cron schedule for automated backups.","type":"string","default":"0 2 * * * *"}}},"bootstrap":{"description":"Bootstrap configuration.","type":"object","default":{},"required":["enabled","oldName"],"properties":{"enabled":{"description":"Whether to restore from a backup.","type":"boolean","default":false},"oldName":{"description":"Previous cluster name before deletion.","type":"string","default":""},"recoveryTime":{"description":"Timestamp (RFC3339) for point-in-time recovery; empty means latest.","type":"string","default":""}}},"databases":{"description":"Databases configuration map.","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"extensions":{"description":"List of enabled PostgreSQL extensions.","type":"array","items":{"type":"string"}},"roles":{"description":"Roles assigned to users.","type":"object","properties":{"admin":{"description":"List of users with admin privileges.","type":"array","items":{"type":"string"}},"readonly":{"description":"List of users with read-only privileges.","type":"array","items":{"type":"string"}}}}}}},"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"postgresql":{"description":"PostgreSQL server configuration.","type":"object","default":{},"properties":{"parameters":{"description":"PostgreSQL server parameters.","type":"object","default":{},"properties":{"max_connections":{"description":"Maximum number of concurrent connections to the database server.","type":"integer","default":100}}}}},"quorum":{"description":"Quorum configuration for synchronous replication.","type":"object","default":{},"required":["maxSyncReplicas","minSyncReplicas"],"properties":{"maxSyncReplicas":{"description":"Maximum number of synchronous replicas allowed (must be less than total replicas).","type":"integer","default":0},"minSyncReplicas":{"description":"Minimum number of synchronous replicas required for commit.","type":"integer","default":0}}},"replicas":{"description":"Number of Postgres replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each PostgreSQL replica. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"micro","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"size":{"description":"Persistent Volume Claim size available for application data.","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 data.","type":"string","default":""},"users":{"description":"Users configuration map.","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user.","type":"string"},"replication":{"description":"Whether the user has replication privileges.","type":"boolean"}}}}}} release: prefix: postgres- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/rabbitmq.yaml b/packages/system/cozystack-resource-definitions/cozyrds/rabbitmq.yaml index 5e646959..092142ac 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/rabbitmq.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/rabbitmq.yaml @@ -8,7 +8,7 @@ spec: plural: rabbitmqs singular: rabbitmq openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"replicas":{"description":"Number of RabbitMQ replicas","type":"integer","default":3},"resources":{"description":"Explicit CPU and memory configuration for each RabbitMQ replica. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica","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 (RAM) available to each replica","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":{"description":"Persistent Volume Claim size, available for application data","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 data","type":"string"},"users":{"description":"Users configuration","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user","type":"string"}}}},"vhosts":{"description":"Virtual Hosts configuration","type":"object","default":{},"additionalProperties":{"type":"object","required":["roles"],"properties":{"roles":{"description":"Virtual host roles list","type":"object","properties":{"admin":{"description":"List of admin users","type":"array","items":{"type":"string"}},"readonly":{"description":"List of readonly users","type":"array","items":{"type":"string"}}}}}}}}} + {"title":"Chart Values","type":"object","properties":{"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"replicas":{"description":"Number of RabbitMQ replicas.","type":"integer","default":3},"resources":{"description":"Explicit CPU and memory configuration for each RabbitMQ replica. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"nano","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"size":{"description":"Persistent Volume Claim size available for application data.","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 data.","type":"string","default":""},"users":{"description":"Users configuration map.","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user.","type":"string"}}}},"vhosts":{"description":"Virtual hosts configuration map.","type":"object","default":{},"additionalProperties":{"type":"object","required":["roles"],"properties":{"roles":{"description":"Virtual host roles list.","type":"object","properties":{"admin":{"description":"List of admin users.","type":"array","items":{"type":"string"}},"readonly":{"description":"List of readonly users.","type":"array","items":{"type":"string"}}}}}}}}} release: prefix: rabbitmq- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/redis.yaml b/packages/system/cozystack-resource-definitions/cozyrds/redis.yaml index 29c33a26..1c5131d3 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/redis.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/redis.yaml @@ -8,7 +8,7 @@ spec: plural: redises singular: redis openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"authEnabled":{"description":"Enable password generation","type":"boolean","default":true},"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"replicas":{"description":"Number of Redis replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each Redis replica. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica","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 (RAM) available to each replica","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":{"description":"Persistent Volume Claim size, available for application data","default":"1Gi","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 data","type":"string"}}} + {"title":"Chart Values","type":"object","properties":{"authEnabled":{"description":"Enable password generation.","type":"boolean","default":true},"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"replicas":{"description":"Number of Redis replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each Redis replica. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"nano","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"size":{"description":"Persistent Volume Claim size available for application data.","default":"1Gi","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 data.","type":"string","default":""}}} release: prefix: redis- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/seaweedfs.yaml b/packages/system/cozystack-resource-definitions/cozyrds/seaweedfs.yaml index 2d027491..787b5448 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/seaweedfs.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/seaweedfs.yaml @@ -8,7 +8,7 @@ spec: singular: seaweedfs plural: seaweedfses openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"db":{"description":"Database Configuration","type":"object","default":{},"required":["resources","resourcesPreset"],"properties":{"replicas":{"description":"Number of database replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for the database. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"The number of CPU cores allocated","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":"The amount of memory allocated","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","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 data","type":"string"}}},"filer":{"description":"Filer service configuration","type":"object","default":{},"required":["resources","resourcesPreset"],"properties":{"grpcHost":{"description":"The hostname used to expose or access the filer service externally.","type":"string"},"grpcPort":{"description":"The port used to access the filer service externally.","type":"integer","default":443},"replicas":{"description":"Number of filer replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for the filer. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"The number of CPU cores allocated","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":"The amount of memory allocated","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"]},"whitelist":{"description":"A list of IP addresses or CIDR ranges that are allowed to access the filer service.","type":"array","default":[],"items":{"type":"string"}}}},"host":{"description":"The hostname used to access the SeaweedFS externally (defaults to 's3' subdomain for the tenant host).","type":"string"},"master":{"description":"Master service configuration","type":"object","default":{},"required":["resources","resourcesPreset"],"properties":{"replicas":{"description":"Number of master replicas","type":"integer","default":3},"resources":{"description":"Explicit CPU and memory configuration for the master. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"The number of CPU cores allocated","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":"The amount of memory allocated","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"]}}},"replicationFactor":{"description":"Replication factor: number of replicas for each volume in the SeaweedFS cluster.","type":"integer","default":2},"s3":{"description":"S3 service configuration","type":"object","default":{},"required":["resources","resourcesPreset"],"properties":{"replicas":{"description":"Number of s3 replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for the s3. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"The number of CPU cores allocated","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":"The amount of memory allocated","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"]}}},"topology":{"description":"The topology of the SeaweedFS cluster. (allowed values: Simple, MultiZone, Client)","type":"string","default":"Simple","enum":["Simple","MultiZone","Client"]},"volume":{"description":"Volume service configuration","type":"object","default":{},"required":["resources","resourcesPreset"],"properties":{"replicas":{"description":"Number of volume replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for the volume. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"The number of CPU cores allocated","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":"The amount of memory allocated","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","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 data","type":"string"},"zones":{"description":"A map of zones for MultiZone topology. Each zone can have its own number of replicas and size.","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"replicas":{"description":"Number of replicas in the zone","type":"integer"},"size":{"description":"Zone storage size","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}}}}}}}} + {"title":"Chart Values","type":"object","properties":{"db":{"description":"Database configuration.","type":"object","default":{},"properties":{"replicas":{"description":"Number of database replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"Number of CPU cores allocated.","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":"Amount of memory allocated.","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.","type":"string","default":"small","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"size":{"description":"Persistent Volume size.","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 data.","type":"string","default":""}}},"filer":{"description":"Filer service configuration.","type":"object","default":{},"properties":{"grpcHost":{"description":"The hostname used to expose or access the filer service externally.","type":"string","default":""},"grpcPort":{"description":"The port used to access the filer service externally.","type":"integer","default":443},"replicas":{"description":"Number of filer replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"Number of CPU cores allocated.","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":"Amount of memory allocated.","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.","type":"string","default":"small","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"whitelist":{"description":"A list of IP addresses or CIDR ranges that are allowed to access the filer service.","type":"array","default":[],"items":{"type":"string"}}}},"host":{"description":"The hostname used to access SeaweedFS externally (defaults to 's3' subdomain for the tenant host).","type":"string","default":""},"master":{"description":"Master service configuration.","type":"object","default":{},"properties":{"replicas":{"description":"Number of master replicas.","type":"integer","default":3},"resources":{"description":"Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"Number of CPU cores allocated.","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":"Amount of memory allocated.","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.","type":"string","default":"small","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]}}},"replicationFactor":{"description":"Replication factor: number of replicas for each volume in the SeaweedFS cluster.","type":"integer","default":2},"s3":{"description":"S3 service configuration.","type":"object","default":{},"properties":{"replicas":{"description":"Number of S3 replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"Number of CPU cores allocated.","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":"Amount of memory allocated.","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.","type":"string","default":"small","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]}}},"topology":{"description":"The topology of the SeaweedFS cluster.","type":"string","default":"Simple","enum":["Simple","MultiZone","Client"]},"volume":{"description":"Volume service configuration.","type":"object","default":{},"properties":{"replicas":{"description":"Number of volume replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"Number of CPU cores allocated.","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":"Amount of memory allocated.","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.","type":"string","default":"small","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"size":{"description":"Persistent Volume size.","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 data.","type":"string","default":""},"zones":{"description":"A map of zones for MultiZone topology. Each zone can have its own number of replicas and size.","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"replicas":{"description":"Number of replicas in the zone.","type":"integer"},"size":{"description":"Zone storage size.","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}}}}}}}} release: prefix: "" labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/tcp-balancer.yaml b/packages/system/cozystack-resource-definitions/cozyrds/tcp-balancer.yaml index a8544ff4..057bc922 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/tcp-balancer.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/tcp-balancer.yaml @@ -8,7 +8,7 @@ spec: plural: tcpbalancers singular: tcpbalancer openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"httpAndHttps":{"description":"HTTP and HTTPS configuration","type":"object","default":{},"required":["mode","targetPorts"],"properties":{"endpoints":{"description":"Endpoint addresses list","type":"array","default":[],"items":{"type":"string"}},"mode":{"description":"Mode for balancer. Allowed values: `tcp` and `tcp-with-proxy`","type":"string","default":"tcp","enum":["tcp","tcp-with-proxy"]},"targetPorts":{"description":"Target ports configuration","type":"object","default":{},"required":["http","https"],"properties":{"http":{"description":"HTTP port number.","type":"integer","default":80},"https":{"description":"HTTPS port number.","type":"integer","default":443}}}}},"replicas":{"description":"Number of HAProxy replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each TCP Balancer replica. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","properties":{"cpu":{"description":"CPU available to each replica","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 (RAM) available to each replica","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"]},"whitelist":{"description":"List of allowed client networks","type":"array","default":[],"items":{"type":"string"}},"whitelistHTTP":{"description":"Secure HTTP by whitelisting client networks, `false` by default.","type":"boolean","default":false}}} + {"title":"Chart Values","type":"object","properties":{"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"httpAndHttps":{"description":"HTTP and HTTPS configuration.","type":"object","default":{},"required":["mode","targetPorts"],"properties":{"endpoints":{"description":"Endpoint addresses list.","type":"array","default":[],"items":{"type":"string"}},"mode":{"description":"Mode for balancer.","type":"string","default":"tcp","enum":["tcp","tcp-with-proxy"]},"targetPorts":{"description":"Target ports configuration.","type":"object","default":{},"required":["http","https"],"properties":{"http":{"description":"HTTP port number.","type":"integer","default":80},"https":{"description":"HTTPS port number.","type":"integer","default":443}}}}},"replicas":{"description":"Number of HAProxy replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each TCP Balancer replica. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"nano","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"whitelist":{"description":"List of allowed client networks.","type":"array","default":[],"items":{"type":"string"}},"whitelistHTTP":{"description":"Secure HTTP by whitelisting client networks (default: false).","type":"boolean","default":false}}} release: prefix: tcp-balancer- labels: @@ -27,7 +27,7 @@ spec: tags: - network icon: PHN2ZyB3aWR0aD0iMTQ0IiBoZWlnaHQ9IjE0NCIgdmlld0JveD0iMCAwIDE0NCAxNDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxNDQiIGhlaWdodD0iMTQ0IiByeD0iMjQiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl82ODNfMjk4NSkiLz4KPHBhdGggZD0iTTcyLjE2NDUgNTkuNDI0M0w2Mi41IDQ4LjQ5OCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjI2IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTQxLjY4NTUgNTEuMDIxNUw0OS4yNDcgNjIuMDY5MyIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjEzIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTcyLjE2NDYgNTkuNDQxNEw4MS43MjYzIDQ4LjM5MzZNODMuNzE3MSA3MS42Mjk0TDk1LjA2NCA2Mi4wNjc4TTgzLjcxNzEgNzEuNjEwOEw5NS4wNjQgODEuNTkzTTgxLjgyOTEgOTQuMjAxN0w3Mi4xNjQ2IDgzLjQ4MTFNNjIuNTAwMSA5NC4yMDE3TDcyLjE2NDYgODMuNDkwNE00OS4yNTU5IDgxLjE3MjRMNjAuMTgyMSA3MS42MTA4TTYwLjE5MTUgNzEuNjEwOEw0OS4yNjUyIDYyLjA0OTFMNzIuMTY0NiA1OS40MjI3TDk1LjA2NCA2Mi4wNDkxIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMjYiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNODEuNzE2OCA0OC4zOTM2TDgzLjcxNyA3MS42MTA4TDgxLjgyOSA5NC4xOTI0IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMjYiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNOTUuMDY0IDgxLjU5MjVMNzIuMTY0NiA4My40ODA1TTQ5LjI1NTkgODEuMTcxOUw3Mi4xNTUzIDgzLjQ5OTIiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMC4yNiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik02Mi41MDEyIDk0LjIwMTRMNjAuMTczOCA3MS42MTk4TTYyLjUwMTIgNDguNDk2MUw2MC4xNzM4IDcxLjYxMDUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMC4yNiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik0zOC43NSA2NC45OTQ4TDQ5LjI1NTcgNjIuMDUwNk01MS40NjE1IDQwLjYxODdMNjIuNTA5MyA0OC40OTc5TTYyLjQ5MDYgNDguNDk3OUw2NS4wMTQyIDM1LjY4MzZMODEuNzE2OCA0OC4zOTUxIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMTMiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNNzkuMjAzMSAzNS42ODM2TDgxLjcyNjcgNDguMzk1MU05Mi43NTU4IDQwLjYxODdMODEuNzA4IDQ4LjM5NTFNMTAyLjYyNiA1MS4wMjE1TDgxLjcxNzQgNDguMzk1MU0xMDIuNjI2IDUxLjAwMjhMOTUuMDY0NSA2Mi4wNTA2TDEwNS43NzYgNjQuOTk0OCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjEzIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTk1LjA2MzkgNjIuMDUwNkwxMDUuNTcgNzguMDE0OE03OS4yMDI1IDM1LjY4MzZMNjIuNSA0OC40OTc5IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMTMiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNOTUuMDYzNyA2Mi4wNTExTDkyLjczNjMgNDAuNjE5MU05NS4wNjM3IDgxLjU5NTFMMTA1LjU2OSA3OC4wMTUzIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMTMiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNOTUuMDY1IDgxLjU5NDlMMTA1Ljc3NiA2NC45OTUxTTk1LjA2NSA4MS41OTQ5TDEwMi42MjYgOTEuNzgyOE05NS4wNjUgODEuNTk0OUw5Mi43Mzc3IDEwMi4xODZNODEuODMwMSA5NC4yMDM1TDkyLjc1NjQgMTAyLjE4NiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjEzIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTgxLjgyOSA5NC4yMDNMMTAyLjYyNSA5MS43ODIyTTgxLjgyOSA5NC4yMDNMNzkuMzI0MSAxMDcuMTExTTgxLjgyOSA5NC4yMDNMNjUuMDE0MyAxMDcuMTAxTTYyLjUgOTQuMjAzTDY1LjAyMzYgMTA3LjEzOSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjEzIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTYyLjUwMTIgOTQuMjAzMUw3OS4zMjUzIDEwNy4xMTFNNTEuNDYyOCAxMDIuMTg1TDYyLjUxMDUgOTQuMjAzMUw0MS42NzY4IDkxLjg4NTFMNDkuMjU2OSA4MS4xNzM4IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMTMiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNNTEuNDYxOCAxMDIuMTg1TDQ5LjI1NiA4MS4xNzMxTDM4LjY0NzUgNzcuOTExMUw0OS4yNTYgNjIuMDQ5OCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjEzIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTQ5LjI1NTcgODEuMTc0NUwzOC43NSA2NC45OTUzTTUxLjQ2MTUgNDAuNjE5MUw0OS4yNTU3IDYyLjA1MTEiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMC4xMyIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik00MS42ODU1IDUxLjAyMTdMNjIuNDgxOSA0OC40OTgiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMC4xMyIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik00My4zNzYgMzYuODMzOEw1MS40NjA5IDQwLjYxOTJMNTAuODM0NiAzMS43OTU5TDY1LjAxMzYgMzUuNjg0MSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjEwMSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik01OC45Mjg5IDI4LjIyNDRMNjUuMDEzNiAzNS42ODMxTDY3LjUzNzMgMjYuNzM4M0w3OS4yMDE5IDM1LjY4MzFNNTEuNDYwOSA0MC42MTgxTDU4LjkxOTYgMjguMjI0NCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjEwMSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik03Ni41NjY3IDI2LjQ0MDRMNzkuMjAyNSAzNS42ODQzTDg1LjI5NjYgMjguMjI1Nk02NS4wMDQ5IDM1LjY4NDNMNzYuNTU3NCAyNi40NDA0TTkyLjc1NTIgNDAuNjE5NEw4NS4yNzc5IDI4LjIyNTYiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMC4xMDEiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNOTIuNzU0OSA0MC42MTkyTDkzLjQ5MzIgMzEuNzk1OU05Mi43NTQ5IDQwLjYxOTJMMTAxLjAzNiAzNi40MTMyTTkyLjc1NDkgNDAuNjE5MkwxMDcuMTQ5IDQyLjgyNU03OS4yMDIxIDM1LjY4NDFMOTMuNDgzOSAzMS43OTU5IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMTAxIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTEwMi42MjUgNTEuMDIxNEwxMDcuMTM5IDQyLjgyNDRNMTAyLjYyNSA1MS4wMjE0TDEwMS4wNDUgMzYuNDIxOU0xMDIuNjI1IDUxLjAyMTRMMTEyLjA4MyA1MC4yODNNMTAyLjYyNSA1MS4wMjE0TDExNS41NiA1OC4zNzczIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMTAxIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTEwNS43NzQgNjQuOTk0OUwxMTIuMDgzIDUwLjI4MzJNMTA1Ljc3NCA2NC45OTQ5TDExNS41NDEgNTguMzc3NE0xMDUuNzc0IDY0Ljk5NDlMMTE2LjcgNjcuMjAwN0wxMDUuNTY4IDc4LjAxNDkiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMC4xMDEiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNMTE3LjAxOSA3NS45MTIxTDEwNS41NjkgNzguMDE1MUwxMTUuMzM3IDg0LjUyOTdMMTAyLjYyNSA5MS43ODI3TTEwNS43NzUgNjQuOTk1MUwxMTcuMDE5IDc1LjkyMTQiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMC4xMDEiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNMTAyLjYyNSA5MS43ODMzTDExMS45NzEgOTIuNzI3M00xMDUuNTc4IDc4LjAxNTZMMTExLjk3MSA5Mi43MThNMTA3LjA1NSAxMDAuMDY0TDEwMi42NDMgOTEuNzgzM0wxMDAuOTYxIDEwNi4yOCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjEwMSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik0xMDAuOTQzIDEwNi4yNzlMOTIuNzQ1OCAxMDIuMTg1TTkyLjc1NTEgMTAyLjE4NUw5My4zODEzIDExMS4zNDVNOTIuNzU1MSAxMDIuMTg1TDEwNy4wMzcgMTAwLjA4Mk05Mi43NTUxIDEwMi4xODVMODUuMjg3MSAxMTQuNzk0IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMTAxIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTc5LjMyMzIgMTA3LjEwM0w4NS4yNzcgMTE0Ljc2N003OS4zMjMyIDEwNy4xMDNMOTMuMzk5MyAxMTEuMzA5TTc5LjMyMzIgMTA3LjEwM0w3Ni41NjU5IDExNi41NjFNNzkuMzIzMiAxMDcuMTAzTDY3LjU1NTcgMTE2LjU2MSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjEwMSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik02NS4wMTM2IDEwNy4xMDJMNjcuNTM3MyAxMTYuNTYxTTY1LjAxMzYgMTA3LjEwMkw3Ni41NTY4IDExNi41NjFNNjUuMDEzNiAxMDcuMTAyTDU5LjAyMjQgMTE0Ljc2Nk01MS40NjA5IDEwMi4xODZMNTkuMDIyNCAxMTQuNzk0IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMTAxIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTY1LjAxMzkgMTA3LjEwMUw1MC43MzIyIDExMS41MTNNNTAuNzIyOCAxMTEuNTMyTDUxLjQ2MTIgMTAyLjE4NUw0My4yNjQyIDEwNi42OTlMNDEuNjg0NiA5MS44ODQ4IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMTAxIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTUxLjQ2MSAxMDIuMTg2TDM3LjA2NzEgMTAwLjE5NU00MS42ODQ0IDkxLjg4NkwzNy4wNTc4IDEwMC4xNjdNNDEuNjg0NCA5MS44ODZMMzIuMjI1NSA5Mi44MzAxTTQxLjY4NDQgOTEuODg2TDI4LjY3MzggODQuNjQyM0wzOC42NDY3IDc3LjkxMjdMMjcuMjk5OCA3NS45MjE5IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMTAxIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTM4LjY0NjcgNzcuOTEyM0wzMi4yNTM2IDkyLjgyOTZNMzguNzQ5NSA2NC45OTUxTDI3LjI5OTggNzUuOTIxNCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjEwMSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik0zOC42NDY3IDc3LjkxMjJMMjcuMjk5OCA2Ny4yMDA5TTM4Ljc1ODkgNjQuOTk1MUwyOC45ODIyIDU4LjQ4MDUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMC4xMDEiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNMjcuMjk5OCA2Ny4yMDA3TDM4Ljc0OTUgNjQuOTk0OUwzMi4yNDQyIDUwLjI4MzIiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMC4xMDEiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNNDEuNjgzNiA1MS4wMjE3TDMyLjIyNDcgNTAuMjgzM000MS42ODM2IDUxLjAyMTdMMjguOTgxNCA1OC40ODA0TTQxLjY4MzYgNTEuMDIxN0wzNy4xNzg1IDQzLjI0NTNNNDEuNjgzNiA1MS4wMjE3TDQzLjM2NiAzNi44NDI4IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjAuMTAxIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTUxLjQ2MSA0MC42MTkxTDM3LjE2OTkgNDMuMjQ1NiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjEwMSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik01NC41NjQ1IDc3LjA3MDJMNTQuNjM5MiA2Ni4wMjI0TDY1LjY4NyA2Ni4wOTcxTDY1LjYxMjMgNzcuMTQ0OUw1NC41NjQ1IDc3LjA3MDJaTTY2LjUxODkgNjQuOTEwMUw2Ni41OTM3IDUzLjg2MjNMNzcuNjQxNSA1My45MzcxTDc3LjU2NjcgNjQuOTg0OUw2Ni41MTg5IDY0LjkxMDFaTTY2LjUxODkgODkuMTI3NEw2Ni41OTM3IDc4LjA3OTZMNzcuNjQxNSA3OC4xNTQ0TDc3LjU2NjcgODkuMjAyMkw2Ni41MTg5IDg5LjEyNzRaTTc4LjU3NjEgNzYuOTY3M0w3OC42NTA5IDY1LjkxOTVMODkuNjk4NyA2NS45OTQzTDg5LjYyMzkgNzcuMDQyMUw3OC41NzYxIDc2Ljk2NzNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzcuOTQwNiA1Mi4yMzY2TDc3Ljk5NjYgNDQuNTcyM0w4NS42OTgzIDQ0LjYyODNMODUuNjQyMiA1Mi4yOTI2TDc3Ljk0MDYgNTIuMjM2NlpNNTguNjg2NCA1Mi4yMzY2TDU4Ljc0MjQgNDQuNTcyM0w2Ni40NDQxIDQ0LjYyODNMNjYuMzg4IDUyLjI5MjZMNTguNjg2NCA1Mi4yMzY2Wk00NS4zNTggNjUuODkyMUw0NS40MTQxIDU4LjIyNzhMNTMuMTE1NyA1OC4yODM5TDUzLjA1OTcgNjUuOTQ4Mkw0NS4zNTggNjUuODkyMVpNNDUuMzQ4NiA4NS4xNjVMNDUuNDMyOCA3Ny41MDA3TDUzLjEzNDQgNzcuNTg0OEw1My4wNTAzIDg1LjI0OTFMNDUuMzQ4NiA4NS4xNjVaTTkxLjI2OSA4NS4wMTU0TDkxLjMyNSA3Ny4zNTExTDk5LjAyNjcgNzcuNDA3Mkw5OC45NzA2IDg1LjA3MTVMOTEuMjY5IDg1LjAxNTRaTTkxLjQxODUgNjUuOTQ4Mkw5MS41MDI2IDU4LjI4MzlMOTkuMjA0MyA1OC4zNjhMOTkuMTIwMiA2Ni4wMzIzTDkxLjQxODUgNjUuOTQ4MloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0zOS4xMTQzIDUzLjUyNjNMMzkuMTUxNyA0OC40NzkxTDQ0LjE4MDIgNDguNTE2NUw0NC4xNDI4IDUzLjU2MzdMMzkuMTE0MyA1My41MjYzWk00OC45NTYzIDQzLjI2MzdMNDguOTkzNyAzOC4yMTY0TDU0LjAyMjMgMzguMjUzOEw1My45ODQ5IDQzLjMwMUw0OC45NTYzIDQzLjI2MzdaTTYyLjQ5OTcgMzguMTg4NEw2Mi41MzcxIDMzLjE0MTJMNjcuNTY1NiAzMy4xNzg2TDY3LjUyODIgMzguMjI1OEw2Mi40OTk3IDM4LjE4ODRaTTM2LjE1MTQgNjcuNDkwM0wzNi4xODg4IDYyLjQ0MzFMNDEuMTg5MiA2Mi40ODA1TDQxLjE1MTkgNjcuNTI3N0wzNi4xNTE0IDY3LjQ5MDNaTTEwMC4wODMgNDguNTUzOUwxMDUuMTMgNDguNTE2NUwxMDUuMTY3IDUzLjU0NUwxMDAuMTIgNTMuNTgyNEwxMDAuMDgzIDQ4LjU1MzlaTTkwLjI0MDcgMzguMTEzNkw5NS4yODc5IDM4LjA3NjJMOTUuMzI1MyA0My4xMDQ4TDkwLjI3ODEgNDMuMTQyMUw5MC4yNDA3IDM4LjExMzZaTTc2LjY1MDYgMzMuMTY5Mkw4MS42OTc4IDMzLjEzMThMODEuNzM1MiAzOC4xNjA0TDc2LjY4OCAzOC4xOTc3TDc2LjY1MDYgMzMuMTY5MlpNMTAzLjAxOCA2Mi40OTkyTDEwOC4wNjUgNjIuNDYxOEwxMDguMTAyIDY3LjQ5MDNMMTAzLjA1NSA2Ny41Mjc3TDEwMy4wMTggNjIuNDk5MloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01OC41ODMgOTguMjQwNUw1OC42MzkxIDkwLjU3NjJMNjYuMzQwOCA5MC42MzIzTDY2LjI4NDcgOTguMjk2NUw1OC41ODMgOTguMjQwNVpNNzcuODM3MiA5OC4yNDA1TDc3Ljg5MzMgOTAuNTc2Mkw4NS41OTUgOTAuNjMyM0w4NS41Mzg5IDk4LjI5NjVMNzcuODM3MiA5OC4yNDA1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTEwMC4wNDUgOTQuMzYxOUwxMDAuMDgyIDg5LjMxNDdMMTA1LjExMSA4OS4zNTIxTDEwNS4wNzQgOTQuMzk5M0wxMDAuMDQ1IDk0LjM2MTlaTTkwLjMxNTIgMTA0LjcyN0w5MC4zNTI2IDk5LjY4MDJMOTUuMzgxMSA5OS43MTc2TDk1LjM0MzcgMTA0Ljc2NUw5MC4zMTUyIDEwNC43MjdaTTc2Ljc3MTggMTA5LjdMNzYuODA5MiAxMDQuNjUzTDgxLjgzNzcgMTA0LjY5TDgxLjgwMDQgMTA5LjczN0w3Ni43NzE4IDEwOS43Wk0xMDMuMDA4IDgwLjM5NzlMMTAzLjA0NSA3NS4zNTA3TDEwOC4wNzQgNzUuMzg4MUwxMDguMDM3IDgwLjQzNTNMMTAzLjAwOCA4MC4zOTc5Wk0zOS4xMjMzIDg5LjMxNDdMNDQuMTcwNiA4OS4yNzczTDQ0LjIwNzkgOTQuMzA1OEwzOS4xNjA3IDk0LjM0MzJMMzkuMTIzMyA4OS4zMTQ3Wk00OC45NjU0IDk5LjY0MjhMNTQuMDEyNiA5OS42MDU0TDU0LjA1IDEwNC42MzRMNDkuMDAyOCAxMDQuNjcxTDQ4Ljk2NTQgOTkuNjQyOFpNNjIuNDQzMyAxMDQuNTk3TDY3LjQ5MDYgMTA0LjU1OUw2Ny41Mjc5IDEwOS41ODhMNjIuNDgwNyAxMDkuNjI1TDYyLjQ0MzMgMTA0LjU5N1pNMzYuMTg4NSA3NS4zNjk0TDQxLjIzNTcgNzUuMzMyTDQxLjI3MzEgODAuMzYwNkwzNi4yMjU5IDgwLjM5NzlMMzYuMTg4NSA3NS4zNjk0WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTExMC42MjUgNTEuNjM4NEwxMTAuNjQ0IDQ4LjkwOTJMMTEzLjQyOSA0OC45Mjc5TDExMy40MSA1MS42NTcxTDExMC42MjUgNTEuNjM4NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xMTQuMjI0IDU5Ljg5MTNMMTE0LjI0MiA1Ny4xNjIxTDExNy4wMjggNTcuMTgwOEwxMTcuMDA5IDU5LjkxTDExNC4yMjQgNTkuODkxM1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xMDUuNzY3IDQ0LjMzNzZMMTA1Ljc4NSA0MS42MDg0TDEwOC41NzEgNDEuNjI3MUwxMDguNTUyIDQ0LjM1NjNMMTA1Ljc2NyA0NC4zMzc2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTQxLjk3MzYgMzguMDk0NUw0MS45OTIzIDM1LjM2NTJMNDQuNzc3NiAzNS4zODM5TDQ0Ljc1ODkgMzguMTEzMkw0MS45NzM2IDM4LjA5NDVaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjYgNjguNTU1NEwyNi4wMTg3IDY1LjgyNjJMMjguODA0IDY1Ljg0NDlMMjguNzg1MyA2OC41NzQxTDI2IDY4LjU1NTRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTkuNjI0IDM4LjA5NDVMOTkuNjQyNyAzNS4zNjUyTDEwMi40MjggMzUuMzgzOUwxMDIuNDA5IDM4LjExMzJMOTkuNjI0IDM4LjA5NDVaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjcuNTg5OCA1OS44ODE2TDI3LjYwODUgNTcuMTUyM0wzMC4zOTM5IDU3LjE3MUwzMC4zNzUyIDU5LjkwMDNMMjcuNTg5OCA1OS44ODE2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTU3LjYyOTkgMjkuNjM1NUw1Ny42NDg2IDI2LjkwNjJMNjAuNDMzOSAyNi45MjQ5TDYwLjQxNTIgMjkuNjU0Mkw1Ny42Mjk5IDI5LjYzNTVaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzAuOTcyNyA1MS42Mzg0TDMwLjk5MTMgNDguOTA5MkwzMy43NzY3IDQ4LjkyNzlMMzMuNzU4IDUxLjY1NzFMMzAuOTcyNyA1MS42Mzg0WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTM1Ljk0NTMgNDQuMjM2MUwzNS45NjQgNDEuNTA2OEwzOC43NDkzIDQxLjUyNTVMMzguNzMwNiA0NC4yNTQ4TDM1Ljk0NTMgNDQuMjM2MVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik00OS40MjI5IDMwLjQyMDRMNTIuMTUyMSAzMC40MDE3TDUyLjE3MDggMzMuMTg3TDQ5LjQ0MTUgMzMuMjA1N0w0OS40MjI5IDMwLjQyMDRaTTY2LjMwMyAyNS4wNDZMNjkuMDMyMiAyNS4wMjczTDY5LjA1MDkgMjcuODEyN0w2Ni4zMjE3IDI3LjgzMTRMNjYuMzAzIDI1LjA0NloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik05Mi4yMjI3IDMzLjIyNDRMOTIuMjQxNCAzMC40OTUxTDk1LjAyNjcgMzAuNTEzOEw5NS4wMDggMzMuMjQzTDkyLjIyMjcgMzMuMjI0NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xMTUuNTk4IDY4LjQ1MjlMMTE1LjYxNiA2NS43MjM2TDExOC40MDIgNjUuNzQyM0wxMTguMzgzIDY4LjQ3MTZMMTE1LjU5OCA2OC40NTI5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTc1LjE5MTQgMjcuNzI5Mkw3NS4yMTAxIDI1TDc3Ljk5NTQgMjUuMDE4N0w3Ny45NzY3IDI3Ljc0NzlMNzUuMTkxNCAyNy43MjkyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTgzLjg2NjIgMjkuNTIzMkw4My44ODQ5IDI2Ljc5MzlMODYuNjcwMiAyNi44MTI2TDg2LjY1MTUgMjkuNTQxOUw4My44NjYyIDI5LjUyMzJaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTkuNjI0IDEwNy43TDk5LjY0MjcgMTA0Ljk3MUwxMDIuNDI4IDEwNC45ODlMMTAyLjQwOSAxMDcuNzE5TDk5LjYyNCAxMDcuN1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xMTUuNTk4IDc3LjIzOUwxMTUuNjE2IDc0LjUwOThMMTE4LjQwMiA3NC41Mjg1TDExOC4zODMgNzcuMjU3N0wxMTUuNTk4IDc3LjIzOVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik00MS45NzM2IDEwNy43TDQxLjk5MjMgMTA0Ljk3MUw0NC43Nzc2IDEwNC45ODlMNDQuNzU4OSAxMDcuNzE5TDQxLjk3MzYgMTA3LjdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTE0LjIyNCA4Ni4wMzI5TDExNC4yNDIgODMuMzAzN0wxMTcuMDI4IDgzLjMyMjRMMTE3LjAwOSA4Ni4wNTE2TDExNC4yMjQgODYuMDMyOVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik04My44NjYyIDExNi4yN0w4My44ODQ5IDExMy41NDFMODYuNjcwMiAxMTMuNTZMODYuNjUxNSAxMTYuMjg5TDgzLjg2NjIgMTE2LjI3WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTExMC42MjUgOTQuMjY4M0wxMTAuNjQ0IDkxLjUzOTFMMTEzLjQyOSA5MS41NTc4TDExMy40MSA5NC4yODdMMTEwLjYyNSA5NC4yNjgzWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTEwNS43NjcgMTAxLjY3MkwxMDUuNzg1IDk4Ljk0MjRMMTA4LjU3MSA5OC45NjExTDEwOC41NTIgMTAxLjY5TDEwNS43NjcgMTAxLjY3MloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik05Mi4xMDk0IDExMC4wNjVMOTQuODM4NiAxMTAuMDQ2TDk0Ljg1NzMgMTEyLjgzMUw5Mi4xMjggMTEyLjg1TDkyLjEwOTQgMTEwLjA2NVpNNzUuMzMyIDExNS4yMTVMNzguMDYxMyAxMTUuMTk2TDc4LjA4IDExNy45ODFMNzUuMzUwNyAxMThMNzUuMzMyIDExNS4yMTVaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNDkuNDc4NSAxMTIuODg2TDQ5LjQ5NzIgMTEwLjE1N0w1Mi4yODI1IDExMC4xNzZMNTIuMjYzOCAxMTIuOTA1TDQ5LjQ3ODUgMTEyLjg4NloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0zMC44NTk0IDk0LjE2NThMMzAuODc4MSA5MS40MzY1TDMzLjY2MzQgOTEuNDU1MkwzMy42NDQ3IDk0LjE4NDVMMzAuODU5NCA5NC4xNjU4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTI3LjU4MDEgODYuMDE0NEwyNy41OTg4IDgzLjI4NTJMMzAuMzg0MSA4My4zMDM5TDMwLjM2NTQgODYuMDMzMUwyNy41ODAxIDg2LjAxNDRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzUuODMyIDEwMS42NzJMMzUuODUwNyA5OC45NDI0TDM4LjYzNiA5OC45NjExTDM4LjYxNzMgMTAxLjY5TDM1LjgzMiAxMDEuNjcyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTI2IDc3LjIzOUwyNi4wMTg3IDc0LjUwOThMMjguODA0IDc0LjUyODVMMjguNzg1MyA3Ny4yNTc3TDI2IDc3LjIzOVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik02Ni40MDUzIDExNy45NjJMNjYuNDI0IDExNS4yMzJMNjkuMjA5MyAxMTUuMjUxTDY5LjE5MDYgMTE3Ljk4TDY2LjQwNTMgMTE3Ljk2MloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik01Ny41MTc2IDExNi4xNjhMNTcuNTM2MyAxMTMuNDM4TDYwLjMyMTYgMTEzLjQ1N0w2MC4zMDI5IDExNi4xODZMNTcuNTE3NiAxMTYuMTY4WiIgZmlsbD0id2hpdGUiLz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl82ODNfMjk4NSIgeDE9IjEwIiB5MT0iMTUuNSIgeDI9IjE0NCIgeTI9IjEzMS41IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMwMEE4REEiLz4KPHN0b3Agb2Zmc2V0PSIwLjQ5NSIgc3RvcC1jb2xvcj0iIzM1NzlCQyIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyODZFQTUiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K - keysOrder: [["apiVersion"], ["appVersion"], ["kind"], ["metadata"], ["metadata", "name"], ["spec", "replicas"], ["spec", "resourcesPreset"], ["spec", "external"], ["spec", "httpAndHttps"], ["spec", "httpAndHttps", "mode"], ["spec", "httpAndHttps", "targetPorts"], ["spec", "httpAndHttps", "targetPorts", "http"], ["spec", "httpAndHttps", "targetPorts", "https"], ["spec", "httpAndHttps", "endpoints"], ["spec", "whitelistHTTP"], ["spec", "whitelist"]] + keysOrder: [["apiVersion"], ["appVersion"], ["kind"], ["metadata"], ["metadata", "name"], ["spec", "replicas"], ["spec", "resources"], ["spec", "resourcesPreset"], ["spec", "external"], ["spec", "httpAndHttps"], ["spec", "httpAndHttps", "mode"], ["spec", "httpAndHttps", "targetPorts"], ["spec", "httpAndHttps", "targetPorts", "http"], ["spec", "httpAndHttps", "targetPorts", "https"], ["spec", "httpAndHttps", "endpoints"], ["spec", "whitelistHTTP"], ["spec", "whitelist"]] secrets: exclude: [] include: [] diff --git a/packages/system/cozystack-resource-definitions/cozyrds/tenant.yaml b/packages/system/cozystack-resource-definitions/cozyrds/tenant.yaml index 25c3a92a..a5c497ac 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/tenant.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/tenant.yaml @@ -8,7 +8,7 @@ spec: singular: tenant plural: tenants openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"etcd":{"description":"Deploy own Etcd cluster","type":"boolean","default":false},"host":{"description":"The hostname used to access tenant services (defaults to using the tenant name as a subdomain for it's parent tenant host).","type":"string"},"ingress":{"description":"Deploy own Ingress Controller","type":"boolean","default":false},"isolated":{"description":"Enforce tenant namespace with network policies, `true` by default","type":"boolean","default":true},"monitoring":{"description":"Deploy own Monitoring Stack","type":"boolean","default":false},"resourceQuotas":{"description":"Define resource quotas for the tenant","type":"object","default":{},"additionalProperties":{"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}},"seaweedfs":{"description":"Deploy own SeaweedFS","type":"boolean","default":false}}} + {"title":"Chart Values","type":"object","properties":{"etcd":{"description":"Deploy own Etcd cluster.","type":"boolean","default":false},"host":{"description":"The hostname used to access tenant services (defaults to using the tenant name as a subdomain for its parent tenant host).","type":"string","default":""},"ingress":{"description":"Deploy own Ingress Controller.","type":"boolean","default":false},"isolated":{"description":"Enforce tenant namespace with network policies (default: true).","type":"boolean","default":true},"monitoring":{"description":"Deploy own Monitoring Stack.","type":"boolean","default":false},"resourceQuotas":{"description":"Define resource quotas for the tenant.","type":"object","default":{},"additionalProperties":{"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}},"seaweedfs":{"description":"Deploy own SeaweedFS.","type":"boolean","default":false}}} release: prefix: tenant- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/virtual-machine.yaml b/packages/system/cozystack-resource-definitions/cozyrds/virtual-machine.yaml index 7a2a054a..1a2f2aec 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/virtual-machine.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/virtual-machine.yaml @@ -8,7 +8,7 @@ spec: plural: virtualmachines singular: virtualmachine openAPISchema: |- - {"title":"Chart Values","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/reference/examples.html).","type":"string"},"cloudInitSeed":{"description":"A seed string to generate an SMBIOS UUID for the VM.","type":"string"},"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"externalMethod":{"description":"Specify method to pass through the traffic to the virtual machine. Allowed values: `WholeIP` and `PortList`","type":"string","default":"PortList","enum":["PortList","WholeIP"]},"externalPorts":{"description":"Specify ports to forward from outside the cluster","type":"array","default":[22],"items":{"type":"integer"}},"gpus":{"description":"List of GPUs to attach","type":"array","default":[],"items":{"type":"object","required":["name"],"properties":{"name":{"description":"The name of the GPU to attach. This should match the GPU resource name in the cluster.","type":"string"}}}},"instanceProfile":{"description":"Virtual Machine preferences profile","type":"string","default":"ubuntu","enum":["alpine","centos.7","centos.7.desktop","centos.stream10","centos.stream10.desktop","centos.stream8","centos.stream8.desktop","centos.stream8.dpdk","centos.stream9","centos.stream9.desktop","centos.stream9.dpdk","cirros","fedora","fedora.arm64","opensuse.leap","opensuse.tumbleweed","rhel.10","rhel.10.arm64","rhel.7","rhel.7.desktop","rhel.8","rhel.8.desktop","rhel.8.dpdk","rhel.9","rhel.9.arm64","rhel.9.desktop","rhel.9.dpdk","rhel.9.realtime","sles","ubuntu","windows.10","windows.10.virtio","windows.11","windows.11.virtio","windows.2k16","windows.2k16.virtio","windows.2k19","windows.2k19.virtio","windows.2k22","windows.2k22.virtio","windows.2k25","windows.2k25.virtio",""]},"instanceType":{"description":"Virtual Machine instance type","type":"string","default":"u1.medium"},"resources":{"description":"Resources","type":"object","default":{},"properties":{"cpu":{"description":"The number of CPU cores allocated to the virtual machine","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":"The amount of memory allocated to the virtual machine","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},"sockets":{"description":"The number of CPU sockets allocated to the virtual machine (used to define vCPU topology)","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}}},"running":{"description":"if the virtual machine should be running","type":"boolean","default":true},"sshKeys":{"description":"List of SSH public keys for authentication. Can be a single key or a list of keys.","type":"array","default":[],"items":{"type":"string"}},"systemDisk":{"description":"System disk configuration","type":"object","default":{},"required":["image","storage"],"properties":{"image":{"description":"The base image for the virtual machine. Allowed values: `ubuntu`, `cirros`, `alpine`, `fedora` and `talos`","type":"string","default":"ubuntu","enum":["ubuntu","cirros","alpine","fedora","talos"]},"storage":{"description":"The size of the disk allocated for the virtual machine","type":"string","default":"5Gi"},"storageClass":{"description":"StorageClass used to store the data","type":"string","default":"replicated"}}}}} + {"title":"Chart Values","type":"object","properties":{"cloudInit":{"description":"Cloud-init user data.","type":"string","default":""},"cloudInitSeed":{"description":"Seed string to generate SMBIOS UUID for the VM.","type":"string","default":""},"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"externalMethod":{"description":"Method to pass through traffic to the VM.","type":"string","default":"PortList","enum":["PortList","WholeIP"]},"externalPorts":{"description":"Ports to forward from outside the cluster.","type":"array","default":[22],"items":{"type":"integer"}},"gpus":{"description":"List of GPUs to attach.","type":"array","default":[],"items":{"type":"object","required":["name"],"properties":{"name":{"description":"The name of the GPU resource to attach.","type":"string"}}}},"instanceProfile":{"description":"Virtual Machine preferences profile.","type":"string","default":"ubuntu","enum":["alpine","centos.7","centos.7.desktop","centos.stream10","centos.stream10.desktop","centos.stream8","centos.stream8.desktop","centos.stream8.dpdk","centos.stream9","centos.stream9.desktop","centos.stream9.dpdk","cirros","fedora","fedora.arm64","opensuse.leap","opensuse.tumbleweed","rhel.10","rhel.10.arm64","rhel.7","rhel.7.desktop","rhel.8","rhel.8.desktop","rhel.8.dpdk","rhel.9","rhel.9.arm64","rhel.9.desktop","rhel.9.dpdk","rhel.9.realtime","sles","ubuntu","windows.10","windows.10.virtio","windows.11","windows.11.virtio","windows.2k16","windows.2k16.virtio","windows.2k19","windows.2k19.virtio","windows.2k22","windows.2k22.virtio","windows.2k25","windows.2k25.virtio",""]},"instanceType":{"description":"Virtual Machine instance type.","type":"string","default":"u1.medium"},"resources":{"description":"Resource configuration for the virtual machine.","type":"object","default":{},"properties":{"cpu":{"description":"Number of CPU cores allocated.","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":"Amount of memory allocated.","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},"sockets":{"description":"Number of CPU sockets (vCPU topology).","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}}},"running":{"description":"Whether the virtual machine should be running.","type":"boolean","default":true},"sshKeys":{"description":"List of SSH public keys for authentication.","type":"array","default":[],"items":{"type":"string"}},"systemDisk":{"description":"System disk configuration.","type":"object","default":{},"required":["image","storage"],"properties":{"image":{"description":"The base image for the virtual machine.","type":"string","default":"ubuntu","enum":["ubuntu","cirros","alpine","fedora","talos"]},"storage":{"description":"The size of the disk allocated for the virtual machine.","type":"string","default":"5Gi"},"storageClass":{"description":"StorageClass used to store the data.","type":"string","default":"replicated"}}}}} release: prefix: virtual-machine- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/vm-disk.yaml b/packages/system/cozystack-resource-definitions/cozyrds/vm-disk.yaml index 66a2e940..c3c1b830 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/vm-disk.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/vm-disk.yaml @@ -8,7 +8,7 @@ spec: singular: vmdisk plural: vmdisks openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"optical":{"description":"Defines if disk should be considered optical","type":"boolean","default":false},"source":{"description":"The source image location used to create a disk","type":"object","default":{},"properties":{"http":{"description":"Download image from an HTTP source","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":"object","required":["name"],"properties":{"name":{"description":"Name of the image to use","type":"string"}}},"upload":{"description":"Upload local image","type":"object"}}},"storage":{"description":"The size of the disk allocated for the virtual machine","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 data","type":"string","default":"replicated"}}} + {"title":"Chart Values","type":"object","properties":{"optical":{"description":"Defines if disk should be considered optical.","type":"boolean","default":false},"source":{"description":"The source image location used to create a disk.","type":"object","default":{},"properties":{"http":{"description":"Download image from an HTTP source.","type":"object","required":["url"],"properties":{"url":{"description":"URL to download the image.","type":"string"}}},"image":{"description":"Use image by name.","type":"object","required":["name"],"properties":{"name":{"description":"Name of the image to use (uploaded as \"golden image\" or from the list: `ubuntu`, `fedora`, `cirros`, `alpine`, `talos`).","type":"string"}}},"upload":{"description":"Upload local image."}}},"storage":{"description":"The size of the disk allocated for the virtual machine.","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 data.","type":"string","default":"replicated"}}} release: prefix: vm-disk- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/vm-instance.yaml b/packages/system/cozystack-resource-definitions/cozyrds/vm-instance.yaml index 7d5ec69a..35b7eb23 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/vm-instance.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/vm-instance.yaml @@ -8,7 +8,7 @@ spec: singular: vminstance plural: vminstances openAPISchema: |- - {"title":"Chart Values","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/reference/examples.html).","type":"string"},"cloudInitSeed":{"description":"A seed string to generate an SMBIOS UUID for the VM.","type":"string"},"disks":{"description":"List of disks to attach","type":"array","default":[],"items":{"type":"object","required":["name"],"properties":{"bus":{"description":"Disk bus type, such as \"sata\"","type":"string"},"name":{"description":"Disk name","type":"string"}}}},"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"externalMethod":{"description":"Specify method to pass through the traffic to the virtual machine. Allowed values: `WholeIP` and `PortList`","type":"string","default":"PortList","enum":["PortList","WholeIP"]},"externalPorts":{"description":"Ports to forward from outside the cluster","type":"array","default":[22],"items":{"type":"integer"}},"gpus":{"description":"List of GPUs to attach (WARN: NVIDIA driver requires at least 4 GiB of RAM)","type":"array","default":[],"items":{"type":"object","required":["name"],"properties":{"name":{"description":"Name of GPU, such as \"nvidia.com/AD102GL_L40S\"","type":"string"}}}},"instanceProfile":{"description":"Virtual Machine preferences profile","type":"string","default":"ubuntu","enum":["alpine","centos.7","centos.7.desktop","centos.stream10","centos.stream10.desktop","centos.stream8","centos.stream8.desktop","centos.stream8.dpdk","centos.stream9","centos.stream9.desktop","centos.stream9.dpdk","cirros","fedora","fedora.arm64","opensuse.leap","opensuse.tumbleweed","rhel.10","rhel.10.arm64","rhel.7","rhel.7.desktop","rhel.8","rhel.8.desktop","rhel.8.dpdk","rhel.9","rhel.9.arm64","rhel.9.desktop","rhel.9.dpdk","rhel.9.realtime","sles","ubuntu","windows.10","windows.10.virtio","windows.11","windows.11.virtio","windows.2k16","windows.2k16.virtio","windows.2k19","windows.2k19.virtio","windows.2k22","windows.2k22.virtio","windows.2k25","windows.2k25.virtio",""]},"instanceType":{"description":"Virtual Machine instance type","type":"string","default":"u1.medium"},"resources":{"description":"Resources","type":"object","default":{},"properties":{"cpu":{"description":"The number of CPU cores allocated to the virtual machine","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":"The amount of memory allocated to the virtual machine","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},"sockets":{"description":"The number of CPU sockets allocated to the virtual machine (used to define vCPU topology)","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}}},"running":{"description":"Determines if the virtual machine should be running","type":"boolean","default":true},"sshKeys":{"description":"List of SSH public keys for authentication. Can be a single key or a list of keys.","type":"array","default":[],"items":{"type":"string"}}}} + {"title":"Chart Values","type":"object","properties":{"cloudInit":{"description":"Cloud-init user data.","type":"string","default":""},"cloudInitSeed":{"description":"Seed string to generate SMBIOS UUID for the VM.","type":"string","default":""},"disks":{"description":"List of disks to attach.","type":"array","default":[],"items":{"type":"object","required":["name"],"properties":{"bus":{"description":"Disk bus type (e.g. \"sata\").","type":"string"},"name":{"description":"Disk name.","type":"string"}}}},"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"externalMethod":{"description":"Method to pass through traffic to the VM.","type":"string","default":"PortList","enum":["PortList","WholeIP"]},"externalPorts":{"description":"Ports to forward from outside the cluster.","type":"array","default":[22],"items":{"type":"integer"}},"gpus":{"description":"List of GPUs to attach (NVIDIA driver requires at least 4 GiB RAM).","type":"array","default":[],"items":{"type":"object","required":["name"],"properties":{"name":{"description":"The name of the GPU resource to attach.","type":"string"}}}},"instanceProfile":{"description":"Virtual Machine preferences profile.","type":"string","default":"ubuntu","enum":["alpine","centos.7","centos.7.desktop","centos.stream10","centos.stream10.desktop","centos.stream8","centos.stream8.desktop","centos.stream8.dpdk","centos.stream9","centos.stream9.desktop","centos.stream9.dpdk","cirros","fedora","fedora.arm64","opensuse.leap","opensuse.tumbleweed","rhel.10","rhel.10.arm64","rhel.7","rhel.7.desktop","rhel.8","rhel.8.desktop","rhel.8.dpdk","rhel.9","rhel.9.arm64","rhel.9.desktop","rhel.9.dpdk","rhel.9.realtime","sles","ubuntu","windows.10","windows.10.virtio","windows.11","windows.11.virtio","windows.2k16","windows.2k16.virtio","windows.2k19","windows.2k19.virtio","windows.2k22","windows.2k22.virtio","windows.2k25","windows.2k25.virtio",""]},"instanceType":{"description":"Virtual Machine instance type.","type":"string","default":"u1.medium"},"resources":{"description":"Resource configuration for the virtual machine.","type":"object","default":{},"properties":{"cpu":{"description":"Number of CPU cores allocated.","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":"Amount of memory allocated.","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},"sockets":{"description":"Number of CPU sockets (vCPU topology).","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}}},"running":{"description":"Determines if the virtual machine should be running.","type":"boolean","default":true},"sshKeys":{"description":"List of SSH public keys for authentication.","type":"array","default":[],"items":{"type":"string"}}}} release: prefix: vm-instance- labels: diff --git a/packages/system/cozystack-resource-definitions/cozyrds/vpn.yaml b/packages/system/cozystack-resource-definitions/cozyrds/vpn.yaml index 2d067fd1..59d940c0 100644 --- a/packages/system/cozystack-resource-definitions/cozyrds/vpn.yaml +++ b/packages/system/cozystack-resource-definitions/cozyrds/vpn.yaml @@ -8,7 +8,7 @@ spec: plural: vpns singular: vpn openAPISchema: |- - {"title":"Chart Values","type":"object","properties":{"external":{"description":"Enable external access from outside the cluster","type":"boolean","default":false},"externalIPs":{"description":"List of externalIPs for service. Optional. If not specified will use LoadBalancer service by default.","type":"array","default":[],"items":{"type":"string"}},"host":{"description":"Host used to substitute into generated URLs","type":"string"},"replicas":{"description":"Number of VPN server replicas","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each VPN server replica. When left empty, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica","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 (RAM) available to each replica","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"]},"users":{"description":"Users configuration","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user, autogenerated if none provided","type":"string"}}}}}} + {"title":"Chart Values","type":"object","properties":{"external":{"description":"Enable external access from outside the cluster.","type":"boolean","default":false},"externalIPs":{"description":"List of externalIPs for service. Optional. If not specified, will use LoadBalancer service by default.","type":"array","default":[],"items":{"type":"string"}},"host":{"description":"Host used to substitute into generated URLs.","type":"string","default":""},"replicas":{"description":"Number of VPN server replicas.","type":"integer","default":2},"resources":{"description":"Explicit CPU and memory configuration for each VPN server replica. When omitted, the preset defined in `resourcesPreset` is applied.","type":"object","default":{},"properties":{"cpu":{"description":"CPU available to each replica.","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 (RAM) available to each replica.","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.","type":"string","default":"nano","enum":["nano","micro","small","medium","large","xlarge","2xlarge"]},"users":{"description":"Users configuration map.","type":"object","default":{},"additionalProperties":{"type":"object","properties":{"password":{"description":"Password for the user (autogenerated if not provided).","type":"string"}}}}}} release: prefix: vpn- labels: