mirror of
https://github.com/cozystack/cozystack.git
synced 2026-11-09 14:02:56 +09:00
Which Service actually receives the address depends on the replica count: the operator publishes the cluster Service for a single replica and primaryService once there are more, and the chart already branches on exactly that. The claim annotation follows the same branch, so a tenant writes one entry either way. Assisted-by: LLM Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
293 lines
8.8 KiB
JSON
293 lines
8.8 KiB
JSON
{
|
|
"title": "Chart Values",
|
|
"type": "object",
|
|
"properties": {
|
|
"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": "t1.nano",
|
|
"enum": [
|
|
"t1.nano",
|
|
"t1.micro",
|
|
"t1.small",
|
|
"t1.medium",
|
|
"t1.large",
|
|
"t1.xlarge",
|
|
"t1.2xlarge",
|
|
"t1.4xlarge",
|
|
"c1.nano",
|
|
"c1.micro",
|
|
"c1.small",
|
|
"c1.medium",
|
|
"c1.large",
|
|
"c1.xlarge",
|
|
"c1.2xlarge",
|
|
"c1.4xlarge",
|
|
"s1.nano",
|
|
"s1.micro",
|
|
"s1.small",
|
|
"s1.medium",
|
|
"s1.large",
|
|
"s1.xlarge",
|
|
"s1.2xlarge",
|
|
"s1.4xlarge",
|
|
"u1.nano",
|
|
"u1.micro",
|
|
"u1.small",
|
|
"u1.medium",
|
|
"u1.large",
|
|
"u1.xlarge",
|
|
"u1.2xlarge",
|
|
"u1.4xlarge",
|
|
"m1.nano",
|
|
"m1.micro",
|
|
"m1.small",
|
|
"m1.medium",
|
|
"m1.large",
|
|
"m1.xlarge",
|
|
"m1.2xlarge",
|
|
"m1.4xlarge",
|
|
"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": "",
|
|
"x-kubernetes-validations": [
|
|
{
|
|
"rule": "self == oldSelf",
|
|
"message": "storageClass is immutable"
|
|
}
|
|
],
|
|
"x-cozystack-options": {
|
|
"source": "storageclass"
|
|
}
|
|
},
|
|
"external": {
|
|
"description": "Enable external access from outside the cluster.",
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"externalIPs": {
|
|
"description": "Reserved addresses for the endpoints `external: true` publishes. Each entry pins one endpoint to an address held by an IPAddressClaim, so the address survives a rebuild of this application. Empty lets the load balancer assign any free address, as before.",
|
|
"type": "array",
|
|
"default": [],
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"claim"
|
|
],
|
|
"properties": {
|
|
"claim": {
|
|
"description": "Name of an IPAddressClaim in this namespace whose address the endpoint should wear. Until the claim binds, the endpoint keeps whatever address the load balancer assigned.",
|
|
"type": "string"
|
|
},
|
|
"target": {
|
|
"description": "Which external endpoint to pin. `primary` is the read-write endpoint, the endpoint `external: true` publishes, and is the default.",
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tls": {
|
|
"description": "TLS configuration. Selects who issues the certificates and whether plaintext is refused; TLS itself is always served.",
|
|
"type": "object",
|
|
"default": {},
|
|
"properties": {
|
|
"issuer": {
|
|
"description": "Who issues the server certificate: `operator` uses the CA mariadb-operator manages itself, `cert-manager` gives the instance its own CA and is what covers the external hostname. Named for the issuer because TLS is served under both, unlike the similarly-spelled `tls.enabled` in some other charts, which does switch TLS on and off.",
|
|
"type": "string",
|
|
"default": "operator",
|
|
"enum": [
|
|
"operator",
|
|
"cert-manager"
|
|
]
|
|
},
|
|
"required": {
|
|
"description": "Refuse plaintext connections (sets MariaDB require_secure_transport=ON). Applies under either issuer. Opt-in: turn it on once every client connects over TLS, since it disconnects those that do not.",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"version": {
|
|
"description": "MariaDB major.minor version to deploy",
|
|
"type": "string",
|
|
"default": "v11.8",
|
|
"enum": [
|
|
"v11.8",
|
|
"v11.4",
|
|
"v10.11",
|
|
"v10.6"
|
|
]
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"backup": {
|
|
"description": "DEPRECATED: Backup configuration. Prefer the BackupClass / Plan flow under examples/backups/mariadb/.",
|
|
"type": "object",
|
|
"default": {},
|
|
"required": [
|
|
"cleanupStrategy",
|
|
"enabled",
|
|
"resticPassword",
|
|
"s3AccessKey",
|
|
"s3Bucket",
|
|
"s3Region",
|
|
"s3SecretKey",
|
|
"schedule"
|
|
],
|
|
"properties": {
|
|
"cleanupStrategy": {
|
|
"description": "DEPRECATED: Retention strategy for cleaning up old backups.",
|
|
"type": "string",
|
|
"default": "--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"
|
|
},
|
|
"enabled": {
|
|
"description": "DEPRECATED: Enable regular backups (default: false).",
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"resticPassword": {
|
|
"description": "DEPRECATED: Password for Restic backup encryption.",
|
|
"type": "string",
|
|
"default": "\u003cpassword\u003e"
|
|
},
|
|
"s3AccessKey": {
|
|
"description": "DEPRECATED: Access key for S3 authentication.",
|
|
"type": "string",
|
|
"default": "\u003cyour-access-key\u003e"
|
|
},
|
|
"s3Bucket": {
|
|
"description": "DEPRECATED: S3 bucket used for storing backups.",
|
|
"type": "string",
|
|
"default": "s3.example.org/mariadb-backups"
|
|
},
|
|
"s3Region": {
|
|
"description": "DEPRECATED: AWS S3 region where backups are stored.",
|
|
"type": "string",
|
|
"default": "us-east-1"
|
|
},
|
|
"s3SecretKey": {
|
|
"description": "DEPRECATED: Secret key for S3 authentication.",
|
|
"type": "string",
|
|
"default": "\u003cyour-secret-key\u003e"
|
|
},
|
|
"schedule": {
|
|
"description": "DEPRECATED: Cron schedule for automated backups.",
|
|
"type": "string",
|
|
"default": "0 2 * * *"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|