DirectorySecurity AdvisoriesPricing
/
Sign in
Directory
etcd logoHELM

etcd

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 versions
Default values
Chart metadata
Images

Tag:

1
# This file has been modified by Chainguard, Inc.
2
#
3
# Copyright Chainguard, Inc. All Rights Reserved.
4
# Chainguard, Inc. modifications are subject to the license
5
# available at: https://www.chainguard.dev/legal/software-license-agreement
6
#
7
# Copyright Broadcom, Inc. All Rights Reserved.
8
# SPDX-License-Identifier: APACHE-2.0
9
10
## @section Global parameters
11
## Global Docker image parameters
12
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13
## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
14
##
15
16
## @param global.imageRegistry Global Docker image registry
17
## @param global.imagePullSecrets [array] Global Docker registry secret names as an array
18
## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
19
##
20
global:
21
imageRegistry: ""
22
## E.g.
23
## imagePullSecrets:
24
## - myRegistryKeySecretName
25
##
26
imagePullSecrets: []
27
defaultStorageClass: ""
28
## Security parameters
29
##
30
security:
31
## @param global.security.allowInsecureImages Allows skipping image verification
32
allowInsecureImages: false
33
## Compatibility adaptations for Kubernetes platforms
34
##
35
compatibility:
36
## Compatibility adaptations for Openshift
37
##
38
openshift:
39
## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
40
##
41
adaptSecurityContext: auto
42
org: ""
43
## @section Common parameters
44
##
45
46
## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
47
##
48
kubeVersion: ""
49
## @param nameOverride String to partially override common.names.fullname template (will maintain the release name)
50
##
51
nameOverride: ""
52
## @param fullnameOverride String to fully override common.names.fullname template
53
##
54
fullnameOverride: ""
55
## @param namespaceOverride String to fully override common.names.namespace template
56
##
57
namespaceOverride: ""
58
## @param commonLabels [object] Labels to add to all deployed objects
59
##
60
commonLabels: {}
61
## @param commonAnnotations [object] Annotations to add to all deployed objects
62
##
63
commonAnnotations: {}
64
## @param clusterDomain Default Kubernetes cluster domain
65
##
66
clusterDomain: cluster.local
67
## @param extraDeploy [array] Array of extra objects to deploy with the release
68
##
69
extraDeploy: []
70
## @param usePasswordFiles Mount credentials as files instead of using environment variables
71
##
72
usePasswordFiles: true
73
## Enable diagnostic mode in the deployment
74
##
75
diagnosticMode:
76
## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
77
##
78
enabled: false
79
## @param diagnosticMode.command Command to override all containers in the deployment
80
##
81
command:
82
- sleep
83
## @param diagnosticMode.args Args to override all containers in the deployment
84
##
85
args:
86
- infinity
87
## @section etcd parameters
88
##
89
90
## Iamguarded etcd image version
91
## ref: https://hub.docker.com/r/iamguarded/etcd/tags/
92
## @param image.registry [default: REGISTRY_NAME] etcd image registry
93
## @param image.repository [default: REPOSITORY_NAME/etcd] etcd image name
94
## @skip image.tag etcd image tag
95
## @param image.digest etcd image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
96
##
97
image:
98
registry: cgr.dev
99
repository: chainguard-private/etcd-iamguarded
100
tag: 3.6.8
101
digest: ""
102
## @param image.pullPolicy etcd image pull policy
103
## Specify a imagePullPolicy
104
## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
105
##
106
pullPolicy: IfNotPresent
107
## @param image.pullSecrets [array] etcd image pull secrets
108
## Optionally specify an array of imagePullSecrets.
109
## Secrets must be manually created in the namespace.
110
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
111
## e.g:
112
## pullSecrets:
113
## - myRegistryKeySecretName
114
##
115
pullSecrets: []
116
## @param image.debug Enable image debug mode
117
## Set to true if you would like to see extra information on logs
118
##
119
debug: false
120
## Authentication parameters
121
##
122
auth:
123
## Role-based access control parameters
124
## ref: https://etcd.io/docs/current/op-guide/authentication/
125
##
126
rbac:
127
## @param auth.rbac.create Switch to enable RBAC authentication
128
##
129
create: true
130
## @param auth.rbac.allowNoneAuthentication Allow to use etcd without configuring RBAC authentication
131
##
132
allowNoneAuthentication: true
133
## @param auth.rbac.rootPassword Root user password. The root user is always `root`
134
##
135
rootPassword: ""
136
## @param auth.rbac.existingSecret Name of the existing secret containing credentials for the root user
137
##
138
existingSecret: ""
139
## @param auth.rbac.existingSecretPasswordKey Name of key containing password to be retrieved from the existing secret
140
##
141
existingSecretPasswordKey: ""
142
## Authentication token
143
## ref: https://etcd.io/docs/latest/learning/design-auth-v3/#two-types-of-tokens-simple-and-jwt
144
##
145
token:
146
## @param auth.token.enabled Enables token authentication
147
##
148
enabled: true
149
## @param auth.token.type Authentication token type. Allowed values: 'simple' or 'jwt'
150
## ref: https://etcd.io/docs/latest/op-guide/configuration/#--auth-token
151
##
152
type: jwt
153
## @param auth.token.privateKey.filename Name of the file containing the private key for signing the JWT token
154
## @param auth.token.privateKey.existingSecret Name of the existing secret containing the private key for signing the JWT token
155
## NOTE: Ignored if auth.token.type=simple
156
## NOTE: A secret containing a private key will be auto-generated if an existing one is not provided.
157
##
158
privateKey:
159
filename: jwt-token.pem
160
existingSecret: ""
161
## @param auth.token.signMethod JWT token sign method
162
## NOTE: Ignored if auth.token.type=simple
163
##
164
signMethod: RS256
165
## @param auth.token.ttl JWT token TTL
166
## NOTE: Ignored if auth.token.type=simple
167
##
168
ttl: 10m
169
## TLS authentication for client-to-server communications
170
## ref: https://etcd.io/docs/current/op-guide/security/
171
##
172
client:
173
## @param auth.client.secureTransport Switch to encrypt client-to-server communications using TLS certificates
174
##
175
secureTransport: false
176
## @param auth.client.useAutoTLS Switch to automatically create the TLS certificates
177
##
178
useAutoTLS: false
179
## @param auth.client.existingSecret Name of the existing secret containing the TLS certificates for client-to-server communications
180
##
181
existingSecret: ""
182
## @param auth.client.enableAuthentication Switch to enable host authentication using TLS certificates. Requires existing secret
183
##
184
enableAuthentication: false
185
## @param auth.client.certFilename Name of the file containing the client certificate
186
##
187
certFilename: cert.pem
188
## @param auth.client.certKeyFilename Name of the file containing the client certificate private key
189
##
190
certKeyFilename: key.pem
191
## @param auth.client.caFilename Name of the file containing the client CA certificate
192
## If not specified and `auth.client.enableAuthentication=true` or `auth.rbac.enabled=true`, the default is is `ca.crt`
193
##
194
caFilename: ""
195
## TLS authentication for server-to-server communications
196
## ref: https://etcd.io/docs/current/op-guide/security/
197
##
198
peer:
199
## @param auth.peer.secureTransport Switch to encrypt server-to-server communications using TLS certificates
200
##
201
secureTransport: false
202
## @param auth.peer.useAutoTLS Switch to automatically create the TLS certificates
203
##
204
useAutoTLS: false
205
## @param auth.peer.existingSecret Name of the existing secret containing the TLS certificates for server-to-server communications
206
##
207
existingSecret: ""
208
## @param auth.peer.enableAuthentication Switch to enable host authentication using TLS certificates. Requires existing secret
209
##
210
enableAuthentication: false
211
## @param auth.peer.certFilename Name of the file containing the peer certificate
212
##
213
certFilename: cert.pem
214
## @param auth.peer.certKeyFilename Name of the file containing the peer certificate private key
215
##
216
certKeyFilename: key.pem
217
## @param auth.peer.caFilename Name of the file containing the peer CA certificate
218
## If not specified and `auth.peer.enableAuthentication=true` or `rbac.enabled=true`, the default is is `ca.crt`
219
##
220
caFilename: ""
221
## @param autoCompactionMode Auto compaction mode, by default periodic. Valid values: "periodic", "revision".
222
## - 'periodic' for duration based retention, defaulting to hours if no time unit is provided (e.g. 5m).
223
## - 'revision' for revision number based retention.
224
##
225
autoCompactionMode: ""
226
## @param autoCompactionRetention Auto compaction retention for mvcc key value store in hour, by default 0, means disabled
227
##
228
autoCompactionRetention: ""
229
## @param initialClusterToken Initial cluster token. Can be used to protect etcd from cross-cluster-interaction, which might corrupt the clusters.
230
## If spinning up multiple clusters (or creating and destroying a single cluster)
231
## with same configuration for testing purpose, it is highly recommended that each cluster is given a unique initial-cluster-token.
232
## By doing this, etcd can generate unique cluster IDs and member IDs for the clusters even if they otherwise have the exact same configuration.
233
##
234
initialClusterToken: "etcd-cluster-k8s"
235
## @param logLevel Sets the log level for the etcd process. Allowed values: 'debug', 'info', 'warn', 'error', 'panic', 'fatal'
236
##
237
logLevel: "info"
238
## @param maxProcs Limits the number of operating system threads that can execute user-level
239
## Go code simultaneously by setting GOMAXPROCS environment variable
240
## ref: https://golang.org/pkg/runtime
241
##
242
maxProcs: ""
243
## @param configuration etcd configuration. Specify content for etcd.conf.yml
244
## e.g:
245
## configuration: |-
246
## foo: bar
247
## baz:
248
##
249
configuration: ""
250
## @param existingConfigmap Existing ConfigMap with etcd configuration
251
## NOTE: When it's set the configuration parameter is ignored
252
##
253
existingConfigmap: ""
254
## @param extraEnvVars [array] Extra environment variables to be set on etcd container
255
## e.g:
256
## extraEnvVars:
257
## - name: FOO
258
## value: "bar"
259
##
260
extraEnvVars: []
261
## @param extraEnvVarsCM Name of existing ConfigMap containing extra env vars
262
##
263
extraEnvVarsCM: ""
264
## @param extraEnvVarsSecret Name of existing Secret containing extra env vars
265
##
266
extraEnvVarsSecret: ""
267
## @param command [array] Default container command (useful when using custom images)
268
##
269
command: []
270
## @param args [array] Default container args (useful when using custom images)
271
##
272
args: []
273
## @section etcd statefulset parameters
274
##
275
276
## @param replicaCount Number of etcd replicas to deploy
277
##
278
replicaCount: 1
279
## Update strategy
280
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
281
## @param updateStrategy.type Update strategy type, can be set to RollingUpdate or OnDelete.
282
##
283
updateStrategy:
284
type: RollingUpdate
285
## @param podManagementPolicy Pod management policy for the etcd statefulset
286
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
287
##
288
podManagementPolicy: Parallel
289
## @param automountServiceAccountToken Mount Service Account token in pod
290
##
291
automountServiceAccountToken: false
292
## @param hostAliases [array] etcd pod host aliases
293
## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
294
##
295
hostAliases: []
296
## @param lifecycleHooks [object] Override default etcd container hooks
297
##
298
lifecycleHooks: {}
299
## etcd container ports to open
300
## @param containerPorts.client Client port to expose at container level
301
## @param containerPorts.peer Peer port to expose at container level
302
## @param containerPorts.metrics Metrics port to expose at container level when metrics.useSeparateEndpoint is true
303
##
304
containerPorts:
305
client: 2379
306
peer: 2380
307
metrics: 9090
308
## etcd pods' Security Context
309
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
310
## @param podSecurityContext.enabled Enabled etcd pods' Security Context
311
## @param podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
312
## @param podSecurityContext.sysctls Set kernel settings using the sysctl interface
313
## @param podSecurityContext.supplementalGroups Set filesystem extra groups
314
## @param podSecurityContext.fsGroup Set etcd pod's Security Context fsGroup
315
##
316
podSecurityContext:
317
enabled: true
318
fsGroupChangePolicy: Always
319
sysctls: []
320
supplementalGroups: []
321
fsGroup: 1001
322
## etcd containers' SecurityContext
323
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
324
## @param containerSecurityContext.enabled Enabled etcd containers' Security Context
325
## @param containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
326
## @param containerSecurityContext.runAsUser Set etcd containers' Security Context runAsUser
327
## @param containerSecurityContext.runAsGroup Set etcd containers' Security Context runAsUser
328
## @param containerSecurityContext.runAsNonRoot Set Controller container's Security Context runAsNonRoot
329
## @param containerSecurityContext.privileged Set primary container's Security Context privileged
330
## @param containerSecurityContext.allowPrivilegeEscalation Set primary container's Security Context allowPrivilegeEscalation
331
## @param containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
332
## @param containerSecurityContext.capabilities.drop List of capabilities to be dropped
333
## @param containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
334
##
335
containerSecurityContext:
336
enabled: true
337
seLinuxOptions: {}
338
runAsUser: 1001
339
runAsGroup: 1001
340
runAsNonRoot: true
341
privileged: false
342
allowPrivilegeEscalation: false
343
readOnlyRootFilesystem: true
344
capabilities:
345
drop: ["ALL"]
346
seccompProfile:
347
type: "RuntimeDefault"
348
## etcd containers' resource requests and limits
349
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
350
## We usually recommend not to specify default resources and to leave this as a conscious
351
## choice for the user. This also increases chances charts run on environments with little
352
## resources, such as Minikube. If you do want to specify resources, uncomment the following
353
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
354
## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
355
## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
356
##
357
resourcesPreset: "micro"
358
## @param resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
359
## Example:
360
## resources:
361
## requests:
362
## cpu: 2
363
## memory: 512Mi
364
## limits:
365
## cpu: 3
366
## memory: 1024Mi
367
##
368
resources: {}
369
## Configure extra options for liveness probe
370
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
371
## @param livenessProbe.enabled Enable livenessProbe
372
## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
373
## @param livenessProbe.periodSeconds Period seconds for livenessProbe
374
## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
375
## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
376
## @param livenessProbe.successThreshold Success threshold for livenessProbe
377
##
378
livenessProbe:
379
enabled: true
380
initialDelaySeconds: 60
381
periodSeconds: 30
382
timeoutSeconds: 5
383
successThreshold: 1
384
failureThreshold: 5
385
## Configure extra options for readiness probe
386
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
387
## @param readinessProbe.enabled Enable readinessProbe
388
## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
389
## @param readinessProbe.periodSeconds Period seconds for readinessProbe
390
## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
391
## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
392
## @param readinessProbe.successThreshold Success threshold for readinessProbe
393
##
394
readinessProbe:
395
enabled: true
396
initialDelaySeconds: 60
397
periodSeconds: 10
398
timeoutSeconds: 5
399
successThreshold: 1
400
failureThreshold: 5
401
## Configure extra options for liveness probe
402
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
403
## @param startupProbe.enabled Enable startupProbe
404
## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
405
## @param startupProbe.periodSeconds Period seconds for startupProbe
406
## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
407
## @param startupProbe.failureThreshold Failure threshold for startupProbe
408
## @param startupProbe.successThreshold Success threshold for startupProbe
409
##
410
startupProbe:
411
enabled: false
412
initialDelaySeconds: 0
413
periodSeconds: 10
414
timeoutSeconds: 5
415
successThreshold: 1
416
failureThreshold: 60
417
## @param customLivenessProbe [object] Override default liveness probe
418
##
419
customLivenessProbe: {}
420
## @param customReadinessProbe [object] Override default readiness probe
421
##
422
customReadinessProbe: {}
423
## @param customStartupProbe [object] Override default startup probe
424
##
425
customStartupProbe: {}
426
## @param extraVolumes [array] Optionally specify extra list of additional volumes for etcd pods
427
##
428
extraVolumes: []
429
## @param extraVolumeMounts [array] Optionally specify extra list of additional volumeMounts for etcd container(s)
430
##
431
extraVolumeMounts: []
432
## @param extraVolumeClaimTemplates [array] Optionally specify extra list of additional volumeClaimTemplates for etcd container(s)
433
##
434
extraVolumeClaimTemplates: []
435
## @param initContainers [array] Add additional init containers to the etcd pods
436
## e.g:
437
## initContainers:
438
## - name: your-image-name
439
## image: your-image
440
## imagePullPolicy: Always
441
## ports:
442
## - name: portname
443
## containerPort: 1234
444
##
445
initContainers: []
446
## @param sidecars [array] Add additional sidecar containers to the etcd pods
447
## e.g:
448
## sidecars:
449
## - name: your-image-name
450
## image: your-image
451
## imagePullPolicy: Always
452
## ports:
453
## - name: portname
454
## containerPort: 1234
455
##
456
sidecars: []
457
## @param podAnnotations [object] Annotations for etcd pods
458
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
459
##
460
podAnnotations: {}
461
## @param podLabels [object] Extra labels for etcd pods
462
## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
463
##
464
podLabels: {}
465
## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
466
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
467
##
468
podAffinityPreset: ""
469
## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
470
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
471
##
472
podAntiAffinityPreset: soft
473
## Node affinity preset
474
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
475
## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
476
## @param nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set.
477
## @param nodeAffinityPreset.values [array] Node label values to match. Ignored if `affinity` is set.
478
##
479
nodeAffinityPreset:
480
type: ""
481
## e.g:
482
## key: "kubernetes.io/e2e-az-name"
483
##
484
key: ""
485
## e.g:
486
## values:
487
## - e2e-az1
488
## - e2e-az2
489
##
490
values: []
491
## @param affinity [object] Affinity for pod assignment
492
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
493
## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
494
##
495
affinity: {}
496
## @param nodeSelector [object] Node labels for pod assignment
497
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
498
##
499
nodeSelector: {}
500
## @param tolerations [array] Tolerations for pod assignment
501
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
502
##
503
tolerations: []
504
## @param terminationGracePeriodSeconds Seconds the pod needs to gracefully terminate
505
## ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#hook-handler-execution
506
##
507
terminationGracePeriodSeconds: ""
508
## @param schedulerName Name of the k8s scheduler (other than default)
509
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
510
##
511
schedulerName: ""
512
## @param priorityClassName Name of the priority class to be used by etcd pods
513
## Priority class needs to be created beforehand
514
## Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
515
##
516
priorityClassName: ""
517
## @param runtimeClassName Name of the runtime class to be used by pod(s)
518
## ref: https://kubernetes.io/docs/concepts/containers/runtime-class/
519
##
520
runtimeClassName: ""
521
## @param shareProcessNamespace Enable shared process namespace in a pod.
522
## If set to false (default), each container will run in separate namespace, etcd will have PID=1.
523
## If set to true, the /pause will run as init process and will reap any zombie PIDs,
524
## for example, generated by a custom exec probe running longer than a probe timeoutSeconds.
525
## Enable this only if customLivenessProbe or customReadinessProbe is used and zombie PIDs are accumulating.
526
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
527
##
528
shareProcessNamespace: false
529
## @param topologySpreadConstraints Topology Spread Constraints for pod assignment
530
## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
531
## The value is evaluated as a template
532
##
533
topologySpreadConstraints: []
534
## persistentVolumeClaimRetentionPolicy
535
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
536
## @param persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
537
## @param persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
538
## @param persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
539
persistentVolumeClaimRetentionPolicy:
540
enabled: false
541
whenScaled: Retain
542
whenDeleted: Retain
543
## @section Traffic exposure parameters
544
##
545
546
service:
547
## @param service.type Kubernetes Service type
548
##
549
type: ClusterIP
550
## @param service.enabled create second service if equal true
551
##
552
enabled: true
553
## @param service.clusterIP Kubernetes service Cluster IP
554
## e.g.:
555
## clusterIP: None
556
##
557
clusterIP: ""
558
## @param service.ports.client etcd client port
559
## @param service.ports.peer etcd peer port
560
## @param service.ports.metrics etcd metrics port when metrics.useSeparateEndpoint is true
561
##
562
ports:
563
client: 2379
564
peer: 2380
565
metrics: 9090
566
## @param service.nodePorts.client Specify the nodePort client value for the LoadBalancer and NodePort service types.
567
## @param service.nodePorts.peer Specify the nodePort peer value for the LoadBalancer and NodePort service types.
568
## @param service.nodePorts.metrics Specify the nodePort metrics value for the LoadBalancer and NodePort service types. The metrics port is only exposed when metrics.useSeparateEndpoint is true.
569
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
570
##
571
nodePorts:
572
client: ""
573
peer: ""
574
metrics: ""
575
## @param service.clientPortNameOverride etcd client port name override
576
##
577
clientPortNameOverride: ""
578
## @param service.peerPortNameOverride etcd peer port name override
579
##
580
peerPortNameOverride: ""
581
## @param service.metricsPortNameOverride etcd metrics port name override. The metrics port is only exposed when metrics.useSeparateEndpoint is true.
582
##
583
metricsPortNameOverride: ""
584
## @param service.loadBalancerIP loadBalancerIP for the etcd service (optional, cloud specific)
585
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
586
##
587
loadBalancerIP: ""
588
## @param service.loadBalancerClass loadBalancerClass for the etcd service (optional, cloud specific)
589
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
590
##
591
loadBalancerClass: ""
592
## @param service.loadBalancerSourceRanges [array] Load Balancer source ranges
593
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
594
## e.g:
595
## loadBalancerSourceRanges:
596
## - 10.10.10.0/24
597
##
598
loadBalancerSourceRanges: []
599
## @param service.externalIPs [array] External IPs
600
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
601
##
602
externalIPs: []
603
## @param service.externalTrafficPolicy %%MAIN_CONTAINER_NAME%% service external traffic policy
604
## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
605
##
606
externalTrafficPolicy: Cluster
607
## @param service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
608
##
609
extraPorts: []
610
## @param service.annotations [object] Additional annotations for the etcd service
611
##
612
annotations: {}
613
## @param service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
614
## If "ClientIP", consecutive client requests will be directed to the same Pod
615
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
616
##
617
sessionAffinity: None
618
## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
619
## sessionAffinityConfig:
620
## clientIP:
621
## timeoutSeconds: 300
622
##
623
sessionAffinityConfig: {}
624
## Headless service properties
625
##
626
headless:
627
## @param service.headless.annotations Annotations for the headless service.
628
##
629
annotations: {}
630
## @section Persistence parameters
631
##
632
633
## Enable persistence using Persistent Volume Claims
634
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
635
##
636
persistence:
637
## @param persistence.enabled If true, use a Persistent Volume Claim. If false, use emptyDir.
638
##
639
enabled: true
640
## @param persistence.storageClass Persistent Volume Storage Class
641
## If defined, storageClassName: <storageClass>
642
## If set to "-", storageClassName: "", which disables dynamic provisioning
643
## If undefined (the default) or set to null, no storageClassName spec is
644
## set, choosing the default provisioner. (gp2 on AWS, standard on
645
## GKE, AWS & OpenStack)
646
##
647
storageClass: ""
648
##
649
## @param persistence.annotations [object] Annotations for the PVC
650
##
651
annotations: {}
652
## @param persistence.labels [object] Labels for the PVC
653
##
654
labels: {}
655
## @param persistence.accessModes Persistent Volume Access Modes
656
##
657
accessModes:
658
- ReadWriteOnce
659
## @param persistence.size PVC Storage Request for etcd data volume
660
##
661
size: 8Gi
662
## @param persistence.selector [object] Selector to match an existing Persistent Volume
663
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#selector
664
##
665
selector: {}
666
## @section Volume Permissions parameters
667
##
668
669
## Init containers parameters:
670
## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section.
671
##
672
volumePermissions:
673
## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume(s) mountpoint to `runAsUser:fsGroup`
674
##
675
enabled: false
676
## @param volumePermissions.image.registry [default: REGISTRY_NAME] Init container volume-permissions image registry
677
## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] Init container volume-permissions image name
678
## @skip volumePermissions.image.tag Init container volume-permissions image tag
679
## @param volumePermissions.image.digest Init container volume-permissions image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
680
##
681
image:
682
registry: cgr.dev
683
repository: chainguard-private/os-shell-iamguarded
684
tag: 1.0.0
685
digest: ""
686
## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
687
##
688
pullPolicy: IfNotPresent
689
## @param volumePermissions.image.pullSecrets [array] Specify docker-registry secret names as an array
690
## Optionally specify an array of imagePullSecrets.
691
## Secrets must be manually created in the namespace.
692
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
693
## e.g:
694
## pullSecrets:
695
## - myRegistryKeySecretName
696
##
697
pullSecrets: []
698
## Init container' resource requests and limits
699
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
700
## We usually recommend not to specify default resources and to leave this as a conscious
701
## choice for the user. This also increases chances charts run on environments with little
702
## resources, such as Minikube. If you do want to specify resources, uncomment the following
703
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
704
## @param volumePermissions.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).
705
## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
706
##
707
resourcesPreset: "nano"
708
## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
709
## Example:
710
## resources:
711
## requests:
712
## cpu: 2
713
## memory: 512Mi
714
## limits:
715
## cpu: 3
716
## memory: 1024Mi
717
##
718
resources: {}
719
## @section Network Policy parameters
720
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
721
##
722
networkPolicy:
723
## @param networkPolicy.enabled Enable creation of NetworkPolicy resources
724
##
725
enabled: true
726
## @param networkPolicy.allowExternal Don't require client label for connections
727
## When set to false, only pods with the correct client label will have network access to the ports
728
## etcd is listening on. When true, etcd will accept connections from any source
729
## (with the correct destination port).
730
##
731
allowExternal: true
732
## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
733
##
734
allowExternalEgress: true
735
## @param networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
736
## e.g:
737
## extraIngress:
738
## - ports:
739
## - port: 1234
740
## from:
741
## - podSelector:
742
## - matchLabels:
743
## - role: frontend
744
## - podSelector:
745
## - matchExpressions:
746
## - key: role
747
## operator: In
748
## values:
749
## - frontend
750
##
751
extraIngress: []
752
## @param networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
753
## e.g:
754
## extraEgress:
755
## - ports:
756
## - port: 1234
757
## to:
758
## - podSelector:
759
## - matchLabels:
760
## - role: frontend
761
## - podSelector:
762
## - matchExpressions:
763
## - key: role
764
## operator: In
765
## values:
766
## - frontend
767
##
768
extraEgress: []
769
## @param networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
770
## @param networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
771
##
772
ingressNSMatchLabels: {}
773
ingressNSPodMatchLabels: {}
774
## @section Metrics parameters
775
##
776
metrics:
777
## @param metrics.enabled Expose etcd metrics
778
##
779
enabled: false
780
## @param metrics.useSeparateEndpoint Use a separate endpoint for exposing metrics
781
#
782
useSeparateEndpoint: false
783
## @param metrics.podAnnotations [object] Annotations for the Prometheus metrics on etcd pods
784
##
785
podAnnotations:
786
prometheus.io/scrape: "true"
787
prometheus.io/port: "{{ .Values.metrics.useSeparateEndpoint | ternary .Values.containerPorts.metrics .Values.containerPorts.client }}"
788
## Prometheus Service Monitor
789
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
790
##
791
podMonitor:
792
## @param metrics.podMonitor.enabled Create PodMonitor Resource for scraping metrics using PrometheusOperator
793
##
794
enabled: false
795
## @param metrics.podMonitor.namespace Namespace in which Prometheus is running
796
##
797
namespace: monitoring
798
## @param metrics.podMonitor.interval Specify the interval at which metrics should be scraped
799
##
800
interval: 30s
801
## @param metrics.podMonitor.scrapeTimeout Specify the timeout after which the scrape is ended
802
##
803
scrapeTimeout: 30s
804
## @param metrics.podMonitor.additionalLabels [object] Additional labels that can be used so PodMonitors will be discovered by Prometheus
805
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
806
##
807
additionalLabels: {}
808
## @param metrics.podMonitor.scheme Scheme to use for scraping
809
##
810
scheme: http
811
## @param metrics.podMonitor.tlsConfig [object] TLS configuration used for scrape endpoints used by Prometheus
812
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#tlsconfig
813
## e.g:
814
## tlsConfig:
815
## ca:
816
## secret:
817
## name: existingSecretName
818
##
819
tlsConfig: {}
820
## @param metrics.podMonitor.relabelings [array] Prometheus relabeling rules
821
##
822
relabelings: []
823
## Prometheus Operator PrometheusRule configuration
824
##
825
prometheusRule:
826
## @param metrics.prometheusRule.enabled Create a Prometheus Operator PrometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`)
827
##
828
enabled: false
829
## @param metrics.prometheusRule.namespace Namespace for the PrometheusRule Resource (defaults to the Release Namespace)
830
##
831
namespace: ""
832
## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
833
##
834
additionalLabels: {}
835
## @param metrics.prometheusRule.rules Prometheus Rule definitions
836
# - alert: ETCD has no leader
837
# annotations:
838
# summary: "ETCD has no leader"
839
# description: "pod {{`{{`}} $labels.pod {{`}}`}} state error, can't connect leader"
840
# for: 1m
841
# expr: etcd_server_has_leader == 0
842
# labels:
843
# severity: critical
844
# group: PaaS
845
##
846
rules: []
847
## @section Snapshotting parameters
848
##
849
850
## Start a new etcd cluster recovering the data from an existing snapshot before bootstrapping
851
##
852
startFromSnapshot:
853
## @param startFromSnapshot.enabled Initialize new cluster recovering an existing snapshot
854
##
855
enabled: false
856
## @param startFromSnapshot.existingClaim Existing PVC containing the etcd snapshot
857
##
858
existingClaim: ""
859
## @param startFromSnapshot.snapshotFilename Snapshot filename
860
##
861
snapshotFilename: ""
862
## Enable auto disaster recovery by periodically snapshotting the keyspace:
863
## - It creates a cronjob to periodically snapshotting the keyspace
864
## - It also creates a ReadWriteMany PVC to store the snapshots
865
## If the cluster permanently loses more than (N-1)/2 members, it tries to
866
## recover itself from the last available snapshot.
867
##
868
disasterRecovery:
869
## @param disasterRecovery.enabled Enable auto disaster recovery by periodically snapshotting the keyspace
870
##
871
enabled: false
872
cronjob:
873
## @param disasterRecovery.cronjob.schedule Schedule in Cron format to save snapshots
874
## See https://en.wikipedia.org/wiki/Cron
875
##
876
schedule: "*/30 * * * *"
877
## @param disasterRecovery.cronjob.historyLimit Number of successful finished jobs to retain
878
##
879
historyLimit: 1
880
## @param disasterRecovery.cronjob.snapshotHistoryLimit Number of etcd snapshots to retain, tagged by date
881
##
882
snapshotHistoryLimit: 1
883
## @param disasterRecovery.cronjob.snapshotsDir Directory to store snapshots
884
##
885
snapshotsDir: "/snapshots"
886
## @param disasterRecovery.cronjob.podAnnotations [object] Pod annotations for cronjob pods
887
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
888
##
889
podAnnotations: {}
890
## K8s Security Context for Snapshotter cronjob pods
891
## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
892
## @param disasterRecovery.cronjob.podSecurityContext.enabled Enable security context for Snapshotter pods
893
## @param disasterRecovery.cronjob.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
894
## @param disasterRecovery.cronjob.podSecurityContext.sysctls Set kernel settings using the sysctl interface
895
## @param disasterRecovery.cronjob.podSecurityContext.supplementalGroups Set filesystem extra groups
896
## @param disasterRecovery.cronjob.podSecurityContext.fsGroup Group ID for the Snapshotter filesystem
897
##
898
podSecurityContext:
899
enabled: true
900
fsGroupChangePolicy: Always
901
sysctls: []
902
supplementalGroups: []
903
fsGroup: 1001
904
## Configure container security context for Snapshotter cronjob containers
905
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
906
## @param disasterRecovery.cronjob.containerSecurityContext.enabled Enabled containers' Security Context
907
## @param disasterRecovery.cronjob.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
908
## @param disasterRecovery.cronjob.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
909
## @param disasterRecovery.cronjob.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
910
## @param disasterRecovery.cronjob.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
911
## @param disasterRecovery.cronjob.containerSecurityContext.privileged Set container's Security Context privileged
912
## @param disasterRecovery.cronjob.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
913
## @param disasterRecovery.cronjob.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
914
## @param disasterRecovery.cronjob.containerSecurityContext.capabilities.drop List of capabilities to be dropped
915
## @param disasterRecovery.cronjob.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
916
##
917
containerSecurityContext:
918
enabled: true
919
seLinuxOptions: {}
920
runAsUser: 1001
921
runAsGroup: 1001
922
runAsNonRoot: true
923
privileged: false
924
readOnlyRootFilesystem: true
925
allowPrivilegeEscalation: false
926
capabilities:
927
drop: ["ALL"]
928
seccompProfile:
929
type: "RuntimeDefault"
930
## Configure resource requests and limits for snapshotter containers
931
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
932
## We usually recommend not to specify default resources and to leave this as a conscious
933
## choice for the user. This also increases chances charts run on environments with little
934
## resources, such as Minikube. If you do want to specify resources, uncomment the following
935
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
936
## @param disasterRecovery.cronjob.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if disasterRecovery.cronjob.resources is set (disasterRecovery.cronjob.resources is recommended for production).
937
## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
938
##
939
resourcesPreset: "nano"
940
## @param disasterRecovery.cronjob.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
941
## Example:
942
## resources:
943
## requests:
944
## cpu: 2
945
## memory: 512Mi
946
## limits:
947
## cpu: 3
948
## memory: 1024Mi
949
##
950
resources: {}
951
## @param disasterRecovery.cronjob.nodeSelector Node labels for cronjob pods assignment
952
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
953
##
954
nodeSelector: {}
955
## @param disasterRecovery.cronjob.tolerations Tolerations for cronjob pods assignment
956
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
957
##
958
tolerations: []
959
## @param disasterRecovery.cronjob.podLabels [object] Labels that will be added to pods created by cronjob
960
##
961
podLabels: {}
962
## @param disasterRecovery.cronjob.serviceAccountName Specifies the service account to use for disaster recovery cronjob
963
##
964
serviceAccountName: ""
965
## @param disasterRecovery.cronjob.command Override default snapshot container command (useful when you want to customize the snapshot logic)
966
##
967
command: []
968
##
969
pvc:
970
## @param disasterRecovery.pvc.existingClaim A manually managed Persistent Volume and Claim
971
## If defined, PVC must be created manually before volume will be bound
972
## The value is evaluated as a template, so, for example, the name can depend on .Release or .Chart
973
##
974
existingClaim: ""
975
## @param disasterRecovery.pvc.size PVC Storage Request
976
##
977
size: 2Gi
978
## @param disasterRecovery.pvc.storageClassName Storage Class for snapshots volume
979
##
980
storageClassName: nfs
981
## @param disasterRecovery.pvc.subPath Path within the volume from which to mount
982
## Useful if snapshots should only be stored in a subdirectory of the volume
983
##
984
subPath: ""
985
## @section Service account parameters
986
##
987
serviceAccount:
988
## @param serviceAccount.create Enable/disable service account creation
989
##
990
create: true
991
## @param serviceAccount.name Name of the service account to create or use
992
##
993
name: ""
994
## @param serviceAccount.automountServiceAccountToken Enable/disable auto mounting of service account token
995
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
996
##
997
automountServiceAccountToken: false
998
## @param serviceAccount.annotations [object] Additional annotations to be included on the service account
999
##
1000
annotations: {}
1001
## @param serviceAccount.labels [object] Additional labels to be included on the service account
1002
##
1003
labels: {}
1004
## @section etcd "pre-upgrade" K8s Job parameters
1005
##
1006
preUpgradeJob:
1007
## @param preUpgradeJob.enabled Enable running a pre-upgrade job on Helm upgrades that removes obsolete members
1008
##
1009
enabled: true
1010
## @param preUpgradeJob.annotations [object] Add annotations to the etcd "pre-upgrade" job
1011
##
1012
annotations: {}
1013
## @param preUpgradeJob.podLabels Additional pod labels for etcd "pre-upgrade" job
1014
## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1015
##
1016
podLabels: {}
1017
## @param preUpgradeJob.podAnnotations Additional pod annotations for etcd "pre-upgrade" job
1018
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1019
##
1020
podAnnotations: {}
1021
## @param preUpgradeJob.podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1022
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1023
##
1024
podAffinityPreset: ""
1025
## @param preUpgradeJob.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1026
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1027
##
1028
podAntiAffinityPreset: soft
1029
## Node affinity preset
1030
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1031
## @param preUpgradeJob.nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
1032
## @param preUpgradeJob.nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set.
1033
## @param preUpgradeJob.nodeAffinityPreset.values [array] Node label values to match. Ignored if `affinity` is set.
1034
##
1035
nodeAffinityPreset:
1036
type: ""
1037
## e.g:
1038
## key: "kubernetes.io/e2e-az-name"
1039
##
1040
key: ""
1041
## e.g:
1042
## values:
1043
## - e2e-az1
1044
## - e2e-az2
1045
##
1046
values: []
1047
## @param preUpgradeJob.affinity [object] Affinity for pod assignment
1048
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1049
## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
1050
##
1051
affinity: {}
1052
## @param preUpgradeJob.nodeSelector [object] Node labels for pod assignment
1053
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1054
##
1055
nodeSelector: {}
1056
## @param preUpgradeJob.tolerations [array] Tolerations for pod assignment
1057
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1058
##
1059
tolerations: []
1060
## Configure "pre-upgrade" job's container Security Context
1061
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1062
## @param preUpgradeJob.containerSecurityContext.enabled Enabled "pre-upgrade" job's containers' Security Context
1063
## @param preUpgradeJob.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "pre-upgrade" job's containers
1064
## @param preUpgradeJob.containerSecurityContext.runAsUser Set runAsUser in "pre-upgrade" job's containers' Security Context
1065
## @param preUpgradeJob.containerSecurityContext.runAsGroup Set runAsUser in "pre-upgrade" job's containers' Security Context
1066
## @param preUpgradeJob.containerSecurityContext.runAsNonRoot Set runAsNonRoot in "pre-upgrade" job's containers' Security Context
1067
## @param preUpgradeJob.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in "pre-upgrade" job's containers' Security Context
1068
## @param preUpgradeJob.containerSecurityContext.privileged Set privileged in "pre-upgrade" job's containers' Security Context
1069
## @param preUpgradeJob.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "pre-upgrade" job's containers' Security Context
1070
## @param preUpgradeJob.containerSecurityContext.capabilities.add List of capabilities to be added in "pre-upgrade" job's containers
1071
## @param preUpgradeJob.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "pre-upgrade" job's containers
1072
## @param preUpgradeJob.containerSecurityContext.seccompProfile.type Set seccomp profile in "pre-upgrade" job's containers
1073
##
1074
containerSecurityContext:
1075
enabled: true
1076
seLinuxOptions: {}
1077
runAsUser: 1001
1078
runAsGroup: 1001
1079
runAsNonRoot: true
1080
readOnlyRootFilesystem: true
1081
privileged: false
1082
allowPrivilegeEscalation: false
1083
capabilities:
1084
add: []
1085
drop: ["ALL"]
1086
seccompProfile:
1087
type: "RuntimeDefault"
1088
## Configure "pre-upgrade" job's pod Security Context
1089
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1090
## @param preUpgradeJob.podSecurityContext.enabled Enabled "pre-upgrade" job's pods' Security Context
1091
## @param preUpgradeJob.podSecurityContext.fsGroupChangePolicy Set fsGroupChangePolicy in "pre-upgrade" job's pods' Security Context
1092
## @param preUpgradeJob.podSecurityContext.sysctls List of sysctls to allow in "pre-upgrade" job's pods' Security Context
1093
## @param preUpgradeJob.podSecurityContext.supplementalGroups List of supplemental groups to add to "pre-upgrade" job's pods' Security Context
1094
## @param preUpgradeJob.podSecurityContext.fsGroup Set fsGroup in "pre-upgrade" job's pods' Security Context
1095
##
1096
podSecurityContext:
1097
enabled: true
1098
fsGroupChangePolicy: Always
1099
sysctls: []
1100
supplementalGroups: []
1101
fsGroup: 1001
1102
## etcd "pre-upgrade" job's container resource requests and limits
1103
## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1104
## @param preUpgradeJob.resourcesPreset Set etcd "pre-upgrade" job's container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if preUpgradeJob.resources is set (preUpgradeJob.resources is recommended for production).
1105
## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
1106
##
1107
resourcesPreset: "micro"
1108
## @param preUpgradeJob.resources Set etcd "pre-upgrade" job's container requests and limits for different resources like CPU or memory (essential for production workloads)
1109
## E.g:
1110
## resources:
1111
## requests:
1112
## cpu: 2
1113
## memory: 512Mi
1114
## limits:
1115
## cpu: 3
1116
## memory: 1024Mi
1117
##
1118
resources: {}
1119
## etcd "pre-upgrade" job's optional delay
1120
## @param preUpgradeJob.startDelay Optional delay before starting the pre-upgrade hook (in seconds).
1121
startDelay: ""
1122
## @section Defragmentation parameters
1123
##
1124
1125
## Enable defragmentation by periodically rearranging fragmented data after history compaction.
1126
## It creates a cronjob to periodically run the defragmentation command:
1127
## etcdctl defrag [OPTIONS]
1128
## See https://etcd.io/docs/latest/op-guide/maintenance/
1129
##
1130
defrag:
1131
## @param defrag.enabled Enable automatic defragmentation. This is most effective when paired with auto compaction: consider setting "autoCompactionRetention > 0".
1132
##
1133
enabled: false
1134
cronjob:
1135
## @param defrag.cronjob.startingDeadlineSeconds Number of seconds representing the deadline for starting the job if it misses scheduled time for any reason
1136
##
1137
startingDeadlineSeconds: ""
1138
## @param defrag.cronjob.schedule Schedule in Cron format to defrag (daily at midnight by default)
1139
## See https://en.wikipedia.org/wiki/Cron
1140
##
1141
schedule: "0 0 * * *"
1142
## @param defrag.cronjob.concurrencyPolicy Set the cronjob parameter concurrencyPolicy
1143
##
1144
concurrencyPolicy: Forbid
1145
## @param defrag.cronjob.suspend Boolean that indicates if the controller must suspend subsequent executions (not applied to already started executions)
1146
##
1147
suspend: false
1148
## @param defrag.cronjob.successfulJobsHistoryLimit Number of successful finished jobs to retain
1149
##
1150
successfulJobsHistoryLimit: 1
1151
## @param defrag.cronjob.failedJobsHistoryLimit Number of failed finished jobs to retain
1152
##
1153
failedJobsHistoryLimit: 1
1154
## @param defrag.cronjob.labels [object] Additional labels to be added to the Defrag cronjob
1155
##
1156
labels: {}
1157
## @param defrag.cronjob.annotations [object] Annotations to be added to the Defrag cronjob
1158
##
1159
annotations: {}
1160
## @param defrag.cronjob.activeDeadlineSeconds Number of seconds relative to the startTime that the job may be continuously active before the system tries to terminate it
1161
##
1162
activeDeadlineSeconds: ""
1163
## @param defrag.cronjob.restartPolicy Set the cronjob parameter restartPolicy
1164
##
1165
restartPolicy: OnFailure
1166
## @param defrag.cronjob.podLabels [object] Labels that will be added to pods created by Defrag cronjob
1167
##
1168
podLabels: {}
1169
## @param defrag.cronjob.podAnnotations [object] Pod annotations for Defrag cronjob pods
1170
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1171
##
1172
podAnnotations: {}
1173
## K8s Security Context for Defrag cronjob pods
1174
## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
1175
## @param defrag.cronjob.podSecurityContext.enabled Enable security context for Defrag pods
1176
## @param defrag.cronjob.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1177
## @param defrag.cronjob.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1178
## @param defrag.cronjob.podSecurityContext.supplementalGroups Set filesystem extra groups
1179
## @param defrag.cronjob.podSecurityContext.fsGroup Group ID for the Defrag filesystem
1180
##
1181
podSecurityContext:
1182
enabled: true
1183
fsGroupChangePolicy: Always
1184
sysctls: []
1185
supplementalGroups: []
1186
fsGroup: 1001
1187
## Configure container security context for Defrag cronjob containers
1188
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1189
## @param defrag.cronjob.containerSecurityContext.enabled Enabled containers' Security Context
1190
## @param defrag.cronjob.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1191
## @param defrag.cronjob.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1192
## @param defrag.cronjob.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1193
## @param defrag.cronjob.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1194
## @param defrag.cronjob.containerSecurityContext.privileged Set container's Security Context privileged
1195
## @param defrag.cronjob.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1196
## @param defrag.cronjob.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1197
## @param defrag.cronjob.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1198
## @param defrag.cronjob.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1199
##
1200
containerSecurityContext:
1201
enabled: true
1202
seLinuxOptions: {}
1203
runAsUser: 1001
1204
runAsGroup: 1001
1205
runAsNonRoot: true
1206
privileged: false
1207
readOnlyRootFilesystem: true
1208
allowPrivilegeEscalation: false
1209
capabilities:
1210
drop: ["ALL"]
1211
seccompProfile:
1212
type: "RuntimeDefault"
1213
## @param defrag.cronjob.nodeSelector [object] Node labels for pod assignment in Defrag cronjob
1214
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1215
##
1216
nodeSelector: {}
1217
## @param defrag.cronjob.tolerations [array] Tolerations for pod assignment in Defrag cronjob
1218
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1219
##
1220
tolerations: []
1221
## @param defrag.cronjob.serviceAccountName Specifies the service account to use for Defrag cronjob
1222
##
1223
serviceAccountName: ""
1224
## @param defrag.cronjob.command [array] Override default container command for defragmentation (useful when using custom images)
1225
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1226
##
1227
command: []
1228
## @param defrag.cronjob.args [array] Override default container args (useful when using custom images)
1229
##
1230
args: []
1231
## @param defrag.cronjob.resourcesPreset Set container resources according to one common preset
1232
## (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if
1233
## defrag.cronjob.resources is set (defrag.cronjob.resources is recommended for production).
1234
## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
1235
##
1236
resourcesPreset: "nano"
1237
## @param defrag.cronjob.resources [object] Set container requests and limits for different resources like CPU or
1238
## memory (essential for production workloads)
1239
## Example:
1240
## resources:
1241
## requests:
1242
## cpu: 2
1243
## memory: 512Mi
1244
## limits:
1245
## cpu: 3
1246
## memory: 1024Mi
1247
##
1248
resources: {}
1249
## @param defrag.cronjob.extraEnvVars [array] Extra environment variables to be set on defrag cronjob container
1250
## e.g:
1251
## extraEnvVars:
1252
## - name: FOO
1253
## value: "bar"
1254
##
1255
extraEnvVars: []
1256
## @param defrag.cronjob.extraEnvVarsCM Name of existing ConfigMap containing extra env vars
1257
##
1258
extraEnvVarsCM: ""
1259
## @param defrag.cronjob.extraEnvVarsSecret Name of existing Secret containing extra env vars
1260
##
1261
extraEnvVarsSecret: ""
1262
## @section Other parameters
1263
##
1264
1265
## etcd Pod Disruption Budget configuration
1266
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
1267
##
1268
pdb:
1269
## @param pdb.create Enable/disable a Pod Disruption Budget creation
1270
##
1271
create: true
1272
## @param pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
1273
##
1274
minAvailable: 51%
1275
## @param pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
1276
##
1277
maxUnavailable: ""
1278

The trusted source for open source

Talk to an expert
© 2025 Chainguard. All Rights Reserved.
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsIntegrationsPricing