DirectorySecurity AdvisoriesPricing
Sign in
Directory
verticadb-operator logoHELM

verticadb-operator

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart tags
Default values
Chart metadata
Images

Tag:
Compare:

1
# (c) Copyright [2021-2026] Open Text.
2
# Licensed under the Apache License, Version 2.0 (the "License");
3
# You may not use this file except in compliance with the License.
4
# You may obtain a copy of the License at
5
#
6
# http://www.apache.org/licenses/LICENSE-2.0
7
#
8
# Unless required by applicable law or agreed to in writing, software
9
# distributed under the License is distributed on an "AS IS" BASIS,
10
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
# See the License for the specific language governing permissions and
12
# limitations under the License.
13
14
# Default values for verticadb-operator.
15
# This is a YAML-formatted file.
16
# Declare variables to be passed into your templates.
17
18
# -------------------------------------------------------------------------------
19
# NOTE: Whenever changing default values in here, be sure to update the
20
# README.md in this directory. That file lists out the helm chart parameters
21
# with the default values.
22
# -------------------------------------------------------------------------------
23
24
# To control the name of all of the objects created in the helm chart.
25
# nameOverride: verticadb-operator
26
27
image:
28
repo: chainreg.biz
29
name: scratch-images/test-tmp/verticadb-operator:25.4.0.0-r28@sha256:904573b2ec066b4154878e401e4e4c47e315e99c909c72102c71412e4e2d259d
30
pullPolicy: IfNotPresent
31
imagePullSecrets: null
32
controllers:
33
# If true, the controllers will run watching for changes in any of the
34
# Vertica custom resources. Setting this to false and webhook.enabled to true
35
# will cause the manager to only serve webhook requests. This mode allows you
36
# to decouple the webhook from the controllers, allowing you to run them in
37
# different pods.
38
enable: true
39
# What is the scope of the controllers? Allowed options are: cluster or namespace.
40
# Two things happen when the controllers are scoped at the namespace level: we
41
# only setup watches for the namespace the operator is deployed in, and we will only
42
# grant Role/RoleBindings to the manager for deployed namespace.
43
scope: cluster
44
# Use this if you want to provide a custom burst size for event recording in the operator.
45
# Increasing this allows the controllers to record more events in a short period.
46
burstSize: 100
47
# Controls the maximum backoff requeue duration (in milliseconds) for the vdb controller.
48
# Default value is 1000 ms (1 second). Increase this value to reduce the requeue rate
49
# if you have multiple databases running and want a lower rate limit.
50
vdbMaxBackoffDuration: 1000
51
# Controls the maximum backoff requeue duration (in milliseconds) for the sandbox controller.
52
# Default value is 1000 ms (1 second). Increase this value to reduce the requeue rate
53
# if you have multiple sandboxes running and want a lower rate limit.
54
sandboxMaxBackoffDuration: 1000
55
webhook:
56
# The webhook requires a TLS certificate to work. This parm defines how the
57
# cert is supplied. Valid values are:
58
# - internal: The certs are generated internally by the operator prior to
59
# starting the managing controller. The generated cert is self-signed.
60
# When it expires, the operator pod will need to be restarted in order
61
# to generate a new certificate. This is the default.
62
# - cert-manager: The certs are generated using the cert-manager operator.
63
# This operator needs to be deployed before deploying the operator. It
64
# can be installed with this command:
65
# kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml
66
#
67
# Deployment of this chart will create a self-signed cert. The advantage
68
# of this over 'internal' is that cert-manager will automatically handle
69
# private key rotation when the certificate is about to expire.
70
# - secret: The certs are created prior to installation of this chart and are
71
# provided to the operator through a secret. This option gives you the
72
# most flexibility as it is entirely up to you how the cert is created.
73
# This option requires the webhook.tlsSecret option to be set. For
74
# backwards compatibility, if webhook.tlsSecret is set, it is implicit
75
# that this mode is selected.
76
certSource: internal
77
# Use this parameter if you want to provide your own cert. tlsSecret is a
78
# name of a secret in the same namespace the chart is being installed in.
79
# The secret must have the keys: tls.key and tls.crt. It can also include the
80
# key ca.crt. When that key is included the operator will patch it into the CA
81
# bundle in the webhook configuration.
82
#
83
# For backwards compatibility, if this is set, then 'certSource = secret' is
84
# implied.
85
tlsSecret: ""
86
# If true, the webhook will be enabled and its configuration is setup by the helm chart.
87
# Setting this to false will disable the webhook. The webhook setup needs privileges to add
88
# validatingwebhookconfiguration and mutatingwebhookconfiguration, both are cluster scoped.
89
# If you do not have necessary privileges to add these configurations, then this option
90
# can be used to skip that and still deploy the operator.
91
enable: true
92
cache:
93
# If set to true, the operator will use cache to store tls certificates.
94
# Setting this to false will disable cache in the operator
95
enable: false
96
logging:
97
# level is the minimum logging level. Valid values are: debug, info, warn, and error
98
level: info
99
# Controls the amount of concurrency within the operator to handle the various
100
# CRs we have.
101
reconcileConcurrency:
102
verticadb: 5
103
verticaautoscaler: 1
104
eventtrigger: 1
105
verticarestorepointsquery: 1
106
verticascrutinize: 1
107
sandboxconfigmap: 1
108
verticareplicator: 3
109
vclusterserver: 1
110
# The resource requirements for the operator pod. See this for more info:
111
# https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
112
# These defaults must be kept in sync with config/manifests/kustomization.yaml
113
resources:
114
limits:
115
cpu: 100m
116
memory: 750Mi
117
requests:
118
cpu: 100m
119
memory: 20Mi
120
# Add specific node selector labels to control where the server pod is scheduled.
121
# If left blank then no selectors are added.
122
# See: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
123
# key: value
124
nodeSelector: {}
125
# Add any affinity or anti-affinity to the pod to control where it gets scheduled.
126
# See: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#inter-pod-affinity-and-anti-affinity
127
# podAffinity:
128
# requiredDuringSchedulingIgnoredDuringExecution:
129
# - labelSelector:
130
# matchExpressions:
131
# - key: security
132
# operator: In
133
# values:
134
# - S1
135
# topologyKey: topology.kubernetes.io/zone
136
affinity: {}
137
# PriorityClassName given to Pods of this StatefulSet
138
# See: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
139
priorityClassName: ""
140
# Taints and tolerations.
141
# See: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
142
tolerations: []
143
# Set this if you want to override the default name of the serviceaccount
144
# serviceAccountNameOverride: ""
145
146
# Annotations to be added to the serviceaccount that we create. This is a key/value map.
147
serviceAccountAnnotations: {}
148
prometheus:
149
# Controls exposing of the prometheus metrics endpoint. Valid options are:
150
#
151
# EnableWithAuth: A new service object will be created that exposes the
152
# metrics endpoint. Access to the metrics are controlled by rbac rules.
153
# The metrics endpoint will use the https scheme.
154
# EnableWithoutAuth: Like EnableWithAuth, this will create a service
155
# object to expose the metrics endpoint. However, there is no authority
156
# checking when using the endpoint. Anyone who had network access
157
# endpoint (i.e. any pod in k8s) will be able to read the metrics. The
158
# metrics endpoint will use the http scheme.
159
# EnableWithTLS: Like EnableWithAuth, this will create a service
160
# object to expose the metrics endpoint. However, there is no authority
161
# checking when using the endpoint. People with network access to the
162
# endpoint (i.e. any pod in k8s) and the correct certs can read the metrics.
163
# The metrics endpoint will use the https scheme.
164
# It needs to be used with tlsSecret. If tlsSecret is not set, the behavior
165
# will be similar to EnableWithoutAuth, except that the endpoint will use
166
# https schema.
167
# Disable: Prometheus metrics are not exposed at all.
168
expose: Disable
169
# If prometheus is exposed with an auth proxy (EnableWithAuth), use this
170
# parameter to control what certificates are used for the https endpoint. If
171
# this is empty, the operator will use a generated self-signed cert. When
172
# provided, the certificates can be used to authenticate with the metrics
173
# endpoint.
174
tlsSecret: ""
175
# This controls the creation of ClusterRole/ClusterRoleBinding to access
176
# the metrics endpoint.
177
createProxyRBAC: true
178
# Pod security context configuration
179
securityContext:
180
fsGroup: 65532
181
runAsGroup: 65532
182
runAsNonRoot: true
183
runAsUser: 65532
184
seccompProfile:
185
type: RuntimeDefault
186
# Container-specific security context configuration
187
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
188
containerSecurityContext:
189
allowPrivilegeEscalation: false
190
readOnlyRootFilesystem: true
191
capabilities:
192
drop:
193
- ALL
194
keda:
195
# This controls the creation of ClusterRole rules for KEDA objects.
196
createRBACRules: true
197
# If the operator is deployed in namespace scope, and you want to use
198
# prometheus, then you must set this to the release name of the cluster
199
# scope operator that has prometheus enabled.
200
clusterScopeReleaseName: ""
201
## Using default values from https://github.com/grafana/helm-charts/blob/main/charts/grafana/values.yaml
202
##
203
grafana:
204
enabled: false # Set to true if you want to deploy Grafana
205
## Override the deployment namespace
206
##
207
namespaceOverride: ""
208
adminUser: admin
209
adminPassword: admin
210
admin:
211
## Name of the secret. Can be templated.
212
existingSecret: ""
213
userKey: admin-user
214
passwordKey: admin-password
215
replicas: 1
216
rbac:
217
## If true, Grafana PSPs will be created
218
##
219
pspEnabled: false
220
## Enable persistence using Persistent Volume Claims for Grafana data storage
221
## This stores Grafana's database (users, dashboards, and preferences), plugins, and other persistent files
222
## so they survive pod restarts or upgrades.
223
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
224
##
225
persistence:
226
type: pvc
227
enabled: false
228
# storageClassName: default
229
## (Optional) Use this to bind the claim to an existing PersistentVolume (PV) by name.
230
volumeName: ""
231
accessModes:
232
- ReadWriteOnce
233
size: 10Gi
234
# annotations: {}
235
finalizers:
236
- kubernetes.io/pvc-protection
237
## Grafana's primary configuration
238
## NOTE: values in map will be converted to ini format
239
## ref: http://docs.grafana.org/installation/configuration/
240
##
241
grafana.ini:
242
paths:
243
data: /var/lib/grafana/
244
logs: /var/log/grafana
245
plugins: /var/lib/grafana/plugins
246
provisioning: /etc/grafana/provisioning
247
ingress:
248
## If true, Grafana Ingress will be created
249
##
250
enabled: false
251
serviceAccount:
252
create: true
253
serviceAccount.automountServiceAccountToken: true
254
# Flag to mark provisioned data sources for deletion if they are no longer configured.
255
# It takes no effect if data sources are already listed in the deleteDatasources section.
256
# ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#example-data-source-configuration-file
257
prune: false
258
## Passed to grafana subchart and used by servicemonitor below
259
##
260
service:
261
portName: http-web
262
ipFamilies: []
263
ipFamilyPolicy: ""
264
dashboardProviders:
265
dashboardproviders.yaml:
266
apiVersion: 1
267
providers:
268
- name: 'vertica'
269
orgId: 1
270
folder: 'Vertica'
271
type: file
272
disableDeletion: false
273
editable: true
274
options:
275
path: /var/lib/grafana/dashboards/vertica
276
dashboards:
277
vertica:
278
# Example 1: Node Exporter Full Dashboard (ID 1860)
279
# This dashboard is typically for Prometheus data source.
280
vertica-overview-prometheus:
281
gnetId: 19917
282
# revision: 1 # Optional: Pin to a specific revision if needed
283
datasource: Prometheus
284
vertica-queries-prometheus:
285
gnetId: 19915
286
# revision: 1 # Optional: Pin to a specific revision if needed
287
datasource: Prometheus
288
vertica-resource-management-prometheus:
289
gnetId: 19916
290
# revision: 1 # Optional: Pin to a specific revision if needed
291
datasource: Prometheus
292
vertica-depot-prometheus:
293
gnetId: 19914
294
# revision: 1 # Optional: Pin to a specific revision if needed
295
datasource: Prometheus
296
datasources:
297
datasources.yaml:
298
apiVersion: 1
299
datasources:
300
- name: Prometheus
301
type: prometheus
302
url: http://verticadb-operator-prom-prometheus.{{ .Release.Namespace }}.svc.cluster.local:9090
303
access: proxy
304
isDefault: true
305
jsonData:
306
tlsSkipVerify: true
307
- name: Loki
308
type: loki
309
url: http://{{ .Release.Name }}-loki-gateway.{{ .Release.Namespace }}.svc.cluster.local:80
310
access: proxy
311
isDefault: false
312
prometheusServer:
313
enabled: false # Set to true if you want to deploy Prometheus server
314
# === Global Namespace Configuration ===
315
# By default, kube-prometheus-stack installs into .Release.Namespace
316
# You can override it here if you want it in a different namespace:
317
# namespaceOverride: "my-monitoring-ns" # Ensure this namespace exists or create it
318
319
# === Control Component Installation (to achieve "only Prometheus") ===
320
# Disable components you don't want.
321
# KEEP `prometheusOperator` ENABLED as it's required for Prometheus itself.
322
alertmanager:
323
enabled: false
324
grafana:
325
enabled: false # If you have Grafana as a separate sub-chart or elsewhere
326
kubeControllerManager:
327
enabled: false
328
kubeEtcd:
329
enabled: false
330
kubeScheduler:
331
enabled: false
332
kubelet:
333
enabled: false
334
kubeApiServer:
335
enabled: false
336
kubeProxy:
337
enabled: false
338
kubeStateMetrics:
339
enabled: false
340
nodeExporter:
341
enabled: false
342
coreDns:
343
enabled: false
344
prometheus-node-exporter: # Some older versions might use this instead of nodeExporter
345
enabled: false
346
prometheus-windows-exporter:
347
## Enable ServiceMonitor and set Kubernetes label to use as a job label
348
##
349
prometheus:
350
monitor:
351
enabled: false
352
nameOverride: prometheus-server
353
# Override the full name of the Prometheus server deployment.
354
# This allow you to control the name of the service created for Prometheus.
355
fullnameOverride: verticadb-operator-prom
356
# Prometheus Operator - keep minimal
357
prometheusOperator:
358
enabled: true
359
# Minimal resources
360
resources:
361
limits:
362
cpu: 200m
363
memory: 750Mi
364
requests:
365
cpu: 100m
366
memory: 100Mi
367
# Reduce admission webhook complexity
368
admissionWebhooks:
369
enabled: false
370
serviceMonitor:
371
selfMonitor: false # Disable self-monitoring ServiceMonitor
372
# Disable TLS for simplicity
373
tls:
374
enabled: false
375
# === Prometheus Specific Configuration ===
376
prometheus:
377
# Service account for Prometheuses to use.
378
serviceAccount:
379
create: false
380
name: prometheus-vertica-sa
381
annotations: {}
382
automountServiceAccountToken: true
383
service:
384
# You can also change the type if needed, e.g., ClusterIP, NodePort, LoadBalancer
385
type: ClusterIP
386
# NodePort or LoadBalancer can be used if you need external access to Prometheus
387
# for instance, for remote scraping or a UI access
388
# nodePort: 30090
389
serviceMonitor:
390
selfMonitor: false
391
# Storage for Prometheus (highly recommended for production)
392
prometheusSpec:
393
replicas: 1
394
# Minimal resource allocation
395
resources:
396
requests:
397
memory: "512Mi"
398
cpu: "200m"
399
limits:
400
memory: "1Gi"
401
cpu: "500m"
402
# Reduce retention and storage
403
retention: "7d"
404
retentionSize: "2GB"
405
storageSpec:
406
volumeClaimTemplate:
407
spec:
408
resources:
409
requests:
410
storage: 5Gi # Adjust storage size as needed
411
## WebTLSConfig defines the TLS parameters for HTTPS
412
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#webtlsconfig
413
web: {}
414
# Optionally disable the default `kube-prometheus-stack` scrape configs if you're
415
# defining your own ServiceMonitors/PodMonitors for your operator.
416
# If you want Prometheus to scrape your K8s cluster, keep some of these enabled.
417
# scrapeConfig:
418
# enabled: false # This might disable all default scrape configs
419
# === ServiceMonitor for your Operator's Metrics (Example) ===
420
# If your operator exposes Prometheus metrics, you can define a ServiceMonitor
421
# directly in your main chart's templates or here if you want to conditionally
422
# deploy it with Prometheus.
423
# This example assumes your operator has a service named `my-operator-service`
424
# in the same namespace that exposes metrics on port `metrics-port`.
425
# For more advanced ServiceMonitor creation, it's often better to create a
426
# separate template in your main chart that consumes your operator's service details.
427
# This section is just illustrative of where you might define it.
428
#
429
# serviceMonitor:
430
# # This would typically be a template in your main chart, but showing how you'd
431
# # enable the Prometheus Operator to find your operator's metrics.
432
# name: my-operator-service-monitor
433
# selector:
434
# matchLabels:
435
# app.kubernetes.io/name: my-operator
436
# endpoints:
437
# - port: metrics-port # The name of the port in your operator's Service
438
# path: /metrics
439
# Disable all default scraping rules
440
defaultRules:
441
create: false
442
rules:
443
alertmanager: false
444
etcd: false
445
configReloaders: false
446
general: false
447
k8s: false
448
kubeApiserverAvailability: false
449
kubeApiserverBurnrate: false
450
kubeApiserverHistogram: false
451
kubeApiserverSlos: false
452
kubelet: false
453
kubeProxy: false
454
kubePrometheusGeneral: false
455
kubePrometheusNodeRecording: false
456
kubernetesApps: false
457
kubernetesResources: false
458
kubernetesStorage: false
459
kubernetesSystem: false
460
kubeScheduler: false
461
kubeStateMetrics: false
462
network: false
463
node: false
464
nodeExporterAlerting: false
465
nodeExporterRecording: false
466
prometheus: false
467
prometheusOperator: false
468
loki:
469
enabled: false # Set to true if you want to deploy loki
470
# == Configuration for running Loki
471
loki:
472
# The Compactor is responsible for compaction of index files and applying log retention.
473
compactor:
474
retention_enabled: true # default is not enabled
475
working_directory: /var/loki/compactor # Specify a working directory for the compactor
476
compaction_interval: 10m # The compactor runs every 10 minutes
477
retention_delete_delay: 2h # Deletion of chunks is delayed by 2 hours after the retention period expires
478
delete_request_store: filesystem # Store delete requests locally on disk
479
# Sets the global retention period to 30 days. Logs older than 30 days will be marked for deletion by the compactor.
480
limits_config:
481
retention_period: 720h # 30 days
482
# Should authentication be enabled
483
auth_enabled: false
484
# Set parameters shared across multiple Loki components or modules
485
commonConfig:
486
# Loki stores multiple copies of logs in the ingester component, based on a configurable
487
# replication factor, generally 3.
488
replication_factor: 1 # set to 1 for testing purpose
489
# How Loki stores and indexes log data over time
490
schemaConfig:
491
configs:
492
- from: 2024-04-01 # Start date for this schema configuration
493
store: tsdb # Time Series Database. Index store type (e.g., tsdb, boltdb)
494
object_store: filesystem # Type of object storage (e.g., s3, gcs, filesystem)
495
schema: v13 # Schema version
496
index:
497
prefix: loki_index_ # Prefix for index entries
498
period: 24h # Period for index rotation
499
# Loki receives logs in separate streams, where each stream is uniquely identified by its
500
# tenant ID and its set of labels. As log entries from a stream arrive, they are compressed
501
# as chunks and saved in the chunks store.
502
# The index stores each stream’s label set and links them to the individual chunks.
503
storage:
504
type: filesystem # not typically recommended for production use
505
filesystem:
506
chunks_directory: "/var/loki/chunks" # Directory for storing log data chunks
507
# use filesystem
508
minio:
509
enabled: false
510
# disable canary to skip health check
511
lokiCanary:
512
enabled: false
513
# disable test or you can not disable canary
514
test:
515
enabled: false
516
# Loki offers Monolithic, Simple Scalable Deployment (SSD), and Microservices (Distributed)
517
# modes for running its components. Monolithic is best for testing and small loads, while
518
# Microservices is for massive scale and high availability by running each component independently.
519
# SSD is the recommended default, providing a balance by grouping components into read, write,
520
# and backend targets for independent scaling and managing moderate to large log volumes.
521
deploymentMode: SingleBinary # monolithic mode
522
singleBinary:
523
replicas: 1 # You must specify commonConfig.replication_factor: 1 if you are only using 1 replica, otherwise requests will fail.
524
# Zero out replica counts of other deployment modes
525
backend:
526
replicas: 0
527
read:
528
replicas: 0
529
write:
530
replicas: 0
531
ingester:
532
replicas: 0
533
querier:
534
replicas: 0
535
queryFrontend:
536
replicas: 0
537
queryScheduler:
538
replicas: 0
539
distributor:
540
replicas: 0
541
compactor:
542
replicas: 0
543
indexGateway:
544
replicas: 0
545
bloomCompactor:
546
replicas: 0
547
bloomGateway:
548
replicas: 0
549
alloy:
550
enabled: false
551
# Define the number of replicas for the deployment.
552
replicaCount: 1
553
# Use self-created RBAC resources for Alloy deployment
554
rbac:
555
create: false
556
# Use self-created service account for Alloy deployment
557
serviceAccount:
558
create: false
559
name: alloy-vertica-sa
560
# Grafana Alloy specific configuration
561
alloy:
562
configMap:
563
create: false
564
name: vdb-op-alloy
565
key: config.alloy
566

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.