{ "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": {} }, "security": { "type": "object", "properties": { "allowInsecureImages": { "type": "boolean", "description": "Allows skipping image verification", "default": false } } } } }, "nameOverride": { "type": "string", "description": "String to partially override common.names.fullname template (will maintain the release name)", "default": "" }, "fullnameOverride": { "type": "string", "description": "String to fully override common.names.fullname template", "default": "" }, "namespaceOverride": { "type": "string", "description": "String to fully override common.names.namespace", "default": "" }, "clusterDomain": { "type": "string", "description": "Kubernetes Cluster Domain", "default": "cluster.local" }, "commonLabels": { "type": "object", "description": "Labels to add to all deployed objects", "default": {} }, "commonAnnotations": { "type": "object", "description": "Annotations to add to all deployed objects", "default": {} }, "extraDeploy": { "type": "array", "description": "Array of extra objects to deploy with the release (evaluated as a template).", "default": [], "items": {} }, "kubeVersion": { "type": "string", "description": "Force target Kubernetes version (using Helm capabilities if not set)", "default": "" }, "image": { "type": "object", "properties": { "registry": { "type": "string", "description": "Cloudbeaver image registry", "default": "docker.io" }, "repository": { "type": "string", "description": "Cloudbeaver image repository", "default": "dbeaver/cloudbeaver" }, "tag": { "type": "string", "description": "Cloudbeaver Image tag (immutable tags are recommended)", "default": "26.0.1" }, "digest": { "type": "string", "description": "Cloudbeaver image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag", "default": "" }, "pullPolicy": { "type": "string", "description": "Cloudbeaver image pull policy", "default": "IfNotPresent" }, "pullSecrets": { "type": "array", "description": "Cloudbeaver image pull secrets", "default": [], "items": {} } } }, "revisionHistoryLimit": { "type": "number", "description": "sets number of replicaset to keep in k8s", "default": 10 }, "automountServiceAccountToken": { "type": "boolean", "description": "Mount Service Account token in pod", "default": false }, "hostAliases": { "type": "array", "description": "Deployment pod host aliases", "default": [], "items": {} }, "updateStrategy": { "type": "object", "properties": { "type": { "type": "string", "description": "defaults to Recreate because of ReadWriteOnce PVC AccessMode", "default": "Recreate" } } }, "command": { "type": "array", "description": "Override cloudbeaver default command", "default": [], "items": {} }, "args": { "type": "array", "description": "Override cloudbeaver default args", "default": [], "items": {} }, "livenessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable livenessProbe on cloudbeaver server containers", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for livenessProbe", "default": 60 }, "periodSeconds": { "type": "number", "description": "Period seconds for livenessProbe", "default": 5 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for livenessProbe", "default": 1 }, "failureThreshold": { "type": "number", "description": "Failure threshold for livenessProbe", "default": 5 } } }, "readinessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable readinessProbe on cloudbeaver server containers", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for readinessProbe", "default": 5 }, "periodSeconds": { "type": "number", "description": "Period seconds for readinessProbe", "default": 5 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for readinessProbe", "default": 1 }, "failureThreshold": { "type": "number", "description": "Failure threshold for readinessProbe", "default": 5 } } }, "initContainers": { "type": "array", "description": "Attach additional init containers to the pod (evaluated as a template)", "default": [], "items": {} }, "dnsPolicy": { "type": "string", "description": "Specifies the DNS policy for the cloudbeaver deployment", "default": "" }, "dnsConfig": { "type": "object", "description": "allows users more control on the DNS settings for a Pod. Required if `dnsPolicy` is set to `None`", "default": {} }, "sidecars": { "type": "array", "description": "Attach additional containers to the pod (evaluated as a template)", "default": [], "items": {} }, "containerPorts": { "type": "object", "properties": { "http": { "type": "number", "description": "HTTP Container port", "default": 8978 } } }, "hostname": { "type": "string", "description": "Hostname for cloudbeaver exposure (HTTPRoute/Ingress)", "default": "" }, "extraEnvVars": { "type": "array", "description": "An array to add extra env vars", "default": [], "items": {} }, "extraEnvVarsCM": { "type": "string", "description": "ConfigMap containing extra env vars", "default": "" }, "extraEnvVarsSecret": { "type": "string", "description": "Secret containing extra env vars (in case of sensitive data)", "default": "" }, "schedulerName": { "type": "string", "description": "Alternative scheduler", "default": "" }, "topologySpreadConstraints": { "type": "array", "description": "Topology Spread Constraints for pod assignment", "default": [], "items": {} }, "affinity": { "type": "object", "description": "Affinity for pod assignment", "default": {} }, "nodeSelector": { "type": "object", "description": "Node labels for pod assignment", "default": {} }, "tolerations": { "type": "array", "description": "Tolerations for pod assignment", "default": [], "items": {} }, "podAnnotations": { "type": "object", "description": "Additional annotations to apply to the pod.", "default": {} }, "podLabels": { "type": "object", "description": "Additional labels to be added to pods", "default": {} }, "priorityClassName": { "type": "string", "description": "priorityClassName", "default": "" }, "secretAnnotations": { "type": "object", "description": "Additional annotations to apply to the secret", "default": {} }, "service": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether to create Service resource or not", "default": true }, "type": { "type": "string", "description": "Kubernetes Service type", "default": "ClusterIP" }, "ports": { "type": "object", "properties": { "http": { "type": "number", "description": "Cloudbeaver client port", "default": 8978 } } }, "nodePorts": { "type": "object", "properties": { "http": { "type": "string", "description": "Port to bind to for NodePort service type (client port)", "default": "" } } }, "clusterIP": { "type": "string", "description": "IP address to assign to service", "default": "" }, "externalIPs": { "type": "array", "description": "Service external IP addresses", "default": [], "items": {} }, "externalName": { "type": "string", "description": "Service external name", "default": "" }, "loadBalancerIP": { "type": "string", "description": "IP address to assign to load balancer (if supported)", "default": "" }, "loadBalancerSourceRanges": { "type": "array", "description": "List of IP CIDRs allowed access to load balancer (if supported)", "default": [], "items": {} }, "externalTrafficPolicy": { "type": "string", "description": "Enable client source IP preservation", "default": "Cluster" }, "extraPorts": { "type": "array", "description": "Extra ports to expose in the service (normally used with the `sidecar` value)", "default": [], "items": {} }, "annotations": { "type": "object", "description": "Annotations to add to service", "default": {} }, "labels": { "type": "object", "description": "Provide any additional labels which may be required.", "default": {} }, "sessionAffinity": { "type": "string", "description": "Session Affinity for Kubernetes service, can be \"None\" or \"ClientIP\"", "default": "None" }, "sessionAffinityConfig": { "type": "object", "description": "Additional settings for the sessionAffinity", "default": {} } } }, "containerSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enabled Apache Server containers' Security Context", "default": true }, "runAsUser": { "type": "number", "description": "Set Cloudbeaver containers' Security Context runAsUser", "default": 8978 }, "runAsGroup": { "type": "number", "description": "Set Cloudbeaver containers' Security Context runAsGroup", "default": 8978 }, "runAsNonRoot": { "type": "boolean", "description": "Set Cloudbeaver container's Security Context runAsNonRoot", "default": true }, "privileged": { "type": "boolean", "description": "Set primary container's Security Context privileged", "default": false }, "allowPrivilegeEscalation": { "type": "boolean", "description": "Set primary 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": "Enable pod 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": "Group ID for the container", "default": 8978 } } }, "resources": { "type": "object", "description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)", "default": {} }, "extraVolumes": { "type": "array", "description": "A list of volumes to be added to the pod", "default": [], "items": {} }, "extraVolumeMounts": { "type": "array", "description": "A list of volume mounts to be added to the pod", "default": [], "items": {} }, "persistence": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable cloudbeaver data persistence using PVC. If false, use emptyDir", "default": true }, "storageClass": { "type": "string", "description": "PVC Storage Class for cloudbeaver data volume", "default": "" }, "mountPath": { "type": "string", "description": "Data volume mount path", "default": "/opt/cloudbeaver/workspace" }, "accessModes": { "type": "array", "description": "PVC Access Modes for cloudbeaver data volume", "default": [ "ReadWriteOnce" ], "items": { "type": "string" } }, "size": { "type": "string", "description": "PVC Storage Request for cloudbeaver data volume", "default": "5Gi" }, "annotations": { "type": "object", "description": "Annotations for the PVC", "default": {} }, "existingClaim": { "type": "string", "description": "Name of an existing PVC to use", "default": "" }, "selector": { "type": "object", "description": "Selector to match an existing Persistent Volume for cloudbeaver data PVC", "default": {} }, "dataSource": { "type": "object", "description": "Custom PVC data source", "default": {} } } }, "networkPolicy": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Specifies whether a NetworkPolicy should be created", "default": false }, "allowExternal": { "type": "boolean", "description": "Don't require server label for connections", "default": false }, "allowExternalEgress": { "type": "boolean", "description": "Allow the pod to access any range of port and all destinations.", "default": true }, "kubeAPIServerPorts": { "type": "array", "description": "List of possible endpoints to kube-apiserver (limit to your cluster settings to increase security)", "default": "[]", "items": { "type": "string" } }, "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" } } } }, "ingress": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable ingress record generation for Cloudbeaver", "default": false }, "ingressClassName": { "type": "string", "description": "IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)", "default": "" }, "pathType": { "type": "string", "description": "Ingress path type", "default": "ImplementationSpecific" }, "apiVersion": { "type": "string", "description": "Force Ingress API version (automatically detected if not set)", "default": "" }, "controller": { "type": "string", "description": "The ingress controller type. Currently supports `default` and `gce`", "default": "default" }, "hostname": { "type": "string", "description": "(DEPRECATED use `hostname` instead) Default host for the ingress resource", "default": "" }, "hostnameStrict": { "type": "boolean", "description": "Disables dynamically resolving the hostname from request headers.", "default": false }, "path": { "type": "string", "description": "Default path for the ingress record (evaluated as template)", "default": "\"\"" }, "servicePort": { "type": "string", "description": "Backend service port to use", "default": "http" }, "labels": { "type": "object", "description": "Additional labels for the Ingress resource.", "default": {} }, "tls": { "type": "boolean", "description": "Enable TLS configuration for the host defined at `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": "Any additional arbitrary paths that may need to be added to the ingress under the main host.", "default": [], "items": {} }, "extraTls": { "type": "array", "description": "The tls configuration for additional hostnames to be covered with this ingress record.", "default": [], "items": {} }, "secrets": { "type": "array", "description": "If you're providing your own certificates, please use this to add the certificates as secrets", "default": [], "items": {} }, "extraRules": { "type": "array", "description": "Additional rules to be covered with this ingress record", "default": [], "items": {} } } }, "httpRoute": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether to enable this HTTPRoute & subsequently create the HTTPRoute resource", "default": false }, "annotations": { "type": "object", "description": "Additional HTTPRoute annotations", "default": {} }, "labels": { "type": "object", "description": "Additional HTTPRoute labels", "default": {} }, "parentRefs": { "type": "array", "description": "Gateway API parentRefs for the HTTPRoute. Must reference an existing Gateway", "default": [], "items": {} } } } } }