Helm Chart Parameters

Beta Feature — For Test Environments Only

Displays settings for the Vertica Helm charts. These values are defined in the values.yaml file located in the vertica-kubernetes/helm-charts/vertica directory of the vertica-kubernetes GitHub repository.

For infromation about customizing helm charts, see Customizing the Helm Chart.

Parameter Description
annotations Custom annotations added to all of the objects that the helm chart creates.
db.licenseSecret The name of a secret that contains the contents of license files. The secret must share a namespace with the StatefulSet. Each of the keys in the secret is mounted as a file in /home/dbadmin/licensing/mnt. Because the install is manual, you must reference these mounted files during the install.
db.storage.local.size

The request size for the data. This is the minimum size PersistentVolumeClaim (PVC) requires when selecting a PersistentVolume (PV).

Default: 500 Gi

db.storage.local.storageClass

Defines the name of the StorageClass used for the local data volume that stores the local catalog, depot, and configuration files. By default, this parameter is not set.

Set this parameter when defining the persistent volume claim (PVC). The PVC in the Vertica default configuration uses the default storage class set by Kubernetes.

db.superuserPasswordSecret

The secret that contains the database superuser password. To use a password, you must create this secret before deployment.

If you do not create this secret before deployment, there is no password authentication for the database.

The following command creates the password:

kubectl create secret generic su-passwd --from-literal=password=password

The corresponding change in the yaml file is:

db:
  superuserSecretPassword:
    name: su-passwd
    key: password
image.pullPolicy

Determines how often Kubernetes pulls the image for an object. For details, see Updating Images in the Kubernetes documentation.

Default: IfNotPresent

image.pullSecrets A list of secrets consisting of credentials for authentication to a private container repository. For details, see Specifying imagePullSecrets in the Kubernetes documentation.
image.server.name

The container that runs the server. If the container is hosted in a private container repository, this name must include the path to that repository.

Default: vertica-k8s

image.server.tag

The tag associated with the server container.

labels Custom labels added to all of the objects that the helm chart creates.
subclusters.defaultsubcluster.affinity

Allows you to constrain the pod only to specific node. It is more expressive than node selectors. If this parameter is not set, then the pods use no affinity setting.

It is a best practice to configure this parameter for one server pod per host node in production settings. See Customizing the Helm Chart for details on how to use affinity to ensure that a node does not serve two server pods.

subclusters.defaultsubcluster.nodeSelector

The node selector provides control of which nodes are used to schedule a pod. If this parameter is not set, the node selector is omitted from the pod that the StatefulSet creates. To set this parameter, provide a list of key/value pairs.

subclusters.defaultsubcluster.priorityClassName The priority class name assigned to pods in the StatefulSet. This affects where the pod gets scheduled.
subclusters.defaultsubcluster.replicaCount

The number of replicas in the server StatefulSet. This parameter determines the number of Vertica hosts in the cluster. Changing this number either deletes or schedules new pods.

Default: 3

If the number of replicas exceeds 120, you must manually configure Vertica for large cluster support.

subclusters.defaultsubcluster.resources.limits

This defines the resource limits for pods in the StatefulSet, which sets the maximum amount of CPU and memory that each server pod can consume.

Vertica recommends that you set these values equal to subclusters.defaultsubcluster.resources.requests to ensure that the pods are assigned to the guaranteed QoS class. This reduces the possibility that pods are chosen by the out of memory (OOM) Killer.

Vertica selects defaults based on recommendations described in Recommendations for Sizing Vertica Nodes and Clusters in the Vertica Knowledge Base.

Default: CPU: 4, RAM: 16 Gi

These limits are for testing environments - they are not suitable for production workloads. We will flow the resource limits down the pods with the downward API so that the request pools are sized accordingly.

subclusters.defaultsubcluster.resources.requests

This defines the resource requests for pods in the StatefulSet, which defines the minimum required CPU and memory available on a node to schedule a pod.

Vertica recommends that this value is equal to subclusters.defaultsubcluster.resources.limits to ensure that the pods are assigned to the guaranteed QoS class. This reduces the possibility that pods are chosen by the out of memory (OOM) killer.

Vertica selects defaults based recommendations described in Recommendations for Sizing Vertica Nodes and Clusters in the Vertica knowledge base.

Default: CPU: 4, RAM: 16 Gi

These limits are for testing environments - they are not suitable for production workloads. We will flow the resource limits down the pods with the downward API so that the request pools are sized accordingly.

subclusters.defaultsubcluster.service.type

Identifies the type of Kubernetes service to use for external client connectivity. The default is type is ClusterIP, which sets a stable IP and port that is accessible only from within Kubernetes itself. Depending on the service type, you might need to set service.nodePort or service.externalIPs in addition to this configuration parameter.

Default: ClusterIP

subclusters.defaultsubcluster.service.nodePort When subclusters.defaultsubcluster.service.type is set to NodePort, this parameter enables you to define the port that is opened at each node. If you are using NodePort, and omit the port number, Kubernetes chooses the port automatically. The port must be within the defined range allocated by the control plane (ports 30000-32767).
subclusters.defaultsubcluster.service.externalIPs Enables the service object to attach to a specified external IP. If not set, the external IP is empty in the service object.
subclusters.defaultsubcluster.tolerations Any taints and tolerations used to influence where a pod is scheduled.