freeleaps-ops/freeleaps/helm-pkg/3rd/redis/values.schema.json
zhenyus 6a264a1c28 feat: add Redis chart with common dependencies and templates
Signed-off-by: zhenyus <zhenyus@mathmast.com>
2025-03-08 22:01:08 +08:00

3297 lines
150 KiB
JSON

{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"global": {
"type": "object",
"properties": {
"imageRegistry": {
"type": "string",
"description": "Global Docker image registry",
"default": ""
},
"imagePullSecrets": {
"type": "array",
"description": "Global Docker registry secret names as an array",
"default": [],
"items": {}
},
"defaultStorageClass": {
"type": "string",
"description": "Global default StorageClass for Persistent Volume(s)",
"default": ""
},
"storageClass": {
"type": "string",
"description": "DEPRECATED: use global.defaultStorageClass instead",
"default": ""
},
"redis": {
"type": "object",
"properties": {
"password": {
"type": "string",
"description": "Global Redis&reg; password (overrides `auth.password`)",
"default": ""
}
}
},
"compatibility": {
"type": "object",
"properties": {
"openshift": {
"type": "object",
"properties": {
"adaptSecurityContext": {
"type": "string",
"description": "Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)",
"default": "auto"
}
}
}
}
}
}
},
"kubeVersion": {
"type": "string",
"description": "Override Kubernetes version",
"default": ""
},
"nameOverride": {
"type": "string",
"description": "String to partially override common.names.fullname",
"default": ""
},
"fullnameOverride": {
"type": "string",
"description": "String to fully override common.names.fullname",
"default": ""
},
"namespaceOverride": {
"type": "string",
"description": "String to fully override common.names.namespace",
"default": ""
},
"commonLabels": {
"type": ["object", "string"],
"description": "Labels to add to all deployed objects",
"default": {}
},
"commonAnnotations": {
"type": ["object", "string"],
"description": "Annotations to add to all deployed objects",
"default": {}
},
"secretAnnotations": {
"type": ["object", "string"],
"description": "Annotations to add to secret",
"default": {}
},
"clusterDomain": {
"type": "string",
"description": "Kubernetes cluster domain name",
"default": "cluster.local"
},
"extraDeploy": {
"type": "array",
"description": "Array of extra objects to deploy with the release",
"default": [],
"items": {}
},
"useHostnames": {
"type": "boolean",
"description": "Use hostnames internally when announcing replication. If false, the hostname will be resolved to an IP address",
"default": true
},
"nameResolutionThreshold": {
"type": "number",
"description": "Failure threshold for internal hostnames resolution",
"default": 5
},
"nameResolutionTimeout": {
"type": "number",
"description": "Timeout seconds between probes for internal hostnames resolution",
"default": 5
},
"diagnosticMode": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable diagnostic mode (all probes will be disabled and the command will be overridden)",
"default": false
},
"command": {
"type": ["array", "string"],
"description": "Command to override all containers in the deployment",
"default": [
"sleep"
],
"items": {
"type": "string"
}
},
"args": {
"type": ["array", "string"],
"description": "Args to override all containers in the deployment",
"default": [
"infinity"
],
"items": {
"type": "string"
}
}
}
},
"image": {
"type": "object",
"properties": {
"registry": {
"type": "string",
"description": "Redis&reg; image registry",
"default": "REGISTRY_NAME"
},
"repository": {
"type": "string",
"description": "Redis&reg; image repository",
"default": "REPOSITORY_NAME/redis"
},
"digest": {
"type": "string",
"description": "Redis&reg; image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag",
"default": ""
},
"pullPolicy": {
"type": "string",
"description": "Redis&reg; image pull policy",
"default": "IfNotPresent"
},
"pullSecrets": {
"type": "array",
"description": "Redis&reg; image pull secrets",
"default": [],
"items": {}
},
"debug": {
"type": "boolean",
"description": "Enable image debug mode",
"default": false
}
}
},
"architecture": {
"type": "string",
"description": "Redis&reg; architecture. Allowed values: `standalone` or `replication`",
"default": "replication"
},
"auth": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable password authentication",
"default": true
},
"sentinel": {
"type": "boolean",
"description": "Enable password authentication on sentinels too",
"default": true
},
"password": {
"type": "string",
"description": "Redis&reg; password",
"default": ""
},
"existingSecret": {
"type": "string",
"description": "The name of an existing secret with Redis&reg; credentials",
"default": ""
},
"existingSecretPasswordKey": {
"type": "string",
"description": "Password key to be retrieved from existing secret",
"default": ""
},
"usePasswordFiles": {
"type": "boolean",
"description": "Mount credentials as files instead of using an environment variable",
"default": false
},
"usePasswordFileFromSecret": {
"type": "boolean",
"description": "Mount password file from secret",
"default": true
},
"acl": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables the support of the Redis ACL system",
"default": false
},
"users": {
"type": "array",
"description": "A list of the configured users in the Redis ACL system",
"default": [],
"items": {}
}
}
}
}
},
"commonConfiguration": {
"type": "string",
"description": "Common configuration to be added into the ConfigMap",
"default": "\"\""
},
"existingConfigmap": {
"type": "string",
"description": "The name of an existing ConfigMap with your custom configuration for Redis&reg; nodes",
"default": ""
},
"master": {
"type": "object",
"properties": {
"count": {
"type": "number",
"description": "Number of Redis&reg; master instances to deploy (experimental, requires additional configuration)",
"default": 1
},
"revisionHistoryLimit": {
"type": "number",
"description": "The number of old history to retain to allow rollback",
"default": 10
},
"configuration": {
"type": "string",
"description": "Configuration for Redis&reg; master nodes",
"default": ""
},
"disableCommands": {
"type": "array",
"description": "Array with Redis&reg; commands to disable on master nodes",
"default": [
"FLUSHDB",
"FLUSHALL"
],
"items": {
"type": "string"
}
},
"command": {
"type": ["array", "string"],
"description": "Override default container command (useful when using custom images)",
"default": [],
"items": {}
},
"args": {
"type": ["array", "string"],
"description": "Override default container args (useful when using custom images)",
"default": [],
"items": {}
},
"enableServiceLinks": {
"type": "boolean",
"description": "Whether information about services should be injected into pod's environment variable",
"default": true
},
"preExecCmds": {
"type": "array",
"description": "Additional commands to run prior to starting Redis&reg; master",
"default": [],
"items": {}
},
"extraFlags": {
"type": "array",
"description": "Array with additional command line flags for Redis&reg; master",
"default": [],
"items": {}
},
"extraEnvVars": {
"type": ["array", "string"],
"description": "Array with extra environment variables to add to Redis&reg; master nodes",
"default": [],
"items": {}
},
"extraEnvVarsCM": {
"type": "string",
"description": "Name of existing ConfigMap containing extra env vars for Redis&reg; master nodes",
"default": ""
},
"extraEnvVarsSecret": {
"type": "string",
"description": "Name of existing Secret containing extra env vars for Redis&reg; master nodes",
"default": ""
},
"containerPorts": {
"type": "object",
"properties": {
"redis": {
"type": "number",
"description": "Container port to open on Redis&reg; master nodes",
"default": 6379
}
}
},
"startupProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable startupProbe on Redis&reg; master nodes",
"default": false
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for startupProbe",
"default": 20
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for startupProbe",
"default": 5
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for startupProbe",
"default": 5
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for startupProbe",
"default": 5
},
"successThreshold": {
"type": "number",
"description": "Success threshold for startupProbe",
"default": 1
}
}
},
"livenessProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable livenessProbe on Redis&reg; master nodes",
"default": true
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for livenessProbe",
"default": 20
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for livenessProbe",
"default": 5
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for livenessProbe",
"default": 5
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for livenessProbe",
"default": 5
},
"successThreshold": {
"type": "number",
"description": "Success threshold for livenessProbe",
"default": 1
}
}
},
"readinessProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable readinessProbe on Redis&reg; master nodes",
"default": true
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for readinessProbe",
"default": 20
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for readinessProbe",
"default": 5
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for readinessProbe",
"default": 1
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for readinessProbe",
"default": 5
},
"successThreshold": {
"type": "number",
"description": "Success threshold for readinessProbe",
"default": 1
}
}
},
"customStartupProbe": {
"type": ["object", "string"],
"description": "Custom startupProbe that overrides the default one",
"default": {}
},
"customLivenessProbe": {
"type": ["object", "string"],
"description": "Custom livenessProbe that overrides the default one",
"default": {}
},
"customReadinessProbe": {
"type": ["object", "string"],
"description": "Custom readinessProbe that overrides the default one",
"default": {}
},
"resourcesPreset": {
"type": "string",
"description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if master.resources is set (master.resources is recommended for production).",
"default": "nano"
},
"resources": {
"type": "object",
"description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)",
"default": {}
},
"podSecurityContext": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enabled Redis&reg; master pods' Security Context",
"default": true
},
"fsGroupChangePolicy": {
"type": "string",
"description": "Set filesystem group change policy",
"default": "Always"
},
"sysctls": {
"type": "array",
"description": "Set kernel settings using the sysctl interface",
"default": [],
"items": {}
},
"supplementalGroups": {
"type": "array",
"description": "Set filesystem extra groups",
"default": [],
"items": {}
},
"fsGroup": {
"type": "number",
"description": "Set Redis&reg; master pod's Security Context fsGroup",
"default": 1001
}
}
},
"containerSecurityContext": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enabled Redis&reg; master containers' Security Context",
"default": true
},
"runAsUser": {
"type": "number",
"description": "Set Redis&reg; master containers' Security Context runAsUser",
"default": 1001
},
"runAsGroup": {
"type": "number",
"description": "Set Redis&reg; master containers' Security Context runAsGroup",
"default": 1001
},
"runAsNonRoot": {
"type": "boolean",
"description": "Set Redis&reg; master containers' Security Context runAsNonRoot",
"default": true
},
"allowPrivilegeEscalation": {
"type": "boolean",
"description": "Is it possible to escalate Redis&reg; pod(s) privileges",
"default": false
},
"readOnlyRootFilesystem": {
"type": "boolean",
"description": "Set container's Security Context read-only root filesystem",
"default": true
},
"seccompProfile": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Set Redis&reg; master containers' Security Context seccompProfile",
"default": "RuntimeDefault"
}
}
},
"capabilities": {
"type": "object",
"properties": {
"drop": {
"type": "array",
"description": "Set Redis&reg; master containers' Security Context capabilities to drop",
"default": [
"ALL"
],
"items": {
"type": "string"
}
}
}
}
}
},
"kind": {
"type": "string",
"description": "Use either Deployment, StatefulSet (default) or DaemonSet",
"default": "StatefulSet"
},
"schedulerName": {
"type": "string",
"description": "Alternate scheduler for Redis&reg; master pods",
"default": ""
},
"updateStrategy": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Redis&reg; master statefulset strategy type",
"default": "RollingUpdate"
}
}
},
"minReadySeconds": {
"type": "number",
"description": "How many seconds a pod needs to be ready before killing the next, during update",
"default": 0
},
"priorityClassName": {
"type": "string",
"description": "Redis&reg; master pods' priorityClassName",
"default": ""
},
"automountServiceAccountToken": {
"type": "boolean",
"description": "Mount Service Account token in pod",
"default": false
},
"hostAliases": {
"type": ["array", "string"],
"description": "Redis&reg; master pods host aliases",
"default": [],
"items": {}
},
"podLabels": {
"type": "object",
"description": "Extra labels for Redis&reg; master pods",
"default": {}
},
"podAnnotations": {
"type": ["object", "string"],
"description": "Annotations for Redis&reg; master pods",
"default": {}
},
"shareProcessNamespace": {
"type": "boolean",
"description": "Share a single process namespace between all of the containers in Redis&reg; master pods",
"default": false
},
"podAffinityPreset": {
"type": "string",
"description": "Pod affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`",
"default": ""
},
"podAntiAffinityPreset": {
"type": "string",
"description": "Pod anti-affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`",
"default": "soft"
},
"nodeAffinityPreset": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Node affinity preset type. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`",
"default": ""
},
"key": {
"type": "string",
"description": "Node label key to match. Ignored if `master.affinity` is set",
"default": ""
},
"values": {
"type": "array",
"description": "Node label values to match. Ignored if `master.affinity` is set",
"default": [],
"items": {}
}
}
},
"affinity": {
"type": ["object", "string"],
"description": "Affinity for Redis&reg; master pods assignment",
"default": {}
},
"nodeSelector": {
"type": ["object", "string"],
"description": "Node labels for Redis&reg; master pods assignment",
"default": {}
},
"tolerations": {
"type": ["array", "string"],
"description": "Tolerations for Redis&reg; master pods assignment",
"default": [],
"items": {}
},
"topologySpreadConstraints": {
"type": ["array", "string"],
"description": "Spread Constraints for Redis&reg; master pod assignment",
"default": [],
"items": {}
},
"dnsPolicy": {
"type": "string",
"description": "DNS Policy for Redis&reg; master pod",
"default": ""
},
"dnsConfig": {
"type": ["object", "string"],
"description": "DNS Configuration for Redis&reg; master pod",
"default": {}
},
"lifecycleHooks": {
"type": ["object", "string"],
"description": "for the Redis&reg; master container(s) to automate configuration before or after startup",
"default": {}
},
"extraVolumes": {
"type": ["array", "string"],
"description": "Optionally specify extra list of additional volumes for the Redis&reg; master pod(s)",
"default": [],
"items": {}
},
"extraVolumeMounts": {
"type": ["array", "string"],
"description": "Optionally specify extra list of additional volumeMounts for the Redis&reg; master container(s)",
"default": [],
"items": {}
},
"sidecars": {
"type": ["array", "string"],
"description": "Add additional sidecar containers to the Redis&reg; master pod(s)",
"default": [],
"items": {}
},
"initContainers": {
"type": ["array", "string"],
"description": "Add additional init containers to the Redis&reg; master pod(s)",
"default": [],
"items": {}
},
"persistence": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable persistence on Redis&reg; master nodes using Persistent Volume Claims",
"default": true
},
"medium": {
"type": "string",
"description": "Provide a medium for `emptyDir` volumes.",
"default": ""
},
"sizeLimit": {
"type": "string",
"description": "Set this to enable a size limit for `emptyDir` volumes.",
"default": ""
},
"path": {
"type": "string",
"description": "The path the volume will be mounted at on Redis&reg; master containers",
"default": "/data"
},
"subPath": {
"type": "string",
"description": "The subdirectory of the volume to mount on Redis&reg; master containers",
"default": ""
},
"subPathExpr": {
"type": "string",
"description": "Used to construct the subPath subdirectory of the volume to mount on Redis&reg; master containers",
"default": ""
},
"storageClass": {
"type": "string",
"description": "Persistent Volume storage class",
"default": ""
},
"accessModes": {
"type": "array",
"description": "Persistent Volume access modes",
"default": [
"ReadWriteOnce"
],
"items": {
"type": "string"
}
},
"size": {
"type": "string",
"description": "Persistent Volume size",
"default": "8Gi"
},
"annotations": {
"type": "object",
"description": "Additional custom annotations for the PVC",
"default": {}
},
"labels": {
"type": ["object", "string"],
"description": "Additional custom labels for the PVC",
"default": {}
},
"selector": {
"type": ["object", "string"],
"description": "Additional labels to match for the PVC",
"default": {}
},
"dataSource": {
"type": ["object", "string"],
"description": "Custom PVC data source",
"default": {}
},
"existingClaim": {
"type": "string",
"description": "Use a existing PVC which must be created manually before bound",
"default": ""
}
}
},
"persistentVolumeClaimRetentionPolicy": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Controls if and how PVCs are deleted during the lifecycle of a StatefulSet",
"default": false
},
"whenScaled": {
"type": "string",
"description": "Volume retention behavior when the replica count of the StatefulSet is reduced",
"default": "Retain"
},
"whenDeleted": {
"type": "string",
"description": "Volume retention behavior that applies when the StatefulSet is deleted",
"default": "Retain"
}
}
},
"service": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Redis&reg; master service type",
"default": "ClusterIP"
},
"portNames": {
"type": "object",
"properties": {
"redis": {
"type": "string",
"description": "Redis&reg; master service port name",
"default": "tcp-redis"
}
}
},
"ports": {
"type": "object",
"properties": {
"redis": {
"type": "number",
"description": "Redis&reg; master service port",
"default": 6379
}
}
},
"nodePorts": {
"type": "object",
"properties": {
"redis": {
"type": "string",
"description": "Node port for Redis&reg; master",
"default": ""
}
}
},
"externalTrafficPolicy": {
"type": "string",
"description": "Redis&reg; master service external traffic policy",
"default": "Cluster"
},
"extraPorts": {
"type": ["array", "string"],
"description": "Extra ports to expose (normally used with the `sidecar` value)",
"default": [],
"items": {}
},
"internalTrafficPolicy": {
"type": "string",
"description": "Redis&reg; master service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)",
"default": "Cluster"
},
"clusterIP": {
"type": "string",
"description": "Redis&reg; master service Cluster IP",
"default": ""
},
"loadBalancerIP": {
"type": "string",
"description": "Redis&reg; master service Load Balancer IP",
"default": ""
},
"loadBalancerClass": {
"type": "string",
"description": "master service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)",
"default": ""
},
"loadBalancerSourceRanges": {
"type": "array",
"description": "Redis&reg; master service Load Balancer sources",
"default": [],
"items": {}
},
"externalIPs": {
"type": ["array", "string"],
"description": "Redis&reg; master service External IPs",
"default": [],
"items": {}
},
"annotations": {
"type": ["object", "string"],
"description": "Additional custom annotations for Redis&reg; master service",
"default": {}
},
"sessionAffinity": {
"type": "string",
"description": "Session Affinity for Kubernetes service, can be \"None\" or \"ClientIP\"",
"default": "None"
},
"sessionAffinityConfig": {
"type": ["object", "string"],
"description": "Additional settings for the sessionAffinity",
"default": {}
}
}
},
"terminationGracePeriodSeconds": {
"type": "number",
"description": "Integer setting the termination grace period for the redis-master pods",
"default": 30
},
"serviceAccount": {
"type": "object",
"properties": {
"create": {
"type": "boolean",
"description": "Specifies whether a ServiceAccount should be created",
"default": true
},
"name": {
"type": "string",
"description": "The name of the ServiceAccount to use.",
"default": ""
},
"automountServiceAccountToken": {
"type": "boolean",
"description": "Whether to auto mount the service account token",
"default": false
},
"annotations": {
"type": ["object", "string"],
"description": "Additional custom annotations for the ServiceAccount",
"default": {}
}
}
},
"pdb": {
"type": "object",
"properties": {
"create": {
"type": "boolean",
"description": "Enable/disable a Pod Disruption Budget creation",
"default": true
}
}
}
}
},
"replica": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"description": "Use either DaemonSet or StatefulSet (default)",
"default": "StatefulSet"
},
"replicaCount": {
"type": "number",
"description": "Number of Redis&reg; replicas to deploy",
"default": 3
},
"revisionHistoryLimit": {
"type": "number",
"description": "The number of old history to retain to allow rollback",
"default": 10
},
"configuration": {
"type": "string",
"description": "Configuration for Redis&reg; replicas nodes",
"default": ""
},
"disableCommands": {
"type": "array",
"description": "Array with Redis&reg; commands to disable on replicas nodes",
"default": [
"FLUSHDB",
"FLUSHALL"
],
"items": {
"type": "string"
}
},
"command": {
"type": ["array", "string"],
"description": "Override default container command (useful when using custom images)",
"default": [],
"items": {}
},
"args": {
"type": ["array", "string"],
"description": "Override default container args (useful when using custom images)",
"default": [],
"items": {}
},
"enableServiceLinks": {
"type": "boolean",
"description": "Whether information about services should be injected into pod's environment variable",
"default": true
},
"preExecCmds": {
"type": "array",
"description": "Additional commands to run prior to starting Redis&reg; replicas",
"default": [],
"items": {}
},
"extraFlags": {
"type": "array",
"description": "Array with additional command line flags for Redis&reg; replicas",
"default": [],
"items": {}
},
"extraEnvVars": {
"type": ["array", "string"],
"description": "Array with extra environment variables to add to Redis&reg; replicas nodes",
"default": [],
"items": {}
},
"extraEnvVarsCM": {
"type": "string",
"description": "Name of existing ConfigMap containing extra env vars for Redis&reg; replicas nodes",
"default": ""
},
"extraEnvVarsSecret": {
"type": "string",
"description": "Name of existing Secret containing extra env vars for Redis&reg; replicas nodes",
"default": ""
},
"externalMaster": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Use external master for bootstrapping",
"default": false
},
"host": {
"type": "string",
"description": "External master host to bootstrap from",
"default": ""
},
"port": {
"type": "number",
"description": "Port for Redis service external master host",
"default": 6379
}
}
},
"containerPorts": {
"type": "object",
"properties": {
"redis": {
"type": "number",
"description": "Container port to open on Redis&reg; replicas nodes",
"default": 6379
}
}
},
"startupProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable startupProbe on Redis&reg; replicas nodes",
"default": true
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for startupProbe",
"default": 10
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for startupProbe",
"default": 10
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for startupProbe",
"default": 5
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for startupProbe",
"default": 22
},
"successThreshold": {
"type": "number",
"description": "Success threshold for startupProbe",
"default": 1
}
}
},
"livenessProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable livenessProbe on Redis&reg; replicas nodes",
"default": true
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for livenessProbe",
"default": 20
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for livenessProbe",
"default": 5
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for livenessProbe",
"default": 5
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for livenessProbe",
"default": 5
},
"successThreshold": {
"type": "number",
"description": "Success threshold for livenessProbe",
"default": 1
}
}
},
"readinessProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable readinessProbe on Redis&reg; replicas nodes",
"default": true
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for readinessProbe",
"default": 20
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for readinessProbe",
"default": 5
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for readinessProbe",
"default": 1
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for readinessProbe",
"default": 5
},
"successThreshold": {
"type": "number",
"description": "Success threshold for readinessProbe",
"default": 1
}
}
},
"customStartupProbe": {
"type": ["object", "string"],
"description": "Custom startupProbe that overrides the default one",
"default": {}
},
"customLivenessProbe": {
"type": ["object", "string"],
"description": "Custom livenessProbe that overrides the default one",
"default": {}
},
"customReadinessProbe": {
"type": ["object", "string"],
"description": "Custom readinessProbe that overrides the default one",
"default": {}
},
"resourcesPreset": {
"type": "string",
"description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if replica.resources is set (replica.resources is recommended for production).",
"default": "nano"
},
"resources": {
"type": "object",
"description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)",
"default": {}
},
"podSecurityContext": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enabled Redis&reg; replicas pods' Security Context",
"default": true
},
"fsGroupChangePolicy": {
"type": "string",
"description": "Set filesystem group change policy",
"default": "Always"
},
"sysctls": {
"type": "array",
"description": "Set kernel settings using the sysctl interface",
"default": [],
"items": {}
},
"supplementalGroups": {
"type": "array",
"description": "Set filesystem extra groups",
"default": [],
"items": {}
},
"fsGroup": {
"type": "number",
"description": "Set Redis&reg; replicas pod's Security Context fsGroup",
"default": 1001
}
}
},
"containerSecurityContext": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enabled Redis&reg; replicas containers' Security Context",
"default": true
},
"runAsUser": {
"type": "number",
"description": "Set Redis&reg; replicas containers' Security Context runAsUser",
"default": 1001
},
"runAsGroup": {
"type": "number",
"description": "Set Redis&reg; replicas containers' Security Context runAsGroup",
"default": 1001
},
"runAsNonRoot": {
"type": "boolean",
"description": "Set Redis&reg; replicas containers' Security Context runAsNonRoot",
"default": true
},
"allowPrivilegeEscalation": {
"type": "boolean",
"description": "Set Redis&reg; replicas pod's Security Context allowPrivilegeEscalation",
"default": false
},
"readOnlyRootFilesystem": {
"type": "boolean",
"description": "Set container's Security Context read-only root filesystem",
"default": true
},
"seccompProfile": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Set Redis&reg; replicas containers' Security Context seccompProfile",
"default": "RuntimeDefault"
}
}
},
"capabilities": {
"type": "object",
"properties": {
"drop": {
"type": "array",
"description": "Set Redis&reg; replicas containers' Security Context capabilities to drop",
"default": [
"ALL"
],
"items": {
"type": "string"
}
}
}
}
}
},
"schedulerName": {
"type": "string",
"description": "Alternate scheduler for Redis&reg; replicas pods",
"default": ""
},
"updateStrategy": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Redis&reg; replicas statefulset strategy type",
"default": "RollingUpdate"
}
}
},
"minReadySeconds": {
"type": "number",
"description": "How many seconds a pod needs to be ready before killing the next, during update",
"default": 0
},
"priorityClassName": {
"type": "string",
"description": "Redis&reg; replicas pods' priorityClassName",
"default": ""
},
"podManagementPolicy": {
"type": "string",
"description": "podManagementPolicy to manage scaling operation of %%MAIN_CONTAINER_NAME%% pods",
"default": ""
},
"automountServiceAccountToken": {
"type": "boolean",
"description": "Mount Service Account token in pod",
"default": false
},
"hostAliases": {
"type": ["array", "string"],
"description": "Redis&reg; replicas pods host aliases",
"default": [],
"items": {}
},
"podLabels": {
"type": "object",
"description": "Extra labels for Redis&reg; replicas pods",
"default": {}
},
"podAnnotations": {
"type": ["object", "string"],
"description": "Annotations for Redis&reg; replicas pods",
"default": {}
},
"shareProcessNamespace": {
"type": "boolean",
"description": "Share a single process namespace between all of the containers in Redis&reg; replicas pods",
"default": false
},
"podAffinityPreset": {
"type": "string",
"description": "Pod affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`",
"default": ""
},
"podAntiAffinityPreset": {
"type": "string",
"description": "Pod anti-affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`",
"default": "soft"
},
"nodeAffinityPreset": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Node affinity preset type. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`",
"default": ""
},
"key": {
"type": "string",
"description": "Node label key to match. Ignored if `replica.affinity` is set",
"default": ""
},
"values": {
"type": "array",
"description": "Node label values to match. Ignored if `replica.affinity` is set",
"default": [],
"items": {}
}
}
},
"affinity": {
"type": ["object", "string"],
"description": "Affinity for Redis&reg; replicas pods assignment",
"default": {}
},
"nodeSelector": {
"type": ["object", "string"],
"description": "Node labels for Redis&reg; replicas pods assignment",
"default": {}
},
"tolerations": {
"type": ["array", "string"],
"description": "Tolerations for Redis&reg; replicas pods assignment",
"default": [],
"items": {}
},
"topologySpreadConstraints": {
"type": ["array", "string"],
"description": "Spread Constraints for Redis&reg; replicas pod assignment",
"default": [],
"items": {}
},
"dnsPolicy": {
"type": "string",
"description": "DNS Policy for Redis&reg; replica pods",
"default": ""
},
"dnsConfig": {
"type": ["object", "string"],
"description": "DNS Configuration for Redis&reg; replica pods",
"default": {}
},
"lifecycleHooks": {
"type": ["object", "string"],
"description": "for the Redis&reg; replica container(s) to automate configuration before or after startup",
"default": {}
},
"extraVolumes": {
"type": ["array", "string"],
"description": "Optionally specify extra list of additional volumes for the Redis&reg; replicas pod(s)",
"default": [],
"items": {}
},
"extraVolumeMounts": {
"type": ["array", "string"],
"description": "Optionally specify extra list of additional volumeMounts for the Redis&reg; replicas container(s)",
"default": [],
"items": {}
},
"sidecars": {
"type": ["array", "string"],
"description": "Add additional sidecar containers to the Redis&reg; replicas pod(s)",
"default": [],
"items": {}
},
"initContainers": {
"type": ["array", "string"],
"description": "Add additional init containers to the Redis&reg; replicas pod(s)",
"default": [],
"items": {}
},
"persistence": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable persistence on Redis&reg; replicas nodes using Persistent Volume Claims",
"default": true
},
"medium": {
"type": "string",
"description": "Provide a medium for `emptyDir` volumes.",
"default": ""
},
"sizeLimit": {
"type": "string",
"description": "Set this to enable a size limit for `emptyDir` volumes.",
"default": ""
},
"path": {
"type": "string",
"description": "The path the volume will be mounted at on Redis&reg; replicas containers",
"default": "/data"
},
"subPath": {
"type": "string",
"description": "The subdirectory of the volume to mount on Redis&reg; replicas containers",
"default": ""
},
"subPathExpr": {
"type": "string",
"description": "Used to construct the subPath subdirectory of the volume to mount on Redis&reg; replicas containers",
"default": ""
},
"storageClass": {
"type": "string",
"description": "Persistent Volume storage class",
"default": ""
},
"accessModes": {
"type": "array",
"description": "Persistent Volume access modes",
"default": [
"ReadWriteOnce"
],
"items": {
"type": "string"
}
},
"size": {
"type": "string",
"description": "Persistent Volume size",
"default": "8Gi"
},
"annotations": {
"type": "object",
"description": "Additional custom annotations for the PVC",
"default": {}
},
"labels": {
"type": ["object", "string"],
"description": "Additional custom labels for the PVC",
"default": {}
},
"selector": {
"type": ["object", "string"],
"description": "Additional labels to match for the PVC",
"default": {}
},
"dataSource": {
"type": ["object", "string"],
"description": "Custom PVC data source",
"default": {}
},
"existingClaim": {
"type": "string",
"description": "Use a existing PVC which must be created manually before bound",
"default": ""
}
}
},
"persistentVolumeClaimRetentionPolicy": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Controls if and how PVCs are deleted during the lifecycle of a StatefulSet",
"default": false
},
"whenScaled": {
"type": "string",
"description": "Volume retention behavior when the replica count of the StatefulSet is reduced",
"default": "Retain"
},
"whenDeleted": {
"type": "string",
"description": "Volume retention behavior that applies when the StatefulSet is deleted",
"default": "Retain"
}
}
},
"service": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Redis&reg; replicas service type",
"default": "ClusterIP"
},
"ports": {
"type": "object",
"properties": {
"redis": {
"type": "number",
"description": "Redis&reg; replicas service port",
"default": 6379
}
}
},
"nodePorts": {
"type": "object",
"properties": {
"redis": {
"type": "string",
"description": "Node port for Redis&reg; replicas",
"default": ""
}
}
},
"externalTrafficPolicy": {
"type": "string",
"description": "Redis&reg; replicas service external traffic policy",
"default": "Cluster"
},
"internalTrafficPolicy": {
"type": "string",
"description": "Redis&reg; replicas service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)",
"default": "Cluster"
},
"extraPorts": {
"type": ["array", "string"],
"description": "Extra ports to expose (normally used with the `sidecar` value)",
"default": [],
"items": {}
},
"clusterIP": {
"type": "string",
"description": "Redis&reg; replicas service Cluster IP",
"default": ""
},
"loadBalancerIP": {
"type": "string",
"description": "Redis&reg; replicas service Load Balancer IP",
"default": ""
},
"loadBalancerClass": {
"type": "string",
"description": "replicas service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)",
"default": ""
},
"loadBalancerSourceRanges": {
"type": "array",
"description": "Redis&reg; replicas service Load Balancer sources",
"default": [],
"items": {}
},
"annotations": {
"type": ["object", "string"],
"description": "Additional custom annotations for Redis&reg; replicas service",
"default": {}
},
"sessionAffinity": {
"type": "string",
"description": "Session Affinity for Kubernetes service, can be \"None\" or \"ClientIP\"",
"default": "None"
},
"sessionAffinityConfig": {
"type": ["object", "string"],
"description": "Additional settings for the sessionAffinity",
"default": {}
}
}
},
"terminationGracePeriodSeconds": {
"type": "number",
"description": "Integer setting the termination grace period for the redis-replicas pods",
"default": 30
},
"autoscaling": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable replica autoscaling settings",
"default": false
},
"minReplicas": {
"type": "number",
"description": "Minimum replicas for the pod autoscaling",
"default": 1
},
"maxReplicas": {
"type": "number",
"description": "Maximum replicas for the pod autoscaling",
"default": 11
},
"targetCPU": {
"type": "string",
"description": "Percentage of CPU to consider when autoscaling",
"default": ""
},
"targetMemory": {
"type": "string",
"description": "Percentage of Memory to consider when autoscaling",
"default": ""
}
}
},
"serviceAccount": {
"type": "object",
"properties": {
"create": {
"type": "boolean",
"description": "Specifies whether a ServiceAccount should be created",
"default": true
},
"name": {
"type": "string",
"description": "The name of the ServiceAccount to use.",
"default": ""
},
"automountServiceAccountToken": {
"type": "boolean",
"description": "Whether to auto mount the service account token",
"default": false
},
"annotations": {
"type": ["object", "string"],
"description": "Additional custom annotations for the ServiceAccount",
"default": {}
}
}
},
"pdb": {
"type": "object",
"properties": {
"create": {
"type": "boolean",
"description": "Enable/disable a Pod Disruption Budget creation",
"default": true
}
}
}
}
},
"sentinel": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Use Redis&reg; Sentinel on Redis&reg; pods.",
"default": false
},
"image": {
"type": "object",
"properties": {
"registry": {
"type": "string",
"description": "Redis&reg; Sentinel image registry",
"default": "REGISTRY_NAME"
},
"repository": {
"type": "string",
"description": "Redis&reg; Sentinel image repository",
"default": "REPOSITORY_NAME/redis-sentinel"
},
"digest": {
"type": "string",
"description": "Redis&reg; Sentinel image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag",
"default": ""
},
"pullPolicy": {
"type": "string",
"description": "Redis&reg; Sentinel image pull policy",
"default": "IfNotPresent"
},
"pullSecrets": {
"type": "array",
"description": "Redis&reg; Sentinel image pull secrets",
"default": [],
"items": {}
},
"debug": {
"type": "boolean",
"description": "Enable image debug mode",
"default": false
}
}
},
"annotations": {
"type": ["object", "string"],
"description": "Additional custom annotations for Redis&reg; Sentinel resource",
"default": {}
},
"masterSet": {
"type": "string",
"description": "Master set name",
"default": "mymaster"
},
"quorum": {
"type": "number",
"description": "Sentinel Quorum",
"default": 2
},
"getMasterTimeout": {
"type": "number",
"description": "Amount of time to allow before get_sentinel_master_info() times out.",
"default": 90
},
"automateClusterRecovery": {
"type": "boolean",
"description": "Automate cluster recovery in cases where the last replica is not considered a good replica and Sentinel won't automatically failover to it.",
"default": false
},
"redisShutdownWaitFailover": {
"type": "boolean",
"description": "Whether the Redis&reg; master container waits for the failover at shutdown (in addition to the Redis&reg; Sentinel container).",
"default": true
},
"downAfterMilliseconds": {
"type": "number",
"description": "Timeout for detecting a Redis&reg; node is down",
"default": 60000
},
"failoverTimeout": {
"type": "number",
"description": "Timeout for performing a election failover",
"default": 180000
},
"parallelSyncs": {
"type": "number",
"description": "Number of replicas that can be reconfigured in parallel to use the new master after a failover",
"default": 1
},
"configuration": {
"type": "string",
"description": "Configuration for Redis&reg; Sentinel nodes",
"default": ""
},
"command": {
"type": ["array", "string"],
"description": "Override default container command (useful when using custom images)",
"default": [],
"items": {}
},
"args": {
"type": ["array", "string"],
"description": "Override default container args (useful when using custom images)",
"default": [],
"items": {}
},
"enableServiceLinks": {
"type": "boolean",
"description": "Whether information about services should be injected into pod's environment variable",
"default": true
},
"preExecCmds": {
"type": "array",
"description": "Additional commands to run prior to starting Redis&reg; Sentinel",
"default": [],
"items": {}
},
"extraEnvVars": {
"type": ["array", "string"],
"description": "Array with extra environment variables to add to Redis&reg; Sentinel nodes",
"default": [],
"items": {}
},
"extraEnvVarsCM": {
"type": "string",
"description": "Name of existing ConfigMap containing extra env vars for Redis&reg; Sentinel nodes",
"default": ""
},
"extraEnvVarsSecret": {
"type": "string",
"description": "Name of existing Secret containing extra env vars for Redis&reg; Sentinel nodes",
"default": ""
},
"externalMaster": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Use external master for bootstrapping",
"default": false
},
"host": {
"type": "string",
"description": "External master host to bootstrap from",
"default": ""
},
"port": {
"type": "number",
"description": "Port for Redis service external master host",
"default": 6379
}
}
},
"containerPorts": {
"type": "object",
"properties": {
"sentinel": {
"type": "number",
"description": "Container port to open on Redis&reg; Sentinel nodes",
"default": 26379
}
}
},
"startupProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable startupProbe on Redis&reg; Sentinel nodes",
"default": true
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for startupProbe",
"default": 10
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for startupProbe",
"default": 10
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for startupProbe",
"default": 5
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for startupProbe",
"default": 22
},
"successThreshold": {
"type": "number",
"description": "Success threshold for startupProbe",
"default": 1
}
}
},
"livenessProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable livenessProbe on Redis&reg; Sentinel nodes",
"default": true
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for livenessProbe",
"default": 20
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for livenessProbe",
"default": 10
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for livenessProbe",
"default": 5
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for livenessProbe",
"default": 6
},
"successThreshold": {
"type": "number",
"description": "Success threshold for livenessProbe",
"default": 1
}
}
},
"readinessProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable readinessProbe on Redis&reg; Sentinel nodes",
"default": true
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for readinessProbe",
"default": 20
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for readinessProbe",
"default": 5
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for readinessProbe",
"default": 1
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for readinessProbe",
"default": 6
},
"successThreshold": {
"type": "number",
"description": "Success threshold for readinessProbe",
"default": 1
}
}
},
"customStartupProbe": {
"type": ["object", "string"],
"description": "Custom startupProbe that overrides the default one",
"default": {}
},
"customLivenessProbe": {
"type": ["object", "string"],
"description": "Custom livenessProbe that overrides the default one",
"default": {}
},
"customReadinessProbe": {
"type": ["object", "string"],
"description": "Custom readinessProbe that overrides the default one",
"default": {}
},
"persistence": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable persistence on Redis&reg; sentinel nodes using Persistent Volume Claims (Experimental)",
"default": false
},
"storageClass": {
"type": "string",
"description": "Persistent Volume storage class",
"default": ""
},
"accessModes": {
"type": "array",
"description": "Persistent Volume access modes",
"default": [
"ReadWriteOnce"
],
"items": {
"type": "string"
}
},
"size": {
"type": "string",
"description": "Persistent Volume size",
"default": "100Mi"
},
"annotations": {
"type": "object",
"description": "Additional custom annotations for the PVC",
"default": {}
},
"labels": {
"type": ["object", "string"],
"description": "Additional custom labels for the PVC",
"default": {}
},
"selector": {
"type": ["object", "string"],
"description": "Additional labels to match for the PVC",
"default": {}
},
"dataSource": {
"type": ["object", "string"],
"description": "Custom PVC data source",
"default": {}
},
"medium": {
"type": "string",
"description": "Provide a medium for `emptyDir` volumes.",
"default": ""
},
"sizeLimit": {
"type": "string",
"description": "Set this to enable a size limit for `emptyDir` volumes.",
"default": ""
}
}
},
"persistentVolumeClaimRetentionPolicy": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Controls if and how PVCs are deleted during the lifecycle of a StatefulSet",
"default": false
},
"whenScaled": {
"type": "string",
"description": "Volume retention behavior when the replica count of the StatefulSet is reduced",
"default": "Retain"
},
"whenDeleted": {
"type": "string",
"description": "Volume retention behavior that applies when the StatefulSet is deleted",
"default": "Retain"
}
}
},
"resourcesPreset": {
"type": "string",
"description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if sentinel.resources is set (sentinel.resources is recommended for production).",
"default": "nano"
},
"resources": {
"type": "object",
"description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)",
"default": {}
},
"containerSecurityContext": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enabled Redis&reg; Sentinel containers' Security Context",
"default": true
},
"runAsUser": {
"type": "number",
"description": "Set Redis&reg; Sentinel containers' Security Context runAsUser",
"default": 1001
},
"runAsGroup": {
"type": "number",
"description": "Set Redis&reg; Sentinel containers' Security Context runAsGroup",
"default": 1001
},
"runAsNonRoot": {
"type": "boolean",
"description": "Set Redis&reg; Sentinel containers' Security Context runAsNonRoot",
"default": true
},
"readOnlyRootFilesystem": {
"type": "boolean",
"description": "Set container's Security Context read-only root filesystem",
"default": true
},
"allowPrivilegeEscalation": {
"type": "boolean",
"description": "Set Redis&reg; Sentinel containers' Security Context allowPrivilegeEscalation",
"default": false
},
"seccompProfile": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Set Redis&reg; Sentinel containers' Security Context seccompProfile",
"default": "RuntimeDefault"
}
}
},
"capabilities": {
"type": "object",
"properties": {
"drop": {
"type": "array",
"description": "Set Redis&reg; Sentinel containers' Security Context capabilities to drop",
"default": [
"ALL"
],
"items": {
"type": "string"
}
}
}
}
}
},
"lifecycleHooks": {
"type": ["object", "string"],
"description": "for the Redis&reg; sentinel container(s) to automate configuration before or after startup",
"default": {}
},
"extraVolumes": {
"type": ["array", "string"],
"description": "Optionally specify extra list of additional volumes for the Redis&reg; Sentinel",
"default": [],
"items": {}
},
"extraVolumeMounts": {
"type": ["array", "string"],
"description": "Optionally specify extra list of additional volumeMounts for the Redis&reg; Sentinel container(s)",
"default": [],
"items": {}
},
"service": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Redis&reg; Sentinel service type",
"default": "ClusterIP"
},
"ports": {
"type": "object",
"properties": {
"redis": {
"type": "number",
"description": "Redis&reg; service port for Redis&reg;",
"default": 6379
},
"sentinel": {
"type": "number",
"description": "Redis&reg; service port for Redis&reg; Sentinel",
"default": 26379
}
}
},
"nodePorts": {
"type": "object",
"properties": {
"redis": {
"type": "string",
"description": "Node port for Redis&reg;",
"default": ""
},
"sentinel": {
"type": "string",
"description": "Node port for Sentinel",
"default": ""
}
}
},
"externalTrafficPolicy": {
"type": "string",
"description": "Redis&reg; Sentinel service external traffic policy",
"default": "Cluster"
},
"extraPorts": {
"type": ["array", "string"],
"description": "Extra ports to expose (normally used with the `sidecar` value)",
"default": [],
"items": {}
},
"clusterIP": {
"type": "string",
"description": "Redis&reg; Sentinel service Cluster IP",
"default": ""
},
"createMaster": {
"type": "boolean",
"description": "Enable master service pointing to the current master (experimental)",
"default": false
},
"loadBalancerIP": {
"type": "string",
"description": "Redis&reg; Sentinel service Load Balancer IP",
"default": ""
},
"loadBalancerClass": {
"type": "string",
"description": "sentinel service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)",
"default": ""
},
"loadBalancerSourceRanges": {
"type": "array",
"description": "Redis&reg; Sentinel service Load Balancer sources",
"default": [],
"items": {}
},
"annotations": {
"type": ["object", "string"],
"description": "Additional custom annotations for Redis&reg; Sentinel service",
"default": {}
},
"sessionAffinity": {
"type": "string",
"description": "Session Affinity for Kubernetes service, can be \"None\" or \"ClientIP\"",
"default": "None"
},
"sessionAffinityConfig": {
"type": ["object", "string"],
"description": "Additional settings for the sessionAffinity",
"default": {}
},
"headless": {
"type": "object",
"properties": {
"annotations": {
"type": ["object", "string"],
"description": "Annotations for the headless service.",
"default": {}
},
"extraPorts": {
"type": "array",
"description": "Extra ports to expose for the headless service",
"default": [],
"items": {}
}
}
}
}
},
"masterService": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable master service pointing to the current master (experimental)",
"default": false
},
"type": {
"type": "string",
"description": "Redis&reg; Sentinel master service type",
"default": "ClusterIP"
},
"ports": {
"type": "object",
"properties": {
"redis": {
"type": "number",
"description": "Redis&reg; service port for Redis&reg;",
"default": 6379
}
}
},
"nodePorts": {
"type": "object",
"properties": {
"redis": {
"type": "string",
"description": "Node port for Redis&reg;",
"default": ""
}
}
},
"externalTrafficPolicy": {
"type": "string",
"description": "Redis&reg; master service external traffic policy",
"default": ""
},
"extraPorts": {
"type": ["array", "string"],
"description": "Extra ports to expose (normally used with the `sidecar` value)",
"default": [],
"items": {}
},
"clusterIP": {
"type": "string",
"description": "Redis&reg; master service Cluster IP",
"default": ""
},
"loadBalancerIP": {
"type": "string",
"description": "Redis&reg; master service Load Balancer IP",
"default": ""
},
"loadBalancerClass": {
"type": "string",
"description": "master service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)",
"default": ""
},
"loadBalancerSourceRanges": {
"type": "array",
"description": "Redis&reg; master service Load Balancer sources",
"default": [],
"items": {}
},
"annotations": {
"type": "object",
"description": "Additional custom annotations for Redis&reg; master service",
"default": {}
},
"sessionAffinity": {
"type": "string",
"description": "Session Affinity for Kubernetes service, can be \"None\" or \"ClientIP\"",
"default": "None"
},
"sessionAffinityConfig": {
"type": ["object", "string"],
"description": "Additional settings for the sessionAffinity",
"default": {}
}
}
},
"terminationGracePeriodSeconds": {
"type": "number",
"description": "Integer setting the termination grace period for the redis-node pods",
"default": 30
}
}
},
"serviceBindings": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Create secret for service binding (Experimental)",
"default": false
}
}
},
"networkPolicy": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable creation of NetworkPolicy resources",
"default": true
},
"allowExternal": {
"type": "boolean",
"description": "Don't require client label for connections",
"default": true
},
"allowExternalEgress": {
"type": "boolean",
"description": "Allow the pod to access any range of port and all destinations.",
"default": true
},
"extraIngress": {
"type": ["array", "string"],
"description": "Add extra ingress rules to the NetworkPolicy",
"default": [],
"items": {}
},
"extraEgress": {
"type": ["array", "string"],
"description": "Add extra egress rules to the NetworkPolicy",
"default": [],
"items": {}
},
"ingressNSMatchLabels": {
"type": "object",
"description": "Labels to match to allow traffic from other namespaces",
"default": {}
},
"ingressNSPodMatchLabels": {
"type": "object",
"description": "Pod labels to match to allow traffic from other namespaces",
"default": {}
},
"metrics": {
"type": "object",
"properties": {
"allowExternal": {
"type": "boolean",
"description": "Don't require client label for connections for metrics endpoint",
"default": true
},
"ingressNSMatchLabels": {
"type": "object",
"description": "Labels to match to allow traffic from other namespaces to metrics endpoint",
"default": {}
},
"ingressNSPodMatchLabels": {
"type": "object",
"description": "Pod labels to match to allow traffic from other namespaces to metrics endpoint",
"default": {}
}
}
}
}
},
"podSecurityPolicy": {
"type": "object",
"properties": {
"create": {
"type": "boolean",
"description": "Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later",
"default": false
},
"enabled": {
"type": "boolean",
"description": "Enable PodSecurityPolicy's RBAC rules",
"default": false
}
}
},
"rbac": {
"type": "object",
"properties": {
"create": {
"type": "boolean",
"description": "Specifies whether RBAC resources should be created",
"default": false
},
"rules": {
"type": ["array", "string"],
"description": "Custom RBAC rules to set",
"default": [],
"items": {}
}
}
},
"serviceAccount": {
"type": "object",
"properties": {
"create": {
"type": "boolean",
"description": "Specifies whether a ServiceAccount should be created",
"default": true
},
"name": {
"type": "string",
"description": "The name of the ServiceAccount to use.",
"default": ""
},
"automountServiceAccountToken": {
"type": "boolean",
"description": "Whether to auto mount the service account token",
"default": false
},
"annotations": {
"type": ["object", "string"],
"description": "Additional custom annotations for the ServiceAccount",
"default": {}
}
}
},
"pdb": {
"type": "object",
"description": "DEPRECATED Please use `master.pdb` and `replica.pdb` values instead",
"default": {}
},
"tls": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable TLS traffic",
"default": false
},
"authClients": {
"type": "boolean",
"description": "Require clients to authenticate",
"default": true
},
"autoGenerated": {
"type": "boolean",
"description": "Enable autogenerated certificates",
"default": false
},
"existingSecret": {
"type": "string",
"description": "The name of the existing secret that contains the TLS certificates",
"default": ""
},
"certificatesSecret": {
"type": "string",
"description": "DEPRECATED. Use existingSecret instead.",
"default": ""
},
"certFilename": {
"type": "string",
"description": "Certificate filename",
"default": ""
},
"certKeyFilename": {
"type": "string",
"description": "Certificate Key filename",
"default": ""
},
"certCAFilename": {
"type": "string",
"description": "CA Certificate filename",
"default": ""
},
"dhParamsFilename": {
"type": "string",
"description": "File containing DH params (in order to support DH based ciphers)",
"default": ""
}
}
},
"metrics": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Start a sidecar prometheus exporter to expose Redis&reg; metrics",
"default": false
},
"image": {
"type": "object",
"properties": {
"registry": {
"type": "string",
"description": "Redis&reg; Exporter image registry",
"default": "REGISTRY_NAME"
},
"repository": {
"type": "string",
"description": "Redis&reg; Exporter image repository",
"default": "REPOSITORY_NAME/redis-exporter"
},
"digest": {
"type": "string",
"description": "Redis&reg; Exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag",
"default": ""
},
"pullPolicy": {
"type": "string",
"description": "Redis&reg; Exporter image pull policy",
"default": "IfNotPresent"
},
"pullSecrets": {
"type": "array",
"description": "Redis&reg; Exporter image pull secrets",
"default": [],
"items": {}
}
}
},
"containerPorts": {
"type": "object",
"properties": {
"http": {
"type": "number",
"description": "Metrics HTTP container port",
"default": 9121
}
}
},
"startupProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable startupProbe on Redis&reg; replicas nodes",
"default": false
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for startupProbe",
"default": 10
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for startupProbe",
"default": 10
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for startupProbe",
"default": 5
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for startupProbe",
"default": 5
},
"successThreshold": {
"type": "number",
"description": "Success threshold for startupProbe",
"default": 1
}
}
},
"livenessProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable livenessProbe on Redis&reg; replicas nodes",
"default": true
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for livenessProbe",
"default": 10
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for livenessProbe",
"default": 10
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for livenessProbe",
"default": 5
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for livenessProbe",
"default": 5
},
"successThreshold": {
"type": "number",
"description": "Success threshold for livenessProbe",
"default": 1
}
}
},
"readinessProbe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable readinessProbe on Redis&reg; replicas nodes",
"default": true
},
"initialDelaySeconds": {
"type": "number",
"description": "Initial delay seconds for readinessProbe",
"default": 5
},
"periodSeconds": {
"type": "number",
"description": "Period seconds for readinessProbe",
"default": 10
},
"timeoutSeconds": {
"type": "number",
"description": "Timeout seconds for readinessProbe",
"default": 1
},
"failureThreshold": {
"type": "number",
"description": "Failure threshold for readinessProbe",
"default": 3
},
"successThreshold": {
"type": "number",
"description": "Success threshold for readinessProbe",
"default": 1
}
}
},
"customStartupProbe": {
"type": ["object", "string"],
"description": "Custom startupProbe that overrides the default one",
"default": {}
},
"customLivenessProbe": {
"type": ["object", "string"],
"description": "Custom livenessProbe that overrides the default one",
"default": {}
},
"customReadinessProbe": {
"type": ["object", "string"],
"description": "Custom readinessProbe that overrides the default one",
"default": {}
},
"command": {
"type": ["array", "string"],
"description": "Override default metrics container init command (useful when using custom images)",
"default": [],
"items": {}
},
"redisTargetHost": {
"type": "string",
"description": "A way to specify an alternative Redis&reg; hostname",
"default": "localhost"
},
"extraArgs": {
"type": "object",
"description": "Extra arguments for Redis&reg; exporter, for example:",
"default": {}
},
"extraEnvVars": {
"type": ["array", "string"],
"description": "Array with extra environment variables to add to Redis&reg; exporter",
"default": [],
"items": {}
},
"containerSecurityContext": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enabled Redis&reg; exporter containers' Security Context",
"default": true
},
"runAsUser": {
"type": "number",
"description": "Set Redis&reg; exporter containers' Security Context runAsUser",
"default": 1001
},
"runAsGroup": {
"type": "number",
"description": "Set Redis&reg; exporter containers' Security Context runAsGroup",
"default": 1001
},
"runAsNonRoot": {
"type": "boolean",
"description": "Set Redis&reg; exporter containers' Security Context runAsNonRoot",
"default": true
},
"allowPrivilegeEscalation": {
"type": "boolean",
"description": "Set Redis&reg; exporter containers' Security Context allowPrivilegeEscalation",
"default": false
},
"readOnlyRootFilesystem": {
"type": "boolean",
"description": "Set container's Security Context read-only root filesystem",
"default": true
},
"seccompProfile": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Set Redis&reg; exporter containers' Security Context seccompProfile",
"default": "RuntimeDefault"
}
}
},
"capabilities": {
"type": "object",
"properties": {
"drop": {
"type": "array",
"description": "Set Redis&reg; exporter containers' Security Context capabilities to drop",
"default": [
"ALL"
],
"items": {
"type": "string"
}
}
}
}
}
},
"extraVolumes": {
"type": ["array", "string"],
"description": "Optionally specify extra list of additional volumes for the Redis&reg; metrics sidecar",
"default": [],
"items": {}
},
"extraVolumeMounts": {
"type": ["array", "string"],
"description": "Optionally specify extra list of additional volumeMounts for the Redis&reg; metrics sidecar",
"default": [],
"items": {}
},
"resourcesPreset": {
"type": "string",
"description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production).",
"default": "nano"
},
"resources": {
"type": "object",
"description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)",
"default": {}
},
"podLabels": {
"type": "object",
"description": "Extra labels for Redis&reg; exporter pods",
"default": {}
},
"service": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Create Service resource(s) for scraping metrics using PrometheusOperator ServiceMonitor, can be disabled when using a PodMonitor",
"default": true
},
"type": {
"type": "string",
"description": "Redis&reg; exporter service type",
"default": "ClusterIP"
},
"ports": {
"type": "object",
"properties": {
"http": {
"type": "number",
"description": "Redis&reg; exporter service port",
"default": 9121
}
}
},
"externalTrafficPolicy": {
"type": "string",
"description": "Redis&reg; exporter service external traffic policy",
"default": "Cluster"
},
"extraPorts": {
"type": ["array", "string"],
"description": "Extra ports to expose (normally used with the `sidecar` value)",
"default": [],
"items": {}
},
"loadBalancerIP": {
"type": "string",
"description": "Redis&reg; exporter service Load Balancer IP",
"default": ""
},
"loadBalancerClass": {
"type": "string",
"description": "exporter service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)",
"default": ""
},
"loadBalancerSourceRanges": {
"type": "array",
"description": "Redis&reg; exporter service Load Balancer sources",
"default": [],
"items": {}
},
"annotations": {
"type": ["object", "string"],
"description": "Additional custom annotations for Redis&reg; exporter service",
"default": {}
},
"clusterIP": {
"type": "string",
"description": "Redis&reg; exporter service Cluster IP",
"default": ""
}
}
},
"serviceMonitor": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "the service port to scrape metrics from",
"default": "http-metrics"
},
"enabled": {
"type": "boolean",
"description": "Create ServiceMonitor resource(s) for scraping metrics using PrometheusOperator",
"default": false
},
"namespace": {
"type": "string",
"description": "The namespace in which the ServiceMonitor will be created",
"default": ""
},
"interval": {
"type": "string",
"description": "The interval at which metrics should be scraped",
"default": "30s"
},
"scrapeTimeout": {
"type": "string",
"description": "The timeout after which the scrape is ended",
"default": ""
},
"relabelings": {
"type": "array",
"description": "Metrics RelabelConfigs to apply to samples before scraping.",
"default": [],
"items": {}
},
"metricRelabelings": {
"type": "array",
"description": "Metrics RelabelConfigs to apply to samples before ingestion.",
"default": [],
"items": {}
},
"honorLabels": {
"type": "boolean",
"description": "Specify honorLabels parameter to add the scrape endpoint",
"default": false
},
"additionalLabels": {
"type": ["object", "string"],
"description": "Additional labels that can be used so ServiceMonitor resource(s) can be discovered by Prometheus",
"default": {}
},
"podTargetLabels": {
"type": "array",
"description": "Labels from the Kubernetes pod to be transferred to the created metrics",
"default": [],
"items": {}
},
"sampleLimit": {
"type": "boolean",
"description": "Limit of how many samples should be scraped from every Pod",
"default": false
},
"targetLimit": {
"type": "boolean",
"description": "Limit of how many targets should be scraped",
"default": false
},
"additionalEndpoints": {
"type": "array",
"description": "Additional endpoints to scrape (e.g sentinel)",
"default": [],
"items": {}
}
}
},
"podMonitor": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "the pod port to scrape metrics from",
"default": "metrics"
},
"enabled": {
"type": "boolean",
"description": "Create PodMonitor resource(s) for scraping metrics using PrometheusOperator",
"default": false
},
"namespace": {
"type": "string",
"description": "The namespace in which the PodMonitor will be created",
"default": ""
},
"interval": {
"type": "string",
"description": "The interval at which metrics should be scraped",
"default": "30s"
},
"scrapeTimeout": {
"type": "string",
"description": "The timeout after which the scrape is ended",
"default": ""
},
"relabelings": {
"type": "array",
"description": "Metrics RelabelConfigs to apply to samples before scraping.",
"default": [],
"items": {}
},
"metricRelabelings": {
"type": "array",
"description": "Metrics RelabelConfigs to apply to samples before ingestion.",
"default": [],
"items": {}
},
"honorLabels": {
"type": "boolean",
"description": "Specify honorLabels parameter to add the scrape endpoint",
"default": false
},
"additionalLabels": {
"type": ["object", "string"],
"description": "Additional labels that can be used so PodMonitor resource(s) can be discovered by Prometheus",
"default": {}
},
"podTargetLabels": {
"type": "array",
"description": "Labels from the Kubernetes pod to be transferred to the created metrics",
"default": [],
"items": {}
},
"sampleLimit": {
"type": "boolean",
"description": "Limit of how many samples should be scraped from every Pod",
"default": false
},
"targetLimit": {
"type": "boolean",
"description": "Limit of how many targets should be scraped",
"default": false
},
"additionalEndpoints": {
"type": "array",
"description": "Additional endpoints to scrape (e.g sentinel)",
"default": [],
"items": {}
}
}
},
"prometheusRule": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Create a custom prometheusRule Resource for scraping metrics using PrometheusOperator",
"default": false
},
"namespace": {
"type": "string",
"description": "The namespace in which the prometheusRule will be created",
"default": ""
},
"additionalLabels": {
"type": ["object", "string"],
"description": "Additional labels for the prometheusRule",
"default": {}
},
"rules": {
"type": ["array", "string"],
"description": "Custom Prometheus rules",
"default": [],
"items": {}
}
}
}
}
},
"volumePermissions": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable init container that changes the owner/group of the PV mount point to `runAsUser:fsGroup`",
"default": false
},
"image": {
"type": "object",
"properties": {
"registry": {
"type": "string",
"description": "OS Shell + Utility image registry",
"default": "REGISTRY_NAME"
},
"repository": {
"type": "string",
"description": "OS Shell + Utility image repository",
"default": "REPOSITORY_NAME/os-shell"
},
"digest": {
"type": "string",
"description": "OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag",
"default": ""
},
"pullPolicy": {
"type": "string",
"description": "OS Shell + Utility image pull policy",
"default": "IfNotPresent"
},
"pullSecrets": {
"type": "array",
"description": "OS Shell + Utility image pull secrets",
"default": [],
"items": {}
}
}
},
"resourcesPreset": {
"type": "string",
"description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).",
"default": "nano"
},
"resources": {
"type": "object",
"description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)",
"default": {}
},
"containerSecurityContext": {
"type": "object",
"properties": {
"runAsUser": {
"type": "number",
"description": "Set init container's Security Context runAsUser",
"default": 0
}
}
}
}
},
"kubectl": {
"type": "object",
"properties": {
"image": {
"type": "object",
"properties": {
"registry": {
"type": "string",
"description": "Kubectl image registry",
"default": "REGISTRY_NAME"
},
"repository": {
"type": "string",
"description": "Kubectl image repository",
"default": "REPOSITORY_NAME/kubectl"
},
"digest": {
"type": "string",
"description": "Kubectl image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag",
"default": ""
},
"pullPolicy": {
"type": "string",
"description": "Kubectl image pull policy",
"default": "IfNotPresent"
},
"pullSecrets": {
"type": "array",
"description": "Kubectl pull secrets",
"default": [],
"items": {}
}
}
},
"command": {
"type": "array",
"description": "kubectl command to execute",
"default": [
"/opt/bitnami/scripts/kubectl-scripts/update-master-label.sh"
],
"items": {
"type": "string"
}
},
"containerSecurityContext": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enabled kubectl containers' Security Context",
"default": true
},
"runAsUser": {
"type": "number",
"description": "Set kubectl containers' Security Context runAsUser",
"default": 1001
},
"runAsGroup": {
"type": "number",
"description": "Set kubectl containers' Security Context runAsGroup",
"default": 1001
},
"runAsNonRoot": {
"type": "boolean",
"description": "Set kubectl containers' Security Context runAsNonRoot",
"default": true
},
"allowPrivilegeEscalation": {
"type": "boolean",
"description": "Set kubectl containers' Security Context allowPrivilegeEscalation",
"default": false
},
"readOnlyRootFilesystem": {
"type": "boolean",
"description": "Set container's Security Context read-only root filesystem",
"default": true
},
"seccompProfile": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Set kubectl containers' Security Context seccompProfile",
"default": "RuntimeDefault"
}
}
},
"capabilities": {
"type": "object",
"properties": {
"drop": {
"type": "array",
"description": "Set kubectl containers' Security Context capabilities to drop",
"default": [
"ALL"
],
"items": {
"type": "string"
}
}
}
}
}
},
"resources": {
"type": "object",
"properties": {
"limits": {
"type": "object",
"description": "The resources limits for the kubectl containers",
"default": {}
},
"requests": {
"type": "object",
"description": "The requested resources for the kubectl containers",
"default": {}
}
}
}
}
},
"sysctl": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable init container to modify Kernel settings",
"default": false
},
"image": {
"type": "object",
"properties": {
"registry": {
"type": "string",
"description": "OS Shell + Utility image registry",
"default": "REGISTRY_NAME"
},
"repository": {
"type": "string",
"description": "OS Shell + Utility image repository",
"default": "REPOSITORY_NAME/os-shell"
},
"digest": {
"type": "string",
"description": "OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag",
"default": ""
},
"pullPolicy": {
"type": "string",
"description": "OS Shell + Utility image pull policy",
"default": "IfNotPresent"
},
"pullSecrets": {
"type": "array",
"description": "OS Shell + Utility image pull secrets",
"default": [],
"items": {}
}
}
},
"command": {
"type": ["array", "string"],
"description": "Override default init-sysctl container command (useful when using custom images)",
"default": [],
"items": {}
},
"mountHostSys": {
"type": "boolean",
"description": "Mount the host `/sys` folder to `/host-sys`",
"default": false
},
"resourcesPreset": {
"type": "string",
"description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if sysctl.resources is set (sysctl.resources is recommended for production).",
"default": "nano"
},
"resources": {
"type": "object",
"description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)",
"default": {}
}
}
},
"useExternalDNS": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable various syntax that would enable external-dns to work. Note this requires a working installation of `external-dns` to be usable.",
"default": false
},
"additionalAnnotations": {
"type": "object",
"description": "Extra annotations to be utilized when `external-dns` is enabled.",
"default": {}
},
"annotationKey": {
"type": "string",
"description": "The annotation key utilized when `external-dns` is enabled. Setting this to `false` will disable annotations.",
"default": "external-dns.alpha.kubernetes.io/"
},
"suffix": {
"type": "string",
"description": "The DNS suffix utilized when `external-dns` is enabled. Note that we prepend the suffix with the full name of the release.",
"default": ""
}
}
}
}
}