Custom resource definition parameters
The following table describes the available settings for the Vertica Custom Resource Definition.
| Parameter | Description |
|---|---|
annotations |
Custom annotations added to all of the objects that the operator creates. Each annotation is encoded as an environment variable in the Vertica server container. The following values are accepted:
Invalid character values are converted to underscore characters. For example:
Is converted to:
NoteEnclose integer values in double quotes (""), or the admission controller returns an error. |
autoRestartVertica |
Determines if the operator restarts the Vertica process when the process is not running. Set this parameter to false when performing manual maintenance that requires a DOWN database. This prevents the operator from interfering with the database state. Default: true |
certSecrets |
A list of Secrets for custom TLS certificates. Each certificate is mounted in the container at
If you update the certificate after you add it to a custom resource, the operator updates the value automatically. If you add or delete a certificate, the operator reschedules the pod with the new configuration. For implementation details, see Creating a custom resource. |
communal.caFile |
The mount path in the container filesystem to a CA certificate file that validates HTTPS connections to a communal storage endpoint. Typically, the certificate is stored in a Secret and included in |
communal.credentialSecret |
The name of the Secret that stores the credentials for the communal storage endpoint. For implementation details for each supported communal storage location, see Configuring communal storage. This parameter is optional when you authenticate to an S3-compatible endpoint with an Identity and Access Management (IAM) profile. |
communal.endpoint |
A communal storage endpoint URL. The endpoint must begin with either the
You cannot change this value after you create the custom resource instance. This setting is required when |
communal.hadoopConfig |
A ConfigMap that contains the contents of the This is mounted in the container to configure connections to a Hadoop Distributed File System (HDFS) communal path. |
communal.includeUIDInPath |
When set to Default: false |
communal.kerberosRealm |
The realm portion of the Vertica Kerberos principal. This value is set in the KerberosRealm database parameter during boostrapping. |
communal.kerberosServiceName |
The service name portion of the Vertica Kerberos principal. This value is set in the KerberosServiceName database parameter during bootstrapping. |
communal.path |
The path to the communal storage bucket. For example:
You must create this bucket before you create the Vertica database. The following
You cannot change this value after you create the custom resource. |
communal.region |
The geographic location where the communal storage resources are located. If you do not set the correct region, the configuration fails. You might experience a delay because Vertica retries several times before failing. This setting is valid for Amazon Web Services (AWS) and Google Cloud Platform (GCP) only. Vertica ignores this setting for other communal storage providers. Default:
|
dbName |
The database name. When Default: vertdb |
encryptSpreadComm |
Sets the EncryptSpreadComm security parameter to configure Spread encryption for a new Vertica database. The VerticaDB operator ignores this parameter unless you set This parameter accepts the following values:
Default: Empty string ("") |
ignoreClusterLease |
Ignore the cluster lease when executing a revive or start_db. Default: false CautionIf another system is using the same communal storage, setting |
image |
The image that defines the Vertica server container's runtime environment. If the container is hosted in a private container repository, this name must include the path to the repository. When you update the image, the operator stops and restarts the cluster. Default: vertica/vertica-k8s:latest |
imagePullPolicy |
Determines how often Kubernetes pulls the image for an object. For details, see Updating Images in the Kubernetes documentation. Default: If the image tag is |
imagePullSecrets |
A list of Secrets that store credentials for authentication to a private container repository. For details, see Specifying imagePullSecrets in the Kubernetes documentation. |
initPolicy |
How to initialize the Vertica database in Kubernetes. This parameter accepts the following values:
Note
|
kerberosSecret |
The Secret that stores the following values for Kerberos authentication to Hadoop Distributed File System (HDFS):
The default location for each of these files is the |
kSafety |
Sets the fault tolerance for the cluster. The operator supports setting this value to 0 or 1 only. For details, see K-safety. You cannot change this value after you create the custom resource. Default: 1 |
labels |
Custom labels added to all of the objects that the operator creates. |
licenseSecret |
The Secret that contains the contents of license files. The Secret must share a namespace with the custom resource (CR). Each of the keys in the Secret is mounted as a file in If this value is set when the CR is created, the operator installs one of the licenses automatically, choosing the first one alphabetically. If you update this value after you create the custom resource, you must manually install the Secret in each Vertica pod. |
livenessProbeOverride |
Overrides default For example, the following object overrides the default For a detailed list of the available probe settings, see the Kubernetes documentation. |
local.catalogPath |
Optional parameter that sets a custom path in the container filesystem for the catalog, if your environment requires that the catalog is stored in a location separate from the local data. If |
local.dataPath |
The path in the container filesystem for the local data. If If Default: |
local.depotPath |
The path in the container filesystem that stores the depot. If initPolicy is set to Default: |
local.requestSize |
The minimum size of the local data volume when selecting a persistent volume (PV). When the following conditions are met, the operator automatically increases the size of the PV and the depot when you update
NoteIf you decrease this value, the operator does not decrease the size of the PV or the depot. Default: 500 Gi |
local.storageClass |
The name of the StorageClass used for the local data volume that stores the local catalog, depot, and configuration files. Select this value when defining the persistent volume claim (PVC). By default, this parameter is not set. The PVC in the default configuration uses the default storage class set by Kubernetes. |
podSecurityContext |
Overrides any pod-level security context. This setting is merged with the default context for the pods in the cluster. For details about the available settings for this parameter, see the Kubernetes documentation. |
readinessProbeOverride |
Overrides default For example, the following object overrides the default For a detailed list of the available probe settings, see the Kubernetes documentation. |
reviveOrder |
The order of nodes during a revive operation. Each entry contains the subcluster index, and the number of pods to include from the subcluster. For example, consider a database with the following setup: If the subclusters[] list is defined as {'A', 'B'}, the revive order is as follows: This parameter is used only when |
restartTimeout |
When restarting pods, the number of seconds before admintools times out. Default: 0. The operator uses the 20 minutes default used by admintools. |
securityContext |
Sets any additional security context for the Vertica server container. This setting is merged with the security context value set for the VerticaDB Operator. For example, if you need a core file for the Vertica server process, you can set the For additional information about generating a core file, see Troubleshooting your Kubernetes cluster. For details about this parameter, see the Kubernetes documentation. |
shardCount |
The number of shards in the database. You cannot update this value after you create the custom resource. For more information about database shards and Eon Mode, see Configuring your Vertica cluster for Eon Mode. |
sidecars[] |
One or more optional utility containers that complete tasks for the Vertica server container. Each sidecar entry is a fully-formed container spec, similar to the container that you add to a Pod spec. The following example adds a sidecar named spec:
...
sidecars:
- name: vlogger
image: vertica/vertica-logger:1.0.0
volumeMounts:
- name: my-custom-vol
mountPath: /path/to/custom-volume
For implementation details, see Creating a custom resource. |
sidecars[i].volumeMounts |
List of custom volumes and mount paths that persist sidecar container data. Each volume element requires a To mount a volume in the Vertica sidecar container filesystem, For implementation details, see Creating a custom resource. |
sshSecret |
A Secret that contains SSH credentials that authenticate connections to a Vertica server container. For example, these credentials authenticate communication between an Eon Mode database and custom resource in a hybrid architecture. The Secret requires the following values:
For details, see Hybrid Kubernetes clusters. |
startupProbeOverride |
Overrides the default For example, the following object overrides the default For a detailed list of the available probe settings, see the Kubernetes documentation. |
subclusters[i].affinity |
Applies rules that constrain the Vertica server pod to specific nodes. It is more expressive than In production settings, it is a best practice to configure affinity to run one server pod per host node. For configuration details, see Creating a custom resource. |
subclusters[i].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[i].isPrimary |
Indicates whether the subcluster is primary or secondary. Each database must have at least one primary subcluster. Default: true |
subclusters[i].loadBalancerIP |
When Default: Empty string ("") |
subclusters[i].name |
The subcluster name. This is a required setting. If you change the name of an existing subcluster, the operator deletes the old subcluster and creates a new one with the new name. ImportantResource type names cannot contain underscore characters. The resource type name is used in the fully qualified domain name (FQDN), and FQDNs do not allow underscore characters. You must provide a valid name that follows Kubernetes guidelines. For example, the default subcluster name that the Vertica server generates is |
subclusters[i].nodePort |
When If you do not manually define a port number, Kubernetes chooses the port automatically. |
subclusters[i].nodeSelector |
Provides control over which nodes are used to schedule each pod. If this is not set, the node selector is left off the pod when it is created. To set this parameter, provide a list of key/value pairs. The following example schedules server pods only at nodes that have the |
subclusters[i].priorityClassName |
The PriorityClass name assigned to pods in the StatefulSet. This affects where the pod gets scheduled. |
subclusters[i].resources.limits |
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 For more information, see Recommendations for Sizing Vertica Nodes and Clusters in the Vertica Knowledge Base. |
subclusters[i].resources.requests |
The resource requests 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 For more information, see Recommendations for Sizing Vertica Nodes and Clusters in the Vertica Knowledge Base. |
subclusters[i].serviceAnnotations |
Custom annotations added to implementation-specific services. Managed Kubernetes use service annotations to configure services such as network load balancers, virtual private cloud (VPC) subnets, and loggers. |
subclusters[i].serviceName |
Identifies the service object that directs client traffic to the subcluster. Assign a single service object to multiple subclusters to process client data with one or more subclusters. For example: The previous example creates a service object named For implementation details, see Creating a custom resource. |
subclusters[i].serviceType |
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 Default: ClusterIP |
subclusters[i].size |
The number of pods in the subcluster. This determines the number of Vertica nodes in the subcluster. Changing this number deletes or schedules new pods. The minimum size of a subcluster is 1. The subclusters NoteBy default, the Vertica container uses the Vertica community edition (CE) license. The CE license limits subclusters to 3 Vertica nodes and a maximum of 1TB of data. Use the For instructions about how to create the license Secret, see Creating a custom resource. |
subclusters[i].tolerations |
Any taints and tolerations used to influence where a pod is scheduled. |
superuserPasswordSecret |
The Secret that contains the database superuser password. Create this Secret before deployment. If you do not create this Secret before deployment, there is no password authentication for the database. The Secret must use a key named
The following text adds this Secret to the custom resource: |
temporarySubclusterRouting.names |
Specifies an existing subcluster that accepts traffic during an online upgrade. The operator routes traffic to the first subcluster that is online. For example: In the previous example, the operator selects subcluster-2 during the upgrade, and then routes traffic to subcluster-1 when subcluster-2 is down. As a best practice, use secondary subclusters when rerouting traffic. NoteBy default, the operator selects an existing subcluster to receive rerouted client traffic even if you do not specify a subcluster with this parameter. |
temporarySubclusterRouting.template |
Instructs the operator create a new secondary subcluster during an Online upgrade. The operator creates the subcluster when the upgrade begins and deletes it when the upgrade completes. To define a temporary subcluster, provide a name and size value. For example: |
upgradePolicy |
Determines how the operator upgrades Vertica server versions. Accepts the following values:
Default: Auto |
upgradeRequeueTime |
During an online upgrade, the number of seconds that the operator waits to complete work for any resource that was requeued during the reconciliation loop. Default: 30 seconds |
volumeMounts |
List of custom volumes and mount paths that persist Vertica server container data. Each volume element requires a To mount a volume in the Vertica server container filesystem, For implementation details, see Creating a custom resource. |
volumes |
List of custom volumes that persist Vertica server container data. Each volume element requires a To mount a volume in a filesystem, For implementation details, see Creating a custom resource. |