diff --git a/bitnami/cassandra/Chart.yaml b/bitnami/cassandra/Chart.yaml index e5ee0a871..85e2bdd03 100644 --- a/bitnami/cassandra/Chart.yaml +++ b/bitnami/cassandra/Chart.yaml @@ -23,4 +23,4 @@ name: cassandra sources: - https://github.com/bitnami/bitnami-docker-cassandra - http://cassandra.apache.org -version: 9.1.23 +version: 9.2.0 diff --git a/bitnami/cassandra/README.md b/bitnami/cassandra/README.md index 9d0acd5d4..eee81135c 100644 --- a/bitnami/cassandra/README.md +++ b/bitnami/cassandra/README.md @@ -83,7 +83,7 @@ The command removes all the Kubernetes components associated with the chart and | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------- | | `image.registry` | Cassandra image registry | `docker.io` | | `image.repository` | Cassandra image repository | `bitnami/cassandra` | -| `image.tag` | Cassandra image tag (immutable tags are recommended) | `4.0.4-debian-10-r0` | +| `image.tag` | Cassandra image tag (immutable tags are recommended) | `4.0.4-debian-10-r3` | | `image.pullPolicy` | image pull policy | `IfNotPresent` | | `image.pullSecrets` | Cassandra image pull secrets | `[]` | | `image.debug` | Enable image debug mode | `false` | @@ -164,6 +164,7 @@ The command removes all the Kubernetes components associated with the chart and | `customStartupProbe` | Override default startup probe | `{}` | | `lifecycleHooks` | Override default etcd container hooks | `{}` | | `schedulerName` | Alternative scheduler | `""` | +| `terminationGracePeriodSeconds` | In seconds, time the given to the Cassandra pod needs to terminate gracefully | `""` | | `extraVolumes` | Optionally specify extra list of additional volumes for cassandra container | `[]` | | `extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for cassandra container | `[]` | | `initContainers` | Add additional init containers to the cassandra pods | `[]` | @@ -203,6 +204,8 @@ The command removes all the Kubernetes components associated with the chart and | `service.clusterIP` | Service Cluster IP | `""` | | `service.externalTrafficPolicy` | Service external traffic policy | `Cluster` | | `service.annotations` | Provide any additional annotations which may be required. | `{}` | +| `service.sessionAffinity` | Session Affinity for Kubernetes service, can be "None" or "ClientIP" | `None` | +| `service.sessionAffinityConfig` | Additional settings for the sessionAffinity | `{}` | | `networkPolicy.enabled` | Specifies whether a NetworkPolicy should be created | `false` | | `networkPolicy.allowExternal` | Don't require client label for connections | `true` | @@ -227,7 +230,7 @@ The command removes all the Kubernetes components associated with the chart and | `volumePermissions.enabled` | Enable init container that changes the owner and group of the persistent volume | `false` | | `volumePermissions.image.registry` | Init container volume | `docker.io` | | `volumePermissions.image.repository` | Init container volume | `bitnami/bitnami-shell` | -| `volumePermissions.image.tag` | Init container volume | `10-debian-10-r410` | +| `volumePermissions.image.tag` | Init container volume | `10-debian-10-r431` | | `volumePermissions.image.pullPolicy` | Init container volume | `IfNotPresent` | | `volumePermissions.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | | `volumePermissions.resources.limits` | The resources limits for the container | `{}` | @@ -242,7 +245,7 @@ The command removes all the Kubernetes components associated with the chart and | `metrics.enabled` | Start a side-car prometheus exporter | `false` | | `metrics.image.registry` | Cassandra exporter image registry | `docker.io` | | `metrics.image.repository` | Cassandra exporter image name | `bitnami/cassandra-exporter` | -| `metrics.image.tag` | Cassandra exporter image tag | `2.3.8-debian-10-r33` | +| `metrics.image.tag` | Cassandra exporter image tag | `2.3.8-debian-10-r54` | | `metrics.image.pullPolicy` | image pull policy | `IfNotPresent` | | `metrics.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | | `metrics.resources.limits` | The resources limits for the container | `{}` | @@ -254,9 +257,10 @@ The command removes all the Kubernetes components associated with the chart and | `metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `""` | | `metrics.serviceMonitor.selector` | Prometheus instance selector labels | `{}` | | `metrics.serviceMonitor.metricRelabelings` | Specify Metric Relabelings to add to the scrape endpoint | `[]` | +| `metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` | | `metrics.serviceMonitor.honorLabels` | Specify honorLabels parameter to add the scrape endpoint | `false` | | `metrics.serviceMonitor.jobLabel` | The name of the label on the target service to use as the job name in prometheus. | `""` | -| `metrics.serviceMonitor.additionalLabels` | Used to pass Labels that are required by the installed Prometheus Operator | `{}` | +| `metrics.serviceMonitor.labels` | Used to pass Labels that are required by the installed Prometheus Operator | `{}` | | `metrics.containerPorts.http` | HTTP Port on the Host and Container | `8080` | | `metrics.containerPorts.jmx` | JMX Port on the Host and Container | `5555` | diff --git a/bitnami/cassandra/templates/_helpers.tpl b/bitnami/cassandra/templates/_helpers.tpl index bd9713b7f..a486078cb 100644 --- a/bitnami/cassandra/templates/_helpers.tpl +++ b/bitnami/cassandra/templates/_helpers.tpl @@ -151,7 +151,7 @@ Return true if encryption via TLS should be configured Return the Cassandra TLS credentials secret */}} {{- define "cassandra.tlsSecretName" -}} -{{- $secretName := coalesce .Values.tls.existingSecret .Values.tlsEncryptionSecretName -}} +{{- $secretName := coalesce .Values.tls.existingSecret .Values.tls.tlsEncryptionSecretName -}} {{- if $secretName -}} {{- printf "%s" (tpl $secretName $) -}} {{- else -}} @@ -163,7 +163,7 @@ Return the Cassandra TLS credentials secret Return true if a TLS credentials secret object should be created */}} {{- define "cassandra.createTlsSecret" -}} -{{- if and (include "cassandra.tlsEncryption" .) .Values.tls.autoGenerated (not .Values.tls.existingSecret) (not .Values.tlsEncryptionSecretName) }} +{{- if and (include "cassandra.tlsEncryption" .) .Values.tls.autoGenerated (not .Values.tls.existingSecret) (not .Values.tls.tlsEncryptionSecretName) }} {{- true -}} {{- end -}} {{- end -}} @@ -172,7 +172,7 @@ Return true if a TLS credentials secret object should be created Return true if a TLS credentials secret object should be created */}} {{- define "cassandra.tlsPasswordsSecret" -}} -{{- $secretName := coalesce .Values.tls.passwordsSecret .Values.tlsEncryptionSecretName -}} +{{- $secretName := coalesce .Values.tls.passwordsSecret .Values.tls.tlsEncryptionSecretName -}} {{- if $secretName -}} {{- printf "%s" (tpl $secretName $) -}} {{- else -}} diff --git a/bitnami/cassandra/templates/service.yaml b/bitnami/cassandra/templates/service.yaml index 578aac555..1fe14493c 100644 --- a/bitnami/cassandra/templates/service.yaml +++ b/bitnami/cassandra/templates/service.yaml @@ -21,12 +21,18 @@ spec: {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP)) }} loadBalancerIP: {{ .Values.service.loadBalancerIP }} {{- end }} - {{- if .Values.service.loadBalancerSourceRanges }} - loadBalancerSourceRanges: {{ toYaml .Values.service.loadBalancerSourceRanges | nindent 4 }} + {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerSourceRanges)) }} + loadBalancerSourceRanges: {{ .Values.service.loadBalancerSourceRanges }} {{- end }} - {{- if .Values.service.clusterIP }} + {{- if and .Values.service.clusterIP (eq .Values.service.type "ClusterIP") }} clusterIP: {{ .Values.service.clusterIP }} {{- end }} + {{- if .Values.service.sessionAffinity }} + sessionAffinity: {{ .Values.service.sessionAffinity }} + {{- end }} + {{- if .Values.service.sessionAffinityConfig }} + sessionAffinityConfig: {{- include "common.tplvalues.render" (dict "value" .Values.service.sessionAffinityConfig "context" $) | nindent 4 }} + {{- end }} {{- if or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort") }} externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }} {{- end }} diff --git a/bitnami/cassandra/templates/servicemonitor.yaml b/bitnami/cassandra/templates/servicemonitor.yaml index f9001ac5b..85b1c5974 100644 --- a/bitnami/cassandra/templates/servicemonitor.yaml +++ b/bitnami/cassandra/templates/servicemonitor.yaml @@ -8,6 +8,9 @@ metadata: {{- if .Values.metrics.serviceMonitor.additionalLabels }} {{- include "common.tplvalues.render" (dict "value" .Values.metrics.serviceMonitor.additionalLabels "context" $) | nindent 4 }} {{- end }} + {{- if .Values.metrics.serviceMonitor.labels }} + {{- include "common.tplvalues.render" (dict "value" .Values.metrics.serviceMonitor.labels "context" $) | nindent 4 }} + {{- end }} {{- if .Values.commonLabels }} {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} {{- end }} @@ -37,6 +40,9 @@ spec: {{- if .Values.metrics.serviceMonitor.metricRelabelings }} metricRelabelings: {{- toYaml .Values.metrics.serviceMonitor.metricRelabelings | nindent 6 }} {{- end }} + {{- if .Values.metrics.serviceMonitor.relabelings }} + relabelings: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.relabelings "context" $) | nindent 8 }} + {{- end }} namespaceSelector: matchNames: - {{ .Release.Namespace }} diff --git a/bitnami/cassandra/templates/statefulset.yaml b/bitnami/cassandra/templates/statefulset.yaml index fa5079def..d2a911e8b 100644 --- a/bitnami/cassandra/templates/statefulset.yaml +++ b/bitnami/cassandra/templates/statefulset.yaml @@ -64,6 +64,9 @@ spec: {{- if .Values.topologySpreadConstraints }} topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" .Values.topologySpreadConstraints "context" $) | nindent 8 }} {{- end }} + {{- if .Values.terminationGracePeriodSeconds }} + terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }} + {{- end }} {{- if or .Values.initContainers (include "cassandra.tlsEncryption" . ) (and .Values.podSecurityContext.enabled .Values.volumePermissions.enabled .Values.persistence.enabled) }} initContainers: {{- if and .Values.podSecurityContext.enabled .Values.volumePermissions.enabled .Values.persistence.enabled }} @@ -175,14 +178,14 @@ spec: fieldRef: apiVersion: v1 fieldPath: metadata.name - {{- if or .Values.tls.passwordsSecret .Values.tlsEncryptionSecretName .Values.tls.truststorePassword .Values.tls.autoGenerated }} + {{- if or .Values.tls.passwordsSecret .Values.tls.tlsEncryptionSecretName .Values.tls.truststorePassword .Values.tls.autoGenerated }} - name: CASSANDRA_TRUSTSTORE_PASSWORD valueFrom: secretKeyRef: name: {{ (include "cassandra.tlsPasswordsSecret" .) }} key: truststore-password {{- end }} - {{- if or .Values.tls.passwordsSecret .Values.tlsEncryptionSecretName .Values.tls.keystorePassword .Values.tls.autoGenerated }} + {{- if or .Values.tls.passwordsSecret .Values.tls.tlsEncryptionSecretName .Values.tls.keystorePassword .Values.tls.autoGenerated }} - name: CASSANDRA_KEYSTORE_PASSWORD valueFrom: secretKeyRef: @@ -275,14 +278,14 @@ spec: - name: CASSANDRA_CLIENT_ENCRYPTION value: "true" {{- end }} - {{- if or .Values.tls.passwordsSecret .Values.tlsEncryptionSecretName .Values.tls.truststorePassword .Values.tls.autoGenerated }} + {{- if or .Values.tls.passwordsSecret .Values.tls.tlsEncryptionSecretName .Values.tls.truststorePassword .Values.tls.autoGenerated }} - name: CASSANDRA_TRUSTSTORE_PASSWORD valueFrom: secretKeyRef: name: {{ (include "cassandra.tlsPasswordsSecret" .) }} key: truststore-password {{- end }} - {{- if or .Values.tls.passwordsSecret .Values.tlsEncryptionSecretName .Values.tls.keystorePassword .Values.tls.autoGenerated }} + {{- if or .Values.tls.passwordsSecret .Values.tls.tlsEncryptionSecretName .Values.tls.keystorePassword .Values.tls.autoGenerated }} - name: CASSANDRA_KEYSTORE_PASSWORD valueFrom: secretKeyRef: diff --git a/bitnami/cassandra/values.yaml b/bitnami/cassandra/values.yaml index d19f475bf..984fed77a 100644 --- a/bitnami/cassandra/values.yaml +++ b/bitnami/cassandra/values.yaml @@ -377,6 +377,10 @@ lifecycleHooks: {} ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ ## schedulerName: "" +## @param terminationGracePeriodSeconds In seconds, time the given to the Cassandra pod needs to terminate gracefully +## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods +## +terminationGracePeriodSeconds: "" ## @param extraVolumes Optionally specify extra list of additional volumes for cassandra container ## extraVolumes: [] @@ -491,6 +495,17 @@ service: ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer ## annotations: {} + ## @param service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP" + ## If "ClientIP", consecutive client requests will be directed to the same Pod + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies + ## + sessionAffinity: None + ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity + ## sessionAffinityConfig: + ## clientIP: + ## timeoutSeconds: 300 + ## + sessionAffinityConfig: {} ## Network policies ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/ ## @@ -708,16 +723,21 @@ metrics: ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig ## metricRelabelings: [] + ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping + ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig + ## + relabelings: [] ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint ## honorLabels: false ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus. ## jobLabel: "" - ## @param metrics.serviceMonitor.additionalLabels Used to pass Labels that are required by the installed Prometheus Operator + ## DEPRECATED - metrics.serviceMonitor.additionalLabels will be remove in a future release, please use metrics.serviceMonitor.labels instead. + ## @param metrics.serviceMonitor.labels Used to pass Labels that are required by the installed Prometheus Operator ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec ## - additionalLabels: {} + labels: {} ## Metrics container ports to open ## If hostNetwork true: the hostPort is set identical to the containerPort