mirror of
https://github.com/bitnami/charts.git
synced 2026-03-10 06:57:55 +08:00
* [bitnami/etcd] Major version: refactoring Signed-off-by: juan131 <juanariza@vmware.com> * Remove trailing spaces Signed-off-by: juan131 <juanariza@vmware.com> * Address suggestions from code review Signed-off-by: juan131 <juanariza@vmware.com> * [bitnami/etcd] Move logic to container Signed-off-by: juan131 <juanariza@vmware.com> * Do include default hooks in the values.yaml Signed-off-by: juan131 <juanariza@vmware.com> * Better approach for hooks Signed-off-by: juan131 <juanariza@vmware.com> * Simplify endpoints management Signed-off-by: juan131 <juanariza@vmware.com> * Use latest etcd image Signed-off-by: juan131 <juanariza@vmware.com> * [bitnami/etcd] Update components versions Signed-off-by: Bitnami Containers <containers@bitnami.com> Co-authored-by: Bitnami Containers <containers@bitnami.com>
612 lines
17 KiB
YAML
612 lines
17 KiB
YAML
## Global Docker image parameters
|
|
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
|
|
## Current available global Docker image parameters: imageRegistry and imagePullSecrets
|
|
##
|
|
# global:
|
|
# imageRegistry: myRegistryName
|
|
# imagePullSecrets:
|
|
# - myRegistryKeySecretName
|
|
# storageClass: myStorageClass
|
|
|
|
## Bitnami etcd image version
|
|
## ref: https://hub.docker.com/r/bitnami/etcd/tags/
|
|
##
|
|
image:
|
|
registry: docker.io
|
|
repository: bitnami/etcd
|
|
tag: 3.4.15-debian-10-r9
|
|
## Specify a imagePullPolicy
|
|
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
|
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
|
##
|
|
pullPolicy: IfNotPresent
|
|
## Optionally specify an array of imagePullSecrets.
|
|
## Secrets must be manually created in the namespace.
|
|
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
|
## e.g:
|
|
## pullSecrets:
|
|
## - myRegistryKeySecretName
|
|
##
|
|
pullSecrets: []
|
|
## Set to true if you would like to see extra information on logs
|
|
##
|
|
debug: false
|
|
|
|
## String to partially override common.names.fullname template (will maintain the release name)
|
|
##
|
|
# nameOverride:
|
|
|
|
## String to fully override common.names.fullname template
|
|
##
|
|
# fullnameOverride:
|
|
|
|
## Add labels to all the deployed resources
|
|
##
|
|
commonLabels: {}
|
|
|
|
## Add annotations to all the deployed resources
|
|
##
|
|
commonAnnotations: {}
|
|
|
|
## Force target Kubernetes version (using Helm capabilities if not set)
|
|
##
|
|
kubeVersion: ""
|
|
|
|
## Kubernetes Cluster Domain
|
|
##
|
|
clusterDomain: cluster.local
|
|
|
|
## Extra objects to deploy (value evaluated as a template)
|
|
##
|
|
extraDeploy: []
|
|
|
|
## Authentication parameters
|
|
##
|
|
auth:
|
|
## Role-based access control parameters
|
|
## ref: https://etcd.io/docs/current/op-guide/authentication/
|
|
##
|
|
rbac:
|
|
enabled: true
|
|
## Allow to use etcd without configuring RBAC authentication
|
|
##
|
|
allowNoneAuthentication: true
|
|
## root user password. The root user is always `root`
|
|
##
|
|
rootPassword: ""
|
|
## Name of the existing secret containing credentials for the root user
|
|
##
|
|
existingSecret: ""
|
|
|
|
## TLS authentication for client-to-server communications
|
|
## ref: https://etcd.io/docs/current/op-guide/security/
|
|
##
|
|
client:
|
|
## Switch to encrypt client-to-server communications using TLS
|
|
##
|
|
secureTransport: false
|
|
## Switch to automatically create the TLS certificates
|
|
##
|
|
useAutoTLS: false
|
|
## Name of the existing secret containing the TLS certificates for client-to-server communications
|
|
##
|
|
existingSecret: ""
|
|
## Switch to enable host authentication using TLS certificates. Requires existing secret
|
|
##
|
|
enableAuthentication: false
|
|
## Name of the file containing the client certificate
|
|
##
|
|
certFilename: cert.pem
|
|
## Name of the file containing the client certificate private key
|
|
##
|
|
certKeyFilename: key.pem
|
|
## Name of the file containing the client CA certificate
|
|
## If not specified and `auth.client.enableAuthentication=true` or `auth.rbac.enabled=true`, the default is is `ca.crt`
|
|
##
|
|
caFilename: ""
|
|
|
|
## TLS authentication for server-to-server communications
|
|
## ref: https://etcd.io/docs/current/op-guide/security/
|
|
##
|
|
peer:
|
|
## Switch to encrypt server-to-server communications using TLS
|
|
##
|
|
secureTransport: false
|
|
## Switch to automatically create the TLS certificates
|
|
##
|
|
useAutoTLS: false
|
|
## Name of the existing secret containing the TLS certificates for server-to-server communications
|
|
##
|
|
existingSecret: ""
|
|
## Switch to enable host authentication using TLS certificates. Requires existing secret
|
|
##
|
|
enableAuthentication: false
|
|
## Name of the file containing the peer certificate
|
|
##
|
|
certFilename: cert.pem
|
|
## Name of the file containing the peer certificate private key
|
|
##
|
|
certKeyFilename: key.pem
|
|
## Name of the file containing the peer CA certificate
|
|
## If not specified and `auth.peer.enableAuthentication=true` or `rbac.enabled=true`, the default is is `ca.crt`
|
|
##
|
|
caFilename: ""
|
|
|
|
## Initial cluster state. Allowed values: 'new' or 'existing'
|
|
## If this values is not set, the default values below are set:
|
|
## - 'new': when installing the chart ('helm install ...')
|
|
## - 'existing': when upgrading the chart ('helm upgrade ...')
|
|
##
|
|
initialClusterState: ""
|
|
|
|
## Limits the number of operating system threads that can execute user-level
|
|
## Go code simultaneously by setting GOMAXPROCS environment variable
|
|
## ref: https://golang.org/pkg/runtime
|
|
##
|
|
# maxProcs:
|
|
|
|
## Use a PreStop hook to remove the etcd members from the etcd cluster
|
|
## they the containers are terminated
|
|
## NOTE: Ignored if lifecycleHooks is set or replicaCount=1
|
|
##
|
|
removeMemberOnContainerTermination: true
|
|
|
|
## etcd configuration
|
|
## Specify content for etcd.conf.yml
|
|
## e.g:
|
|
## configuration: |-
|
|
## foo: bar
|
|
## baz:
|
|
##
|
|
# configuration:
|
|
|
|
## Existing ConfigMap with etcd configuration
|
|
## NOTE: When it's set the configuration parameter is ignored
|
|
##
|
|
# existingConfigmap:
|
|
|
|
## An array to add extra env vars
|
|
## e.g:
|
|
## extraEnvVars:
|
|
## - name: FOO
|
|
## value: "bar"
|
|
##
|
|
extraEnvVars: []
|
|
|
|
## ConfigMap with extra environment variables
|
|
##
|
|
extraEnvVarsCM: ""
|
|
|
|
## Secret with extra environment variables
|
|
##
|
|
extraEnvVarsSecret: ""
|
|
|
|
## Command and args for running the container (set to default if not set). Use array form
|
|
##
|
|
command: []
|
|
args: []
|
|
|
|
## Number of replicas
|
|
##
|
|
replicaCount: 1
|
|
|
|
## Update strategy
|
|
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
|
|
##
|
|
updateStrategy:
|
|
## Update strategy type, can be set to RollingUpdate or OnDelete.
|
|
##
|
|
type: RollingUpdate
|
|
|
|
## Pod management policy
|
|
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
|
|
##
|
|
podManagementPolicy: Parallel
|
|
|
|
## etcd pod host aliases
|
|
## ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
|
|
##
|
|
hostAliases: []
|
|
|
|
## Override default etcd container hooks
|
|
##
|
|
lifecycleHooks: {}
|
|
|
|
## etcd container ports to open
|
|
##
|
|
containerPorts:
|
|
client: 2379
|
|
peer: 2380
|
|
|
|
## etcd containers' SecurityContext
|
|
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
|
|
##
|
|
podSecurityContext:
|
|
enabled: true
|
|
fsGroup: 1001
|
|
|
|
## etcd pods' Security Context
|
|
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
|
|
##
|
|
containerSecurityContext:
|
|
enabled: true
|
|
runAsUser: 1001
|
|
runAsNonRoot: true
|
|
|
|
## etcd containers' resource requests and limits
|
|
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
|
##
|
|
resources:
|
|
## We usually recommend not to specify default resources and to leave this as a conscious
|
|
## choice for the user. This also increases chances charts run on environments with little
|
|
## resources, such as Minikube. If you do want to specify resources, uncomment the following
|
|
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
|
## e.g:
|
|
## limits:
|
|
## cpu: 500m
|
|
## memory: 1Gi
|
|
##
|
|
limits: {}
|
|
requests: {}
|
|
|
|
## Configure extra options for liveness, readiness and startup probes
|
|
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
|
|
##
|
|
livenessProbe:
|
|
enabled: true
|
|
initialDelaySeconds: 60
|
|
periodSeconds: 30
|
|
timeoutSeconds: 5
|
|
successThreshold: 1
|
|
failureThreshold: 5
|
|
readinessProbe:
|
|
enabled: true
|
|
initialDelaySeconds: 60
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
successThreshold: 1
|
|
failureThreshold: 5
|
|
startupProbe:
|
|
enabled: false
|
|
initialDelaySeconds: 0
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
successThreshold: 1
|
|
failureThreshold: 60
|
|
|
|
## Custom Liveness probes for etcd
|
|
##
|
|
customLivenessProbe: {}
|
|
|
|
## Custom Readiness probes for etcd
|
|
##
|
|
customReadinessProbe: {}
|
|
|
|
## Custom Startup probe for etcd
|
|
##
|
|
customStartupProbe: {}
|
|
|
|
## Extra volumes to add to the etcd statefulset
|
|
##
|
|
extraVolumes: []
|
|
|
|
## Extra volume mounts to add to etcd containers
|
|
##
|
|
extraVolumeMounts: []
|
|
|
|
## Add init containers to the etcd pods.
|
|
## e.g:
|
|
## initContainers:
|
|
## - name: your-image-name
|
|
## image: your-image
|
|
## imagePullPolicy: Always
|
|
## ports:
|
|
## - name: portname
|
|
## containerPort: 1234
|
|
##
|
|
initContainers: {}
|
|
|
|
## Add sidecars to the etcd pods.
|
|
## e.g:
|
|
## sidecars:
|
|
## - name: your-image-name
|
|
## image: your-image
|
|
## imagePullPolicy: Always
|
|
## ports:
|
|
## - name: portname
|
|
## containerPort: 1234
|
|
##
|
|
sidecars: {}
|
|
|
|
## Pod annotations
|
|
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
|
##
|
|
podAnnotations: {}
|
|
|
|
## Pod labels
|
|
## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
|
##
|
|
podLabels: {}
|
|
|
|
## Pod affinity preset
|
|
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
|
|
## Allowed values: soft, hard
|
|
##
|
|
podAffinityPreset: ""
|
|
|
|
## Pod anti-affinity preset
|
|
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
|
|
## Allowed values: soft, hard
|
|
##
|
|
podAntiAffinityPreset: soft
|
|
|
|
## Node affinity preset
|
|
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
|
|
## Allowed values: soft, hard
|
|
##
|
|
nodeAffinityPreset:
|
|
## Node affinity type
|
|
## Allowed values: soft, hard
|
|
##
|
|
type: ""
|
|
## Node label key to match
|
|
## e.g:
|
|
## key: "kubernetes.io/e2e-az-name"
|
|
##
|
|
key: ""
|
|
## Node label values to match
|
|
## e.g:
|
|
## values:
|
|
## - e2e-az1
|
|
## - e2e-az2
|
|
##
|
|
values: []
|
|
|
|
## Affinity for pod assignment
|
|
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
|
## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
|
|
##
|
|
affinity: {}
|
|
|
|
## Node labels for pod assignment
|
|
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
|
|
##
|
|
nodeSelector: {}
|
|
|
|
## Tolerations for pod assignment
|
|
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
|
##
|
|
tolerations: []
|
|
|
|
## Name of the priority class to be used by etcd pods, priority class needs to be created beforehand
|
|
## Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
|
|
##
|
|
priorityClassName: ""
|
|
|
|
## etcd Pod Disruption Budget configuration
|
|
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
|
##
|
|
pdb:
|
|
create: false
|
|
## Min number of pods that must still be available after the eviction
|
|
##
|
|
minAvailable: 1
|
|
## Max number of pods that can be unavailable after the eviction
|
|
##
|
|
# maxUnavailable: 1
|
|
|
|
## Service parameters
|
|
##
|
|
service:
|
|
## K8s service type
|
|
##
|
|
type: ClusterIP
|
|
## etcd client port
|
|
##
|
|
port: 2379
|
|
## etcd client port name override
|
|
##
|
|
clientPortNameOverride: ""
|
|
## etcd peer port
|
|
##
|
|
peerPort: 2380
|
|
## etcd peer port name override
|
|
##
|
|
peerPortNameOverride: ""
|
|
## Specify the nodePort(s) value(s) for the LoadBalancer and NodePort service types.
|
|
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
|
|
##
|
|
nodePorts:
|
|
clientPort: ""
|
|
peerPort: ""
|
|
## loadBalancerIP for the etcd service (optional, cloud specific)
|
|
## ref: http://kubernetes.io/docs/user-guide/services/#type-loadbalancer
|
|
##
|
|
loadBalancerIP: ""
|
|
## Load Balancer sources
|
|
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
|
|
## e.g:
|
|
## loadBalancerSourceRanges:
|
|
## - 10.10.10.0/24
|
|
##
|
|
loadBalancerSourceRanges: []
|
|
## External IPs
|
|
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
|
|
##
|
|
externalIPs: []
|
|
## Provide any additional annotations which may be required (evaluated as a template)
|
|
##
|
|
annotations: {}
|
|
|
|
## Enable persistence using Persistent Volume Claims
|
|
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
|
|
##
|
|
persistence:
|
|
## If true, use a Persistent Volume Claim. If false, use emptyDir.
|
|
##
|
|
enabled: true
|
|
## Persistent Volume Storage Class
|
|
## If defined, storageClassName: <storageClass>
|
|
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
|
## If undefined (the default) or set to null, no storageClassName spec is
|
|
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
|
## GKE, AWS & OpenStack)
|
|
##
|
|
# storageClass: "-"
|
|
## Persistent Volume Claim annotations (evaluated as a template)
|
|
##
|
|
annotations: {}
|
|
## Persistent Volume Access Modes
|
|
##
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
## Persistent Volume size
|
|
##
|
|
size: 8Gi
|
|
## Provide any additional label selector to further filter the set of volumes (evaluated as a template)
|
|
## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#selector
|
|
##
|
|
selector: {}
|
|
|
|
## Init containers parameters:
|
|
## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section.
|
|
##
|
|
volumePermissions:
|
|
enabled: false
|
|
image:
|
|
registry: docker.io
|
|
repository: bitnami/bitnami-shell
|
|
tag: "10"
|
|
pullPolicy: Always
|
|
## Optionally specify an array of imagePullSecrets.
|
|
## Secrets must be manually created in the namespace.
|
|
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
|
## e.g:
|
|
## pullSecrets:
|
|
## - myRegistryKeySecretName
|
|
##
|
|
pullSecrets: []
|
|
|
|
## Init container' resource requests and limits
|
|
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
|
##
|
|
resources:
|
|
## We usually recommend not to specify default resources and to leave this as a conscious
|
|
## choice for the user. This also increases chances charts run on environments with little
|
|
## resources, such as Minikube. If you do want to specify resources, uncomment the following
|
|
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
|
## e.g:
|
|
## limits:
|
|
## cpu: 500m
|
|
## memory: 1Gi
|
|
##
|
|
limits: {}
|
|
requests: {}
|
|
|
|
## etcd metrics configuration
|
|
##
|
|
metrics:
|
|
enabled: false
|
|
## Annotations for the Prometheus metrics on etcd pods
|
|
##
|
|
podAnnotations:
|
|
prometheus.io/scrape: "true"
|
|
prometheus.io/port: "2379"
|
|
|
|
## Prometheus Service Monitor
|
|
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
|
|
##
|
|
podMonitor:
|
|
## If the Prometheus Operator is installed in your cluster, set to true to create a PodMonitor entry
|
|
##
|
|
enabled: false
|
|
## Namespace in which Prometheus is running
|
|
##
|
|
# namespace: monitoring
|
|
## Specify the interval at which metrics should be scraped
|
|
##
|
|
interval: 30s
|
|
## Specify the timeout after which the scrape is ended
|
|
##
|
|
# scrapeTimeout: 30s
|
|
## Used to pass Labels that are used by the Prometheus installed in your cluster to select PodMonitors to work with
|
|
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
|
|
##
|
|
additionalLabels: {}
|
|
## Scheme to use for scraping.
|
|
##
|
|
scheme: http
|
|
## TLS configuration for the endpoints to be scraped.
|
|
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#tlsconfig
|
|
## e.g:
|
|
## tlsConfig:
|
|
## ca:
|
|
## secret:
|
|
## name: existingSecretName
|
|
##
|
|
tlsConfig: {}
|
|
|
|
## Start a new etcd cluster recovering the data from an existing snapshot
|
|
## before bootstrapping
|
|
##
|
|
startFromSnapshot:
|
|
enabled: false
|
|
## Existing PVC containing the etcd snapshot
|
|
##
|
|
existingClaim: ""
|
|
## Snapshot filename
|
|
##
|
|
snapshotFilename: ""
|
|
|
|
## Enable auto disaster recovery by periodically snapshotting the keyspace:
|
|
## - It creates a cronjob to periodically snapshotting the keyspace
|
|
## - It also creates a ReadWriteMany PVC to store the snapshots
|
|
## If the cluster permanently loses more than (N-1)/2 members, it tries to
|
|
## recover itself from the last available snapshot.
|
|
##
|
|
disasterRecovery:
|
|
enabled: false
|
|
cronjob:
|
|
## Schedule in Cron format to save snapshots
|
|
## See https://en.wikipedia.org/wiki/Cron
|
|
##
|
|
schedule: "*/30 * * * *"
|
|
## Number of successful finished jobs to retain
|
|
##
|
|
historyLimit: 1
|
|
## Number of etcd snapshots to retain, tagged with date
|
|
##
|
|
snapshotHistoryLimit: 1
|
|
## Pod annotations
|
|
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
|
##
|
|
podAnnotations: {}
|
|
## Configure resource requests and limits for snapshotter containers
|
|
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
|
##
|
|
resources:
|
|
## We usually recommend not to specify default resources and to leave this as a conscious
|
|
## choice for the user. This also increases chances charts run on environments with little
|
|
## resources, such as Minikube. If you do want to specify resources, uncomment the following
|
|
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
|
## e.g:
|
|
## limits:
|
|
## cpu: 500m
|
|
## memory: 1Gi
|
|
##
|
|
limits: {}
|
|
requests: {}
|
|
pvc:
|
|
## A manually managed Persistent Volume and Claim
|
|
## If defined, PVC must be created manually before volume will be bound
|
|
## The value is evaluated as a template, so, for example, the name can depend on .Release or .Chart
|
|
##
|
|
# existingClaim:
|
|
|
|
## PVC Storage Request
|
|
##
|
|
size: 2Gi
|
|
## storageClassName, choose a storageClassName with ReadWriteMany support
|
|
##
|
|
storageClassName: nfs
|