mirror of
https://github.com/bitnami/charts.git
synced 2026-02-22 22:07:26 +08:00
* [bitnami/milvus] PDB review Signed-off-by: Fran Mulero <fmulero@vmware.com> * Update CHANGELOG.md Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com> * Update CHANGELOG.md Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com> * Update README.md with readme-generator-for-helm Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com> * Amend pdb.maxUnavailable and pdb.minAvailable types Signed-off-by: Fran Mulero <fmulero@vmware.com> * Update CHANGELOG.md Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com> * Update README.md with readme-generator-for-helm Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com> * Update CHANGELOG.md Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com> * Update CHANGELOG.md Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com> * Increase ETCD resources for testing Signed-off-by: Fran Mulero <fmulero@vmware.com> * Update CHANGELOG.md Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com> * Set verification=SERIAL. Current infrastructure can spin up 2 charts at the same time Signed-off-by: Fran Mulero <fmulero@vmware.com> --------- Signed-off-by: Fran Mulero <fmulero@vmware.com> Signed-off-by: Carlos Rodríguez Hernández <carlosrh@vmware.com> Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com> Co-authored-by: Carlos Rodríguez Hernández <carlosrh@vmware.com> Co-authored-by: Bitnami Containers <bitnami-bot@vmware.com>
7921 lines
363 KiB
JSON
7921 lines
363 KiB
JSON
{
|
|
"title": "Chart Values",
|
|
"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": {}
|
|
},
|
|
"storageClass": {
|
|
"type": "string",
|
|
"description": "Global StorageClass for Persistent Volume(s)",
|
|
"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": ""
|
|
},
|
|
"commonLabels": {
|
|
"type": "object",
|
|
"description": "Labels to add to all deployed objects",
|
|
"default": {}
|
|
},
|
|
"commonAnnotations": {
|
|
"type": "object",
|
|
"description": "Annotations to add to all deployed objects",
|
|
"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": {}
|
|
},
|
|
"enableServiceLinks": {
|
|
"type": "boolean",
|
|
"description": "Whether information about services should be injected into all pods' environment variable",
|
|
"default": false
|
|
},
|
|
"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",
|
|
"description": "Command to override all containers in the deployments/statefulsets",
|
|
"default": [
|
|
"sleep"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "Args to override all containers in the deployments/statefulsets",
|
|
"default": [
|
|
"infinity"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"milvus": {
|
|
"type": "object",
|
|
"properties": {
|
|
"image": {
|
|
"type": "object",
|
|
"properties": {
|
|
"registry": {
|
|
"type": "string",
|
|
"description": "Milvus image registry",
|
|
"default": "REGISTRY_NAME"
|
|
},
|
|
"repository": {
|
|
"type": "string",
|
|
"description": "Milvus image repository",
|
|
"default": "REPOSITORY_NAME/milvus"
|
|
},
|
|
"digest": {
|
|
"type": "string",
|
|
"description": "Milvus image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag",
|
|
"default": ""
|
|
},
|
|
"pullPolicy": {
|
|
"type": "string",
|
|
"description": "Milvus image pull policy",
|
|
"default": "IfNotPresent"
|
|
},
|
|
"pullSecrets": {
|
|
"type": "array",
|
|
"description": "Milvus image pull secrets",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"debug": {
|
|
"type": "boolean",
|
|
"description": "Enable debug mode",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"auth": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "enable Milvus authentication",
|
|
"default": false
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"description": "Milvus username",
|
|
"default": "user"
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"description": "Milvus username password",
|
|
"default": ""
|
|
},
|
|
"rootPassword": {
|
|
"type": "string",
|
|
"description": "Milvus root password",
|
|
"default": ""
|
|
},
|
|
"existingSecret": {
|
|
"type": "string",
|
|
"description": "Name of a secret containing the Milvus password",
|
|
"default": ""
|
|
},
|
|
"existingSecretPasswordKey": {
|
|
"type": "string",
|
|
"description": "Name of the secret key containing the Milvus password",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"defaultConfig": {
|
|
"type": "string",
|
|
"description": "Milvus components default configuration",
|
|
"default": "\"\""
|
|
},
|
|
"extraConfig": {
|
|
"type": "object",
|
|
"description": "Extra configuration parameters",
|
|
"default": {}
|
|
},
|
|
"existingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the default configuration",
|
|
"default": ""
|
|
},
|
|
"extraConfigExistingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the Dashboard",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"initJob": {
|
|
"type": "object",
|
|
"properties": {
|
|
"forceRun": {
|
|
"type": "boolean",
|
|
"description": "Force the run of the credential job",
|
|
"default": false
|
|
},
|
|
"image": {
|
|
"type": "object",
|
|
"properties": {
|
|
"registry": {
|
|
"type": "string",
|
|
"description": "PyMilvus image registry",
|
|
"default": "REGISTRY_NAME"
|
|
},
|
|
"repository": {
|
|
"type": "string",
|
|
"description": "PyMilvus image repository",
|
|
"default": "REPOSITORY_NAME/pymilvus"
|
|
},
|
|
"digest": {
|
|
"type": "string",
|
|
"description": "PyMilvus image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)",
|
|
"default": ""
|
|
},
|
|
"pullPolicy": {
|
|
"type": "string",
|
|
"description": "PyMilvus image pull policy",
|
|
"default": "IfNotPresent"
|
|
},
|
|
"pullSecrets": {
|
|
"type": "array",
|
|
"description": "PyMilvus image pull secrets",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"enableDefaultInitContainers": {
|
|
"type": "boolean",
|
|
"description": "Deploy default init containers",
|
|
"default": true
|
|
},
|
|
"tls": {
|
|
"type": "object",
|
|
"properties": {
|
|
"existingSecret": {
|
|
"type": "string",
|
|
"description": "Name of the existing secret containing the TLS certificates for initJob.",
|
|
"default": ""
|
|
},
|
|
"cert": {
|
|
"type": "string",
|
|
"description": "The secret key from the existingSecret if 'cert' key different from the default (client.pem)",
|
|
"default": "client.pem"
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "The secret key from the existingSecret if 'key' key different from the default (client.key)",
|
|
"default": "client.key"
|
|
},
|
|
"caCert": {
|
|
"type": "string",
|
|
"description": "The secret key from the existingSecret if 'caCert' key different from the default (ca.pem)",
|
|
"default": "ca.pem"
|
|
},
|
|
"keyPassword": {
|
|
"type": "string",
|
|
"description": "Password to access the password-protected PEM key if necessary.",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"backoffLimit": {
|
|
"type": "number",
|
|
"description": "set backoff limit of the job",
|
|
"default": 10
|
|
},
|
|
"extraVolumes": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumes for the credential init job",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraCommands": {
|
|
"type": "string",
|
|
"description": "Extra commands to pass to the generation job",
|
|
"default": ""
|
|
},
|
|
"containerSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled containers' Security Context",
|
|
"default": true
|
|
},
|
|
"runAsUser": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsUser",
|
|
"default": 1001
|
|
},
|
|
"runAsGroup": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsGroup",
|
|
"default": 1001
|
|
},
|
|
"runAsNonRoot": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context runAsNonRoot",
|
|
"default": true
|
|
},
|
|
"privileged": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context privileged",
|
|
"default": false
|
|
},
|
|
"readOnlyRootFilesystem": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context readOnlyRootFilesystem",
|
|
"default": true
|
|
},
|
|
"allowPrivilegeEscalation": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context allowPrivilegeEscalation",
|
|
"default": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "List of capabilities to be dropped",
|
|
"default": [
|
|
"ALL"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seccompProfile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Set container's Security Context seccomp profile",
|
|
"default": "RuntimeDefault"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"podSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled credential init job 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 credential init job pod's Security Context fsGroup",
|
|
"default": 1001
|
|
}
|
|
}
|
|
},
|
|
"extraEnvVars": {
|
|
"type": "array",
|
|
"description": "Array containing extra env vars to configure the credential init job",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraEnvVarsCM": {
|
|
"type": "string",
|
|
"description": "ConfigMap containing extra env vars to configure the credential init job",
|
|
"default": ""
|
|
},
|
|
"extraEnvVarsSecret": {
|
|
"type": "string",
|
|
"description": "Secret containing extra env vars to configure the credential init job (in case of sensitive data)",
|
|
"default": ""
|
|
},
|
|
"extraVolumeMounts": {
|
|
"type": "array",
|
|
"description": "Array of extra volume mounts to be added to the jwt Container (evaluated as template). Normally used with `extraVolumes`.",
|
|
"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 initJob.resources is set (initJob.resources is recommended for production).",
|
|
"default": "micro"
|
|
},
|
|
"resources": {
|
|
"type": "object",
|
|
"description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)",
|
|
"default": {}
|
|
},
|
|
"livenessProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable livenessProbe on init job",
|
|
"default": true
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for livenessProbe",
|
|
"default": 5
|
|
},
|
|
"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 init job",
|
|
"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": 5
|
|
},
|
|
"failureThreshold": {
|
|
"type": "number",
|
|
"description": "Failure threshold for readinessProbe",
|
|
"default": 5
|
|
},
|
|
"successThreshold": {
|
|
"type": "number",
|
|
"description": "Success threshold for readinessProbe",
|
|
"default": 1
|
|
}
|
|
}
|
|
},
|
|
"startupProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable startupProbe on Data Coordinator containers",
|
|
"default": false
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for startupProbe",
|
|
"default": 5
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"customLivenessProbe": {
|
|
"type": "object",
|
|
"description": "Custom livenessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customReadinessProbe": {
|
|
"type": "object",
|
|
"description": "Custom readinessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customStartupProbe": {
|
|
"type": "object",
|
|
"description": "Custom startupProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Mount Service Account token in pod",
|
|
"default": false
|
|
},
|
|
"hostAliases": {
|
|
"type": "array",
|
|
"description": "Add deployment host aliases",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"podLabels": {
|
|
"type": "object",
|
|
"description": "Additional pod labels",
|
|
"default": {}
|
|
},
|
|
"podAnnotations": {
|
|
"type": "object",
|
|
"description": "Additional pod annotations",
|
|
"default": {}
|
|
},
|
|
"networkPolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of NetworkPolicy resources",
|
|
"default": true
|
|
},
|
|
"allowExternalEgress": {
|
|
"type": "boolean",
|
|
"description": "Allow the pod to access any range of port and all destinations.",
|
|
"default": true
|
|
},
|
|
"extraIngress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"extraEgress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dataCoord": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable Data Coordinator deployment",
|
|
"default": true
|
|
},
|
|
"extraEnvVars": {
|
|
"type": "array",
|
|
"description": "Array with extra environment variables to add to data coordinator nodes",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraEnvVarsCM": {
|
|
"type": "string",
|
|
"description": "Name of existing ConfigMap containing extra env vars for data coordinator nodes",
|
|
"default": ""
|
|
},
|
|
"extraEnvVarsSecret": {
|
|
"type": "string",
|
|
"description": "Name of existing Secret containing extra env vars for data coordinator nodes",
|
|
"default": ""
|
|
},
|
|
"defaultConfig": {
|
|
"type": "string",
|
|
"description": "Default override configuration from the common set in milvus.defaultConfig",
|
|
"default": "\"\""
|
|
},
|
|
"existingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the default configuration",
|
|
"default": ""
|
|
},
|
|
"extraConfig": {
|
|
"type": "object",
|
|
"description": "Override configuration",
|
|
"default": {}
|
|
},
|
|
"extraConfigExistingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the Dashboard",
|
|
"default": ""
|
|
},
|
|
"command": {
|
|
"type": "array",
|
|
"description": "Override default container command (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "Override default container args (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"replicaCount": {
|
|
"type": "number",
|
|
"description": "Number of Data Coordinator replicas to deploy",
|
|
"default": 1
|
|
},
|
|
"containerPorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "GRPC port for Data Coordinator",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Metrics port for Data Coordinator",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable livenessProbe on Data Coordinator nodes",
|
|
"default": true
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for livenessProbe",
|
|
"default": 5
|
|
},
|
|
"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 Data Coordinator 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": 5
|
|
},
|
|
"failureThreshold": {
|
|
"type": "number",
|
|
"description": "Failure threshold for readinessProbe",
|
|
"default": 5
|
|
},
|
|
"successThreshold": {
|
|
"type": "number",
|
|
"description": "Success threshold for readinessProbe",
|
|
"default": 1
|
|
}
|
|
}
|
|
},
|
|
"startupProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable startupProbe on Data Coordinator containers",
|
|
"default": false
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for startupProbe",
|
|
"default": 5
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"customLivenessProbe": {
|
|
"type": "object",
|
|
"description": "Custom livenessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customReadinessProbe": {
|
|
"type": "object",
|
|
"description": "Custom readinessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customStartupProbe": {
|
|
"type": "object",
|
|
"description": "Custom startupProbe 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 dataCoord.resources is set (dataCoord.resources is recommended for production).",
|
|
"default": "micro"
|
|
},
|
|
"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 Data Coordinator 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 Data Coordinator pod's Security Context fsGroup",
|
|
"default": 1001
|
|
}
|
|
}
|
|
},
|
|
"containerSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled containers' Security Context",
|
|
"default": true
|
|
},
|
|
"runAsUser": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsUser",
|
|
"default": 1001
|
|
},
|
|
"runAsGroup": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsGroup",
|
|
"default": 1001
|
|
},
|
|
"runAsNonRoot": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context runAsNonRoot",
|
|
"default": true
|
|
},
|
|
"privileged": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context privileged",
|
|
"default": false
|
|
},
|
|
"readOnlyRootFilesystem": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context readOnlyRootFilesystem",
|
|
"default": true
|
|
},
|
|
"allowPrivilegeEscalation": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context allowPrivilegeEscalation",
|
|
"default": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "List of capabilities to be dropped",
|
|
"default": [
|
|
"ALL"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seccompProfile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Set container's Security Context seccomp profile",
|
|
"default": "RuntimeDefault"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lifecycleHooks": {
|
|
"type": "object",
|
|
"description": "for the data coordinator container(s) to automate configuration before or after startup",
|
|
"default": {}
|
|
},
|
|
"runtimeClassName": {
|
|
"type": "string",
|
|
"description": "Name of the runtime class to be used by pod(s)",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Mount Service Account token in pod",
|
|
"default": false
|
|
},
|
|
"hostAliases": {
|
|
"type": "array",
|
|
"description": "data coordinator pods host aliases",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"podLabels": {
|
|
"type": "object",
|
|
"description": "Extra labels for data coordinator pods",
|
|
"default": {}
|
|
},
|
|
"podAnnotations": {
|
|
"type": "object",
|
|
"description": "Annotations for data coordinator pods",
|
|
"default": {}
|
|
},
|
|
"podAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod affinity preset. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"podAntiAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod anti-affinity preset. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": "soft"
|
|
},
|
|
"nodeAffinityPreset": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Node affinity preset type. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Node label key to match. Ignored if `data coordinator.affinity` is set",
|
|
"default": ""
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"description": "Node label values to match. Ignored if `data coordinator.affinity` is set",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"affinity": {
|
|
"type": "object",
|
|
"description": "Affinity for Data Coordinator pods assignment",
|
|
"default": {}
|
|
},
|
|
"nodeSelector": {
|
|
"type": "object",
|
|
"description": "Node labels for Data Coordinator pods assignment",
|
|
"default": {}
|
|
},
|
|
"tolerations": {
|
|
"type": "array",
|
|
"description": "Tolerations for Data Coordinator pods assignment",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"topologySpreadConstraints": {
|
|
"type": "array",
|
|
"description": "Topology Spread Constraints for pod assignment spread across your cluster among failure-domains",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"priorityClassName": {
|
|
"type": "string",
|
|
"description": "Data Coordinator pods' priorityClassName",
|
|
"default": ""
|
|
},
|
|
"schedulerName": {
|
|
"type": "string",
|
|
"description": "Kubernetes pod scheduler registry",
|
|
"default": ""
|
|
},
|
|
"updateStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Data Coordinator statefulset strategy type",
|
|
"default": "RollingUpdate"
|
|
},
|
|
"rollingUpdate": {
|
|
"type": "object",
|
|
"description": "Data Coordinator statefulset rolling update configuration parameters",
|
|
"default": {}
|
|
}
|
|
}
|
|
},
|
|
"extraVolumes": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumes for the Data Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraVolumeMounts": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumeMounts for the Data Coordinator container(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"sidecars": {
|
|
"type": "array",
|
|
"description": "Add additional sidecar containers to the Data Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"enableDefaultInitContainers": {
|
|
"type": "boolean",
|
|
"description": "Deploy default init containers",
|
|
"default": true
|
|
},
|
|
"initContainers": {
|
|
"type": "array",
|
|
"description": "Add additional init containers to the Data Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"serviceAccount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"create": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of ServiceAccount for Data Coordinator pods",
|
|
"default": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the ServiceAccount to use",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Allows auto mount of ServiceAccountToken on the serviceAccount created",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"autoscaling": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable VPA",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for VPA resource",
|
|
"default": {}
|
|
},
|
|
"controlledResources": {
|
|
"type": "array",
|
|
"description": "VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"maxAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Max allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"minAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Min allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"updatePolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"updateMode": {
|
|
"type": "string",
|
|
"description": "Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod",
|
|
"default": "Auto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"hpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable HPA for Milvus Data Plane",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for HPA resource",
|
|
"default": {}
|
|
},
|
|
"minReplicas": {
|
|
"type": "string",
|
|
"description": "Minimum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"maxReplicas": {
|
|
"type": "string",
|
|
"description": "Maximum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"targetCPU": {
|
|
"type": "string",
|
|
"description": "Target CPU utilization percentage",
|
|
"default": ""
|
|
},
|
|
"targetMemory": {
|
|
"type": "string",
|
|
"description": "Target Memory utilization percentage",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Data Coordinator service type",
|
|
"default": "ClusterIP"
|
|
},
|
|
"ports": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "Data Coordinator GRPC service port",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Data Coordinator Metrics service port",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"nodePorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "string",
|
|
"description": "Node port for GRPC",
|
|
"default": ""
|
|
},
|
|
"metrics": {
|
|
"type": "string",
|
|
"description": "Node port for Metrics",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"sessionAffinityConfig": {
|
|
"type": "object",
|
|
"description": "Additional settings for the sessionAffinity",
|
|
"default": {}
|
|
},
|
|
"sessionAffinity": {
|
|
"type": "string",
|
|
"description": "Control where client requests go, to the same pod or round-robin",
|
|
"default": "None"
|
|
},
|
|
"clusterIP": {
|
|
"type": "string",
|
|
"description": "Data Coordinator service Cluster IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerIP": {
|
|
"type": "string",
|
|
"description": "Data Coordinator service Load Balancer IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerSourceRanges": {
|
|
"type": "array",
|
|
"description": "Data Coordinator service Load Balancer sources",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"externalTrafficPolicy": {
|
|
"type": "string",
|
|
"description": "Data Coordinator service external traffic policy",
|
|
"default": "Cluster"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Additional custom annotations for Data Coordinator service",
|
|
"default": {}
|
|
},
|
|
"extraPorts": {
|
|
"type": "array",
|
|
"description": "Extra ports to expose in the Data Coordinator service",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"networkPolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of NetworkPolicy resources",
|
|
"default": true
|
|
},
|
|
"allowExternal": {
|
|
"type": "boolean",
|
|
"description": "The Policy model to apply",
|
|
"default": true
|
|
},
|
|
"allowExternalEgress": {
|
|
"type": "boolean",
|
|
"description": "Allow the pod to access any range of port and all destinations.",
|
|
"default": true
|
|
},
|
|
"extraIngress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"extraEgress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metrics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable metrics",
|
|
"default": false
|
|
},
|
|
"serviceMonitor": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Create ServiceMonitor Resource for scraping metrics using Prometheus Operator",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "string",
|
|
"description": "Annotations for the ServiceMonitor Resource",
|
|
"default": ""
|
|
},
|
|
"namespace": {
|
|
"type": "string",
|
|
"description": "Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)",
|
|
"default": ""
|
|
},
|
|
"interval": {
|
|
"type": "string",
|
|
"description": "Interval at which metrics should be scraped.",
|
|
"default": ""
|
|
},
|
|
"scrapeTimeout": {
|
|
"type": "string",
|
|
"description": "Timeout after which the scrape is ended",
|
|
"default": ""
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"description": "Additional labels that can be used so ServiceMonitor will be discovered by Prometheus",
|
|
"default": {}
|
|
},
|
|
"selector": {
|
|
"type": "object",
|
|
"description": "Prometheus instance selector labels",
|
|
"default": {}
|
|
},
|
|
"relabelings": {
|
|
"type": "array",
|
|
"description": "RelabelConfigs to apply to samples before scraping",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"metricRelabelings": {
|
|
"type": "array",
|
|
"description": "MetricRelabelConfigs to apply to samples before ingestion",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"honorLabels": {
|
|
"type": "boolean",
|
|
"description": "Specify honorLabels parameter to add the scrape endpoint",
|
|
"default": false
|
|
},
|
|
"jobLabel": {
|
|
"type": "string",
|
|
"description": "The name of the label on the target service to use as the job name in prometheus.",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"rootCoord": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable Root Coordinator deployment",
|
|
"default": true
|
|
},
|
|
"extraEnvVars": {
|
|
"type": "array",
|
|
"description": "Array with extra environment variables to add to data coordinator nodes",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraEnvVarsCM": {
|
|
"type": "string",
|
|
"description": "Name of existing ConfigMap containing extra env vars for data coordinator nodes",
|
|
"default": ""
|
|
},
|
|
"extraEnvVarsSecret": {
|
|
"type": "string",
|
|
"description": "Name of existing Secret containing extra env vars for data coordinator nodes",
|
|
"default": ""
|
|
},
|
|
"defaultConfig": {
|
|
"type": "string",
|
|
"description": "Default override configuration from the common set in milvus.defaultConfig",
|
|
"default": "\"\""
|
|
},
|
|
"existingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the default configuration",
|
|
"default": ""
|
|
},
|
|
"extraConfig": {
|
|
"type": "object",
|
|
"description": "Override configuration",
|
|
"default": {}
|
|
},
|
|
"extraConfigExistingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the Dashboard",
|
|
"default": ""
|
|
},
|
|
"command": {
|
|
"type": "array",
|
|
"description": "Override default container command (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "Override default container args (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"replicaCount": {
|
|
"type": "number",
|
|
"description": "Number of Root Coordinator replicas to deploy",
|
|
"default": 1
|
|
},
|
|
"containerPorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "GRPC port for Root Coordinator",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Metrics port for Root Coordinator",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable livenessProbe on Root Coordinator nodes",
|
|
"default": true
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for livenessProbe",
|
|
"default": 5
|
|
},
|
|
"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 Root Coordinator 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": 5
|
|
},
|
|
"failureThreshold": {
|
|
"type": "number",
|
|
"description": "Failure threshold for readinessProbe",
|
|
"default": 5
|
|
},
|
|
"successThreshold": {
|
|
"type": "number",
|
|
"description": "Success threshold for readinessProbe",
|
|
"default": 1
|
|
}
|
|
}
|
|
},
|
|
"startupProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable startupProbe on Root Coordinator containers",
|
|
"default": false
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for startupProbe",
|
|
"default": 5
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"customLivenessProbe": {
|
|
"type": "object",
|
|
"description": "Custom livenessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customReadinessProbe": {
|
|
"type": "object",
|
|
"description": "Custom readinessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customStartupProbe": {
|
|
"type": "object",
|
|
"description": "Custom startupProbe 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 rootCoord.resources is set (rootCoord.resources is recommended for production).",
|
|
"default": "micro"
|
|
},
|
|
"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 Root Coordinator 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 Root Coordinator pod's Security Context fsGroup",
|
|
"default": 1001
|
|
}
|
|
}
|
|
},
|
|
"containerSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled containers' Security Context",
|
|
"default": true
|
|
},
|
|
"runAsUser": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsUser",
|
|
"default": 1001
|
|
},
|
|
"runAsGroup": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsGroup",
|
|
"default": 1001
|
|
},
|
|
"runAsNonRoot": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context runAsNonRoot",
|
|
"default": true
|
|
},
|
|
"privileged": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context privileged",
|
|
"default": false
|
|
},
|
|
"readOnlyRootFilesystem": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context readOnlyRootFilesystem",
|
|
"default": true
|
|
},
|
|
"allowPrivilegeEscalation": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context allowPrivilegeEscalation",
|
|
"default": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "List of capabilities to be dropped",
|
|
"default": [
|
|
"ALL"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seccompProfile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Set container's Security Context seccomp profile",
|
|
"default": "RuntimeDefault"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lifecycleHooks": {
|
|
"type": "object",
|
|
"description": "for the data coordinator container(s) to automate configuration before or after startup",
|
|
"default": {}
|
|
},
|
|
"runtimeClassName": {
|
|
"type": "string",
|
|
"description": "Name of the runtime class to be used by pod(s)",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Mount Service Account token in pod",
|
|
"default": false
|
|
},
|
|
"hostAliases": {
|
|
"type": "array",
|
|
"description": "data coordinator pods host aliases",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"podLabels": {
|
|
"type": "object",
|
|
"description": "Extra labels for data coordinator pods",
|
|
"default": {}
|
|
},
|
|
"podAnnotations": {
|
|
"type": "object",
|
|
"description": "Annotations for data coordinator pods",
|
|
"default": {}
|
|
},
|
|
"podAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod affinity preset. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"podAntiAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod anti-affinity preset. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": "soft"
|
|
},
|
|
"nodeAffinityPreset": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Node affinity preset type. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Node label key to match. Ignored if `data coordinator.affinity` is set",
|
|
"default": ""
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"description": "Node label values to match. Ignored if `data coordinator.affinity` is set",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"affinity": {
|
|
"type": "object",
|
|
"description": "Affinity for Root Coordinator pods assignment",
|
|
"default": {}
|
|
},
|
|
"nodeSelector": {
|
|
"type": "object",
|
|
"description": "Node labels for Root Coordinator pods assignment",
|
|
"default": {}
|
|
},
|
|
"tolerations": {
|
|
"type": "array",
|
|
"description": "Tolerations for Root Coordinator pods assignment",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"topologySpreadConstraints": {
|
|
"type": "array",
|
|
"description": "Topology Spread Constraints for pod assignment spread across your cluster among failure-domains",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"priorityClassName": {
|
|
"type": "string",
|
|
"description": "Root Coordinator pods' priorityClassName",
|
|
"default": ""
|
|
},
|
|
"schedulerName": {
|
|
"type": "string",
|
|
"description": "Kubernetes pod scheduler registry",
|
|
"default": ""
|
|
},
|
|
"updateStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Root Coordinator statefulset strategy type",
|
|
"default": "RollingUpdate"
|
|
},
|
|
"rollingUpdate": {
|
|
"type": "object",
|
|
"description": "Root Coordinator statefulset rolling update configuration parameters",
|
|
"default": {}
|
|
}
|
|
}
|
|
},
|
|
"extraVolumes": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumes for the Root Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraVolumeMounts": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumeMounts for the Root Coordinator container(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"sidecars": {
|
|
"type": "array",
|
|
"description": "Add additional sidecar containers to the Root Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"enableDefaultInitContainers": {
|
|
"type": "boolean",
|
|
"description": "Deploy default init containers",
|
|
"default": true
|
|
},
|
|
"initContainers": {
|
|
"type": "array",
|
|
"description": "Add additional init containers to the Root Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"serviceAccount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"create": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of ServiceAccount for Root Coordinator pods",
|
|
"default": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the ServiceAccount to use",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Allows auto mount of ServiceAccountToken on the serviceAccount created",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"autoscaling": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable VPA",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for VPA resource",
|
|
"default": {}
|
|
},
|
|
"controlledResources": {
|
|
"type": "array",
|
|
"description": "VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"maxAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Max allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"minAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Min allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"updatePolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"updateMode": {
|
|
"type": "string",
|
|
"description": "Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod",
|
|
"default": "Auto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"hpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable HPA for Milvus Data Plane",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for HPA resource",
|
|
"default": {}
|
|
},
|
|
"minReplicas": {
|
|
"type": "string",
|
|
"description": "Minimum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"maxReplicas": {
|
|
"type": "string",
|
|
"description": "Maximum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"targetCPU": {
|
|
"type": "string",
|
|
"description": "Target CPU utilization percentage",
|
|
"default": ""
|
|
},
|
|
"targetMemory": {
|
|
"type": "string",
|
|
"description": "Target Memory utilization percentage",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Root Coordinator service type",
|
|
"default": "ClusterIP"
|
|
},
|
|
"ports": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "Root Coordinator GRPC service port",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Root Coordinator Metrics service port",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"nodePorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "string",
|
|
"description": "Node port for GRPC",
|
|
"default": ""
|
|
},
|
|
"metrics": {
|
|
"type": "string",
|
|
"description": "Node port for Metrics",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"sessionAffinityConfig": {
|
|
"type": "object",
|
|
"description": "Additional settings for the sessionAffinity",
|
|
"default": {}
|
|
},
|
|
"sessionAffinity": {
|
|
"type": "string",
|
|
"description": "Control where client requests go, to the same pod or round-robin",
|
|
"default": "None"
|
|
},
|
|
"clusterIP": {
|
|
"type": "string",
|
|
"description": "Root Coordinator service Cluster IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerIP": {
|
|
"type": "string",
|
|
"description": "Root Coordinator service Load Balancer IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerSourceRanges": {
|
|
"type": "array",
|
|
"description": "Root Coordinator service Load Balancer sources",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"externalTrafficPolicy": {
|
|
"type": "string",
|
|
"description": "Root Coordinator service external traffic policy",
|
|
"default": "Cluster"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Additional custom annotations for Root Coordinator service",
|
|
"default": {}
|
|
},
|
|
"extraPorts": {
|
|
"type": "array",
|
|
"description": "Extra ports to expose in the Root Coordinator service",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"networkPolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of NetworkPolicy resources",
|
|
"default": true
|
|
},
|
|
"allowExternal": {
|
|
"type": "boolean",
|
|
"description": "The Policy model to apply",
|
|
"default": true
|
|
},
|
|
"allowExternalEgress": {
|
|
"type": "boolean",
|
|
"description": "Allow the pod to access any range of port and all destinations.",
|
|
"default": true
|
|
},
|
|
"extraIngress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"extraEgress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metrics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable metrics",
|
|
"default": false
|
|
},
|
|
"serviceMonitor": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Create ServiceMonitor Resource for scraping metrics using Prometheus Operator",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "string",
|
|
"description": "Annotations for the ServiceMonitor Resource",
|
|
"default": ""
|
|
},
|
|
"namespace": {
|
|
"type": "string",
|
|
"description": "Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)",
|
|
"default": ""
|
|
},
|
|
"interval": {
|
|
"type": "string",
|
|
"description": "Interval at which metrics should be scraped.",
|
|
"default": ""
|
|
},
|
|
"scrapeTimeout": {
|
|
"type": "string",
|
|
"description": "Timeout after which the scrape is ended",
|
|
"default": ""
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"description": "Additional labels that can be used so ServiceMonitor will be discovered by Prometheus",
|
|
"default": {}
|
|
},
|
|
"selector": {
|
|
"type": "object",
|
|
"description": "Prometheus instance selector labels",
|
|
"default": {}
|
|
},
|
|
"relabelings": {
|
|
"type": "array",
|
|
"description": "RelabelConfigs to apply to samples before scraping",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"metricRelabelings": {
|
|
"type": "array",
|
|
"description": "MetricRelabelConfigs to apply to samples before ingestion",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"honorLabels": {
|
|
"type": "boolean",
|
|
"description": "Specify honorLabels parameter to add the scrape endpoint",
|
|
"default": false
|
|
},
|
|
"jobLabel": {
|
|
"type": "string",
|
|
"description": "The name of the label on the target service to use as the job name in prometheus.",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"queryCoord": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable Query Coordinator deployment",
|
|
"default": true
|
|
},
|
|
"extraEnvVars": {
|
|
"type": "array",
|
|
"description": "Array with extra environment variables to add to data coordinator nodes",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraEnvVarsCM": {
|
|
"type": "string",
|
|
"description": "Name of existing ConfigMap containing extra env vars for data coordinator nodes",
|
|
"default": ""
|
|
},
|
|
"extraEnvVarsSecret": {
|
|
"type": "string",
|
|
"description": "Name of existing Secret containing extra env vars for data coordinator nodes",
|
|
"default": ""
|
|
},
|
|
"defaultConfig": {
|
|
"type": "string",
|
|
"description": "Default override configuration from the common set in milvus.defaultConfig",
|
|
"default": "\"\""
|
|
},
|
|
"existingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the default configuration",
|
|
"default": ""
|
|
},
|
|
"extraConfig": {
|
|
"type": "object",
|
|
"description": "Override configuration",
|
|
"default": {}
|
|
},
|
|
"extraConfigExistingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the Dashboard",
|
|
"default": ""
|
|
},
|
|
"command": {
|
|
"type": "array",
|
|
"description": "Override default container command (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "Override default container args (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"replicaCount": {
|
|
"type": "number",
|
|
"description": "Number of Query Coordinator replicas to deploy",
|
|
"default": 1
|
|
},
|
|
"containerPorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "GRPC port for Query Coordinator",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Metrics port for Query Coordinator",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable livenessProbe on Query Coordinator nodes",
|
|
"default": true
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for livenessProbe",
|
|
"default": 5
|
|
},
|
|
"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 Query Coordinator 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": 5
|
|
},
|
|
"failureThreshold": {
|
|
"type": "number",
|
|
"description": "Failure threshold for readinessProbe",
|
|
"default": 5
|
|
},
|
|
"successThreshold": {
|
|
"type": "number",
|
|
"description": "Success threshold for readinessProbe",
|
|
"default": 1
|
|
}
|
|
}
|
|
},
|
|
"startupProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable startupProbe on Query Coordinator containers",
|
|
"default": false
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for startupProbe",
|
|
"default": 5
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"customLivenessProbe": {
|
|
"type": "object",
|
|
"description": "Custom livenessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customReadinessProbe": {
|
|
"type": "object",
|
|
"description": "Custom readinessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customStartupProbe": {
|
|
"type": "object",
|
|
"description": "Custom startupProbe 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 queryCoord.resources is set (queryCoord.resources is recommended for production).",
|
|
"default": "micro"
|
|
},
|
|
"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 Query Coordinator 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 Query Coordinator pod's Security Context fsGroup",
|
|
"default": 1001
|
|
}
|
|
}
|
|
},
|
|
"containerSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled containers' Security Context",
|
|
"default": true
|
|
},
|
|
"runAsUser": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsUser",
|
|
"default": 1001
|
|
},
|
|
"runAsGroup": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsGroup",
|
|
"default": 1001
|
|
},
|
|
"runAsNonRoot": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context runAsNonRoot",
|
|
"default": true
|
|
},
|
|
"privileged": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context privileged",
|
|
"default": false
|
|
},
|
|
"readOnlyRootFilesystem": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context readOnlyRootFilesystem",
|
|
"default": true
|
|
},
|
|
"allowPrivilegeEscalation": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context allowPrivilegeEscalation",
|
|
"default": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "List of capabilities to be dropped",
|
|
"default": [
|
|
"ALL"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seccompProfile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Set container's Security Context seccomp profile",
|
|
"default": "RuntimeDefault"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lifecycleHooks": {
|
|
"type": "object",
|
|
"description": "for the data coordinator container(s) to automate configuration before or after startup",
|
|
"default": {}
|
|
},
|
|
"runtimeClassName": {
|
|
"type": "string",
|
|
"description": "Name of the runtime class to be used by pod(s)",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Mount Service Account token in pod",
|
|
"default": false
|
|
},
|
|
"hostAliases": {
|
|
"type": "array",
|
|
"description": "data coordinator pods host aliases",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"podLabels": {
|
|
"type": "object",
|
|
"description": "Extra labels for data coordinator pods",
|
|
"default": {}
|
|
},
|
|
"podAnnotations": {
|
|
"type": "object",
|
|
"description": "Annotations for data coordinator pods",
|
|
"default": {}
|
|
},
|
|
"podAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod affinity preset. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"podAntiAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod anti-affinity preset. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": "soft"
|
|
},
|
|
"nodeAffinityPreset": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Node affinity preset type. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Node label key to match. Ignored if `data coordinator.affinity` is set",
|
|
"default": ""
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"description": "Node label values to match. Ignored if `data coordinator.affinity` is set",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"affinity": {
|
|
"type": "object",
|
|
"description": "Affinity for Query Coordinator pods assignment",
|
|
"default": {}
|
|
},
|
|
"nodeSelector": {
|
|
"type": "object",
|
|
"description": "Node labels for Query Coordinator pods assignment",
|
|
"default": {}
|
|
},
|
|
"tolerations": {
|
|
"type": "array",
|
|
"description": "Tolerations for Query Coordinator pods assignment",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"topologySpreadConstraints": {
|
|
"type": "array",
|
|
"description": "Topology Spread Constraints for pod assignment spread across your cluster among failure-domains",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"priorityClassName": {
|
|
"type": "string",
|
|
"description": "Query Coordinator pods' priorityClassName",
|
|
"default": ""
|
|
},
|
|
"schedulerName": {
|
|
"type": "string",
|
|
"description": "Kubernetes pod scheduler registry",
|
|
"default": ""
|
|
},
|
|
"updateStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Query Coordinator statefulset strategy type",
|
|
"default": "RollingUpdate"
|
|
},
|
|
"rollingUpdate": {
|
|
"type": "object",
|
|
"description": "Query Coordinator statefulset rolling update configuration parameters",
|
|
"default": {}
|
|
}
|
|
}
|
|
},
|
|
"extraVolumes": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumes for the Query Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraVolumeMounts": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumeMounts for the Query Coordinator container(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"sidecars": {
|
|
"type": "array",
|
|
"description": "Add additional sidecar containers to the Query Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"enableDefaultInitContainers": {
|
|
"type": "boolean",
|
|
"description": "Deploy default init containers",
|
|
"default": true
|
|
},
|
|
"initContainers": {
|
|
"type": "array",
|
|
"description": "Add additional init containers to the Query Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"serviceAccount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"create": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of ServiceAccount for Query Coordinator pods",
|
|
"default": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the ServiceAccount to use",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Allows auto mount of ServiceAccountToken on the serviceAccount created",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"autoscaling": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable VPA",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for VPA resource",
|
|
"default": {}
|
|
},
|
|
"controlledResources": {
|
|
"type": "array",
|
|
"description": "VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"maxAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Max allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"minAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Min allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"updatePolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"updateMode": {
|
|
"type": "string",
|
|
"description": "Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod",
|
|
"default": "Auto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"hpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable HPA for Milvus Data Plane",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for HPA resource",
|
|
"default": {}
|
|
},
|
|
"minReplicas": {
|
|
"type": "string",
|
|
"description": "Minimum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"maxReplicas": {
|
|
"type": "string",
|
|
"description": "Maximum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"targetCPU": {
|
|
"type": "string",
|
|
"description": "Target CPU utilization percentage",
|
|
"default": ""
|
|
},
|
|
"targetMemory": {
|
|
"type": "string",
|
|
"description": "Target Memory utilization percentage",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Query Coordinator service type",
|
|
"default": "ClusterIP"
|
|
},
|
|
"ports": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "Query Coordinator GRPC service port",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Query Coordinator Metrics service port",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"nodePorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "string",
|
|
"description": "Node port for GRPC",
|
|
"default": ""
|
|
},
|
|
"metrics": {
|
|
"type": "string",
|
|
"description": "Node port for Metrics",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"sessionAffinityConfig": {
|
|
"type": "object",
|
|
"description": "Additional settings for the sessionAffinity",
|
|
"default": {}
|
|
},
|
|
"sessionAffinity": {
|
|
"type": "string",
|
|
"description": "Control where client requests go, to the same pod or round-robin",
|
|
"default": "None"
|
|
},
|
|
"clusterIP": {
|
|
"type": "string",
|
|
"description": "Query Coordinator service Cluster IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerIP": {
|
|
"type": "string",
|
|
"description": "Query Coordinator service Load Balancer IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerSourceRanges": {
|
|
"type": "array",
|
|
"description": "Query Coordinator service Load Balancer sources",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"externalTrafficPolicy": {
|
|
"type": "string",
|
|
"description": "Query Coordinator service external traffic policy",
|
|
"default": "Cluster"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Additional custom annotations for Query Coordinator service",
|
|
"default": {}
|
|
},
|
|
"extraPorts": {
|
|
"type": "array",
|
|
"description": "Extra ports to expose in the Query Coordinator service",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"networkPolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of NetworkPolicy resources",
|
|
"default": true
|
|
},
|
|
"allowExternal": {
|
|
"type": "boolean",
|
|
"description": "The Policy model to apply",
|
|
"default": true
|
|
},
|
|
"allowExternalEgress": {
|
|
"type": "boolean",
|
|
"description": "Allow the pod to access any range of port and all destinations.",
|
|
"default": true
|
|
},
|
|
"extraIngress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"extraEgress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metrics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable metrics",
|
|
"default": false
|
|
},
|
|
"serviceMonitor": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Create ServiceMonitor Resource for scraping metrics using Prometheus Operator",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "string",
|
|
"description": "Annotations for the ServiceMonitor Resource",
|
|
"default": ""
|
|
},
|
|
"namespace": {
|
|
"type": "string",
|
|
"description": "Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)",
|
|
"default": ""
|
|
},
|
|
"interval": {
|
|
"type": "string",
|
|
"description": "Interval at which metrics should be scraped.",
|
|
"default": ""
|
|
},
|
|
"scrapeTimeout": {
|
|
"type": "string",
|
|
"description": "Timeout after which the scrape is ended",
|
|
"default": ""
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"description": "Additional labels that can be used so ServiceMonitor will be discovered by Prometheus",
|
|
"default": {}
|
|
},
|
|
"selector": {
|
|
"type": "object",
|
|
"description": "Prometheus instance selector labels",
|
|
"default": {}
|
|
},
|
|
"relabelings": {
|
|
"type": "array",
|
|
"description": "RelabelConfigs to apply to samples before scraping",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"metricRelabelings": {
|
|
"type": "array",
|
|
"description": "MetricRelabelConfigs to apply to samples before ingestion",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"honorLabels": {
|
|
"type": "boolean",
|
|
"description": "Specify honorLabels parameter to add the scrape endpoint",
|
|
"default": false
|
|
},
|
|
"jobLabel": {
|
|
"type": "string",
|
|
"description": "The name of the label on the target service to use as the job name in prometheus.",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"indexCoord": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable Index Coordinator deployment",
|
|
"default": true
|
|
},
|
|
"extraEnvVars": {
|
|
"type": "array",
|
|
"description": "Array with extra environment variables to add to data coordinator nodes",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraEnvVarsCM": {
|
|
"type": "string",
|
|
"description": "Name of existing ConfigMap containing extra env vars for data coordinator nodes",
|
|
"default": ""
|
|
},
|
|
"extraEnvVarsSecret": {
|
|
"type": "string",
|
|
"description": "Name of existing Secret containing extra env vars for data coordinator nodes",
|
|
"default": ""
|
|
},
|
|
"defaultConfig": {
|
|
"type": "string",
|
|
"description": "Default override configuration from the common set in milvus.defaultConfig",
|
|
"default": "\"\""
|
|
},
|
|
"existingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the default configuration",
|
|
"default": ""
|
|
},
|
|
"extraConfig": {
|
|
"type": "object",
|
|
"description": "Override configuration",
|
|
"default": {}
|
|
},
|
|
"extraConfigExistingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the Dashboard",
|
|
"default": ""
|
|
},
|
|
"command": {
|
|
"type": "array",
|
|
"description": "Override default container command (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "Override default container args (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"replicaCount": {
|
|
"type": "number",
|
|
"description": "Number of Index Coordinator replicas to deploy",
|
|
"default": 1
|
|
},
|
|
"containerPorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "GRPC port for Index Coordinator",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Metrics port for Index Coordinator",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable livenessProbe on Index Coordinator nodes",
|
|
"default": true
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for livenessProbe",
|
|
"default": 5
|
|
},
|
|
"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 Index Coordinator 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": 5
|
|
},
|
|
"failureThreshold": {
|
|
"type": "number",
|
|
"description": "Failure threshold for readinessProbe",
|
|
"default": 5
|
|
},
|
|
"successThreshold": {
|
|
"type": "number",
|
|
"description": "Success threshold for readinessProbe",
|
|
"default": 1
|
|
}
|
|
}
|
|
},
|
|
"startupProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable startupProbe on Index Coordinator containers",
|
|
"default": false
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for startupProbe",
|
|
"default": 5
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"customLivenessProbe": {
|
|
"type": "object",
|
|
"description": "Custom livenessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customReadinessProbe": {
|
|
"type": "object",
|
|
"description": "Custom readinessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customStartupProbe": {
|
|
"type": "object",
|
|
"description": "Custom startupProbe 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 indexCoord.resources is set (indexCoord.resources is recommended for production).",
|
|
"default": "micro"
|
|
},
|
|
"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 Index Coordinator 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 Index Coordinator pod's Security Context fsGroup",
|
|
"default": 1001
|
|
}
|
|
}
|
|
},
|
|
"containerSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled containers' Security Context",
|
|
"default": true
|
|
},
|
|
"runAsUser": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsUser",
|
|
"default": 1001
|
|
},
|
|
"runAsGroup": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsGroup",
|
|
"default": 1001
|
|
},
|
|
"runAsNonRoot": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context runAsNonRoot",
|
|
"default": true
|
|
},
|
|
"privileged": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context privileged",
|
|
"default": false
|
|
},
|
|
"readOnlyRootFilesystem": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context readOnlyRootFilesystem",
|
|
"default": true
|
|
},
|
|
"allowPrivilegeEscalation": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context allowPrivilegeEscalation",
|
|
"default": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "List of capabilities to be dropped",
|
|
"default": [
|
|
"ALL"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seccompProfile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Set container's Security Context seccomp profile",
|
|
"default": "RuntimeDefault"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lifecycleHooks": {
|
|
"type": "object",
|
|
"description": "for the data coordinator container(s) to automate configuration before or after startup",
|
|
"default": {}
|
|
},
|
|
"runtimeClassName": {
|
|
"type": "string",
|
|
"description": "Name of the runtime class to be used by pod(s)",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Mount Service Account token in pod",
|
|
"default": false
|
|
},
|
|
"hostAliases": {
|
|
"type": "array",
|
|
"description": "data coordinator pods host aliases",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"podLabels": {
|
|
"type": "object",
|
|
"description": "Extra labels for data coordinator pods",
|
|
"default": {}
|
|
},
|
|
"podAnnotations": {
|
|
"type": "object",
|
|
"description": "Annotations for data coordinator pods",
|
|
"default": {}
|
|
},
|
|
"podAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod affinity preset. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"podAntiAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod anti-affinity preset. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": "soft"
|
|
},
|
|
"nodeAffinityPreset": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Node affinity preset type. Ignored if `data coordinator.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Node label key to match. Ignored if `data coordinator.affinity` is set",
|
|
"default": ""
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"description": "Node label values to match. Ignored if `data coordinator.affinity` is set",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"affinity": {
|
|
"type": "object",
|
|
"description": "Affinity for Index Coordinator pods assignment",
|
|
"default": {}
|
|
},
|
|
"nodeSelector": {
|
|
"type": "object",
|
|
"description": "Node labels for Index Coordinator pods assignment",
|
|
"default": {}
|
|
},
|
|
"tolerations": {
|
|
"type": "array",
|
|
"description": "Tolerations for Index Coordinator pods assignment",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"topologySpreadConstraints": {
|
|
"type": "array",
|
|
"description": "Topology Spread Constraints for pod assignment spread across your cluster among failure-domains",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"priorityClassName": {
|
|
"type": "string",
|
|
"description": "Index Coordinator pods' priorityClassName",
|
|
"default": ""
|
|
},
|
|
"schedulerName": {
|
|
"type": "string",
|
|
"description": "Kubernetes pod scheduler registry",
|
|
"default": ""
|
|
},
|
|
"updateStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Index Coordinator statefulset strategy type",
|
|
"default": "RollingUpdate"
|
|
},
|
|
"rollingUpdate": {
|
|
"type": "object",
|
|
"description": "Index Coordinator statefulset rolling update configuration parameters",
|
|
"default": {}
|
|
}
|
|
}
|
|
},
|
|
"extraVolumes": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumes for the Index Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraVolumeMounts": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumeMounts for the Index Coordinator container(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"sidecars": {
|
|
"type": "array",
|
|
"description": "Add additional sidecar containers to the Index Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"enableDefaultInitContainers": {
|
|
"type": "boolean",
|
|
"description": "Deploy default init containers",
|
|
"default": true
|
|
},
|
|
"initContainers": {
|
|
"type": "array",
|
|
"description": "Add additional init containers to the Index Coordinator pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"serviceAccount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"create": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of ServiceAccount for Index Coordinator pods",
|
|
"default": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the ServiceAccount to use",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Allows auto mount of ServiceAccountToken on the serviceAccount created",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"autoscaling": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable VPA",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for VPA resource",
|
|
"default": {}
|
|
},
|
|
"controlledResources": {
|
|
"type": "array",
|
|
"description": "VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"maxAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Max allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"minAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Min allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"updatePolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"updateMode": {
|
|
"type": "string",
|
|
"description": "Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod",
|
|
"default": "Auto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"hpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable HPA for Milvus Data Plane",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for HPA resource",
|
|
"default": {}
|
|
},
|
|
"minReplicas": {
|
|
"type": "string",
|
|
"description": "Minimum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"maxReplicas": {
|
|
"type": "string",
|
|
"description": "Maximum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"targetCPU": {
|
|
"type": "string",
|
|
"description": "Target CPU utilization percentage",
|
|
"default": ""
|
|
},
|
|
"targetMemory": {
|
|
"type": "string",
|
|
"description": "Target Memory utilization percentage",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Index Coordinator service type",
|
|
"default": "ClusterIP"
|
|
},
|
|
"ports": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "Index Coordinator GRPC service port",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Index Coordinator Metrics service port",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"nodePorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "string",
|
|
"description": "Node port for GRPC",
|
|
"default": ""
|
|
},
|
|
"metrics": {
|
|
"type": "string",
|
|
"description": "Node port for Metrics",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"sessionAffinityConfig": {
|
|
"type": "object",
|
|
"description": "Additional settings for the sessionAffinity",
|
|
"default": {}
|
|
},
|
|
"sessionAffinity": {
|
|
"type": "string",
|
|
"description": "Control where client requests go, to the same pod or round-robin",
|
|
"default": "None"
|
|
},
|
|
"clusterIP": {
|
|
"type": "string",
|
|
"description": "Index Coordinator service Cluster IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerIP": {
|
|
"type": "string",
|
|
"description": "Index Coordinator service Load Balancer IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerSourceRanges": {
|
|
"type": "array",
|
|
"description": "Index Coordinator service Load Balancer sources",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"externalTrafficPolicy": {
|
|
"type": "string",
|
|
"description": "Index Coordinator service external traffic policy",
|
|
"default": "Cluster"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Additional custom annotations for Index Coordinator service",
|
|
"default": {}
|
|
},
|
|
"extraPorts": {
|
|
"type": "array",
|
|
"description": "Extra ports to expose in the Index Coordinator service",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"networkPolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of NetworkPolicy resources",
|
|
"default": true
|
|
},
|
|
"allowExternal": {
|
|
"type": "boolean",
|
|
"description": "The Policy model to apply",
|
|
"default": true
|
|
},
|
|
"allowExternalEgress": {
|
|
"type": "boolean",
|
|
"description": "Allow the pod to access any range of port and all destinations.",
|
|
"default": true
|
|
},
|
|
"extraIngress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"extraEgress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metrics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable metrics",
|
|
"default": false
|
|
},
|
|
"serviceMonitor": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Create ServiceMonitor Resource for scraping metrics using Prometheus Operator",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "string",
|
|
"description": "Annotations for the ServiceMonitor Resource",
|
|
"default": ""
|
|
},
|
|
"namespace": {
|
|
"type": "string",
|
|
"description": "Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)",
|
|
"default": ""
|
|
},
|
|
"interval": {
|
|
"type": "string",
|
|
"description": "Interval at which metrics should be scraped.",
|
|
"default": ""
|
|
},
|
|
"scrapeTimeout": {
|
|
"type": "string",
|
|
"description": "Timeout after which the scrape is ended",
|
|
"default": ""
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"description": "Additional labels that can be used so ServiceMonitor will be discovered by Prometheus",
|
|
"default": {}
|
|
},
|
|
"selector": {
|
|
"type": "object",
|
|
"description": "Prometheus instance selector labels",
|
|
"default": {}
|
|
},
|
|
"relabelings": {
|
|
"type": "array",
|
|
"description": "RelabelConfigs to apply to samples before scraping",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"metricRelabelings": {
|
|
"type": "array",
|
|
"description": "MetricRelabelConfigs to apply to samples before ingestion",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"honorLabels": {
|
|
"type": "boolean",
|
|
"description": "Specify honorLabels parameter to add the scrape endpoint",
|
|
"default": false
|
|
},
|
|
"jobLabel": {
|
|
"type": "string",
|
|
"description": "The name of the label on the target service to use as the job name in prometheus.",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dataNode": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable Data Node deployment",
|
|
"default": true
|
|
},
|
|
"extraEnvVars": {
|
|
"type": "array",
|
|
"description": "Array with extra environment variables to add to data node nodes",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraEnvVarsCM": {
|
|
"type": "string",
|
|
"description": "Name of existing ConfigMap containing extra env vars for data node nodes",
|
|
"default": ""
|
|
},
|
|
"extraEnvVarsSecret": {
|
|
"type": "string",
|
|
"description": "Name of existing Secret containing extra env vars for data node nodes",
|
|
"default": ""
|
|
},
|
|
"defaultConfig": {
|
|
"type": "string",
|
|
"description": "Default override configuration from the common set in milvus.defaultConfig",
|
|
"default": "\"\""
|
|
},
|
|
"existingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the default configuration",
|
|
"default": ""
|
|
},
|
|
"extraConfig": {
|
|
"type": "object",
|
|
"description": "Override configuration",
|
|
"default": {}
|
|
},
|
|
"extraConfigExistingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the Dashboard",
|
|
"default": ""
|
|
},
|
|
"command": {
|
|
"type": "array",
|
|
"description": "Override default container command (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "Override default container args (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"replicaCount": {
|
|
"type": "number",
|
|
"description": "Number of Data Node replicas to deploy",
|
|
"default": 1
|
|
},
|
|
"containerPorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "GRPC port for Data Node",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Metrics port for Data Node",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable livenessProbe on Data Node nodes",
|
|
"default": true
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for livenessProbe",
|
|
"default": 5
|
|
},
|
|
"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 Data Node 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": 5
|
|
},
|
|
"failureThreshold": {
|
|
"type": "number",
|
|
"description": "Failure threshold for readinessProbe",
|
|
"default": 5
|
|
},
|
|
"successThreshold": {
|
|
"type": "number",
|
|
"description": "Success threshold for readinessProbe",
|
|
"default": 1
|
|
}
|
|
}
|
|
},
|
|
"startupProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable startupProbe on Data Node containers",
|
|
"default": false
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for startupProbe",
|
|
"default": 5
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"customLivenessProbe": {
|
|
"type": "object",
|
|
"description": "Custom livenessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customReadinessProbe": {
|
|
"type": "object",
|
|
"description": "Custom readinessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customStartupProbe": {
|
|
"type": "object",
|
|
"description": "Custom startupProbe 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 dataNode.resources is set (dataNode.resources is recommended for production).",
|
|
"default": "micro"
|
|
},
|
|
"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 Data Node 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 Data Node pod's Security Context fsGroup",
|
|
"default": 1001
|
|
}
|
|
}
|
|
},
|
|
"containerSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled containers' Security Context",
|
|
"default": true
|
|
},
|
|
"runAsUser": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsUser",
|
|
"default": 1001
|
|
},
|
|
"runAsGroup": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsGroup",
|
|
"default": 1001
|
|
},
|
|
"runAsNonRoot": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context runAsNonRoot",
|
|
"default": true
|
|
},
|
|
"privileged": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context privileged",
|
|
"default": false
|
|
},
|
|
"readOnlyRootFilesystem": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context readOnlyRootFilesystem",
|
|
"default": true
|
|
},
|
|
"allowPrivilegeEscalation": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context allowPrivilegeEscalation",
|
|
"default": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "List of capabilities to be dropped",
|
|
"default": [
|
|
"ALL"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seccompProfile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Set container's Security Context seccomp profile",
|
|
"default": "RuntimeDefault"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lifecycleHooks": {
|
|
"type": "object",
|
|
"description": "for the data node container(s) to automate configuration before or after startup",
|
|
"default": {}
|
|
},
|
|
"runtimeClassName": {
|
|
"type": "string",
|
|
"description": "Name of the runtime class to be used by pod(s)",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Mount Service Account token in pod",
|
|
"default": false
|
|
},
|
|
"hostAliases": {
|
|
"type": "array",
|
|
"description": "data node pods host aliases",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"podLabels": {
|
|
"type": "object",
|
|
"description": "Extra labels for data node pods",
|
|
"default": {}
|
|
},
|
|
"podAnnotations": {
|
|
"type": "object",
|
|
"description": "Annotations for data node pods",
|
|
"default": {}
|
|
},
|
|
"podAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod affinity preset. Ignored if `data node.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"podAntiAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod anti-affinity preset. Ignored if `data node.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": "soft"
|
|
},
|
|
"nodeAffinityPreset": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Node affinity preset type. Ignored if `data node.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Node label key to match. Ignored if `data node.affinity` is set",
|
|
"default": ""
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"description": "Node label values to match. Ignored if `data node.affinity` is set",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"affinity": {
|
|
"type": "object",
|
|
"description": "Affinity for Data Node pods assignment",
|
|
"default": {}
|
|
},
|
|
"nodeSelector": {
|
|
"type": "object",
|
|
"description": "Node labels for Data Node pods assignment",
|
|
"default": {}
|
|
},
|
|
"tolerations": {
|
|
"type": "array",
|
|
"description": "Tolerations for Data Node pods assignment",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"topologySpreadConstraints": {
|
|
"type": "array",
|
|
"description": "Topology Spread Constraints for pod assignment spread across your cluster among failure-domains",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"priorityClassName": {
|
|
"type": "string",
|
|
"description": "Data Node pods' priorityClassName",
|
|
"default": ""
|
|
},
|
|
"schedulerName": {
|
|
"type": "string",
|
|
"description": "Kubernetes pod scheduler registry",
|
|
"default": ""
|
|
},
|
|
"updateStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Data Node statefulset strategy type",
|
|
"default": "RollingUpdate"
|
|
},
|
|
"rollingUpdate": {
|
|
"type": "object",
|
|
"description": "Data Node statefulset rolling update configuration parameters",
|
|
"default": {}
|
|
}
|
|
}
|
|
},
|
|
"extraVolumes": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumes for the Data Node pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraVolumeMounts": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumeMounts for the Data Node container(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"sidecars": {
|
|
"type": "array",
|
|
"description": "Add additional sidecar containers to the Data Node pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"enableDefaultInitContainers": {
|
|
"type": "boolean",
|
|
"description": "Deploy default init containers",
|
|
"default": true
|
|
},
|
|
"initContainers": {
|
|
"type": "array",
|
|
"description": "Add additional init containers to the Data Node pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"serviceAccount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"create": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of ServiceAccount for Data Node pods",
|
|
"default": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the ServiceAccount to use",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Allows auto mount of ServiceAccountToken on the serviceAccount created",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"autoscaling": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable VPA",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for VPA resource",
|
|
"default": {}
|
|
},
|
|
"controlledResources": {
|
|
"type": "array",
|
|
"description": "VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"maxAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Max allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"minAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Min allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"updatePolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"updateMode": {
|
|
"type": "string",
|
|
"description": "Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod",
|
|
"default": "Auto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"hpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable HPA for Milvus Data Plane",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for HPA resource",
|
|
"default": {}
|
|
},
|
|
"minReplicas": {
|
|
"type": "string",
|
|
"description": "Minimum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"maxReplicas": {
|
|
"type": "string",
|
|
"description": "Maximum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"targetCPU": {
|
|
"type": "string",
|
|
"description": "Target CPU utilization percentage",
|
|
"default": ""
|
|
},
|
|
"targetMemory": {
|
|
"type": "string",
|
|
"description": "Target Memory utilization percentage",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Data Node service type",
|
|
"default": "ClusterIP"
|
|
},
|
|
"ports": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "Data Node GRPC service port",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Data Node Metrics service port",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"nodePorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "string",
|
|
"description": "Node port for GRPC",
|
|
"default": ""
|
|
},
|
|
"metrics": {
|
|
"type": "string",
|
|
"description": "Node port for Metrics",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"sessionAffinityConfig": {
|
|
"type": "object",
|
|
"description": "Additional settings for the sessionAffinity",
|
|
"default": {}
|
|
},
|
|
"sessionAffinity": {
|
|
"type": "string",
|
|
"description": "Control where client requests go, to the same pod or round-robin",
|
|
"default": "None"
|
|
},
|
|
"clusterIP": {
|
|
"type": "string",
|
|
"description": "Data Node service Cluster IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerIP": {
|
|
"type": "string",
|
|
"description": "Data Node service Load Balancer IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerSourceRanges": {
|
|
"type": "array",
|
|
"description": "Data Node service Load Balancer sources",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"externalTrafficPolicy": {
|
|
"type": "string",
|
|
"description": "Data Node service external traffic policy",
|
|
"default": "Cluster"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Additional custom annotations for Data Node service",
|
|
"default": {}
|
|
},
|
|
"extraPorts": {
|
|
"type": "array",
|
|
"description": "Extra ports to expose in the Data Node service",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"networkPolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of NetworkPolicy resources",
|
|
"default": true
|
|
},
|
|
"allowExternal": {
|
|
"type": "boolean",
|
|
"description": "The Policy model to apply",
|
|
"default": true
|
|
},
|
|
"allowExternalEgress": {
|
|
"type": "boolean",
|
|
"description": "Allow the pod to access any range of port and all destinations.",
|
|
"default": true
|
|
},
|
|
"extraIngress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"extraEgress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metrics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable metrics",
|
|
"default": false
|
|
},
|
|
"serviceMonitor": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Create ServiceMonitor Resource for scraping metrics using Prometheus Operator",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "string",
|
|
"description": "Annotations for the ServiceMonitor Resource",
|
|
"default": ""
|
|
},
|
|
"namespace": {
|
|
"type": "string",
|
|
"description": "Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)",
|
|
"default": ""
|
|
},
|
|
"interval": {
|
|
"type": "string",
|
|
"description": "Interval at which metrics should be scraped.",
|
|
"default": ""
|
|
},
|
|
"scrapeTimeout": {
|
|
"type": "string",
|
|
"description": "Timeout after which the scrape is ended",
|
|
"default": ""
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"description": "Additional labels that can be used so ServiceMonitor will be discovered by Prometheus",
|
|
"default": {}
|
|
},
|
|
"selector": {
|
|
"type": "object",
|
|
"description": "Prometheus instance selector labels",
|
|
"default": {}
|
|
},
|
|
"relabelings": {
|
|
"type": "array",
|
|
"description": "RelabelConfigs to apply to samples before scraping",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"metricRelabelings": {
|
|
"type": "array",
|
|
"description": "MetricRelabelConfigs to apply to samples before ingestion",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"honorLabels": {
|
|
"type": "boolean",
|
|
"description": "Specify honorLabels parameter to add the scrape endpoint",
|
|
"default": false
|
|
},
|
|
"jobLabel": {
|
|
"type": "string",
|
|
"description": "The name of the label on the target service to use as the job name in prometheus.",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"queryNode": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable Query Node deployment",
|
|
"default": true
|
|
},
|
|
"extraEnvVars": {
|
|
"type": "array",
|
|
"description": "Array with extra environment variables to add to data node nodes",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraEnvVarsCM": {
|
|
"type": "string",
|
|
"description": "Name of existing ConfigMap containing extra env vars for data node nodes",
|
|
"default": ""
|
|
},
|
|
"extraEnvVarsSecret": {
|
|
"type": "string",
|
|
"description": "Name of existing Secret containing extra env vars for data node nodes",
|
|
"default": ""
|
|
},
|
|
"defaultConfig": {
|
|
"type": "string",
|
|
"description": "Default override configuration from the common set in milvus.defaultConfig",
|
|
"default": "\"\""
|
|
},
|
|
"existingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the default configuration",
|
|
"default": ""
|
|
},
|
|
"extraConfig": {
|
|
"type": "object",
|
|
"description": "Override configuration",
|
|
"default": {}
|
|
},
|
|
"extraConfigExistingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the Dashboard",
|
|
"default": ""
|
|
},
|
|
"command": {
|
|
"type": "array",
|
|
"description": "Override default container command (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "Override default container args (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"replicaCount": {
|
|
"type": "number",
|
|
"description": "Number of Query Node replicas to deploy",
|
|
"default": 1
|
|
},
|
|
"containerPorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "GRPC port for Query Node",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Metrics port for Query Node",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable livenessProbe on Query Node nodes",
|
|
"default": true
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for livenessProbe",
|
|
"default": 5
|
|
},
|
|
"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 Query Node 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": 5
|
|
},
|
|
"failureThreshold": {
|
|
"type": "number",
|
|
"description": "Failure threshold for readinessProbe",
|
|
"default": 5
|
|
},
|
|
"successThreshold": {
|
|
"type": "number",
|
|
"description": "Success threshold for readinessProbe",
|
|
"default": 1
|
|
}
|
|
}
|
|
},
|
|
"startupProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable startupProbe on Query Node containers",
|
|
"default": false
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for startupProbe",
|
|
"default": 5
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"customLivenessProbe": {
|
|
"type": "object",
|
|
"description": "Custom livenessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customReadinessProbe": {
|
|
"type": "object",
|
|
"description": "Custom readinessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customStartupProbe": {
|
|
"type": "object",
|
|
"description": "Custom startupProbe 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 queryNode.resources is set (queryNode.resources is recommended for production).",
|
|
"default": "micro"
|
|
},
|
|
"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 Query Node 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 Query Node pod's Security Context fsGroup",
|
|
"default": 1001
|
|
}
|
|
}
|
|
},
|
|
"containerSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled containers' Security Context",
|
|
"default": true
|
|
},
|
|
"runAsUser": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsUser",
|
|
"default": 1001
|
|
},
|
|
"runAsGroup": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsGroup",
|
|
"default": 1001
|
|
},
|
|
"runAsNonRoot": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context runAsNonRoot",
|
|
"default": true
|
|
},
|
|
"privileged": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context privileged",
|
|
"default": false
|
|
},
|
|
"readOnlyRootFilesystem": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context readOnlyRootFilesystem",
|
|
"default": true
|
|
},
|
|
"allowPrivilegeEscalation": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context allowPrivilegeEscalation",
|
|
"default": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "List of capabilities to be dropped",
|
|
"default": [
|
|
"ALL"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seccompProfile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Set container's Security Context seccomp profile",
|
|
"default": "RuntimeDefault"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lifecycleHooks": {
|
|
"type": "object",
|
|
"description": "for the data node container(s) to automate configuration before or after startup",
|
|
"default": {}
|
|
},
|
|
"runtimeClassName": {
|
|
"type": "string",
|
|
"description": "Name of the runtime class to be used by pod(s)",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Mount Service Account token in pod",
|
|
"default": false
|
|
},
|
|
"hostAliases": {
|
|
"type": "array",
|
|
"description": "data node pods host aliases",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"podLabels": {
|
|
"type": "object",
|
|
"description": "Extra labels for data node pods",
|
|
"default": {}
|
|
},
|
|
"podAnnotations": {
|
|
"type": "object",
|
|
"description": "Annotations for data node pods",
|
|
"default": {}
|
|
},
|
|
"podAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod affinity preset. Ignored if `data node.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"podAntiAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod anti-affinity preset. Ignored if `data node.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": "soft"
|
|
},
|
|
"nodeAffinityPreset": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Node affinity preset type. Ignored if `data node.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Node label key to match. Ignored if `data node.affinity` is set",
|
|
"default": ""
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"description": "Node label values to match. Ignored if `data node.affinity` is set",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"affinity": {
|
|
"type": "object",
|
|
"description": "Affinity for Query Node pods assignment",
|
|
"default": {}
|
|
},
|
|
"nodeSelector": {
|
|
"type": "object",
|
|
"description": "Node labels for Query Node pods assignment",
|
|
"default": {}
|
|
},
|
|
"tolerations": {
|
|
"type": "array",
|
|
"description": "Tolerations for Query Node pods assignment",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"topologySpreadConstraints": {
|
|
"type": "array",
|
|
"description": "Topology Spread Constraints for pod assignment spread across your cluster among failure-domains",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"priorityClassName": {
|
|
"type": "string",
|
|
"description": "Query Node pods' priorityClassName",
|
|
"default": ""
|
|
},
|
|
"schedulerName": {
|
|
"type": "string",
|
|
"description": "Kubernetes pod scheduler registry",
|
|
"default": ""
|
|
},
|
|
"updateStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Query Node statefulset strategy type",
|
|
"default": "RollingUpdate"
|
|
},
|
|
"rollingUpdate": {
|
|
"type": "object",
|
|
"description": "Query Node statefulset rolling update configuration parameters",
|
|
"default": {}
|
|
}
|
|
}
|
|
},
|
|
"extraVolumes": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumes for the Query Node pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraVolumeMounts": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumeMounts for the Query Node container(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"sidecars": {
|
|
"type": "array",
|
|
"description": "Add additional sidecar containers to the Query Node pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"enableDefaultInitContainers": {
|
|
"type": "boolean",
|
|
"description": "Deploy default init containers",
|
|
"default": true
|
|
},
|
|
"initContainers": {
|
|
"type": "array",
|
|
"description": "Add additional init containers to the Query Node pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"serviceAccount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"create": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of ServiceAccount for Query Node pods",
|
|
"default": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the ServiceAccount to use",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Allows auto mount of ServiceAccountToken on the serviceAccount created",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"autoscaling": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable VPA",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for VPA resource",
|
|
"default": {}
|
|
},
|
|
"controlledResources": {
|
|
"type": "array",
|
|
"description": "VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"maxAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Max allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"minAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Min allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"updatePolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"updateMode": {
|
|
"type": "string",
|
|
"description": "Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod",
|
|
"default": "Auto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"hpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable HPA for Milvus Data Plane",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for HPA resource",
|
|
"default": {}
|
|
},
|
|
"minReplicas": {
|
|
"type": "string",
|
|
"description": "Minimum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"maxReplicas": {
|
|
"type": "string",
|
|
"description": "Maximum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"targetCPU": {
|
|
"type": "string",
|
|
"description": "Target CPU utilization percentage",
|
|
"default": ""
|
|
},
|
|
"targetMemory": {
|
|
"type": "string",
|
|
"description": "Target Memory utilization percentage",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Query Node service type",
|
|
"default": "ClusterIP"
|
|
},
|
|
"ports": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "Query Node GRPC service port",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Query Node Metrics service port",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"nodePorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "string",
|
|
"description": "Node port for GRPC",
|
|
"default": ""
|
|
},
|
|
"metrics": {
|
|
"type": "string",
|
|
"description": "Node port for Metrics",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"sessionAffinityConfig": {
|
|
"type": "object",
|
|
"description": "Additional settings for the sessionAffinity",
|
|
"default": {}
|
|
},
|
|
"sessionAffinity": {
|
|
"type": "string",
|
|
"description": "Control where client requests go, to the same pod or round-robin",
|
|
"default": "None"
|
|
},
|
|
"clusterIP": {
|
|
"type": "string",
|
|
"description": "Query Node service Cluster IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerIP": {
|
|
"type": "string",
|
|
"description": "Query Node service Load Balancer IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerSourceRanges": {
|
|
"type": "array",
|
|
"description": "Query Node service Load Balancer sources",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"externalTrafficPolicy": {
|
|
"type": "string",
|
|
"description": "Query Node service external traffic policy",
|
|
"default": "Cluster"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Additional custom annotations for Query Node service",
|
|
"default": {}
|
|
},
|
|
"extraPorts": {
|
|
"type": "array",
|
|
"description": "Extra ports to expose in the Query Node service",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"networkPolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of NetworkPolicy resources",
|
|
"default": true
|
|
},
|
|
"allowExternal": {
|
|
"type": "boolean",
|
|
"description": "The Policy model to apply",
|
|
"default": true
|
|
},
|
|
"allowExternalEgress": {
|
|
"type": "boolean",
|
|
"description": "Allow the pod to access any range of port and all destinations.",
|
|
"default": true
|
|
},
|
|
"extraIngress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"extraEgress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metrics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable metrics",
|
|
"default": false
|
|
},
|
|
"serviceMonitor": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Create ServiceMonitor Resource for scraping metrics using Prometheus Operator",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "string",
|
|
"description": "Annotations for the ServiceMonitor Resource",
|
|
"default": ""
|
|
},
|
|
"namespace": {
|
|
"type": "string",
|
|
"description": "Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)",
|
|
"default": ""
|
|
},
|
|
"interval": {
|
|
"type": "string",
|
|
"description": "Interval at which metrics should be scraped.",
|
|
"default": ""
|
|
},
|
|
"scrapeTimeout": {
|
|
"type": "string",
|
|
"description": "Timeout after which the scrape is ended",
|
|
"default": ""
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"description": "Additional labels that can be used so ServiceMonitor will be discovered by Prometheus",
|
|
"default": {}
|
|
},
|
|
"selector": {
|
|
"type": "object",
|
|
"description": "Prometheus instance selector labels",
|
|
"default": {}
|
|
},
|
|
"relabelings": {
|
|
"type": "array",
|
|
"description": "RelabelConfigs to apply to samples before scraping",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"metricRelabelings": {
|
|
"type": "array",
|
|
"description": "MetricRelabelConfigs to apply to samples before ingestion",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"honorLabels": {
|
|
"type": "boolean",
|
|
"description": "Specify honorLabels parameter to add the scrape endpoint",
|
|
"default": false
|
|
},
|
|
"jobLabel": {
|
|
"type": "string",
|
|
"description": "The name of the label on the target service to use as the job name in prometheus.",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"indexNode": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable Index Node deployment",
|
|
"default": true
|
|
},
|
|
"extraEnvVars": {
|
|
"type": "array",
|
|
"description": "Array with extra environment variables to add to data node nodes",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraEnvVarsCM": {
|
|
"type": "string",
|
|
"description": "Name of existing ConfigMap containing extra env vars for data node nodes",
|
|
"default": ""
|
|
},
|
|
"extraEnvVarsSecret": {
|
|
"type": "string",
|
|
"description": "Name of existing Secret containing extra env vars for data node nodes",
|
|
"default": ""
|
|
},
|
|
"defaultConfig": {
|
|
"type": "string",
|
|
"description": "Default override configuration from the common set in milvus.defaultConfig",
|
|
"default": "\"\""
|
|
},
|
|
"existingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the default configuration",
|
|
"default": ""
|
|
},
|
|
"extraConfig": {
|
|
"type": "object",
|
|
"description": "Override configuration",
|
|
"default": {}
|
|
},
|
|
"extraConfigExistingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the Dashboard",
|
|
"default": ""
|
|
},
|
|
"command": {
|
|
"type": "array",
|
|
"description": "Override default container command (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "Override default container args (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"replicaCount": {
|
|
"type": "number",
|
|
"description": "Number of Index Node replicas to deploy",
|
|
"default": 1
|
|
},
|
|
"containerPorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "GRPC port for Index Node",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Metrics port for Index Node",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable livenessProbe on Index Node nodes",
|
|
"default": true
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for livenessProbe",
|
|
"default": 5
|
|
},
|
|
"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 Index Node 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": 5
|
|
},
|
|
"failureThreshold": {
|
|
"type": "number",
|
|
"description": "Failure threshold for readinessProbe",
|
|
"default": 5
|
|
},
|
|
"successThreshold": {
|
|
"type": "number",
|
|
"description": "Success threshold for readinessProbe",
|
|
"default": 1
|
|
}
|
|
}
|
|
},
|
|
"startupProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable startupProbe on Index Node containers",
|
|
"default": false
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for startupProbe",
|
|
"default": 5
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"customLivenessProbe": {
|
|
"type": "object",
|
|
"description": "Custom livenessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customReadinessProbe": {
|
|
"type": "object",
|
|
"description": "Custom readinessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customStartupProbe": {
|
|
"type": "object",
|
|
"description": "Custom startupProbe 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 indexNode.resources is set (indexNode.resources is recommended for production).",
|
|
"default": "micro"
|
|
},
|
|
"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 Index Node 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 Index Node pod's Security Context fsGroup",
|
|
"default": 1001
|
|
}
|
|
}
|
|
},
|
|
"containerSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled containers' Security Context",
|
|
"default": true
|
|
},
|
|
"runAsUser": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsUser",
|
|
"default": 1001
|
|
},
|
|
"runAsGroup": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsGroup",
|
|
"default": 1001
|
|
},
|
|
"runAsNonRoot": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context runAsNonRoot",
|
|
"default": true
|
|
},
|
|
"privileged": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context privileged",
|
|
"default": false
|
|
},
|
|
"readOnlyRootFilesystem": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context readOnlyRootFilesystem",
|
|
"default": true
|
|
},
|
|
"allowPrivilegeEscalation": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context allowPrivilegeEscalation",
|
|
"default": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "List of capabilities to be dropped",
|
|
"default": [
|
|
"ALL"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seccompProfile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Set container's Security Context seccomp profile",
|
|
"default": "RuntimeDefault"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lifecycleHooks": {
|
|
"type": "object",
|
|
"description": "for the data node container(s) to automate configuration before or after startup",
|
|
"default": {}
|
|
},
|
|
"runtimeClassName": {
|
|
"type": "string",
|
|
"description": "Name of the runtime class to be used by pod(s)",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Mount Service Account token in pod",
|
|
"default": false
|
|
},
|
|
"hostAliases": {
|
|
"type": "array",
|
|
"description": "data node pods host aliases",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"podLabels": {
|
|
"type": "object",
|
|
"description": "Extra labels for data node pods",
|
|
"default": {}
|
|
},
|
|
"podAnnotations": {
|
|
"type": "object",
|
|
"description": "Annotations for data node pods",
|
|
"default": {}
|
|
},
|
|
"podAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod affinity preset. Ignored if `data node.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"podAntiAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod anti-affinity preset. Ignored if `data node.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": "soft"
|
|
},
|
|
"nodeAffinityPreset": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Node affinity preset type. Ignored if `data node.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Node label key to match. Ignored if `data node.affinity` is set",
|
|
"default": ""
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"description": "Node label values to match. Ignored if `data node.affinity` is set",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"affinity": {
|
|
"type": "object",
|
|
"description": "Affinity for Index Node pods assignment",
|
|
"default": {}
|
|
},
|
|
"nodeSelector": {
|
|
"type": "object",
|
|
"description": "Node labels for Index Node pods assignment",
|
|
"default": {}
|
|
},
|
|
"tolerations": {
|
|
"type": "array",
|
|
"description": "Tolerations for Index Node pods assignment",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"topologySpreadConstraints": {
|
|
"type": "array",
|
|
"description": "Topology Spread Constraints for pod assignment spread across your cluster among failure-domains",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"priorityClassName": {
|
|
"type": "string",
|
|
"description": "Index Node pods' priorityClassName",
|
|
"default": ""
|
|
},
|
|
"schedulerName": {
|
|
"type": "string",
|
|
"description": "Kubernetes pod scheduler registry",
|
|
"default": ""
|
|
},
|
|
"updateStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Index Node statefulset strategy type",
|
|
"default": "RollingUpdate"
|
|
},
|
|
"rollingUpdate": {
|
|
"type": "object",
|
|
"description": "Index Node statefulset rolling update configuration parameters",
|
|
"default": {}
|
|
}
|
|
}
|
|
},
|
|
"extraVolumes": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumes for the Index Node pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraVolumeMounts": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumeMounts for the Index Node container(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"sidecars": {
|
|
"type": "array",
|
|
"description": "Add additional sidecar containers to the Index Node pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"enableDefaultInitContainers": {
|
|
"type": "boolean",
|
|
"description": "Deploy default init containers",
|
|
"default": true
|
|
},
|
|
"initContainers": {
|
|
"type": "array",
|
|
"description": "Add additional init containers to the Index Node pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"serviceAccount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"create": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of ServiceAccount for Index Node pods",
|
|
"default": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the ServiceAccount to use",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Allows auto mount of ServiceAccountToken on the serviceAccount created",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"autoscaling": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable VPA",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for VPA resource",
|
|
"default": {}
|
|
},
|
|
"controlledResources": {
|
|
"type": "array",
|
|
"description": "VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"maxAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Max allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"minAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Min allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"updatePolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"updateMode": {
|
|
"type": "string",
|
|
"description": "Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod",
|
|
"default": "Auto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"hpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable HPA for Milvus Data Plane",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for HPA resource",
|
|
"default": {}
|
|
},
|
|
"minReplicas": {
|
|
"type": "string",
|
|
"description": "Minimum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"maxReplicas": {
|
|
"type": "string",
|
|
"description": "Maximum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"targetCPU": {
|
|
"type": "string",
|
|
"description": "Target CPU utilization percentage",
|
|
"default": ""
|
|
},
|
|
"targetMemory": {
|
|
"type": "string",
|
|
"description": "Target Memory utilization percentage",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Index Node service type",
|
|
"default": "ClusterIP"
|
|
},
|
|
"ports": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "Index Node GRPC service port",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Index Node Metrics service port",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"nodePorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "string",
|
|
"description": "Node port for GRPC",
|
|
"default": ""
|
|
},
|
|
"metrics": {
|
|
"type": "string",
|
|
"description": "Node port for Metrics",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"sessionAffinityConfig": {
|
|
"type": "object",
|
|
"description": "Additional settings for the sessionAffinity",
|
|
"default": {}
|
|
},
|
|
"sessionAffinity": {
|
|
"type": "string",
|
|
"description": "Control where client requests go, to the same pod or round-robin",
|
|
"default": "None"
|
|
},
|
|
"clusterIP": {
|
|
"type": "string",
|
|
"description": "Index Node service Cluster IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerIP": {
|
|
"type": "string",
|
|
"description": "Index Node service Load Balancer IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerSourceRanges": {
|
|
"type": "array",
|
|
"description": "Index Node service Load Balancer sources",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"externalTrafficPolicy": {
|
|
"type": "string",
|
|
"description": "Index Node service external traffic policy",
|
|
"default": "Cluster"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Additional custom annotations for Index Node service",
|
|
"default": {}
|
|
},
|
|
"extraPorts": {
|
|
"type": "array",
|
|
"description": "Extra ports to expose in the Index Node service",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"networkPolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of NetworkPolicy resources",
|
|
"default": true
|
|
},
|
|
"allowExternal": {
|
|
"type": "boolean",
|
|
"description": "The Policy model to apply",
|
|
"default": true
|
|
},
|
|
"allowExternalEgress": {
|
|
"type": "boolean",
|
|
"description": "Allow the pod to access any range of port and all destinations.",
|
|
"default": true
|
|
},
|
|
"extraIngress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"extraEgress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metrics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable metrics",
|
|
"default": false
|
|
},
|
|
"serviceMonitor": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Create ServiceMonitor Resource for scraping metrics using Prometheus Operator",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "string",
|
|
"description": "Annotations for the ServiceMonitor Resource",
|
|
"default": ""
|
|
},
|
|
"namespace": {
|
|
"type": "string",
|
|
"description": "Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)",
|
|
"default": ""
|
|
},
|
|
"interval": {
|
|
"type": "string",
|
|
"description": "Interval at which metrics should be scraped.",
|
|
"default": ""
|
|
},
|
|
"scrapeTimeout": {
|
|
"type": "string",
|
|
"description": "Timeout after which the scrape is ended",
|
|
"default": ""
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"description": "Additional labels that can be used so ServiceMonitor will be discovered by Prometheus",
|
|
"default": {}
|
|
},
|
|
"selector": {
|
|
"type": "object",
|
|
"description": "Prometheus instance selector labels",
|
|
"default": {}
|
|
},
|
|
"relabelings": {
|
|
"type": "array",
|
|
"description": "RelabelConfigs to apply to samples before scraping",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"metricRelabelings": {
|
|
"type": "array",
|
|
"description": "MetricRelabelConfigs to apply to samples before ingestion",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"honorLabels": {
|
|
"type": "boolean",
|
|
"description": "Specify honorLabels parameter to add the scrape endpoint",
|
|
"default": false
|
|
},
|
|
"jobLabel": {
|
|
"type": "string",
|
|
"description": "The name of the label on the target service to use as the job name in prometheus.",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"proxy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable Proxy deployment",
|
|
"default": true
|
|
},
|
|
"tls": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mode": {
|
|
"type": "number",
|
|
"description": "TLS mode for proxy. Allowed values: `0`, `1`, `2`",
|
|
"default": 0
|
|
},
|
|
"existingSecret": {
|
|
"type": "string",
|
|
"description": "Name of the existing secret containing the TLS certificates for proxy.",
|
|
"default": ""
|
|
},
|
|
"cert": {
|
|
"type": "string",
|
|
"description": "The secret key from the existingSecret if 'cert' key different from the default (server.pem)",
|
|
"default": "server.pem"
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "The secret key from the existingSecret if 'key' key different from the default (server.key)",
|
|
"default": "server.key"
|
|
},
|
|
"caCert": {
|
|
"type": "string",
|
|
"description": "The secret key from the existingSecret if 'caCert' key different from the default (ca.pem)",
|
|
"default": "ca.pem"
|
|
},
|
|
"keyPassword": {
|
|
"type": "string",
|
|
"description": "Password to access the password-protected PEM key if necessary.",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"extraEnvVars": {
|
|
"type": "array",
|
|
"description": "Array with extra environment variables to add to proxy nodes",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraEnvVarsCM": {
|
|
"type": "string",
|
|
"description": "Name of existing ConfigMap containing extra env vars for proxy nodes",
|
|
"default": ""
|
|
},
|
|
"extraEnvVarsSecret": {
|
|
"type": "string",
|
|
"description": "Name of existing Secret containing extra env vars for proxy nodes",
|
|
"default": ""
|
|
},
|
|
"defaultConfig": {
|
|
"type": "string",
|
|
"description": "Default override configuration from the common set in milvus.defaultConfig",
|
|
"default": "\"\""
|
|
},
|
|
"existingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the default configuration",
|
|
"default": ""
|
|
},
|
|
"extraConfig": {
|
|
"type": "object",
|
|
"description": "Override configuration",
|
|
"default": {}
|
|
},
|
|
"extraConfigExistingConfigMap": {
|
|
"type": "string",
|
|
"description": "name of a ConfigMap with existing configuration for the Dashboard",
|
|
"default": ""
|
|
},
|
|
"command": {
|
|
"type": "array",
|
|
"description": "Override default container command (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "Override default container args (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"replicaCount": {
|
|
"type": "number",
|
|
"description": "Number of Proxy replicas to deploy",
|
|
"default": 1
|
|
},
|
|
"containerPorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "GRPC port for Proxy",
|
|
"default": 19530
|
|
},
|
|
"grpcInternal": {
|
|
"type": "number",
|
|
"description": "GRPC internal port for Proxy",
|
|
"default": 19529
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Metrics port for Proxy",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable livenessProbe on Proxy nodes",
|
|
"default": true
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for livenessProbe",
|
|
"default": 5
|
|
},
|
|
"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 Proxy 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": 5
|
|
},
|
|
"failureThreshold": {
|
|
"type": "number",
|
|
"description": "Failure threshold for readinessProbe",
|
|
"default": 5
|
|
},
|
|
"successThreshold": {
|
|
"type": "number",
|
|
"description": "Success threshold for readinessProbe",
|
|
"default": 1
|
|
}
|
|
}
|
|
},
|
|
"startupProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable startupProbe on Proxy containers",
|
|
"default": false
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for startupProbe",
|
|
"default": 5
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"customLivenessProbe": {
|
|
"type": "object",
|
|
"description": "Custom livenessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customReadinessProbe": {
|
|
"type": "object",
|
|
"description": "Custom readinessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customStartupProbe": {
|
|
"type": "object",
|
|
"description": "Custom startupProbe 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 proxy.resources is set (proxy.resources is recommended for production).",
|
|
"default": "micro"
|
|
},
|
|
"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 Proxy 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 Proxy pod's Security Context fsGroup",
|
|
"default": 1001
|
|
}
|
|
}
|
|
},
|
|
"containerSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled containers' Security Context",
|
|
"default": true
|
|
},
|
|
"runAsUser": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsUser",
|
|
"default": 1001
|
|
},
|
|
"runAsGroup": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsGroup",
|
|
"default": 1001
|
|
},
|
|
"runAsNonRoot": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context runAsNonRoot",
|
|
"default": true
|
|
},
|
|
"privileged": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context privileged",
|
|
"default": false
|
|
},
|
|
"readOnlyRootFilesystem": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context readOnlyRootFilesystem",
|
|
"default": true
|
|
},
|
|
"allowPrivilegeEscalation": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context allowPrivilegeEscalation",
|
|
"default": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "List of capabilities to be dropped",
|
|
"default": [
|
|
"ALL"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seccompProfile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Set container's Security Context seccomp profile",
|
|
"default": "RuntimeDefault"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lifecycleHooks": {
|
|
"type": "object",
|
|
"description": "for the proxy container(s) to automate configuration before or after startup",
|
|
"default": {}
|
|
},
|
|
"runtimeClassName": {
|
|
"type": "string",
|
|
"description": "Name of the runtime class to be used by pod(s)",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Mount Service Account token in pod",
|
|
"default": false
|
|
},
|
|
"hostAliases": {
|
|
"type": "array",
|
|
"description": "proxy pods host aliases",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"podLabels": {
|
|
"type": "object",
|
|
"description": "Extra labels for proxy pods",
|
|
"default": {}
|
|
},
|
|
"podAnnotations": {
|
|
"type": "object",
|
|
"description": "Annotations for proxy pods",
|
|
"default": {}
|
|
},
|
|
"podAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod affinity preset. Ignored if `proxy.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"podAntiAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod anti-affinity preset. Ignored if `proxy.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": "soft"
|
|
},
|
|
"nodeAffinityPreset": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Node affinity preset type. Ignored if `proxy.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Node label key to match. Ignored if `proxy.affinity` is set",
|
|
"default": ""
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"description": "Node label values to match. Ignored if `proxy.affinity` is set",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"affinity": {
|
|
"type": "object",
|
|
"description": "Affinity for Proxy pods assignment",
|
|
"default": {}
|
|
},
|
|
"nodeSelector": {
|
|
"type": "object",
|
|
"description": "Node labels for Proxy pods assignment",
|
|
"default": {}
|
|
},
|
|
"tolerations": {
|
|
"type": "array",
|
|
"description": "Tolerations for Proxy pods assignment",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"topologySpreadConstraints": {
|
|
"type": "array",
|
|
"description": "Topology Spread Constraints for pod assignment spread across your cluster among failure-domains",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"priorityClassName": {
|
|
"type": "string",
|
|
"description": "Proxy pods' priorityClassName",
|
|
"default": ""
|
|
},
|
|
"schedulerName": {
|
|
"type": "string",
|
|
"description": "Kubernetes pod scheduler registry",
|
|
"default": ""
|
|
},
|
|
"updateStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Proxy statefulset strategy type",
|
|
"default": "RollingUpdate"
|
|
},
|
|
"rollingUpdate": {
|
|
"type": "object",
|
|
"description": "Proxy statefulset rolling update configuration parameters",
|
|
"default": {}
|
|
}
|
|
}
|
|
},
|
|
"extraVolumes": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumes for the Proxy pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraVolumeMounts": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumeMounts for the Proxy container(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"sidecars": {
|
|
"type": "array",
|
|
"description": "Add additional sidecar containers to the Proxy pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"enableDefaultInitContainers": {
|
|
"type": "boolean",
|
|
"description": "Deploy default init containers",
|
|
"default": true
|
|
},
|
|
"initContainers": {
|
|
"type": "array",
|
|
"description": "Add additional init containers to the Proxy pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"serviceAccount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"create": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of ServiceAccount for Proxy pods",
|
|
"default": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the ServiceAccount to use",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Allows auto mount of ServiceAccountToken on the serviceAccount created",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"autoscaling": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable VPA",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for VPA resource",
|
|
"default": {}
|
|
},
|
|
"controlledResources": {
|
|
"type": "array",
|
|
"description": "VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"maxAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Max allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"minAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Min allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"updatePolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"updateMode": {
|
|
"type": "string",
|
|
"description": "Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod",
|
|
"default": "Auto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"hpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable HPA for Milvus Data Plane",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for HPA resource",
|
|
"default": {}
|
|
},
|
|
"minReplicas": {
|
|
"type": "string",
|
|
"description": "Minimum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"maxReplicas": {
|
|
"type": "string",
|
|
"description": "Maximum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"targetCPU": {
|
|
"type": "string",
|
|
"description": "Target CPU utilization percentage",
|
|
"default": ""
|
|
},
|
|
"targetMemory": {
|
|
"type": "string",
|
|
"description": "Target Memory utilization percentage",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Proxy service type",
|
|
"default": "LoadBalancer"
|
|
},
|
|
"ports": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "number",
|
|
"description": "Proxy GRPC service port",
|
|
"default": 19530
|
|
},
|
|
"metrics": {
|
|
"type": "number",
|
|
"description": "Proxy Metrics service port",
|
|
"default": 9091
|
|
}
|
|
}
|
|
},
|
|
"nodePorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"grpc": {
|
|
"type": "string",
|
|
"description": "Node port for GRPC",
|
|
"default": ""
|
|
},
|
|
"metrics": {
|
|
"type": "string",
|
|
"description": "Node port for Metrics",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"sessionAffinityConfig": {
|
|
"type": "object",
|
|
"description": "Additional settings for the sessionAffinity",
|
|
"default": {}
|
|
},
|
|
"sessionAffinity": {
|
|
"type": "string",
|
|
"description": "Control where client requests go, to the same pod or round-robin",
|
|
"default": "None"
|
|
},
|
|
"clusterIP": {
|
|
"type": "string",
|
|
"description": "Proxy service Cluster IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerIP": {
|
|
"type": "string",
|
|
"description": "Proxy service Load Balancer IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerSourceRanges": {
|
|
"type": "array",
|
|
"description": "Proxy service Load Balancer sources",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"externalTrafficPolicy": {
|
|
"type": "string",
|
|
"description": "Proxy service external traffic policy",
|
|
"default": "Cluster"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Additional custom annotations for Proxy service",
|
|
"default": {}
|
|
},
|
|
"extraPorts": {
|
|
"type": "array",
|
|
"description": "Extra ports to expose in the Proxy service",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"networkPolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of NetworkPolicy resources",
|
|
"default": true
|
|
},
|
|
"allowExternal": {
|
|
"type": "boolean",
|
|
"description": "The Policy model to apply",
|
|
"default": true
|
|
},
|
|
"allowExternalEgress": {
|
|
"type": "boolean",
|
|
"description": "Allow the pod to access any range of port and all destinations.",
|
|
"default": true
|
|
},
|
|
"extraIngress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"extraEgress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metrics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable metrics",
|
|
"default": false
|
|
},
|
|
"serviceMonitor": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Create ServiceMonitor Resource for scraping metrics using Prometheus Operator",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "string",
|
|
"description": "Annotations for the ServiceMonitor Resource",
|
|
"default": ""
|
|
},
|
|
"namespace": {
|
|
"type": "string",
|
|
"description": "Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)",
|
|
"default": ""
|
|
},
|
|
"interval": {
|
|
"type": "string",
|
|
"description": "Interval at which metrics should be scraped.",
|
|
"default": ""
|
|
},
|
|
"scrapeTimeout": {
|
|
"type": "string",
|
|
"description": "Timeout after which the scrape is ended",
|
|
"default": ""
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"description": "Additional labels that can be used so ServiceMonitor will be discovered by Prometheus",
|
|
"default": {}
|
|
},
|
|
"selector": {
|
|
"type": "object",
|
|
"description": "Prometheus instance selector labels",
|
|
"default": {}
|
|
},
|
|
"relabelings": {
|
|
"type": "array",
|
|
"description": "RelabelConfigs to apply to samples before scraping",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"metricRelabelings": {
|
|
"type": "array",
|
|
"description": "MetricRelabelConfigs to apply to samples before ingestion",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"honorLabels": {
|
|
"type": "boolean",
|
|
"description": "Specify honorLabels parameter to add the scrape endpoint",
|
|
"default": false
|
|
},
|
|
"jobLabel": {
|
|
"type": "string",
|
|
"description": "The name of the label on the target service to use as the job name in prometheus.",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"attu": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable Attu deployment",
|
|
"default": true
|
|
},
|
|
"image": {
|
|
"type": "object",
|
|
"properties": {
|
|
"registry": {
|
|
"type": "string",
|
|
"description": "Attu image registry",
|
|
"default": "REGISTRY_NAME"
|
|
},
|
|
"repository": {
|
|
"type": "string",
|
|
"description": "Attu image repository",
|
|
"default": "REPOSITORY_NAME/attu"
|
|
},
|
|
"digest": {
|
|
"type": "string",
|
|
"description": "Attu image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag",
|
|
"default": ""
|
|
},
|
|
"pullPolicy": {
|
|
"type": "string",
|
|
"description": "Attu image pull policy",
|
|
"default": "IfNotPresent"
|
|
},
|
|
"pullSecrets": {
|
|
"type": "array",
|
|
"description": "Attu image pull secrets",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"debug": {
|
|
"type": "boolean",
|
|
"description": "Enable debug mode",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"extraEnvVars": {
|
|
"type": "array",
|
|
"description": "Array with extra environment variables to add to attu nodes",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraEnvVarsCM": {
|
|
"type": "string",
|
|
"description": "Name of existing ConfigMap containing extra env vars for attu nodes",
|
|
"default": ""
|
|
},
|
|
"extraEnvVarsSecret": {
|
|
"type": "string",
|
|
"description": "Name of existing Secret containing extra env vars for attu nodes",
|
|
"default": ""
|
|
},
|
|
"command": {
|
|
"type": "array",
|
|
"description": "Override default container command (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "Override default container args (useful when using custom images)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"replicaCount": {
|
|
"type": "number",
|
|
"description": "Number of Attu replicas to deploy",
|
|
"default": 1
|
|
},
|
|
"containerPorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"http": {
|
|
"type": "number",
|
|
"description": "HTTP port for Attu",
|
|
"default": 3000
|
|
}
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable livenessProbe on Attu nodes",
|
|
"default": true
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for livenessProbe",
|
|
"default": 5
|
|
},
|
|
"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 Attu 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": 5
|
|
},
|
|
"failureThreshold": {
|
|
"type": "number",
|
|
"description": "Failure threshold for readinessProbe",
|
|
"default": 5
|
|
},
|
|
"successThreshold": {
|
|
"type": "number",
|
|
"description": "Success threshold for readinessProbe",
|
|
"default": 1
|
|
}
|
|
}
|
|
},
|
|
"startupProbe": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable startupProbe on Attu containers",
|
|
"default": false
|
|
},
|
|
"initialDelaySeconds": {
|
|
"type": "number",
|
|
"description": "Initial delay seconds for startupProbe",
|
|
"default": 5
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"customLivenessProbe": {
|
|
"type": "object",
|
|
"description": "Custom livenessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customReadinessProbe": {
|
|
"type": "object",
|
|
"description": "Custom readinessProbe that overrides the default one",
|
|
"default": {}
|
|
},
|
|
"customStartupProbe": {
|
|
"type": "object",
|
|
"description": "Custom startupProbe 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 attu.resources is set (attu.resources is recommended for production).",
|
|
"default": "micro"
|
|
},
|
|
"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 Attu 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 Attu pod's Security Context fsGroup",
|
|
"default": 1001
|
|
}
|
|
}
|
|
},
|
|
"containerSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled containers' Security Context",
|
|
"default": true
|
|
},
|
|
"runAsUser": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsUser",
|
|
"default": 1001
|
|
},
|
|
"runAsGroup": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsGroup",
|
|
"default": 1001
|
|
},
|
|
"runAsNonRoot": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context runAsNonRoot",
|
|
"default": true
|
|
},
|
|
"privileged": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context privileged",
|
|
"default": false
|
|
},
|
|
"readOnlyRootFilesystem": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context readOnlyRootFilesystem",
|
|
"default": true
|
|
},
|
|
"allowPrivilegeEscalation": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context allowPrivilegeEscalation",
|
|
"default": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "List of capabilities to be dropped",
|
|
"default": [
|
|
"ALL"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seccompProfile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Set container's Security Context seccomp profile",
|
|
"default": "RuntimeDefault"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lifecycleHooks": {
|
|
"type": "object",
|
|
"description": "for the attu container(s) to automate configuration before or after startup",
|
|
"default": {}
|
|
},
|
|
"runtimeClassName": {
|
|
"type": "string",
|
|
"description": "Name of the runtime class to be used by pod(s)",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Mount Service Account token in pod",
|
|
"default": false
|
|
},
|
|
"hostAliases": {
|
|
"type": "array",
|
|
"description": "attu pods host aliases",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"podLabels": {
|
|
"type": "object",
|
|
"description": "Extra labels for attu pods",
|
|
"default": {}
|
|
},
|
|
"podAnnotations": {
|
|
"type": "object",
|
|
"description": "Annotations for attu pods",
|
|
"default": {}
|
|
},
|
|
"podAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod affinity preset. Ignored if `attu.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"podAntiAffinityPreset": {
|
|
"type": "string",
|
|
"description": "Pod anti-affinity preset. Ignored if `attu.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": "soft"
|
|
},
|
|
"nodeAffinityPreset": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Node affinity preset type. Ignored if `attu.affinity` is set. Allowed values: `soft` or `hard`",
|
|
"default": ""
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "Node label key to match. Ignored if `attu.affinity` is set",
|
|
"default": ""
|
|
},
|
|
"values": {
|
|
"type": "array",
|
|
"description": "Node label values to match. Ignored if `attu.affinity` is set",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"affinity": {
|
|
"type": "object",
|
|
"description": "Affinity for Attu pods assignment",
|
|
"default": {}
|
|
},
|
|
"nodeSelector": {
|
|
"type": "object",
|
|
"description": "Node labels for Attu pods assignment",
|
|
"default": {}
|
|
},
|
|
"tolerations": {
|
|
"type": "array",
|
|
"description": "Tolerations for Attu pods assignment",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"topologySpreadConstraints": {
|
|
"type": "array",
|
|
"description": "Topology Spread Constraints for pod assignment spread across your cluster among failure-domains",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"priorityClassName": {
|
|
"type": "string",
|
|
"description": "Attu pods' priorityClassName",
|
|
"default": ""
|
|
},
|
|
"schedulerName": {
|
|
"type": "string",
|
|
"description": "Kubernetes pod scheduler registry",
|
|
"default": ""
|
|
},
|
|
"updateStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Attu statefulset strategy type",
|
|
"default": "RollingUpdate"
|
|
},
|
|
"rollingUpdate": {
|
|
"type": "object",
|
|
"description": "Attu statefulset rolling update configuration parameters",
|
|
"default": {}
|
|
}
|
|
}
|
|
},
|
|
"extraVolumes": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumes for the Attu pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraVolumeMounts": {
|
|
"type": "array",
|
|
"description": "Optionally specify extra list of additional volumeMounts for the Attu container(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"sidecars": {
|
|
"type": "array",
|
|
"description": "Add additional sidecar containers to the Attu pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"enableDefaultInitContainers": {
|
|
"type": "boolean",
|
|
"description": "Deploy default init containers",
|
|
"default": true
|
|
},
|
|
"initContainers": {
|
|
"type": "array",
|
|
"description": "Add additional init containers to the Attu pod(s)",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"serviceAccount": {
|
|
"type": "object",
|
|
"properties": {
|
|
"create": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of ServiceAccount for Attu pods",
|
|
"default": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the ServiceAccount to use",
|
|
"default": ""
|
|
},
|
|
"automountServiceAccountToken": {
|
|
"type": "boolean",
|
|
"description": "Allows auto mount of ServiceAccountToken on the serviceAccount created",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"autoscaling": {
|
|
"type": "object",
|
|
"properties": {
|
|
"vpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable VPA",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for VPA resource",
|
|
"default": {}
|
|
},
|
|
"controlledResources": {
|
|
"type": "array",
|
|
"description": "VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"maxAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Max allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"minAllowed": {
|
|
"type": "object",
|
|
"description": "VPA Min allowed resources for the pod",
|
|
"default": {}
|
|
},
|
|
"updatePolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"updateMode": {
|
|
"type": "string",
|
|
"description": "Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod",
|
|
"default": "Auto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"hpa": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable HPA for Milvus Data Plane",
|
|
"default": false
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Annotations for HPA resource",
|
|
"default": {}
|
|
},
|
|
"minReplicas": {
|
|
"type": "string",
|
|
"description": "Minimum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"maxReplicas": {
|
|
"type": "string",
|
|
"description": "Maximum number of Milvus Data Plane replicas",
|
|
"default": ""
|
|
},
|
|
"targetCPU": {
|
|
"type": "string",
|
|
"description": "Target CPU utilization percentage",
|
|
"default": ""
|
|
},
|
|
"targetMemory": {
|
|
"type": "string",
|
|
"description": "Target Memory utilization percentage",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Attu service type",
|
|
"default": "LoadBalancer"
|
|
},
|
|
"ports": {
|
|
"type": "object",
|
|
"properties": {
|
|
"http": {
|
|
"type": "number",
|
|
"description": "Attu HTTP service port",
|
|
"default": 80
|
|
}
|
|
}
|
|
},
|
|
"nodePorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"http": {
|
|
"type": "string",
|
|
"description": "Node port for HTTP",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"sessionAffinityConfig": {
|
|
"type": "object",
|
|
"description": "Additional settings for the sessionAffinity",
|
|
"default": {}
|
|
},
|
|
"sessionAffinity": {
|
|
"type": "string",
|
|
"description": "Control where client requests go, to the same pod or round-robin",
|
|
"default": "None"
|
|
},
|
|
"clusterIP": {
|
|
"type": "string",
|
|
"description": "Attu service Cluster IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerIP": {
|
|
"type": "string",
|
|
"description": "Attu service Load Balancer IP",
|
|
"default": ""
|
|
},
|
|
"loadBalancerSourceRanges": {
|
|
"type": "array",
|
|
"description": "Attu service Load Balancer sources",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"externalTrafficPolicy": {
|
|
"type": "string",
|
|
"description": "Attu service external traffic policy",
|
|
"default": "Cluster"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Additional custom annotations for Attu service",
|
|
"default": {}
|
|
},
|
|
"extraPorts": {
|
|
"type": "array",
|
|
"description": "Extra ports to expose in the Attu service",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"ingress": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable ingress record generation for Milvus",
|
|
"default": false
|
|
},
|
|
"pathType": {
|
|
"type": "string",
|
|
"description": "Ingress path type",
|
|
"default": "ImplementationSpecific"
|
|
},
|
|
"apiVersion": {
|
|
"type": "string",
|
|
"description": "Force Ingress API version (automatically detected if not set)",
|
|
"default": ""
|
|
},
|
|
"hostname": {
|
|
"type": "string",
|
|
"description": "Default host for the ingress record",
|
|
"default": "milvus.local"
|
|
},
|
|
"ingressClassName": {
|
|
"type": "string",
|
|
"description": "IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)",
|
|
"default": ""
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
"description": "Default path for the ingress record",
|
|
"default": "/"
|
|
},
|
|
"annotations": {
|
|
"type": "object",
|
|
"description": "Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.",
|
|
"default": {}
|
|
},
|
|
"tls": {
|
|
"type": "boolean",
|
|
"description": "Enable TLS configuration for the host defined at `attu.ingress.hostname` parameter",
|
|
"default": false
|
|
},
|
|
"selfSigned": {
|
|
"type": "boolean",
|
|
"description": "Create a TLS secret for this ingress record using self-signed certificates generated by Helm",
|
|
"default": false
|
|
},
|
|
"extraHosts": {
|
|
"type": "array",
|
|
"description": "An array with additional hostname(s) to be covered with the ingress record",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraPaths": {
|
|
"type": "array",
|
|
"description": "An array with additional arbitrary paths that may need to be added to the ingress under the main host",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraTls": {
|
|
"type": "array",
|
|
"description": "TLS configuration for additional hostname(s) to be covered with this ingress record",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"secrets": {
|
|
"type": "array",
|
|
"description": "Custom TLS certificates as secrets",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"extraRules": {
|
|
"type": "array",
|
|
"description": "Additional rules to be covered with this ingress record",
|
|
"default": [],
|
|
"items": {}
|
|
}
|
|
}
|
|
},
|
|
"networkPolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable creation of NetworkPolicy resources",
|
|
"default": true
|
|
},
|
|
"allowExternal": {
|
|
"type": "boolean",
|
|
"description": "The Policy model to apply",
|
|
"default": true
|
|
},
|
|
"allowExternalEgress": {
|
|
"type": "boolean",
|
|
"description": "Allow the pod to access any range of port and all destinations.",
|
|
"default": true
|
|
},
|
|
"extraIngress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"extraEgress": {
|
|
"type": "array",
|
|
"description": "Add extra ingress rules to the NetworkPolicy",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"waitContainer": {
|
|
"type": "object",
|
|
"properties": {
|
|
"image": {
|
|
"type": "object",
|
|
"properties": {
|
|
"registry": {
|
|
"type": "string",
|
|
"description": "Init container wait-container image registry",
|
|
"default": "REGISTRY_NAME"
|
|
},
|
|
"repository": {
|
|
"type": "string",
|
|
"description": "Init container wait-container image name",
|
|
"default": "REPOSITORY_NAME/os-shell"
|
|
},
|
|
"digest": {
|
|
"type": "string",
|
|
"description": "Init container wait-container image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag",
|
|
"default": ""
|
|
},
|
|
"pullPolicy": {
|
|
"type": "string",
|
|
"description": "Init container wait-container image pull policy",
|
|
"default": "IfNotPresent"
|
|
},
|
|
"pullSecrets": {
|
|
"type": "array",
|
|
"description": "Specify docker-registry secret names as an array",
|
|
"default": "[]",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"containerSecurityContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enabled containers' Security Context",
|
|
"default": true
|
|
},
|
|
"runAsUser": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsUser",
|
|
"default": 1001
|
|
},
|
|
"runAsGroup": {
|
|
"type": "number",
|
|
"description": "Set containers' Security Context runAsGroup",
|
|
"default": 1001
|
|
},
|
|
"runAsNonRoot": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context runAsNonRoot",
|
|
"default": true
|
|
},
|
|
"privileged": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context privileged",
|
|
"default": false
|
|
},
|
|
"readOnlyRootFilesystem": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context readOnlyRootFilesystem",
|
|
"default": true
|
|
},
|
|
"allowPrivilegeEscalation": {
|
|
"type": "boolean",
|
|
"description": "Set container's Security Context allowPrivilegeEscalation",
|
|
"default": false
|
|
},
|
|
"capabilities": {
|
|
"type": "object",
|
|
"properties": {
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "List of capabilities to be dropped",
|
|
"default": [
|
|
"ALL"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"seccompProfile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Set container's Security Context seccomp profile",
|
|
"default": "RuntimeDefault"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"resourcesPreset": {
|
|
"type": "string",
|
|
"description": "Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if initJob.resources is set (initJob.resources is recommended for production).",
|
|
"default": "micro"
|
|
},
|
|
"resources": {
|
|
"type": "object",
|
|
"description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)",
|
|
"default": {}
|
|
}
|
|
}
|
|
},
|
|
"externalEtcd": {
|
|
"type": "object",
|
|
"properties": {
|
|
"servers": {
|
|
"type": "array",
|
|
"description": "List of hostnames of the external etcd",
|
|
"default": [],
|
|
"items": {}
|
|
},
|
|
"port": {
|
|
"type": "number",
|
|
"description": "Port of the external etcd instance",
|
|
"default": 2379
|
|
},
|
|
"user": {
|
|
"type": "string",
|
|
"description": "User of the external etcd instance",
|
|
"default": "root"
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"description": "Password of the external etcd instance",
|
|
"default": ""
|
|
},
|
|
"existingSecret": {
|
|
"type": "string",
|
|
"description": "Name of a secret containing the external etcd password",
|
|
"default": ""
|
|
},
|
|
"existingSecretPasswordKey": {
|
|
"type": "string",
|
|
"description": "Key inside the secret containing the external etcd password",
|
|
"default": "etcd-root-password"
|
|
},
|
|
"tls": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable TLS for etcd client connections.",
|
|
"default": false
|
|
},
|
|
"existingSecret": {
|
|
"type": "string",
|
|
"description": "Name of the existing secret containing the TLS certificates for external etcd client communications.",
|
|
"default": ""
|
|
},
|
|
"cert": {
|
|
"type": "string",
|
|
"description": "The secret key from the existingSecret if 'cert' key different from the default (tls.crt)",
|
|
"default": "tls.crt"
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "The secret key from the existingSecret if 'key' key different from the default (tls.key)",
|
|
"default": "tls.key"
|
|
},
|
|
"caCert": {
|
|
"type": "string",
|
|
"description": "The secret key from the existingSecret if 'caCert' key different from the default (ca.crt)",
|
|
"default": "ca.crt"
|
|
},
|
|
"keyPassword": {
|
|
"type": "string",
|
|
"description": "Password to access the password-protected PEM key if necessary.",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"externalS3": {
|
|
"type": "object",
|
|
"properties": {
|
|
"host": {
|
|
"type": "string",
|
|
"description": "External S3 host",
|
|
"default": ""
|
|
},
|
|
"port": {
|
|
"type": "number",
|
|
"description": "External S3 port number",
|
|
"default": 443
|
|
},
|
|
"accessKeyID": {
|
|
"type": "string",
|
|
"description": "External S3 access key ID",
|
|
"default": ""
|
|
},
|
|
"accessKeySecret": {
|
|
"type": "string",
|
|
"description": "External S3 access key secret",
|
|
"default": ""
|
|
},
|
|
"existingSecret": {
|
|
"type": "string",
|
|
"description": "Name of an existing secret resource containing the S3 credentials",
|
|
"default": ""
|
|
},
|
|
"existingSecretAccessKeyIDKey": {
|
|
"type": "string",
|
|
"description": "Name of an existing secret key containing the S3 access key ID",
|
|
"default": "root-user"
|
|
},
|
|
"existingSecretKeySecretKey": {
|
|
"type": "string",
|
|
"description": "Name of an existing secret key containing the S3 access key secret",
|
|
"default": "root-password"
|
|
},
|
|
"protocol": {
|
|
"type": "string",
|
|
"description": "External S3 protocol",
|
|
"default": "https"
|
|
},
|
|
"bucket": {
|
|
"type": "string",
|
|
"description": "External S3 bucket",
|
|
"default": "milvus"
|
|
},
|
|
"rootPath": {
|
|
"type": "string",
|
|
"description": "External S3 root path",
|
|
"default": "file"
|
|
},
|
|
"iamEndpoint": {
|
|
"type": "string",
|
|
"description": "External S3 IAM endpoint",
|
|
"default": ""
|
|
},
|
|
"cloudProvider": {
|
|
"type": "string",
|
|
"description": "External S3 cloud provider",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"externalKafka": {
|
|
"type": "object",
|
|
"properties": {
|
|
"servers": {
|
|
"type": "array",
|
|
"description": "External Kafka brokers",
|
|
"default": [
|
|
"localhost"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"port": {
|
|
"type": "number",
|
|
"description": "External Kafka port",
|
|
"default": 9092
|
|
},
|
|
"listener": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"description": "Kafka listener protocol. Allowed protocols: PLAINTEXT, SASL_PLAINTEXT, SASL_SSL and SSL",
|
|
"default": "PLAINTEXT"
|
|
}
|
|
}
|
|
},
|
|
"sasl": {
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"type": "string",
|
|
"description": "User for SASL authentication",
|
|
"default": "user"
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"description": "Password for SASL authentication",
|
|
"default": ""
|
|
},
|
|
"existingSecret": {
|
|
"type": "string",
|
|
"description": "Name of the existing secret containing a password for SASL authentication (under the key named \"client-passwords\")",
|
|
"default": ""
|
|
},
|
|
"existingSecretPasswordKey": {
|
|
"type": "string",
|
|
"description": "Name of the secret key containing the Kafka client user password",
|
|
"default": "kafka-root-password"
|
|
},
|
|
"enabledMechanisms": {
|
|
"type": "string",
|
|
"description": "Kafka enabled SASL mechanisms",
|
|
"default": "PLAIN"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"etcd": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Deploy etcd sub-chart",
|
|
"default": true
|
|
},
|
|
"replicaCount": {
|
|
"type": "number",
|
|
"description": "Number of etcd replicas",
|
|
"default": 3
|
|
},
|
|
"containerPorts": {
|
|
"type": "object",
|
|
"properties": {
|
|
"client": {
|
|
"type": "number",
|
|
"description": "Container port for etcd",
|
|
"default": 2379
|
|
}
|
|
}
|
|
},
|
|
"auth": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rbac": {
|
|
"type": "object",
|
|
"properties": {
|
|
"create": {
|
|
"type": "boolean",
|
|
"description": "Switch to enable RBAC authentication",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"client": {
|
|
"type": "object",
|
|
"properties": {
|
|
"secureTransport": {
|
|
"type": "boolean",
|
|
"description": "use TLS for client-to-server communications",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"minio": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable/disable MinIO® chart installation",
|
|
"default": true
|
|
},
|
|
"auth": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rootUser": {
|
|
"type": "string",
|
|
"description": "MinIO® root username",
|
|
"default": "admin"
|
|
},
|
|
"rootPassword": {
|
|
"type": "string",
|
|
"description": "Password for MinIO® root user",
|
|
"default": ""
|
|
},
|
|
"existingSecret": {
|
|
"type": "string",
|
|
"description": "Name of an existing secret containing the MinIO® credentials",
|
|
"default": ""
|
|
}
|
|
}
|
|
},
|
|
"defaultBuckets": {
|
|
"type": "string",
|
|
"description": "Comma, semi-colon or space separated list of MinIO® buckets to create",
|
|
"default": "milvus"
|
|
},
|
|
"provisioning": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable/disable MinIO® provisioning job",
|
|
"default": true
|
|
},
|
|
"extraCommands": {
|
|
"type": "array",
|
|
"description": "Extra commands to run on MinIO® provisioning job",
|
|
"default": [
|
|
"mc anonymous set download provisioning/milvus"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tls": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable/disable MinIO® TLS support",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "MinIO® service type",
|
|
"default": "ClusterIP"
|
|
},
|
|
"loadBalancerIP": {
|
|
"type": "string",
|
|
"description": "MinIO® service LoadBalancer IP",
|
|
"default": ""
|
|
},
|
|
"ports": {
|
|
"type": "object",
|
|
"properties": {
|
|
"api": {
|
|
"type": "number",
|
|
"description": "MinIO® service port",
|
|
"default": 80
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"kafka": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable/disable Kafka chart installation",
|
|
"default": true
|
|
},
|
|
"controller": {
|
|
"type": "object",
|
|
"properties": {
|
|
"replicaCount": {
|
|
"type": "number",
|
|
"description": "Number of Kafka controller eligible (controller+broker) nodes",
|
|
"default": 1
|
|
}
|
|
}
|
|
},
|
|
"service": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ports": {
|
|
"type": "object",
|
|
"properties": {
|
|
"client": {
|
|
"type": "number",
|
|
"description": "Kafka svc port for client connections",
|
|
"default": 9092
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"extraConfig": {
|
|
"type": "string",
|
|
"description": "Additional configuration to be appended at the end of the generated Kafka configuration file.",
|
|
"default": "offsets.topic.replication.factor=1"
|
|
},
|
|
"listeners": {
|
|
"type": "object",
|
|
"properties": {
|
|
"client": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protocol": {
|
|
"type": "string",
|
|
"description": "Kafka authentication protocol for the client listener",
|
|
"default": "SASL_PLAINTEXT"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"sasl": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabledMechanisms": {
|
|
"type": "string",
|
|
"description": "Kafka enabled SASL mechanisms",
|
|
"default": "PLAIN"
|
|
},
|
|
"client": {
|
|
"type": "object",
|
|
"properties": {
|
|
"users": {
|
|
"type": "array",
|
|
"description": "Kafka client users",
|
|
"default": [
|
|
"user"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |