diff --git a/bitnami/etcd/Chart.yaml b/bitnami/etcd/Chart.yaml index cb057586f..34472e6ee 100644 --- a/bitnami/etcd/Chart.yaml +++ b/bitnami/etcd/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: etcd -version: 3.0.0 +version: 3.1.0 appVersion: 3.3.13 description: etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines keywords: diff --git a/bitnami/etcd/README.md b/bitnami/etcd/README.md index 762c00ac4..006775b76 100644 --- a/bitnami/etcd/README.md +++ b/bitnami/etcd/README.md @@ -45,82 +45,84 @@ The command removes all the Kubernetes components associated with the chart and The following tables lists the configurable parameters of the etcd chart and their default values. -| Parameter | Description | Default | -|-------------------------------------------|----------------------------------------------------------------------------------------------------------|------------------------------------------------------------------- | -| `global.imageRegistry` | Global Docker image registry | `nil` | -| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | -| `image.registry` | etcd image registry | `docker.io` | -| `image.repository` | etcd image name | `bitnami/etcd` | -| `image.tag` | etcd image tag | `{TAG_NAME}` | -| `image.pullPolicy` | etcd image pull policy | `IfNotPresent` | -| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | -| `image.debug` | Specify if debug values should be set | `false` | -| `statefulset.updateStrategy` | Update strategy for the stateful set | `RollingUpdate` | -| `statefulset.rollingUpdatePartition` | Partition for Rolling Update strategy | `nil` | -| `statefulset.podManagementPolicy` | Pod management policy for the stateful set | `OrderedReady` | -| `statefulset.replicaCount` | Number of etcd nodes | `1` | -| `configFileConfigMap` | ConfigMap that contains a etcd.conf.yaml to be mounted | `nil` | -| `envVarsConfigMap` | ConfigMap that contains environment variables to be set in the container | `nil` | -| `allowNoneAuthentication` | Allow to use etcd without configuring RBAC authentication | `true` | -| `maxProcs` | Set GOMAXPROCS environment variable to limit the number of CPUs | `nil` | -| `auth.rbac.enabled` | Switch to enable the etcd authentication. | `true` | -| `auth.rbac.rootPassword` | Password for the root user | `nil` | -| `auth.rbac.existingSecret` | Name of the existing secret containing the root password | `nil` | -| `auth.client.secureTransport` | Switch to encrypt client communication using TLS certificates | `false` | -| `auth.client.useAutoTLS` | Switch to automatically create the TLS certificates | `false` | -| `auth.client.enableAuthentication` | Switch to enable host authentication using TLS certificates. Requires existing secret. | `secret` | -| `auth.client.existingSecret` | Name of the existing secret containing cert files for client communication. | `nil` | -| `auth.peer.secureTransport` | Switch to encrypt peer communication using TLS certificates | `false` | -| `auth.peer.useAutoTLS` | Switch to automatically create the TLS certificates | `false` | -| `auth.peer.enableAuthentication` | Switch to enable host authentication using TLS certificates. Requires existing secret. | `false` | -| `auth.peer.existingSecret` | Name of the existing secret containing cert files for peer communication. | `nil` | -| `securityContext.enabled` | Enable security context | `true` | -| `securityContext.fsGroup` | Group ID for the container | `1001` | -| `securityContext.runAsUser` | User ID for the container | `1001` | -| `service.dnsBase` | Kubernetes service cluster dns base name | `svc.cluster.local` | -| `service.type` | Kubernetes Service type | `ClusterIP` | -| `service.port` | etcd client port | `2379` | -| `service.nodePort` | Port to bind to for NodePort service type (client port) | `nil` | -| `service.peerPort` | etcd peer port | `2380` | -| `service.peerNodePort` | Port to bind to for NodePort service type (peer port) | `nil` | -| `service.annotations` | Annotations for etcd service | `{}` | -| `service.loadBalancerIP` | loadBalancerIP if etcd service type is `LoadBalancer` | `nil` | -| `persistence.enabled` | Enable persistence using PVC | `true` | -| `persistence.storageClass` | PVC Storage Class for etcd volume | `nil` | -| `persistence.accessMode` | PVC Access Mode for etcd volume | `ReadWriteOnce` | -| `persistence.size` | PVC Storage Request for etcd volume | `8Gi` | -| `persistence.annotations` | Annotations for the PVC | `{}` | -| `resources` | CPU/Memory resource requests/limits | Memory: `256Mi`, CPU: `250m` | -| `livenessProbe.enabled` | Turn on and off liveness probe | `true` | -| `livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | `10` | -| `livenessProbe.periodSeconds` | How often to perform the probe | `10` | -| `livenessProbe.timeoutSeconds` | When the probe times out | `5` | -| `livenessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | `2` | -| `livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | -| `readinessProbe.enabled` | Turn on and off readiness probe | `true` | -| `readinessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | `15` | -| `readinessProbe.periodSeconds` | How often to perform the probe | `10` | -| `readinessProbe.timeoutSeconds` | When the probe times out | `5` | -| `readinessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | `6` | -| `readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | -| `podAnnotations` | Annotations to be added to pods | `{}` | -| `nodeAffinity` | Node Affinity rules for pod assignment. The value is evaluated as a template. | `{}` | -| `podAffinity` | Affinity rules for pod assignment. The value is evaluated as a template. | `{}` | -| `podAntiAffinity` | Anti-Affinity rules for pod assignment. Allowed values: `soft` and `hard` | `soft` | -| `nodeSelector` | Node labels for pod assignment. The value is evaluated as a template. | `{}` | -| `tolerations` | Tolerations for pod assignment. The value is evaluated as a template. | `{}` | -| `metrics.enabled` | Enable Prometheus exporter to expose etcd metrics | `false` | -| `metrics.podAnnotations` | Annotations for enabling prometheus to access the metrics endpoint | {`prometheus.io/scrape: "true",prometheus.io/port: "2379"`} | -| `startFromSnapshot.enabled` | Initialize new cluster recovering an existing snapshot | `false` | -| `startFromSnapshot.existingClaim` | PVC containing the existing snapshot | `nil` | -| `startFromSnapshot.snapshotFilename` | Snapshot filename | `nil` | -| `disasterRecovery.enabled` | Enable auto disaster recovery by periodically snapshotting the keyspace | `false` | -| `disasterRecovery.cronjob.schedule` | Schedule in Cron format to save snapshots | `*/30 * * * *` | -| `disasterRecovery.cronjob.historyLimit` | Number of successful finished jobs to retain | `1` | -| `disasterRecovery.cronjob.podAnnotations` | Pod annotations for cronjob pods | `{}` | -| `disasterRecovery.pvc.existingClaim` | Provide an existing `PersistentVolumeClaim`, the value is evaluated as a template. | `nil` | -| `disasterRecovery.pvc.size` | PVC Storage Request | `2Gi` | -| `disasterRecovery.pvc.storageClassName` | Storage Class for snapshots volume | `nfs` | +| Parameter | Description | Default | +| ----------------------------------------- | ------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| `global.imageRegistry` | Global Docker image registry | `nil` | +| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | +| `image.registry` | etcd image registry | `docker.io` | +| `image.repository` | etcd image name | `bitnami/etcd` | +| `image.tag` | etcd image tag | `{TAG_NAME}` | +| `image.pullPolicy` | etcd image pull policy | `IfNotPresent` | +| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | +| `image.debug` | Specify if debug values should be set | `false` | +| `nameOverride` | String to partially override etcd.fullname template with a string (will prepend the release name) | `nil` | +| `fullnameOverride` | String to fully override etcd.fullname template with a string | `nil` | +| `statefulset.updateStrategy` | Update strategy for the stateful set | `RollingUpdate` | +| `statefulset.rollingUpdatePartition` | Partition for Rolling Update strategy | `nil` | +| `statefulset.podManagementPolicy` | Pod management policy for the stateful set | `OrderedReady` | +| `statefulset.replicaCount` | Number of etcd nodes | `1` | +| `configFileConfigMap` | ConfigMap that contains a etcd.conf.yaml to be mounted | `nil` | +| `envVarsConfigMap` | ConfigMap that contains environment variables to be set in the container | `nil` | +| `allowNoneAuthentication` | Allow to use etcd without configuring RBAC authentication | `true` | +| `maxProcs` | Set GOMAXPROCS environment variable to limit the number of CPUs | `nil` | +| `auth.rbac.enabled` | Switch to enable the etcd authentication. | `true` | +| `auth.rbac.rootPassword` | Password for the root user | `nil` | +| `auth.rbac.existingSecret` | Name of the existing secret containing the root password | `nil` | +| `auth.client.secureTransport` | Switch to encrypt client communication using TLS certificates | `false` | +| `auth.client.useAutoTLS` | Switch to automatically create the TLS certificates | `false` | +| `auth.client.enableAuthentication` | Switch to enable host authentication using TLS certificates. Requires existing secret. | `secret` | +| `auth.client.existingSecret` | Name of the existing secret containing cert files for client communication. | `nil` | +| `auth.peer.secureTransport` | Switch to encrypt peer communication using TLS certificates | `false` | +| `auth.peer.useAutoTLS` | Switch to automatically create the TLS certificates | `false` | +| `auth.peer.enableAuthentication` | Switch to enable host authentication using TLS certificates. Requires existing secret. | `false` | +| `auth.peer.existingSecret` | Name of the existing secret containing cert files for peer communication. | `nil` | +| `securityContext.enabled` | Enable security context | `true` | +| `securityContext.fsGroup` | Group ID for the container | `1001` | +| `securityContext.runAsUser` | User ID for the container | `1001` | +| `service.dnsBase` | Kubernetes service cluster dns base name | `svc.cluster.local` | +| `service.type` | Kubernetes Service type | `ClusterIP` | +| `service.port` | etcd client port | `2379` | +| `service.nodePort` | Port to bind to for NodePort service type (client port) | `nil` | +| `service.peerPort` | etcd peer port | `2380` | +| `service.peerNodePort` | Port to bind to for NodePort service type (peer port) | `nil` | +| `service.annotations` | Annotations for etcd service | `{}` | +| `service.loadBalancerIP` | loadBalancerIP if etcd service type is `LoadBalancer` | `nil` | +| `persistence.enabled` | Enable persistence using PVC | `true` | +| `persistence.storageClass` | PVC Storage Class for etcd volume | `nil` | +| `persistence.accessMode` | PVC Access Mode for etcd volume | `ReadWriteOnce` | +| `persistence.size` | PVC Storage Request for etcd volume | `8Gi` | +| `persistence.annotations` | Annotations for the PVC | `{}` | +| `resources` | CPU/Memory resource requests/limits | Memory: `256Mi`, CPU: `250m` | +| `livenessProbe.enabled` | Turn on and off liveness probe | `true` | +| `livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | `10` | +| `livenessProbe.periodSeconds` | How often to perform the probe | `10` | +| `livenessProbe.timeoutSeconds` | When the probe times out | `5` | +| `livenessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | `2` | +| `livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | +| `readinessProbe.enabled` | Turn on and off readiness probe | `true` | +| `readinessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | `15` | +| `readinessProbe.periodSeconds` | How often to perform the probe | `10` | +| `readinessProbe.timeoutSeconds` | When the probe times out | `5` | +| `readinessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | `6` | +| `readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | +| `podAnnotations` | Annotations to be added to pods | `{}` | +| `nodeAffinity` | Node Affinity rules for pod assignment. The value is evaluated as a template. | `{}` | +| `podAffinity` | Affinity rules for pod assignment. The value is evaluated as a template. | `{}` | +| `podAntiAffinity` | Anti-Affinity rules for pod assignment. Allowed values: `soft` and `hard` | `soft` | +| `nodeSelector` | Node labels for pod assignment. The value is evaluated as a template. | `{}` | +| `tolerations` | Tolerations for pod assignment. The value is evaluated as a template. | `{}` | +| `metrics.enabled` | Enable Prometheus exporter to expose etcd metrics | `false` | +| `metrics.podAnnotations` | Annotations for enabling prometheus to access the metrics endpoint | {`prometheus.io/scrape: "true",prometheus.io/port: "2379"`} | +| `startFromSnapshot.enabled` | Initialize new cluster recovering an existing snapshot | `false` | +| `startFromSnapshot.existingClaim` | PVC containing the existing snapshot | `nil` | +| `startFromSnapshot.snapshotFilename` | Snapshot filename | `nil` | +| `disasterRecovery.enabled` | Enable auto disaster recovery by periodically snapshotting the keyspace | `false` | +| `disasterRecovery.cronjob.schedule` | Schedule in Cron format to save snapshots | `*/30 * * * *` | +| `disasterRecovery.cronjob.historyLimit` | Number of successful finished jobs to retain | `1` | +| `disasterRecovery.cronjob.podAnnotations` | Pod annotations for cronjob pods | `{}` | +| `disasterRecovery.pvc.existingClaim` | Provide an existing `PersistentVolumeClaim`, the value is evaluated as a template. | `nil` | +| `disasterRecovery.pvc.size` | PVC Storage Request | `2Gi` | +| `disasterRecovery.pvc.storageClassName` | Storage Class for snapshots volume | `nfs` | Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, @@ -343,4 +345,4 @@ Use the workaround below to upgrade from versions previous to 1.0.0. The followi ```console $ kubectl delete statefulset etcd --cascade=false -``` \ No newline at end of file +``` diff --git a/bitnami/etcd/templates/_helpers.tpl b/bitnami/etcd/templates/_helpers.tpl index 560d5db9f..4382239e4 100644 --- a/bitnami/etcd/templates/_helpers.tpl +++ b/bitnami/etcd/templates/_helpers.tpl @@ -11,8 +11,16 @@ Create a default fully qualified app name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). */}} {{- define "etcd.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} {{- $name := default .Chart.Name .Values.nameOverride -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} {{- end -}} {{/* diff --git a/bitnami/etcd/values-production.yaml b/bitnami/etcd/values-production.yaml index a12f64564..dbd6a75ac 100644 --- a/bitnami/etcd/values-production.yaml +++ b/bitnami/etcd/values-production.yaml @@ -31,6 +31,12 @@ image: ## ref: https://github.com/bitnami/minideb-extras/#turn-on-bash-debugging debug: false + ## String to partially override etcd.fullname template (will maintain the release name) + # nameOverride: + + ## String to fully override etcd.fullname template + # fullnameOverride: + statefulset: ## Update strategy, can be set to RollingUpdate or OnDelete by default. ## https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets diff --git a/bitnami/etcd/values.yaml b/bitnami/etcd/values.yaml index f4bbae85f..b96563492 100644 --- a/bitnami/etcd/values.yaml +++ b/bitnami/etcd/values.yaml @@ -31,6 +31,12 @@ image: ## ref: https://github.com/bitnami/minideb-extras/#turn-on-bash-debugging debug: false + ## String to partially override etcd.fullname template (will maintain the release name) + # nameOverride: + + ## String to fully override etcd.fullname template + # fullnameOverride: + statefulset: ## Update strategy, can be set to RollingUpdate or OnDelete by default. ## https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets