The following properties affect the size and structure of the Kubernetes cluster that gets started, as well as the startup attributes of the VoltDB cluster running on those pods.
Table B.2. Options Starting with cluster.clusterSpec...
Parameter | Description | Default |
---|---|---|
.replicas | Pod (VoltDB Node) replica count, scaling to 0 will shutdown the cluster gracefully | 3 |
.maxPodUnavailable | Maximum pods unavailable in Pod Disruption Budget | kfactor |
.maintenanceMode | VoltDB Cluster maintenance mode (pause all nodes) | false |
.takeSnapshotOnShutdown | Takes a snapshot when cluster is shut down by scaling to 0. One of: NoCommandLogging (default), Always, Never. NoCommandLogging means 'snapshot only if command logging is disabled'. | "" |
.initForce | Always init --force on VoltDB node start/restart. WARNING: This will destroy VoltDB data on PVCs except snapshots. | false |
.deletePVC | Delete and cleanup generated PVCs when VoltDBCluster is deleted, requires finalizers to be enabled (on by default) | false |
.allowRestartDuringUpdate | Allow VoltDB cluster restarts if necessary to apply user-requested configuration changes. May include automatic save and restore of database. | false |
.stoppedNodes | User-specified list of stopped nodes based on StatefulSet | [ ] |
.forceStopNode | Enable or disable force stop node | false' |
.persistentVolume.size | Persistent Volume size per Pod (VoltDB Node) | 32Gi |
.persistentVolume.storageClassName | Storage Class name to use, otherwise use default | "" |
.persistentVolume.hostpath.enabled | Use HostPath volume for local storage of VoltDB. This node storage is often ephemeral and will not use PVC storage classes if enabled. | false |
.persistentVolume.hostpath.path | HostPath mount point, defaults to /data/voltdb/ if not specified. | "" |
.ssl.certificateFile | PEM encoded certificate chain used by the VoltDB operator when TLS/SSL is enabled | "" |
.ssl.insecure | If true, skip certificate verification by the VoltDB operator when TLS/SSL is enabled | false |
.storageConfigs | Optional storage configs for provisioning additional persistent volume claims automatically | [ ] |
.additionalVolumes | Additional list of volumes that can be mounted by node containers | [ ] |
.additionalVolumeMounts | Pod volumes to mount into the container's filesystem, cannot be modified once set | [ ] |
.image.registry | Image registry | docker.io |
.image.repository | Image repository | voltdb/voltdb-enterprise |
.image.tag | Image tag | 10.0.0 |
.image.pullPolicy | Image pull policy | Always |
.additionalStartArgs | Additional VoltDB start command args for the pod container | [ ] |
.priorityClassName | Pod priority defined by an existing PriorityClass | "" |
.additionalAnnotations | Additional custom Pod annotations | { } |
.additionalLabels | Additional custom Pod labels | { } |
.resources | CPU/Memory resource requests/limits | { } |
.nodeSelector | Node labels for pod assignment | { } |
.tolerations | Pod tolerations for Node assignment | [ ] |
.affinity | Node affinity | { } |
.topologySpreadConstraints | describes how a group of pods ought to spread across topology | [ ] |
.useCloudNativePlacementGroup | Enable or disable cloud native placement group in VoltDB | false' |
.podSecurityContext | Pod security context | {"runAsNonRoot":true,"runAsUser":1001,"fsGroup":1001} |
.securityContext | Container security context. WARNING: Changing user or group ID may prevent VoltDB from operating. | {"privileged":false,"runAsNonRoot":true,"runAsUser":1001,"runAsGroup":1001,"readOnlyRootFilesystem":true} |
.clusterInit.initSecretRefName | Name of pre-created Kubernetes secret containing init configuration (deployment.xml, license.xml and log4j.xml), ignores init configuration if set | "" |
.clusterInit.schemaConfigMapRefName | Name of pre-created Kubernetes configmap containing schema configuration | "" |
.clusterInit.classesConfigMapRefName | Name of pre-created Kubernetes configmap containing schema configuration | "" |
.podTerminationGracePeriodSeconds | Duration in seconds the Pod needs to terminate gracefully. Defaults to 30 seconds if not specified. | 30 |
.livenessProbe.enabled | Enable/disable livenessProbe | true |
.livenessProbe.initialDelaySeconds | Delay before liveness probe is initiated | 20 |
.livenessProbe.periodSeconds | How often to perform the probe | 10 |
.livenessProbe.timeoutSeconds | When the probe times out | 1 |
.livenessProbe.failureThreshold | Minimum consecutive failures for the probe | 10 |
.livenessProbe.successThreshold | Minimum consecutive successes for the probe | 1 |
.readinessProbe.enabled | Enable/disable readinessProbe | true |
.readinessProbe.initialDelaySeconds | Delay before readiness probe is initiated | 30 |
.readinessProbe.periodSeconds | How often to perform the probe | 17 |
.readinessProbe.timeoutSeconds | When the probe times out | 2 |
.readinessProbe.failureThreshold | Minimum consecutive failures for the probe | 6 |
.readinessProbe.successThreshold | Minimum consecutive successes for the probe | 1 |
.startupProbe.enabled | Enable/disable startupProbe, feature flag must also be enabled at a cluster level (enabled by default in 1.18) | true |
.startupProbe.initialDelaySeconds | Delay before startup probe is initiated | 45 |
.startupProbe.periodSeconds | How often to perform the probe | 10 |
.startupProbe.timeoutSeconds | When the probe times out | 1 |
.startupProbe.failureThreshold | Minimum consecutive failures for the probe | 18 |
.startupProbe.successThreshold | Minimum consecutive successes for the probe | 1 |
.env.VOLTDB_OPTS | VoltDB cluster additional java runtime options (VOLTDB_OPTS) | "" |
.env.VOLTDB_GC_OPTS | VoltDB cluster java runtime garbage collector options (VOLTDB_GC_OPTS) | "" |
.env.VOLTDB_HEAPMAX | VoltDB cluster heap size, integer number of megabytes (VOLTDB_HEAPMAX) | "" |
.env.VOLTDB_HEAPCOMMIT | Commit VoltDB cluster heap at startup, true/false (VOLTDB_HEAPCOMMIT) | "" |
.env.VOLTDB_K8S_LOG_CONFIG | VoltDB log4jcfg file path | "" |
.env.VOLTDB_REGION_LABEL_NAME | Override for region label on node | "" |
.env.VOLTDB_ZONE_LABEL_NAME | Override for zone label on node | "" |
.customEnv | Key-value map of additional envvars to set in all VoltDB node containers | { } |
.dr.forceDrop | Indicate if you want to drop cluster from XDCR without producer drain. | false |
.dr.excludeClusters | User-specified list of clusters not part of XDCR | [ ] |