From cee216627202bd79dd570d543d7c166cf942ef98 Mon Sep 17 00:00:00 2001 From: Pablo Galego Date: Mon, 19 Jul 2021 09:50:06 +0200 Subject: [PATCH] [bitnami/*] Adapt values.yaml of Apache, ASP.NET Core and Cassandra to readme-generator (#6751) * Adapt values.yaml of Apache chart * Adapt values.yaml of ASP.NET Core chart * Adapt values.yaml of Cassandra chart * Bump chart patch versions * Fix lintin issues * Add charts path to be recognized by actions workflow * Add missing keys from original READMEs * Separate the Apache parameters in more sections and further fixes * Fixes to ASP.NET Core values.yaml * Fixes to Cassandra values.yaml * Revert unrelated change to srvice type in aspnet-core * Fix linitng issues * Bump Cassandra chart patch version * aspnet-core: Update README with latest changes from master * apache: Bump chart's patch version --- .github/workflows/generate-chart-readme.yml | 3 + bitnami/apache/Chart.yaml | 2 +- bitnami/apache/README.md | 200 +++-- bitnami/apache/values.yaml | 480 ++++++------ bitnami/aspnet-core/Chart.yaml | 2 +- bitnami/aspnet-core/README.md | 266 ++++--- bitnami/aspnet-core/values.yaml | 777 +++++++++--------- bitnami/cassandra/Chart.yaml | 2 +- bitnami/cassandra/README.md | 331 ++++---- bitnami/cassandra/values.yaml | 826 +++++++++++--------- 10 files changed, 1551 insertions(+), 1338 deletions(-) diff --git a/.github/workflows/generate-chart-readme.yml b/.github/workflows/generate-chart-readme.yml index c803985d75..58cb32771e 100644 --- a/.github/workflows/generate-chart-readme.yml +++ b/.github/workflows/generate-chart-readme.yml @@ -6,6 +6,9 @@ on: - master paths: - 'bitnami/airflow/values.yaml' + - 'bitnami/apache/values.yaml' + - 'bitnami/aspnet-core/values.yaml' + - 'bitnami/cassandra/values.yaml' - 'bitnami/common/values.yaml' - 'bitnami/concourse/values.yaml' - 'bitnami/dokuwiki/values.yaml' diff --git a/bitnami/apache/Chart.yaml b/bitnami/apache/Chart.yaml index d911b7c603..1b58ac6eae 100644 --- a/bitnami/apache/Chart.yaml +++ b/bitnami/apache/Chart.yaml @@ -26,4 +26,4 @@ name: apache sources: - https://github.com/bitnami/bitnami-docker-apache - https://httpd.apache.org -version: 8.5.8 +version: 8.5.9 diff --git a/bitnami/apache/README.md b/bitnami/apache/README.md index 41eddc99a3..44a6bbff35 100644 --- a/bitnami/apache/README.md +++ b/bitnami/apache/README.md @@ -47,100 +47,128 @@ $ helm delete my-release The command removes all the Kubernetes components associated with the chart and deletes the release. +## Parameters + ### Global parameters -| 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) | +| Name | Description | Value | +| ------------------------- | ----------------------------------------------- | ----- | +| `global.imageRegistry` | Global Docker image registry | `nil` | +| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` | + ### Common parameters -| Parameter | Description | Default | -|---------------------|----------------------------------------------------------------------|--------------------------------| -| `nameOverride` | String to partially override common.names.fullname | `nil` | -| `fullnameOverride` | String to fully override common.names.fullname | `nil` | -| `commonLabels` | Labels to add to all deployed objects | `{}` | -| `commonAnnotations` | Annotations to add to all deployed objects | `{}` | -| `extraDeploy` | Array of extra objects to deploy with the release | `[]` (evaluated as a template) | -| `kubeVersion` | Force target Kubernetes version (using Helm capabilities if not set) | `nil` | +| Name | Description | Value | +| ------------------- | -------------------------------------------------- | ----- | +| `kubeVersion` | Override Kubernetes version | `nil` | +| `nameOverride` | String to partially override common.names.fullname | `nil` | +| `fullnameOverride` | String to fully override common.names.fullname | `nil` | +| `commonLabels` | Labels to add to all deployed objects | `{}` | +| `commonAnnotations` | Annotations to add to all deployed objects | `{}` | +| `extraDeploy` | Array of extra objects to deploy with the release | `[]` | -## Parameters -The following tables lists the configurable parameters of the Apache chart and their default values. +### Apache parameters + +| Name | Description | Value | +| -------------------------------------- | ----------------------------------------------------------------------------------------- | ---------------------- | +| `image.registry` | Apache image registry | `docker.io` | +| `image.repository` | Apache image repository | `bitnami/apache` | +| `image.tag` | Apache image tag (immutable tags are recommended) | `2.4.48-debian-10-r15` | +| `image.pullPolicy` | Apache image pull policy | `IfNotPresent` | +| `image.pullSecrets` | Apache image pull secrets | `[]` | +| `image.debug` | Enable image debug mode | `false` | +| `git.registry` | Git image registry | `docker.io` | +| `git.repository` | Git image name | `bitnami/git` | +| `git.tag` | Git image tag | `2.32.0-debian-10-r11` | +| `git.pullPolicy` | Git image pull policy | `IfNotPresent` | +| `git.pullSecrets` | Specify docker-registry secret names as an array | `[]` | +| `replicaCount` | Number of replicas of the Apache deployment | `1` | +| `podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` | +| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `nodeAffinityPreset.key` | Node label key to match. Ignored if `affinity` is set | `""` | +| `nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set | `[]` | +| `affinity` | Affinity for pod assignment | `{}` | +| `nodeSelector` | Node labels for pod assignment | `{}` | +| `tolerations` | Tolerations for pod assignment | `[]` | +| `cloneHtdocsFromGit.enabled` | Get the server static content from a git repository | `false` | +| `cloneHtdocsFromGit.repository` | Repository to clone static content from | `nil` | +| `cloneHtdocsFromGit.branch` | Branch inside the git repository | `nil` | +| `cloneHtdocsFromGit.interval` | Interval for sidecar container pull from the repository | `60` | +| `cloneHtdocsFromGit.resources` | Init container git resource requests | `{}` | +| `cloneHtdocsFromGit.extraVolumeMounts` | Add extra volume mounts for the GIT containers | `[]` | +| `htdocsConfigMap` | Name of a config map with the server static content | `nil` | +| `htdocsPVC` | Name of a PVC with the server static content | `nil` | +| `vhostsConfigMap` | Name of a config map with the virtual hosts content | `nil` | +| `httpdConfConfigMap` | Name of a config map with the httpd.conf file contents | `nil` | +| `podLabels` | Extra labels for Apache pods | `{}` | +| `podAnnotations` | Pod annotations | `{}` | +| `hostAliases` | Add deployment host aliases | `[]` | +| `resources.limits` | The resources limits for the container | `{}` | +| `resources.requests` | The requested resources for the container | `{}` | +| `livenessProbe.enabled` | Enable liveness probe | `true` | +| `livenessProbe.path` | Path to access on the HTTP server | `/` | +| `livenessProbe.port` | Port for livenessProbe | `http` | +| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `180` | +| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `20` | +| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` | +| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `6` | +| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` | +| `readinessProbe.enabled` | Enable readiness probe | `true` | +| `readinessProbe.path` | Path to access on the HTTP server | `/` | +| `readinessProbe.port` | Port for readinessProbe | `http` | +| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `30` | +| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` | +| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` | +| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` | +| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` | +| `extraVolumes` | Array to add extra volumes (evaluated as a template) | `[]` | +| `extraVolumeMounts` | Array to add extra mounts (normally used with extraVolumes, evaluated as a template) | `[]` | +| `extraEnvVars` | Array to add extra environment variables | `[]` | +| `initContainers` | Add additional init containers to the Apache pods | `{}` | +| `sidecars` | Add additional sidecar containers to the Apache pods | `{}` | + + +### Traffic Exposure Parameters + +| Name | Description | Value | +| ------------------------------- | -------------------------------------------------------------------------- | ------------------------ | +| `service.type` | Apache Service type | `LoadBalancer` | +| `service.port` | Apache service HTTP port | `80` | +| `service.httpsPort` | Apache service HTTPS port | `443` | +| `service.nodePorts.http` | Node port for HTTP | `""` | +| `service.nodePorts.https` | Node port for HTTPS | `""` | +| `service.loadBalancerIP` | Apache service Load Balancer IP | `nil` | +| `service.annotations` | Additional custom annotations for Apache service | `{}` | +| `service.externalTrafficPolicy` | Apache service external traffic policy | `Cluster` | +| `ingress.enabled` | Enable ingress record generation for Apache | `false` | +| `ingress.pathType` | Ingress path type | `ImplementationSpecific` | +| `ingress.apiVersion` | Force Ingress API version (automatically detected if not set) | `nil` | +| `ingress.hostname` | Default host for the ingress record | `example.local` | +| `ingress.path` | Default path for the ingress record | `ImplementationSpecific` | +| `ingress.annotations` | Additional custom annotations for the ingress record | `{}` | +| `ingress.tls` | Enable TLS configuration for the hosts defined | `[]` | +| `ingress.certManager` | Add the corresponding annotations for cert-manager integration | `false` | +| `ingress.hosts` | An array with additional hostname(s) to be covered with the ingress record | `[]` | +| `ingress.secrets` | Custom TLS certificates as secrets | `[]` | + + +### Metrics Parameters + +| Name | Description | Value | +| ---------------------------- | ------------------------------------------------------------ | ------------------------- | +| `metrics.enabled` | Start a sidecar prometheus exporter to expose Apache metrics | `false` | +| `metrics.image.registry` | Apache Exporter image registry | `docker.io` | +| `metrics.image.repository` | Apache Exporter image repository | `bitnami/apache-exporter` | +| `metrics.image.tag` | Apache Exporter image tag (immutable tags are recommended) | `0.9.0-debian-10-r10` | +| `metrics.image.pullPolicy` | Apache Exporter image pull policy | `IfNotPresent` | +| `metrics.image.pullSecrets` | Apache Exporter image pull secrets | `[]` | +| `metrics.podAnnotations` | Additional custom annotations for Apache exporter service | `{}` | +| `metrics.resources.limits` | The resources limits for the container | `{}` | +| `metrics.resources.requests` | The requested resources for the container | `{}` | -| Parameter | Description | Default | -|----------------------------------------|-------------------------------------------------------------------------------------------|--------------------------------------------------------------| -| `image.registry` | Apache Docker image registry | `docker.io` | -| `image.repository` | Apache Docker image name | `bitnami/apache` | -| `image.tag` | Apache Docker image tag | `{TAG_NAME}` | -| `image.pullPolicy` | Apache Docker image pull policy | `Always` | -| `image.pullSecrets` | Specify Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | -| `git.registry` | Git image registry | `docker.io` | -| `git.repository` | Git image name | `bitnami/git` | -| `git.tag` | Git image tag | `{TAG_NAME}` | -| `git.pullPolicy` | Git image pull policy | `Always` | -| `git.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | -| `replicaCount` | Number of replicas of the Apache deployment | `docker.io` | -| `hostAliases` | Add deployment host aliases | `Check values.yaml` | -| `htdocsConfigMap` | ConfigMap with the server static content | `nil` | -| `htdocsPVC` | PVC with the server static content | `nil` | -| `vhostsConfigMap` | ConfigMap with the virtual hosts content | `nil` | -| `httpdConfConfigMap` | ConfigMap with the httpd.conf content | `nil` | -| `cloneHtdocsFromGit.enabled` | Get the server static content from a git repository | `false` | -| `cloneHtdocsFromGit.repository` | Repository to clone static content from | `nil` | -| `cloneHtdocsFromGit.branch` | Branch inside the git repository | `nil` | -| `cloneHtdocsFromGit.interval` | Interval for sidecar container pull from the repository | `60` | -| `cloneHtdocsFromGit.resources` | Init container git resource requests/limit | `{}` | -| `cloneHtdocsFromGit.extraVolumeMounts` | Add extra volume mounts for the GIT containers | `[]` | -| `podLabels` | Extra labels for Apache pods | `{}` (evaluated as a template) | -| `podAnnotations` | Pod annotations | `{}` (evaluated as a template) | -| `podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | -| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` | -| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | -| `nodeAffinityPreset.key` | Node label key to match Ignored if `affinity` is set. | `""` | -| `nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set. | `[]` | -| `affinity` | Affinity for pod assignment | `{}` (evaluated as a template) | -| `nodeSelector` | Node labels for pod assignment | `{}` (evaluated as a template) | -| `tolerations` | Tolerations for pod assignment | `[]` (evaluated as a template) | -| `livenessProbe.enabled` | Enable liveness probe | `true` | -| `livenessProbe.path` | Path to access on the HTTP server | `/` | -| `readinessProbe.enabled` | Enable readiness probe | `true` | -| `readinessProbe.path` | Path to access on the HTTP server | `/` | -| `ingress.enabled` | Enable ingress controller resource | `false` | -| `ingress.apiVersion` | Force Ingress API version (automatically detected if not set) | `` | -| `ingress.path` | Ingress path | `/` | -| `ingress.pathType` | Ingress path type | `ImplementationSpecific` | -| `ingress.hostname` | Default host for the ingress resource | `example.local` | -| `ingress.certManager` | Add annotations for cert-manager | `false` | -| `ingress.annotations` | Ingress annotations | `[]` | -| `ingress.hosts[0].name` | Hostname to your Apache installation | `example.local` | -| `ingress.hosts[0].path` | Path within the url structure | `/` | -| `ingress.tls[0].hosts[0]` | TLS hosts | `example.local` | -| `ingress.tls[0].secretName` | TLS Secret (certificates) | `example.local-tls` | -| `ingress.secrets[0].name` | TLS Secret Name | `nil` | -| `ingress.secrets[0].certificate` | TLS Secret Certificate | `nil` | -| `ingress.secrets[0].key` | TLS Secret Key | `nil` | -| `metrics.enabled` | Start a side-car prometheus exporter | `false` | -| `metrics.image.registry` | Apache exporter image registry | `docker.io` | -| `metrics.image.repository` | Apache exporter image name | `lusotycoon/apache-exporter` | -| `metrics.image.tag` | Apache exporter image tag | `v0.5.0` | -| `metrics.image.pullPolicy` | Apache exporter image pull policy | `IfNotPresent` | -| `metrics.image.pullSecrets` | Specify Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | -| `metrics.podAnnotations` | Additional annotations for Metrics exporter pod | `{prometheus.io/scrape: "true", prometheus.io/port: "9117"}` | -| `metrics.resources` | Exporter resource requests/limit | {} | -| `service.type` | Kubernetes Service type | `LoadBalancer` | -| `service.port` | Service HTTP port | `80` | -| `service.httpsPort` | Service HTTPS port | `443` | -| `service.nodePorts.http` | Kubernetes http node port | `""` | -| `service.nodePorts.https` | Kubernetes https node port | `""` | -| `service.externalTrafficPolicy` | Enable client source IP preservation | `Cluster` | -| `service.loadBalancerIP` | LoadBalancer service IP address | `""` | -| `extraVolumes` | Array to add extra volumes | `[]` (evaluated as a template) | -| `extraVolumeMounts` | Array to add extra mount | `[]` (evaluated as a template) | -| `extraEnvVars` | Array to add extra environment variables | `[]` (evaluated as a template) | -| `initContainers` | Add additional init containers to the Apache pods | `{}` (evaluated as a template) | -| `sidecars` | Add additional sidecar containers to the Apache pods | `{}` (evaluated as a template) | Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, diff --git a/bitnami/apache/values.yaml b/bitnami/apache/values.yaml index 363493caf0..9570afa91e 100644 --- a/bitnami/apache/values.yaml +++ b/bitnami/apache/values.yaml @@ -1,44 +1,78 @@ +## @section Global parameters ## 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 +## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass -## Force target Kubernetes version (using Helm capabilites if not set) +## @param global.imageRegistry Global Docker image registry +## @param global.imagePullSecrets Global Docker registry secret names as an array +## +global: + imageRegistry: + ## E.g. + ## imagePullSecrets: + ## - myRegistryKeySecretName + ## + imagePullSecrets: [] + +## @section Common parameters + +## @param kubeVersion Override Kubernetes version ## kubeVersion: +## @param nameOverride String to partially override common.names.fullname +## +nameOverride: +## @param fullnameOverride String to fully override common.names.fullname +## +fullnameOverride: +## @param commonLabels Labels to add to all deployed objects +## +commonLabels: {} +## @param commonAnnotations Annotations to add to all deployed objects +## +commonAnnotations: {} +## @param extraDeploy Array of extra objects to deploy with the release +## +extraDeploy: [] -## Bitnami Apache image version +## @section Apache parameters + +## Bitnami Apache image ## ref: https://hub.docker.com/r/bitnami/apache/tags/ +## @param image.registry Apache image registry +## @param image.repository Apache image repository +## @param image.tag Apache image tag (immutable tags are recommended) +## @param image.pullPolicy Apache image pull policy +## @param image.pullSecrets Apache image pull secrets +## @param image.debug Enable image debug mode ## image: registry: docker.io repository: bitnami/apache tag: 2.4.48-debian-10-r28 ## 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: - # - myRegistryKeySecretName - - ## Set to true if you would like to see extra information on logs + pullSecrets: [] + ## Enable debug mode ## debug: false - -## Extra objects to deploy (value evaluated as a template) -## -extraDeploy: [] - ## Bitnami Git image version ## ref: https://hub.docker.com/r/bitnami/git/tags/ +## @param git.registry Git image registry +## @param git.repository Git image name +## @param git.tag Git image tag +## @param git.pullPolicy Git image pull policy +## @param git.pullSecrets Specify docker-registry secret names as an array ## git: registry: docker.io @@ -48,89 +82,66 @@ git: ## 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: - # - myRegistryKeySecretName - -## String to partially override apache.fullname template (will maintain the release name) -## -# nameOverride: - -## String to fully override apache.fullname template -## -# fullnameOverride: - -## Add labels to all the deployed resources -## -commonLabels: {} - -## Add annotations to all the deployed resources -## -commonAnnotations: {} - -## Number of Apache replicas to deploy + pullSecrets: [] +## @param replicaCount Number of replicas of the Apache deployment ## replicaCount: 1 - -## Pod affinity preset +## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` ## 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 +## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` ## 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 + ## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` ## type: "" - ## Node label key to match - ## E.g. - ## key: "kubernetes.io/e2e-az-name" + ## @param nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set ## key: "" - ## Node label values to match + ## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set ## E.g. ## values: ## - e2e-az1 ## - e2e-az2 ## values: [] - -## Affinity for pod assignment +## @param affinity 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 +## 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/ +## @param nodeSelector 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/ +## @param tolerations Tolerations for pod assignment +## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ ## tolerations: [] - ## Get the server static content from a git repository +## @param cloneHtdocsFromGit.enabled Get the server static content from a git repository +## @param cloneHtdocsFromGit.repository Repository to clone static content from +## @param cloneHtdocsFromGit.branch Branch inside the git repository +## @param cloneHtdocsFromGit.interval Interval for sidecar container pull from the repository +## @param cloneHtdocsFromGit.resources Init container git resource requests +## @param cloneHtdocsFromGit.extraVolumeMounts Add extra volume mounts for the GIT containers ## cloneHtdocsFromGit: enabled: false - # repository: - # branch: + repository: + branch: interval: 60 resources: {} - ## Add extra volume mounts for the GIT containers ## Useful to mount keys to connect through ssh. (normally used with extraVolumes) ## E.g: ## extraVolumeMounts: @@ -138,59 +149,65 @@ cloneHtdocsFromGit: ## mountPath: /root/.ssh/ ## extraVolumeMounts: [] - -## Name of a config map with the server static content +## @param htdocsConfigMap Name of a config map with the server static content ## -# htdocsConfigMap: - -## Name of a PVC with the server static content +htdocsConfigMap: +## @param htdocsPVC Name of a PVC with the server static content ## -# htdocsPVC: - -## Name of a config map with the virtual hosts content +htdocsPVC: +## @param vhostsConfigMap Name of a config map with the virtual hosts content ## -# vhostsConfigMap: - -## Name of a config map with the httpd.conf file contents +vhostsConfigMap: +## @param httpdConfConfigMap Name of a config map with the httpd.conf file contents ## -# httpdConfConfigMap: - -## Additional pod labels +httpdConfConfigMap: +## @param podLabels Extra labels for Apache pods ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ ## podLabels: {} - -## Pod annotations +## @param podAnnotations Pod annotations ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ ## podAnnotations: {} - -## Deployment pod host aliases +## @param hostAliases [array] Add deployment host aliases ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ ## hostAliases: - # Necessary for apache-exporter to work + ## Necessary for apache-exporter to work + ## - ip: "127.0.0.1" hostnames: - "status.localhost" - ## Apache pods' resource requests and limits ## ref: http://kubernetes.io/docs/user-guide/compute-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:'. +## @param resources.limits The resources limits for the container +## @param resources.requests The requested resources for the container ## 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:'. + ## Example: + ## limits: + ## cpu: 100m + ## memory: 128Mi limits: {} - # cpu: 100m - # memory: 128Mi + ## Examples: + ## requests: + ## cpu: 100m + ## memory: 128Mi requests: {} - # cpu: 100m - # memory: 128Mi - -## Apache container's liveness and readiness probes -## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes +## Configure extra options for containers' liveness and readiness probes +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes +## @param livenessProbe.enabled Enable liveness probe +## @param livenessProbe.path Path to access on the HTTP server +## @param livenessProbe.port Port for livenessProbe +## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe +## @param livenessProbe.periodSeconds Period seconds for livenessProbe +## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe +## @param livenessProbe.failureThreshold Failure threshold for livenessProbe +## @param livenessProbe.successThreshold Success threshold for livenessProbe ## livenessProbe: enabled: true @@ -201,6 +218,15 @@ livenessProbe: timeoutSeconds: 5 failureThreshold: 6 successThreshold: 1 +## @param readinessProbe.enabled Enable readiness probe +## @param readinessProbe.path Path to access on the HTTP server +## @param readinessProbe.port Port for readinessProbe +## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe +## @param readinessProbe.periodSeconds Period seconds for readinessProbe +## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe +## @param readinessProbe.failureThreshold Failure threshold for readinessProbe +## @param readinessProbe.successThreshold Success threshold for readinessProbe +## readinessProbe: enabled: true path: "/" @@ -210,125 +236,16 @@ readinessProbe: timeoutSeconds: 5 failureThreshold: 6 successThreshold: 1 - -## Ingress parameters -## -ingress: - ## Set to true to enable ingress record generation - ## - enabled: false - - ## Override API Version (automatically detected if not set) - ## - apiVersion: - - ## Ingress Path - ## - path: / - - ## Ingress Path type - ## - pathType: ImplementationSpecific - - ## Set this to true in order to add the corresponding annotations for cert-manager - ## - certManager: false - - ## When the ingress is enabled, a host pointing to this will be created - ## - hostname: example.local - - ## Ingress annotations done as key:value pairs - ## For a full list of possible ingress annotations, please see - ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md - ## - ## If tls is set to true, annotation ingress.kubernetes.io/secure-backends: "true" will automatically be set - ## If certManager is set to true, annotation kubernetes.io/tls-acme: "true" will automatically be set - ## - annotations: {} - # kubernetes.io/ingress.class: nginx - - ## The list of additional hostnames to be covered with this ingress record. - ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array - ## hosts: - ## - name: example.local - ## path: / - ## - - ## The tls configuration for the ingress - ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls - ## - tls: - - hosts: - - example.local - secretName: example.local-tls - - secrets: - ## If you're providing your own certificates, please use this to add the certificates as secrets - ## key and certificate should start with -----BEGIN CERTIFICATE----- or - ## -----BEGIN RSA PRIVATE KEY----- - ## - ## name should line up with a tlsSecret set further up - ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set - ## - ## It is also possible to create and manage the certificates outside of this helm chart - ## Please see README.md for more information - # - name: apache.local-tls - # key: - # certificate: - -## Prometheus Exporter / Metrics -## -metrics: - enabled: false - ## Bitnami Apache Prometheus Exporter image - ## ref: https://hub.docker.com/r/bitnami/apache-exporter/tags/ - ## - image: - registry: docker.io - repository: bitnami/apache-exporter - tag: 0.9.0-debian-10-r25 - 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/ - ## - # pullSecrets: - # - myRegistryKeySecretName - ## Metrics exporter pod Annotation and Labels - ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ - ## - podAnnotations: - prometheus.io/scrape: "true" - prometheus.io/port: "9117" - ## Apache Prometheus exporter 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:'. - limits: {} - # cpu: 100m - # memory: 128Mi - requests: {} - # cpu: 100m - # memory: 128Mi - -## Array to add extra volumes (evaluated as a template) +## @param extraVolumes Array to add extra volumes (evaluated as a template) ## extraVolumes: [] - -## Array to add extra mounts (normally used with extraVolumes, evaluated as a template) +## @param extraVolumeMounts Array to add extra mounts (normally used with extraVolumes, evaluated as a template) ## extraVolumeMounts: [] - -## An array to add extra env vars +## @param extraEnvVars Array to add extra environment variables ## extraEnvVars: [] - -## Add init containers to the Apache pods. +## @param initContainers Add additional init containers to the Apache pods ## Example: ## initContainers: ## - name: your-image-name @@ -339,8 +256,7 @@ extraEnvVars: [] ## containerPort: 1234 ## initContainers: {} - -## Add sidecars to the Apache pods. +## @param sidecars Add additional sidecar containers to the Apache pods ## Example: ## sidecars: ## - name: your-image-name @@ -352,35 +268,153 @@ initContainers: {} ## sidecars: {} -## Service parameters +## @section Traffic Exposure Parameters + +## Apache service parameters ## service: - ## Service type + ## @param service.type Apache Service type ## type: LoadBalancer - ## HTTP Port + ## @param service.port Apache service HTTP port ## port: 80 - ## HTTPS Port + ## @param service.httpsPort Apache service HTTPS port ## httpsPort: 443 - ## Specify the nodePort(s) value(s) for the LoadBalancer and NodePort service types. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport + ## Node ports to expose + ## @param service.nodePorts.http Node port for HTTP + ## @param service.nodePorts.https Node port for HTTPS ## nodePorts: http: "" https: "" - ## Set the LoadBalancer service type to internal only. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer + ## @param service.loadBalancerIP Apache service Load Balancer IP + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer ## - # loadBalancerIP: - ## Provide any additional annotations which may be required. This can be used to - ## set the LoadBalancer service type to internal only. + loadBalancerIP: + ## @param service.annotations Additional custom annotations for Apache service + ## This can be used to set the LoadBalancer service type to internal only. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer ## annotations: {} - - ## Enable client source IP preservation + ## @param service.externalTrafficPolicy Apache service external traffic policy ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip ## externalTrafficPolicy: Cluster +## Configure the ingress resource that allows you to access the Apache installation +## ref: http://kubernetes.io/docs/user-guide/ingress/ +## +ingress: + ## @param ingress.enabled Enable ingress record generation for Apache + ## + enabled: false + ## @param ingress.pathType Ingress path type + ## + pathType: ImplementationSpecific + ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set) + ## + apiVersion: + ## @param ingress.hostname Default host for the ingress record + ## + hostname: example.local + ## @param ingress.path Default path for the ingress record + ## + path: / + ## @param ingress.annotations Additional custom annotations for the ingress record + ## For a full list of possible ingress annotations, please see + ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md + ## NOTE: If `ingress.certManager=true`, annotation `ingress.kubernetes.io/secure-backends: "true"` will automatically be added + ## NOTE: If `ingress.certManager=true`, annotation `kubernetes.io/tls-acme: "true"` will automatically be added + ## + annotations: {} + ## @param ingress.tls [array] Enable TLS configuration for the hosts defined + ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls + ## + tls: + - hosts: + - example.local + secretName: example.local-tls + ## @param ingress.certManager Add the corresponding annotations for cert-manager integration + ## + certManager: false + ## @param ingress.hosts An array with additional hostname(s) to be covered with the ingress record + ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array + ## e.g: + ## hosts: + ## - name: example.local + ## path: / + ## + hosts: [] + ## @param ingress.secrets Custom TLS certificates as secrets + ## NOTE: 'key' and 'certificate' are expected in PEM format + ## NOTE: 'name' should line up with a 'secretName' set further up + ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates + ## It is also possible to create and manage the certificates outside of this helm chart + ## Please see README.md for more information + ## e.g: + ## secrets: + ## - name: ghost.local-tls + ## key: |- + ## -----BEGIN RSA PRIVATE KEY----- + ## ... + ## -----END RSA PRIVATE KEY----- + ## certificate: |- + ## -----BEGIN CERTIFICATE----- + ## ... + ## -----END CERTIFICATE----- + ## + secrets: [] + +## @section Metrics Parameters + +metrics: + ## @param metrics.enabled Start a sidecar prometheus exporter to expose Apache metrics + ## + enabled: false + ## Bitnami Apache Prometheus Exporter image + ## ref: https://hub.docker.com/r/bitnami/apache-exporter/tags/ + ## @param metrics.image.registry Apache Exporter image registry + ## @param metrics.image.repository Apache Exporter image repository + ## @param metrics.image.tag Apache Exporter image tag (immutable tags are recommended) + ## @param metrics.image.pullPolicy Apache Exporter image pull policy + ## @param metrics.image.pullSecrets Apache Exporter image pull secrets + ## + image: + registry: docker.io + repository: bitnami/apache-exporter + tag: 0.9.0-debian-10-r25 + 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: [] + ## @param metrics.podAnnotations [object] Additional custom annotations for Apache exporter service + ## + podAnnotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9117" + ## Apache Prometheus exporter resource requests and limits + ## ref: http://kubernetes.io/docs/user-guide/compute-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:'. + ## @param metrics.resources.limits The resources limits for the container + ## @param metrics.resources.requests The requested resources for the container + ## + resources: + ## Example: + ## limits: + ## cpu: 100m + ## memory: 128Mi + limits: {} + ## Examples: + ## requests: + ## cpu: 100m + ## memory: 128Mi + requests: {} diff --git a/bitnami/aspnet-core/Chart.yaml b/bitnami/aspnet-core/Chart.yaml index 02f2c5c41b..0fb31d0a1e 100644 --- a/bitnami/aspnet-core/Chart.yaml +++ b/bitnami/aspnet-core/Chart.yaml @@ -22,4 +22,4 @@ name: aspnet-core sources: - https://github.com/bitnami/bitnami-docker-aspnet-core - https://dotnet.microsoft.com/apps/aspnet -version: 1.3.9 +version: 1.3.10 diff --git a/bitnami/aspnet-core/README.md b/bitnami/aspnet-core/README.md index cb13717cb0..152510c45f 100644 --- a/bitnami/aspnet-core/README.md +++ b/bitnami/aspnet-core/README.md @@ -47,153 +47,163 @@ The command removes all the Kubernetes components associated with the chart and ## Parameters -The following tables lists the configurable parameters of the ASP.NET Core chart and their default values per section/component: - ### Global parameters -| 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) | +| Name | Description | Value | +| ------------------------- | ----------------------------------------------- | ----- | +| `global.imageRegistry` | Global Docker image registry | `nil` | +| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` | + ### Common parameters -| Parameter | Description | Default | -|-----------------------------------------|------------------------------------------------------------|---------------------------------------------------------| -| `nameOverride` | String to partially override aspnet-core.fullname | `nil` | -| `fullnameOverride` | String to fully override aspnet-core.fullname | `nil` | -| `clusterDomain` | Default Kubernetes cluster domain | `cluster.local` | -| `commonLabels` | Labels to add to all deployed objects | `{}` | -| `commonAnnotations` | Annotations to add to all deployed objects | `{}` | -| `extraDeploy` | Array of extra objects to deploy with the release | `[]` (evaluated as a template) | -| `kubeVersion` | Force target Kubernetes version (using Helm capabilities if not set) | `nil` | +| Name | Description | Value | +| ------------------- | ------------------------------------------------- | --------------- | +| `kubeVersion` | Override Kubernetes version | `nil` | +| `nameOverride` | String to partially override aspnet-core.fullname | `nil` | +| `fullnameOverride` | String to fully override aspnet-core.fullname | `nil` | +| `commonLabels` | Labels to add to all deployed objects | `{}` | +| `commonAnnotations` | Annotations to add to all deployed objects | `{}` | +| `clusterDomain` | Kubernetes cluster domain name | `cluster.local` | +| `extraDeploy` | Array of extra objects to deploy with the release | `[]` | + ### ASP.NET Core parameters -| Parameter | Description | Default | -|-----------------------------------------|------------------------------------------------------------------------------------------|---------------------------------------------------------| -| `image.registry` | ASP.NET Core image registry | `docker.io` | -| `image.repository` | ASP.NET Core image name | `bitnami/aspnet-core` | -| `image.tag` | ASP.NET Core image tag | `{TAG_NAME}` | -| `image.pullPolicy` | ASP.NET Core image pull policy | `IfNotPresent` | -| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | -| `command` | Override default container command (useful when using custom images) | `nil` |a -| `args` | Override default container args (useful when using custom images) | `nil` | -| `bindURLs` | URLs to bind | `http://+:8080` | -| `extraEnvVars` | Extra environment variables to be set on ASP.NET Core container | `{}` | -| `extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars | `nil` | -| `extraEnvVarsSecret` | Name of existing Secret containing extra env vars | `nil` | +| Name | Description | Value | +| -------------------- | -------------------------------------------------------------------- | --------------------- | +| `image.registry` | ASP.NET Core image registry | `docker.io` | +| `image.repository` | ASP.NET Core image repository | `bitnami/aspnet-core` | +| `image.tag` | ASP.NET Core image tag (immutable tags are recommended) | `3.1.17-debian-10-r0` | +| `image.pullPolicy` | ASP.NET Core image pull policy | `IfNotPresent` | +| `image.pullSecrets` | ASP.NET Core image pull secrets | `[]` | +| `command` | Override default container command (useful when using custom images) | `[]` | +| `args` | Override default container args (useful when using custom images) | `[]` | +| `bindURLs` | URLs to bind | `http://+:8080` | +| `extraEnvVars` | Extra environment variables to be set on ASP.NET Core container | `[]` | +| `extraEnvVarsCM` | ConfigMap with extra environment variables | `nil` | +| `extraEnvVarsSecret` | Secret with extra environment variables | `nil` | + ### ASP.NET Core deployment parameters -| Parameter | Description | Default | -|---------------------------------------|--------------------------------------------------------------------------------------------|---------------------------------------------------------| -| `replicaCount` | Number of ASP.NET Core replicas to deploy | `1` | -| `hostAliases` | Add deployment host aliases | `[]` | -| `strategyType` | Deployment Strategy Type | `RollingUpdate` | -| `podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | -| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` | -| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | -| `nodeAffinityPreset.key` | Node label key to match Ignored if `affinity` is set. | `""` | -| `affinity` | Affinity for pod assignment | `{}` (evaluated as a template) | -| `nodeSelector` | Node labels for pod assignment | `{}` (evaluated as a template) | -| `tolerations` | Tolerations for pod assignment | `[]` (evaluated as a template) | -| `priorityClassName` | Controller priorityClassName | `nil` | -| `podSecurityContext` | ASP.NET Core pods' Security Context | Check `values.yaml` file | -| `containerSecurityContext` | ASP.NET Corecontainers' Security Context | Check `values.yaml` file | -| `containerPort` | Port to expose at container level | `8080` | -| `resources.limits` | The resources limits for the ASP.NET Core container | `{}` | -| `resources.requests` | The requested resources for the ASP.NET Core container | `{}` | -| `podAnnotations` | Annotations for ASP.NET Core pods | `{}` | -| `lifecycleHooks` | LifecycleHooks to set additional configuration at startup. | `{}` (evaluated as a template) | -| `livenessProbe` | Liveness probe configuration for ASP.NET Core | Check `values.yaml` file | -| `readinessProbe` | Readiness probe configuration for ASP.NET Core | Check `values.yaml` file | -| `customLivenessProbe` | Override default liveness probe | `nil` | -| `customReadinessProbe` | Override default readiness probe | `nil` | -| `extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for ASP.NET Core container(s) | `[]` | -| `extraVolumes` | Optionally specify extra list of additional volumes for ASP.NET Core statefulset | `[]` | -| `initContainers` | Add additional init containers to the ASP.NET Core pods | `{}` (evaluated as a template) | -| `sidecars` | Add additional sidecar containers to the ASP.NET Core pods | `{}` (evaluated as a template) | -| `pdb.create` | Enable/disable a Pod Disruption Budget creation | `false` | -| `pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `1` | -| `pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable | `nil` | -| `autoscaling.enabled` | Enable autoscaling for ASP.NET Core | `false` | -| `autoscaling.minReplicas` | Minimum number of ASP.NET Core replicas | `nil` | -| `autoscaling.maxReplicas` | Maximum number of ASP.NET Core replicas | `nil` | -| `autoscaling.targetCPU` | Target CPU utilization percentage | `nil` | -| `autoscaling.targetMemory` | Target Memory utilization percentage | `nil` | +| Name | Description | Value | +| ------------------------------------ | ----------------------------------------------------------------------------------------- | --------------- | +| `replicaCount` | Number of ASP.NET Core replicas to deploy | `1` | +| `strategyType` | ASP.NET Core deployment strategy type. Set it to `RollingUpdate` or `Recreate` | `RollingUpdate` | +| `priorityClassName` | ASP.NET Core pod priority class name | `""` | +| `hostAliases` | ASP.NET Core pod host aliases | `[]` | +| `extraVolumes` | Optionally specify extra list of additional volumes for ASP.NET Core pods | `[]` | +| `extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for ASP.NET Core container(s) | `[]` | +| `sidecars` | Add additional sidecar containers to the ASP.NET Core pods | `{}` | +| `initContainers` | Add additional init containers to the ASP.NET Core pods | `{}` | +| `lifecycleHooks` | Add lifecycle hooks to the ASP.NET Core deployment | `{}` | +| `podAnnotations` | Annotations for ASP.NET Core pods | `{}` | +| `podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` | +| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `nodeAffinityPreset.key` | Node label key to match. Ignored if `affinity` is set | `""` | +| `nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set | `[]` | +| `affinity` | Affinity for pod assignment | `{}` | +| `nodeSelector` | Node labels for pod assignment | `{}` | +| `tolerations` | Tolerations for pod assignment | `[]` | +| `resources.limits` | The resources limits for the ASP.NET Core container | `{}` | +| `resources.requests` | The requested resources for the ASP.NET Core container | `{}` | +| `containerPort` | Port to expose at ASP.NET Core container level | `8080` | +| `podSecurityContext.enabled` | Enabled ASP.NET Core pods' Security Context | `false` | +| `podSecurityContext.sysctls` | Set namespaced sysctls for the ASP.NET Core pods | `{}` | +| `containerSecurityContext.enabled` | Enabled ASP.NET Core containers' Security Context | `false` | +| `containerSecurityContext.runAsUser` | Set ASP.NET Core container's Security Context runAsUser | `0` | +| `livenessProbe.enabled` | Enable livenessProbe | `true` | +| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` | +| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `20` | +| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` | +| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `6` | +| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` | +| `readinessProbe.enabled` | Enable readinessProbe | `true` | +| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `10` | +| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `20` | +| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` | +| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` | +| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` | +| `customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` | +| `customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` | +| `pdb.create` | Enable/disable a Pod Disruption Budget creation | `false` | +| `pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `1` | +| `pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable | `nil` | +| `autoscaling.enabled` | Enable autoscaling for ASP.NET Core | `false` | +| `autoscaling.minReplicas` | Minimum number of ASP.NET Core replicas | `1` | +| `autoscaling.maxReplicas` | Maximum number of ASP.NET Core replicas | `11` | +| `autoscaling.targetCPU` | Target CPU utilization percentage | `nil` | +| `autoscaling.targetMemory` | Target Memory utilization percentage | `nil` | + ### Custom ASP.NET Core application parameters -| Parameter | Description | Default | -|---------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------| -| `appFromExternalRepo.enabled` | Enable to download/build ASP.NET Core app from external git repository | `true` | -| `appFromExternalRepo.clone.image.registry` | GIT image registry | `docker.io` | -| `appFromExternalRepo.clone.image.repository` | GIT image name | `bitnami/git` | -| `appFromExternalRepo.clone.image.tag` | GIT image tag | `{TAG_NAME}` | -| `appFromExternalRepo.clone.image.pullPolicy` | GIT image pull policy | `IfNotPresent` | -| `appFromExternalRepo.clone.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | -| `appFromExternalRepo.clone.repository` | GIT Repository to clone | `https://github.com/dotnet/AspNetCore.Docs.git` | -| `appFromExternalRepo.clone.revision` | GIT revision to checkout | `main` | -| `appFromExternalRepo.clone.extraVolumeMounts` | Add extra volume mounts for the GIT container | `[]` | -| `appFromExternalRepo.publish.image.registry` | .NET SDK image registry | `docker.io` | -| `appFromExternalRepo.publish.image.repository` | .NET SDK Image name | `bitnami/git` | -| `appFromExternalRepo.publish.image.tag` | .NET SDK Image tag | `{TAG_NAME}` | -| `appFromExternalRepo.publish.image.pullPolicy` | .NET SDK image pull policy | `IfNotPresent` | -| `appFromExternalRepo.publish.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | -| `appFromExternalRepo.publish.subFolder` | Sub folder under the Git repository containin the ASP.NET Core app | `spnetcore/fundamentals/servers/kestrel/samples/3.x/KestrelSample` | -| `appFromExternalRepo.publish.extraFlags` | Extra flags to be appended to "dotnet publish" command | `[]` | -| `appFromExternalRepo.startCommand` | Command used to start ASP.NET Core app | `["dotnet", "KestrelSample.dll"]` | -| `appFromExistingPVC.enabled` | Enable mounting your ASP.NET Core app from an existing PVC | `false` | -| `appFromExistingPVC.existingClaim` | A existing Persistent Volume Claim containing your ASP.NET Core app | `nil` | +| Name | Description | Value | +| ----------------------------------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `appFromExternalRepo.enabled` | Enable to download/build ASP.NET Core app from external git repository | `true` | +| `appFromExternalRepo.clone.image.registry` | Git image registry | `docker.io` | +| `appFromExternalRepo.clone.image.repository` | Git image repository | `bitnami/git` | +| `appFromExternalRepo.clone.image.tag` | Git image tag (immutable tags are recommended) | `2.32.0-debian-10-r31` | +| `appFromExternalRepo.clone.image.pullPolicy` | Git image pull policy | `IfNotPresent` | +| `appFromExternalRepo.clone.image.pullSecrets` | Git image pull secrets | `[]` | +| `appFromExternalRepo.clone.repository` | Git repository to clone | `https://github.com/dotnet/AspNetCore.Docs.git` | +| `appFromExternalRepo.clone.revision` | Git revision to checkout | `main` | +| `appFromExternalRepo.clone.extraVolumeMounts` | Add extra volume mounts for the GIT container | `[]` | +| `appFromExternalRepo.publish.image.registry` | .NET SDK image registry | `docker.io` | +| `appFromExternalRepo.publish.image.repository` | .NET SDK image repository | `bitnami/dotnet-sdk` | +| `appFromExternalRepo.publish.image.tag` | .NET SDK image tag (immutable tags are recommended) | `3.1.410-debian-10-r28` | +| `appFromExternalRepo.publish.image.pullPolicy` | .NET SDK image pull policy | `IfNotPresent` | +| `appFromExternalRepo.publish.image.pullSecrets` | .NET SDK image pull secrets | `[]` | +| `appFromExternalRepo.publish.subFolder` | Sub folder under the Git repository containing the ASP.NET Core app | `aspnetcore/fundamentals/servers/kestrel/samples/3.x/KestrelSample` | +| `appFromExternalRepo.publish.extraFlags` | Extra flags to be appended to "dotnet publish" command | `[]` | +| `appFromExternalRepo.startCommand` | Command used to start ASP.NET Core app | `[]` | +| `appFromExistingPVC.enabled` | Enable mounting your ASP.NET Core app from an existing PVC | `false` | +| `appFromExistingPVC.existingClaim` | A existing Persistent Volume Claim containing your ASP.NET Core app | `nil` | -### Exposure parameters -| Parameter | Description | Default | -|-----------------------------------------|------------------------------------------------------------------------------------------|---------------------------------------------------------| -| `service.type` | Kubernetes service type | `ClusterIP` | -| `service.port` | Service HTTP port | `8081` | -| `service.nodePort` | Service HTTP node port | `nil` | -| `service.clusterIP` | ASP.NET Core service clusterIP IP | `None` | -| `service.externalTrafficPolicy` | Enable client source IP preservation | `Cluster` | -| `service.loadBalancerIP` | loadBalancerIP if service type is `LoadBalancer` | `nil` | -| `service.loadBalancerSourceRanges` | Address that are allowed when service is LoadBalancer | `[]` | -| `service.annotations` | Annotations for ASP.NET Core service | `{}` | -| `ingress.enabled` | Enable ingress controller resource | `false` | -| `ingress.apiVersion` | Force Ingress API version (automatically detected if not set) | `` | -| `ingress.path` | Ingress path | `/` | -| `ingress.pathType` | Ingress path type | `ImplementationSpecific` | -| `ingress.certManager` | Add annotations for cert-manager | `false` | -| `ingress.hostname` | Default host for the ingress resource | `aspnet-core.local` | -| `ingress.tls` | Enable TLS configuration for the hostname defined at `ingress.hostname` parameter | `false` | -| `ingress.annotations` | Ingress annotations | `[]` | -| `ingress.extraHosts[0].name` | Additional hostnames to be covered | `nil` | -| `ingress.extraHosts[0].path` | Additional hostnames to be covered | `nil` | -| `ingress.extraTls[0].hosts[0]` | TLS configuration for additional hostnames to be covered | `nil` | -| `ingress.extraTls[0].secretName` | TLS configuration for additional hostnames to be covered | `nil` | -| `ingress.secrets[0].name` | TLS Secret Name | `nil` | -| `ingress.secrets[0].certificate` | TLS Secret Certificate | `nil` | -| `ingress.secrets[0].key` | TLS Secret Key | `nil` | -| `healthIngress.enabled` | Enable healthIngress controller resource | `false` | -| `healthIngress.certManager` | Add annotations for cert-manager | `false` | -| `healthIngress.hostname` | Default host for the healthIngress resource | `aspnet-core.local` | -| `healthIngress.tls` | Enable TLS configuration for the hostname defined at `healthIngress.hostname` parameter | `false` | -| `healthIngress.annotations` | Ingress annotations | `[]` | -| `healthIngress.extraHosts[0].name` | Additional hostnames to be covered | `nil` | -| `healthIngress.extraHosts[0].path` | Additional hostnames to be covered | `nil` | -| `healthIngress.extraTls[0].hosts[0]` | TLS configuration for additional hostnames to be covered | `nil` | -| `healthIngress.extraTls[0].secretName` | TLS configuration for additional hostnames to be covered | `nil` | -| `healthIngress.secrets[0].name` | TLS Secret Name | `nil` | -| `healthIngress.secrets[0].certificate` | TLS Secret Certificate | `nil` | -| `healthIngress.secrets[0].key` | TLS Secret Key | `nil` | +### Traffic Exposure Parameters + +| Name | Description | Value | +| ---------------------------------- | ----------------------------------------------------------------------------------- | ------------------------ | +| `service.type` | ASP.NET Core service type | `ClusterIP` | +| `service.port` | ASP.NET Core service HTTP port | `80` | +| `service.nodePort` | Node ports to expose | `nil` | +| `service.clusterIP` | ASP.NET Core service Cluster IP | `nil` | +| `service.loadBalancerIP` | ASP.NET Core service Load Balancer IP | `nil` | +| `service.loadBalancerSourceRanges` | ASP.NET Core service Load Balancer sources | `[]` | +| `service.externalTrafficPolicy` | ASP.NET Core service external traffic policy | `Cluster` | +| `service.annotations` | Additional custom annotations for ASP.NET Core service | `{}` | +| `ingress.enabled` | Enable ingress record generation for ASP.NET Core | `false` | +| `ingress.pathType` | Ingress path type | `ImplementationSpecific` | +| `ingress.apiVersion` | Force Ingress API version (automatically detected if not set) | `nil` | +| `ingress.hostname` | Default host for the ingress resource, a host pointing to this will be created | `aspnet-core.local` | +| `ingress.path` | Default path for the ingress record | `ImplementationSpecific` | +| `ingress.annotations` | Additional custom annotations for the ingress record | `{}` | +| `ingress.tls` | Enable TLS configuration for the host defined at `ingress.hostname` parameter | `false` | +| `ingress.certManager` | Add the corresponding annotations for cert-manager integration | `false` | +| `ingress.extraHosts` | An array with additional hostname(s) to be covered with the ingress record | `[]` | +| `ingress.extraTls` | TLS configuration for additional hostname(s) to be covered with this ingress record | `[]` | +| `ingress.secrets` | Custom TLS certificates as secrets | `[]` | +| `healthIngress.enabled` | Enable healthIngress record generation for ASP.NET Core | `false` | +| `healthIngress.hostname` | When the health ingress is enabled, a host pointing to this will be created | `aspnet-core.local` | +| `healthIngress.annotations` | Additional custom annotations for the ingress record | `{}` | +| `healthIngress.tls` | Enable TLS configuration for the host defined at `ingress.hostname` parameter | `false` | +| `healthIngress.certManager` | Set this to true in order to add the corresponding annotations for cert-manager | `false` | +| `healthIngress.extraHosts` | n array with additional hostname(s) to be covered with the ingress record | `[]` | +| `healthIngress.extraTls` | TLS configuration for additional hostname(s) to be covered with this ingress record | `[]` | +| `healthIngress.secrets` | Custom TLS certificates as secrets | `[]` | + ### RBAC parameters -| Parameter | Description | Default | -|-----------------------------------------|---------------------------------------------------------------------|---------------------------------------------------------| -| `serviceAccount.create` | Enable the creation of a ServiceAccount for ASP.NET Core pods | `true` | -| `serviceAccount.name` | Name of the created ServiceAccount | Generated using the `aspnet-core.fullname` template | -| `serviceAccount.annotations` | Annotations for ASP.NET Core ServiceAccount | `{}` | +| Name | Description | Value | +| ---------------------------- | ---------------------------------------------------- | ------ | +| `serviceAccount.create` | Specifies whether a ServiceAccount should be created | `true` | +| `serviceAccount.name` | The name of the ServiceAccount to use. | `nil` | +| `serviceAccount.annotations` | Additional custom annotations for the ServiceAccount | `{}` | + Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, diff --git a/bitnami/aspnet-core/values.yaml b/bitnami/aspnet-core/values.yaml index 7fc7f6d656..9c222f17a1 100644 --- a/bitnami/aspnet-core/values.yaml +++ b/bitnami/aspnet-core/values.yaml @@ -1,18 +1,52 @@ +## @section Global parameters ## 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 +## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass -## Force target Kubernetes version (using Helm capabilites if not set) +## @param global.imageRegistry Global Docker image registry +## @param global.imagePullSecrets Global Docker registry secret names as an array +## +global: + imageRegistry: + ## E.g. + ## imagePullSecrets: + ## - myRegistryKeySecretName + ## + imagePullSecrets: [] + +## @section Common parameters + +## @param kubeVersion Override Kubernetes version ## kubeVersion: +## @param nameOverride String to partially override aspnet-core.fullname +## +nameOverride: +## @param fullnameOverride String to fully override aspnet-core.fullname +## +fullnameOverride: +## @param commonLabels Labels to add to all deployed objects +## +commonLabels: {} +## @param commonAnnotations Annotations to add to all deployed objects +## +commonAnnotations: {} +## @param clusterDomain Kubernetes cluster domain name +## +clusterDomain: cluster.local +## @param extraDeploy Array of extra objects to deploy with the release +## +extraDeploy: [] + +## @section ASP.NET Core parameters ## Bitnami ASP.NET Core image ## ref: https://hub.docker.com/r/bitnami/aspnet-core/tags/ +## @param image.registry ASP.NET Core image registry +## @param image.repository ASP.NET Core image repository +## @param image.tag ASP.NET Core image tag (immutable tags are recommended) +## @param image.pullPolicy ASP.NET Core image pull policy +## @param image.pullSecrets ASP.NET Core image pull secrets ## image: registry: docker.io @@ -26,38 +60,255 @@ image: ## 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: - # - myRegistryKeySecretName - -## String to partially override aspnet-core.fullname template (will maintain the release name) + pullSecrets: [] +## @param command Override default container command (useful when using custom images) ## -# nameOverride: - -## String to fully override aspnet-core.fullname template +command: [] +## @param args Override default container args (useful when using custom images) ## -# fullnameOverride: - -## Kubernetes Cluster Domain +args: [] +## @param bindURLs URLs to bind ## -clusterDomain: cluster.local - -## Add labels to all the deployed resources +bindURLs: http://+:8080 +## @param extraEnvVars Extra environment variables to be set on ASP.NET Core container +## E.g: +## extraEnvVars: +## - name: FOO +## value: BAR ## -commonLabels: {} - -## Add annotations to all the deployed resources +extraEnvVars: [] +## @param extraEnvVarsCM ConfigMap with extra environment variables ## -commonAnnotations: {} +extraEnvVarsCM: +## @param extraEnvVarsSecret Secret with extra environment variables +## +extraEnvVarsSecret: + +## @section ASP.NET Core deployment parameters + +## @param replicaCount Number of ASP.NET Core replicas to deploy +## +replicaCount: 1 +## @param strategyType ASP.NET Core deployment strategy type. Set it to `RollingUpdate` or `Recreate` +## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy +## +strategyType: RollingUpdate +## @param priorityClassName ASP.NET Core pod priority class name +## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/ +## +priorityClassName: "" +## @param hostAliases ASP.NET Core pod host aliases +## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ +## +hostAliases: [] +## @param extraVolumes Optionally specify extra list of additional volumes for ASP.NET Core pods +## e.g: +## extraVolumes: +## - name: extras +## emptyDir: {} +## +extraVolumes: [] +## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for ASP.NET Core container(s) +## Example: +## extraVolumeMounts: +## - name: extras +## mountPath: /usr/share/extras +## readOnly: true +## +extraVolumeMounts: [] +## @param sidecars Add additional sidecar containers to the ASP.NET Core pods +## e.g: +## sidecars: +## - name: your-image-name +## image: your-image +## imagePullPolicy: Always +## ports: +## - name: portname +## containerPort: 1234 +## +sidecars: {} +## @param initContainers Add additional init containers to the ASP.NET Core pods +## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ +## e.g: +## initContainers: +## - name: your-image-name +## image: your-image +## imagePullPolicy: Always +## ports: +## - name: portname +## containerPort: 1234 +## +initContainers: {} +## @param lifecycleHooks Add lifecycle hooks to the ASP.NET Core deployment +## +lifecycleHooks: {} +## @param podAnnotations Annotations for ASP.NET Core pods +## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ +## +podAnnotations: {} +## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` +## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity +## +podAffinityPreset: "" +## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` +## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity +## +podAntiAffinityPreset: soft +## Node affinity preset +## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity +## +nodeAffinityPreset: + ## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` + ## + type: "" + ## @param nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set + ## + key: "" + ## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set + ## E.g. + ## values: + ## - e2e-az1 + ## - e2e-az2 + ## + values: [] +## @param affinity 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: {} +## @param nodeSelector Node labels for pod assignment +## ref: https://kubernetes.io/docs/user-guide/node-selection/ +## +nodeSelector: {} +## @param tolerations Tolerations for pod assignment +## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ +## +tolerations: [] +## ASP.NET Core containers' resource requests and limits +## ref: http://kubernetes.io/docs/user-guide/compute-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:'. +## @param resources.limits The resources limits for the ASP.NET Core container +## @param resources.requests The requested resources for the ASP.NET Core container +## +resources: + ## Example: + ## limits: + ## cpu: 100m + ## memory: 128Mi + limits: {} + ## Examples: + ## requests: + ## cpu: 100m + ## memory: 128Mi + requests: {} +## @param containerPort Port to expose at ASP.NET Core container level +## +containerPort: 8080 +## Configure Pods Security Context +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod +## @param podSecurityContext.enabled Enabled ASP.NET Core pods' Security Context +## @param podSecurityContext.sysctls Set namespaced sysctls for the ASP.NET Core pods +## +podSecurityContext: + enabled: false + ## e.g: + ## sysctls: + ## - name: net.core.somaxconn + ## value: "10000" + ## + sysctls: {} +## Configure Container Security Context (only main container) +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container +## @param containerSecurityContext.enabled Enabled ASP.NET Core containers' Security Context +## @param containerSecurityContext.runAsUser Set ASP.NET Core container's Security Context runAsUser +## +containerSecurityContext: + enabled: false + runAsUser: 0 +## Configure extra options for ASP.NET Core containers' liveness and readiness probes +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes +## @param livenessProbe.enabled Enable livenessProbe +## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe +## @param livenessProbe.periodSeconds Period seconds for livenessProbe +## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe +## @param livenessProbe.failureThreshold Failure threshold for livenessProbe +## @param livenessProbe.successThreshold Success threshold for livenessProbe +## +livenessProbe: + enabled: true + initialDelaySeconds: 10 + timeoutSeconds: 1 + periodSeconds: 20 + failureThreshold: 6 + successThreshold: 1 +## @param readinessProbe.enabled Enable readinessProbe +## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe +## @param readinessProbe.periodSeconds Period seconds for readinessProbe +## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe +## @param readinessProbe.failureThreshold Failure threshold for readinessProbe +## @param readinessProbe.successThreshold Success threshold for readinessProbe +## +readinessProbe: + enabled: true + initialDelaySeconds: 10 + timeoutSeconds: 1 + periodSeconds: 20 + failureThreshold: 6 + successThreshold: 1 +## @param customLivenessProbe Custom livenessProbe that overrides the default one +## +customLivenessProbe: {} +## @param customReadinessProbe Custom readinessProbe that overrides the default one +## +customReadinessProbe: {} +## Configure Pod Disruption Budget +## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ +## @param pdb.create Enable/disable a Pod Disruption Budget creation +## @param pdb.minAvailable Minimum number/percentage of pods that should remain scheduled +## @param pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable +## +pdb: + create: false + minAvailable: 1 + maxUnavailable: +## ASP.NET Core Autoscaling parameters. +## @param autoscaling.enabled Enable autoscaling for ASP.NET Core +## @param autoscaling.minReplicas Minimum number of ASP.NET Core replicas +## @param autoscaling.maxReplicas Maximum number of ASP.NET Core replicas +## @param autoscaling.targetCPU Target CPU utilization percentage +## @param autoscaling.targetMemory Target Memory utilization percentage +## +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 11 + targetCPU: + targetMemory: + +## @section Custom ASP.NET Core application parameters ## Enable to download/build ASP.NET Core app from external git repository. ## Do not enable it if your docker image already includes your application ## appFromExternalRepo: + ## @param appFromExternalRepo.enabled Enable to download/build ASP.NET Core app from external git repository + ## enabled: true clone: ## Bitnami Git image version ## ref: https://hub.docker.com/r/bitnami/git/tags/ + ## @param appFromExternalRepo.clone.image.registry Git image registry + ## @param appFromExternalRepo.clone.image.repository Git image repository + ## @param appFromExternalRepo.clone.image.tag Git image tag (immutable tags are recommended) + ## @param appFromExternalRepo.clone.image.pullPolicy Git image pull policy + ## @param appFromExternalRepo.clone.image.pullSecrets Git image pull secrets ## image: registry: docker.io @@ -71,18 +322,20 @@ appFromExternalRepo: ## 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: - # - myRegistryKeySecretName - ## Git repository to clone + pullSecrets: [] + ## @param appFromExternalRepo.clone.repository Git repository to clone ## repository: https://github.com/dotnet/AspNetCore.Docs.git - ## Git revision to checkout + ## @param appFromExternalRepo.clone.revision Git revision to checkout ## revision: main - ## Add extra volume mounts for the GIT container + ## @param appFromExternalRepo.clone.extraVolumeMounts Add extra volume mounts for the GIT container ## Useful to mount keys to connect through ssh. (normally used with extraVolumes) - ## E.g: + ## e.g: ## extraVolumeMounts: ## - name: ssh-dir ## mountPath: /root/.ssh/ @@ -91,6 +344,11 @@ appFromExternalRepo: publish: ## Bitnami .NET SDK image version ## ref: https://hub.docker.com/r/bitnami/dotnet-sdk/tags/ + ## @param appFromExternalRepo.publish.image.registry .NET SDK image registry + ## @param appFromExternalRepo.publish.image.repository .NET SDK image repository + ## @param appFromExternalRepo.publish.image.tag .NET SDK image tag (immutable tags are recommended) + ## @param appFromExternalRepo.publish.image.pullPolicy .NET SDK image pull policy + ## @param appFromExternalRepo.publish.image.pullSecrets .NET SDK image pull secrets ## image: registry: docker.io @@ -104,432 +362,211 @@ appFromExternalRepo: ## 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: - # - myRegistryKeySecretName - ## Sub folder under the Git repository containing the ASP.NET Core app + pullSecrets: [] + ## @param appFromExternalRepo.publish.subFolder Sub folder under the Git repository containing the ASP.NET Core app ## subFolder: aspnetcore/fundamentals/servers/kestrel/samples/3.x/KestrelSample - ## Extra flags to be appended to "dotnet publish" command + ## @param appFromExternalRepo.publish.extraFlags Extra flags to be appended to "dotnet publish" command ## extraFlags: [] - ## Command to start downloaded ASP.NET Core app + ## @param appFromExternalRepo.startCommand Command used to start ASP.NET Core app ## startCommand: ["dotnet", "KestrelSample.dll"] - ## Enable mounting your ASP.NET Core app from an existing PVC ## Do not enable it if your docker image already includes your application +## @param appFromExistingPVC.enabled Enable mounting your ASP.NET Core app from an existing PVC +## @param appFromExistingPVC.existingClaim A existing Persistent Volume Claim containing your ASP.NET Core app ## appFromExistingPVC: enabled: false - ## A manually managed Persistent Volume and Claim - ## PVC must be created manually before volume will be bound - ## The value is evaluated as a template + ## PVC must be created manually before volume will be bound. The value is evaluated as a template ## - # existingClaim: + existingClaim: -## Command and args for running the container (set to default if not set). Use array form -## -command: [] -args: [] - -## Deployment pod host aliases -## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ -## -hostAliases: [] - -## URLs to bind -## -bindURLs: http://+:8080 - -## Additional environment variables to set -## E.g: -## extraEnvVars: -## - name: FOO -## value: BAR -## -extraEnvVars: [] - -## ConfigMap with extra environment variables -## -# extraEnvVarsCM: - -## Secret with extra environment variables -## -# extraEnvVarsSecret: - -## Number of replicas to deploy. -## -replicaCount: 1 - -## StrategyType, can be set to RollingUpdate or Recreate by default. -## -strategyType: RollingUpdate - -## 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. Evaluated as a template. -## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity -## -affinity: {} - -## Node labels for pod assignment. Evaluated as a template. -## ref: https://kubernetes.io/docs/user-guide/node-selection/ -## -nodeSelector: {} - -## Tolerations for pod assignment. Evaluated as a template. -## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ -## -tolerations: [] - -## Annotations for server pods. -## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ -## -podAnnotations: {} - -## ASP.NET Core pods' priority. -## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ -## -# priorityClassName: "" - -## lifecycleHooks for the ASP.NET Core container to automate configuration before or after startup. -## -lifecycleHooks: {} - -## ASP.NET Core pods' Security Context. -## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod -## -podSecurityContext: - enabled: false - ## sysctl settings - ## Example: - ## sysctls: - ## - name: net.core.somaxconn - ## value: "10000" - ## - sysctls: {} - -## ASP.NET Core containers' Security Context (only main container). -## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container -## -containerSecurityContext: - enabled: false - runAsUser: 0 - -## Deployment Container Port -## -containerPort: 8080 - -## ASP.NET Core 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:'. - limits: {} - # cpu: 100m - # memory: 128Mi - requests: {} - # cpu: 100m - # memory: 128Mi - -## ASP.NET Core pods' liveness and readiness probes. Evaluated as a template. -## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes -## -livenessProbe: - enabled: true - initialDelaySeconds: 10 - timeoutSeconds: 1 - periodSeconds: 20 - failureThreshold: 6 - successThreshold: 1 -readinessProbe: - enabled: true - initialDelaySeconds: 10 - timeoutSeconds: 1 - periodSeconds: 20 - failureThreshold: 6 - successThreshold: 1 - -## Custom Liveness probes for ASP.NET Core pods -## -customLivenessProbe: {} - -## Custom Rediness probes ASP.NET Core pods -## -customReadinessProbe: {} - -## extraVolumes and extraVolumeMounts allows you to mount other volumes -## Examples: -## extraVolumeMounts: -## - name: extras -## mountPath: /usr/share/extras -## readOnly: true -## extraVolumes: -## - name: extras -## emptyDir: {} -## -extraVolumeMounts: [] -extraVolumes: [] - -## Add init containers to the ASP.NET Core pods. -## Example: -## initContainers: -## - name: your-image-name -## image: your-image -## imagePullPolicy: Always -## ports: -## - name: portname -## containerPort: 1234 -## -initContainers: {} - -## Add sidecars to the ASP.NET Core pods. -## Example: -## sidecars: -## - name: your-image-name -## image: your-image -## imagePullPolicy: Always -## ports: -## - name: portname -## containerPort: 1234 -## -sidecars: {} - -## Extra objects to deploy (value evaluated as a template) -## -extraDeploy: [] - -## ASP.NET Core 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 - -## ASP.NET Core Autoscaling parameters. -## -autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 11 - # targetCPU: 50 - # targetMemory: 50 +## @section Traffic Exposure Parameters ## ASP.NET Core Service parameters. ## service: - ## Service type. + ## @param service.type ASP.NET Core service type ## type: ClusterIP - ## Service port. + ## @param service.port ASP.NET Core service HTTP port ## port: 80 - ## Specify the nodePort value for the LoadBalancer and NodePort service types. + ## @param service.nodePort Node ports to expose ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport ## - # nodePort: - ## Service clusterIP. + nodePort: + ## @param service.clusterIP ASP.NET Core service Cluster IP + ## e.g.: + ## clusterIP: None ## - # clusterIP: None - ## Enable client source IP preservation + clusterIP: + ## @param service.loadBalancerIP ASP.NET Core service Load Balancer IP + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer + ## + loadBalancerIP: + ## @param service.loadBalancerSourceRanges ASP.NET Core service 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: [] + ## @param service.externalTrafficPolicy ASP.NET Core service external traffic policy ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip ## externalTrafficPolicy: Cluster - ## Set the LoadBalancer service type to internal only. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer - ## - # loadBalancerIP: - ## Load Balancer sources. - ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service - ## - # loadBalancerSourceRanges: - # - 10.10.10.0/24 - ## Provide any additional annotations which may be required. Evaluated as a template. + ## @param service.annotations Additional custom annotations for ASP.NET Core service ## annotations: {} - -## Configure the ingress resource that allows you to access to you ASP.NET Core app +## Configure the ingress resource that allows you to access the ASP.NET Core app +## ref: http://kubernetes.io/docs/user-guide/ingress/ ## ingress: - ## Set to true to enable ingress record generation + ## @param ingress.enabled Enable ingress record generation for ASP.NET Core ## enabled: false - - ## Override API Version (automatically detected if not set) - ## - apiVersion: - - ## Ingress Path - ## - path: / - - ## Ingress Path type + ## @param ingress.pathType Ingress path type ## pathType: ImplementationSpecific - - ## Set this to true in order to add the corresponding annotations for cert-manager + ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set) ## - certManager: false - - ## When the ingress is enabled, a host pointing to this will be created + apiVersion: + ## @param ingress.hostname Default host for the ingress resource, a host pointing to this will be created ## hostname: aspnet-core.local - - ## Ingress annotations done as key:value pairs - ## For a full list of possible ingress annotations, please see - ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md + ## @param ingress.path Default path for the ingress record ## - ## If certManager is set to true, annotation kubernetes.io/tls-acme: "true" will automatically be set + path: / + ## @param ingress.annotations Additional custom annotations for the ingress record + ## NOTE: If `ingress.certManager=true`, annotation `kubernetes.io/tls-acme: "true"` will automatically be added ## annotations: {} - - ## Enable TLS configuration for the hostname defined at ingress.hostname parameter - ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.ingress.hostname }} - ## You can use the ingress.secrets parameter to create this TLS secret, relay on cert-manager to create it, or - ## let the chart create self-signed certificates for you + ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter + ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}` + ## You can: + ## - Use the `ingress.secrets` parameter to create this TLS secret + ## - Relay on cert-manager to create it by setting `ingress.certManager=true` ## tls: false - - ## The list of additional hostnames to be covered with this ingress record. - ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array - ## extraHosts: - ## - name: aspnet-core.local - ## path: / + ## @param ingress.certManager Add the corresponding annotations for cert-manager integration ## - - ## The tls configuration for additional hostnames to be covered with this ingress record. - ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls + certManager: false + ## @param ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record + ## e.g: + ## extraHosts: + ## - name: aspnet-core.local + ## path: / + ## + extraHosts: [] + ## @param ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record + ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls + ## e.g: ## extraTls: ## - hosts: ## - aspnet-core.local ## secretName: aspnet-core.local-tls ## - - ## If you're providing your own certificates, please use this to add the certificates as secrets - ## key and certificate should start with -----BEGIN CERTIFICATE----- or -----BEGIN RSA PRIVATE KEY----- - ## name should line up with a secretName set further up - ## - ## If it is not set and you're using cert-manager, this is unneeded, as it will create the secret for you + extraTls: [] + ## @param ingress.secrets Custom TLS certificates as secrets + ## NOTE: 'key' and 'certificate' are expected in PEM format + ## NOTE: 'name' should line up with a 'secretName' set further up + ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created ## It is also possible to create and manage the certificates outside of this helm chart ## Please see README.md for more information + ## e.g: + ## secrets: + ## - name: aspnet-core.local-tls + ## key: |- + ## -----BEGIN RSA PRIVATE KEY----- + ## ... + ## -----END RSA PRIVATE KEY----- + ## certificate: |- + ## -----BEGIN CERTIFICATE----- + ## ... + ## -----END CERTIFICATE----- ## secrets: [] - ## - name: aspnet-core.local-tls - ## key: - ## certificate: - ## - +## Health Ingress +## healthIngress: - ## Set to true to enable heallth ingress record generation + ## @param healthIngress.enabled Enable healthIngress record generation for ASP.NET Core ## enabled: false - - ## Set this to true in order to add the corresponding annotations for cert-manager - ## - certManager: false - - ## When the heallth ingress is enabled, a host pointing to this will be created + ## @param healthIngress.hostname When the health ingress is enabled, a host pointing to this will be created ## hostname: aspnet-core.local - - ## Ingress annotations done as key:value pairs - ## For a full list of possible ingress annotations, please see - ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md - ## - ## If certManager is set to true, annotation kubernetes.io/tls-acme: "true" will automatically be set + ## @param healthIngress.annotations Additional custom annotations for the ingress record + ## NOTE: If `ingress.certManager=true`, annotation `kubernetes.io/tls-acme: "true"` will automatically be added ## annotations: {} - - ## Enable TLS configuration for the hostname defined at ingress.hostname parameter - ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.ingress.hostname }} - ## You can use the ingress.secrets parameter to create this TLS secret, relay on cert-manager to create it, or - ## let the chart create self-signed certificates for you + ## @param healthIngress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter + ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}` + ## You can: + ## - Use the `ingress.secrets` parameter to create this TLS secret + ## - Relay on cert-manager to create it by setting `ingress.certManager=true` + ## - Relay on Helm to create self-signed certificates ## tls: false - - ## The list of additional hostnames to be covered with this heallth ingress record. + ## @param healthIngress.certManager Set this to true in order to add the corresponding annotations for cert-manager + ## + certManager: false + ## @param healthIngress.extraHosts n array with additional hostname(s) to be covered with the ingress record ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array ## extraHosts: - ## - name: aspnet-core.local - ## path: / + ## - name: aspnet-core.local + ## path: / ## - - ## The tls configuration for additional hostnames to be covered with this heallth ingress record. + extraHosts: [] + ## @param healthIngress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls ## extraTls: ## - hosts: ## - aspnet-core.local ## secretName: aspnet-core.local-tls ## - - ## If you're providing your own certificates, please use this to add the certificates as secrets - ## key and certificate should start with -----BEGIN CERTIFICATE----- or -----BEGIN RSA PRIVATE KEY----- - ## name should line up with a secretName set further up - ## - ## If it is not set and you're using cert-manager, this is unneeded, as it will create the secret for you + extraTls: [] + ## @param healthIngress.secrets Custom TLS certificates as secrets + ## NOTE: 'key' and 'certificate' are expected in PEM format + ## NOTE: 'name' should line up with a 'secretName' set further up + ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created ## It is also possible to create and manage the certificates outside of this helm chart ## Please see README.md for more information + ## e.g: + ## secrets: + ## - name: aspnet-core.local-tls + ## key: |- + ## -----BEGIN RSA PRIVATE KEY----- + ## ... + ## -----END RSA PRIVATE KEY----- + ## certificate: |- + ## -----BEGIN CERTIFICATE----- + ## ... + ## -----END CERTIFICATE----- ## secrets: [] - ## - name: aspnet-core.local-tls - ## key: - ## certificate: - ## + +## @section RBAC parameters ## K8s Service Account. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ ## serviceAccount: - ## Specifies whether a ServiceAccount should be created. + ## @param serviceAccount.create Specifies whether a ServiceAccount should be created ## create: true - ## The name of the ServiceAccount to use. + ## @param serviceAccount.name The name of the ServiceAccount to use. ## If not set and create is true, a name is generated using the aspnet-core.fullname template ## - # name: - ## Service Account annotations which may be required. Evaluated as a template. + name: + ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount ## annotations: {} diff --git a/bitnami/cassandra/Chart.yaml b/bitnami/cassandra/Chart.yaml index 434de0514c..b7aab37e3b 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: 7.6.2 +version: 7.6.3 diff --git a/bitnami/cassandra/README.md b/bitnami/cassandra/README.md index e023c14d81..3f5a5cf464 100644 --- a/bitnami/cassandra/README.md +++ b/bitnami/cassandra/README.md @@ -46,187 +46,210 @@ The command removes all the Kubernetes components associated with the chart and ## Parameters -The following table lists the configurable parameters of the Cassandra chart and their default values. +### Global parameters + +| Name | Description | Value | +| ------------------------- | ----------------------------------------------- | ----- | +| `global.imageRegistry` | Global Docker image registry | `nil` | +| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` | +| `global.storageClass` | Global StorageClass for Persistent Volume(s) | `nil` | -| 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) | -| `global.storageClass` | Global storage class for dynamic provisioning | `nil` | ### Common parameters -| Parameter | Description | Default | -|---------------------|-----------------------------------------------------------------------------|-----------------| -| `nameOverride` | String to partially override cassandra.fullname | `nil` | -| `fullnameOverride` | String to fully override cassandra.fullname | `nil` | -| `clusterDomain` | Default Kubernetes cluster domain | `cluster.local` | -| `commonLabels` | Labels to add to all deployed objects | `nil` | -| `commonAnnotations` | Annotations to add to all deployed objects | `[]` | -| `extraDeploy` | Array of extra objects to deploy with the release (evaluated as a template) | `nil` | +| Name | Description | Value | +| ------------------- | --------------------------------------------------------------------- | --------------- | +| `nameOverride` | String to partially override common.names.fullname | `nil` | +| `fullnameOverride` | String to fully override common.names.fullname | `nil` | +| `commonLabels` | Labels to add to all deployed objects (sub-charts are not considered) | `{}` | +| `commonAnnotations` | Annotations to add to all deployed objects | `{}` | +| `clusterDomain` | Kubernetes cluster domain name | `cluster.local` | +| `extraDeploy` | Array of extra objects to deploy with the release | `[]` | + ### Cassandra parameters -| Parameter | Description | Default | -|-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------| -| `image.registry` | Cassandra Image registry | `docker.io` | -| `image.repository` | Cassandra Image name | `bitnami/cassandra` | -| `image.tag` | Cassandra Image tag | `{TAG_NAME}` | -| `image.pullPolicy` | 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 logs should be enabled | `false` | -| `hostAliases` | Add deployment host aliases | `[]` | -| `dbUser.user` | Cassandra admin user | `cassandra` | -| `dbUser.forcePassword` | Force the user to provide a non-empty password for `dbUser.user` | `false` | -| `dbUser.password` | Password for `dbUser.user`. Randomly generated if empty | (Random generated) | -| `dbUser.existingSecret` | Use an existing secret object for `dbUser.user` password (will ignore `dbUser.password`) | `nil` | -| `initDBConfigMap` | Configmap for initialization CQL commands (done in the first node). Useful for creating keyspaces at startup | `nil` (evaluated as a template) | -| `initDBSecret` | Secret for initialization CQL commands (done in the first node) that contain sensitive data. Useful for creating keyspaces at startup | `nil` (evaluated as a template) | -| `existingConfiguration` | Pointer to a configMap that contains custom Cassandra configuration files. This will override any Cassandra configuration variable set in the chart | `nil` (evaluated as a template) | -| `cluster.name` | Cassandra cluster name | `cassandra` | -| `cluster.seedCount` | Number of seed nodes (note: must be greater or equal than 1 and less or equal to `replicaCount`) | `1` | -| `cluster.numTokens` | Number of tokens for each node | `256` | -| `cluster.datacenter` | Datacenter name | `dc1` | -| `cluster.rack` | Rack name | `rack1` | -| `cluster.enableRPC` | Enable Thrift RPC endpoint | `true` | -| `cluster.enableUDF` | Enable CASSANDRA_ENABLE_USER_DEFINED_FUNCTIONS | `false` | -| `jvm.extraOpts` | Set the value for Java Virtual Machine extra options (JVM_EXTRA_OPTS) | `nil` | -| `jvm.maxHeapSize` | Set Java Virtual Machine maximum heap size (MAX_HEAP_SIZE). Calculated automatically if `nil` | `nil` | -| `jvm.newHeapSize` | Set Java Virtual Machine new heap size (HEAP_NEWSIZE). Calculated automatically if `nil` | `nil` | -| `command` | Override default container command (useful when using custom images) | `[]` | -| `args` | Override default container args (useful when using custom images) | `[]` | -| `extraEnvVars` | Extra environment variables to be set on cassandra container | `{}` | -| `extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars | `nil` | -| `extraEnvVarsSecret` | Name of existing Secret containing extra env vars | `nil` | +| Name | Description | Value | +| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ------------------------ | +| `image.registry` | Cassandra image registry | `docker.io` | +| `image.repository` | Cassandra image repository | `bitnami/cassandra` | +| `image.tag` | Cassandra image tag (immutable tags are recommended) | `3.11.10-debian-10-r125` | +| `image.pullPolicy` | image pull policy | `IfNotPresent` | +| `image.pullSecrets` | Cassandra image pull secrets | `[]` | +| `image.debug` | Enable image debug mode | `false` | +| `dbUser.user` | Cassandra admin user | `cassandra` | +| `dbUser.forcePassword` | Force the user to provide a non | `false` | +| `dbUser.password` | Password for `dbUser.user`. Randomly generated if empty | `nil` | +| `dbUser.existingSecret` | Use an existing secret object for `dbUser.user` password (will ignore `dbUser.password`) | `nil` | +| `initDBConfigMap` | ConfigMap with cql scripts. Useful for creating a keyspace and pre-populating data | `nil` | +| `initDBSecret` | Secret with cql script (with sensitive data). Useful for creating a keyspace and pre-populating data | `nil` | +| `existingConfiguration` | ConfigMap with custom cassandra configuration files. This overrides any other Cassandra configuration set in the chart | `nil` | +| `cluster.name` | Cassandra cluster name | `cassandra` | +| `cluster.seedCount` | Number of seed nodes | `1` | +| `cluster.numTokens` | Number of tokens for each node | `256` | +| `cluster.datacenter` | Datacenter name | `dc1` | +| `cluster.rack` | Rack name | `rack1` | +| `cluster.enableRPC` | Enable Thrift RPC endpoint | `true` | +| `cluster.endpointSnitch` | Endpoint Snitch | `SimpleSnitch` | +| `cluster.internodeEncryption` | DEPRECATED: use tls.internode and tls.client instead. Encryption values. | `none` | +| `cluster.clientEncryption` | Client Encryption | `false` | +| `cluster.extraSeeds` | For an external/second cassandra ring. | `[]` | +| `jvm.extraOpts` | Set the value for Java Virtual Machine extra options | `nil` | +| `jvm.maxHeapSize` | Set Java Virtual Machine maximum heap size (MAX_HEAP_SIZE). Calculated automatically if `nil` | `nil` | +| `jvm.newHeapSize` | Set Java Virtual Machine new heap size (HEAP_NEWSIZE). Calculated automatically if `nil` | `nil` | +| `command` | Command for running the container (set to default if not set). Use array form | `[]` | +| `args` | Args for running the container (set to default if not set). Use array form | `[]` | +| `extraEnvVars` | Extra environment variables to be set on cassandra container | `[]` | +| `extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars | `nil` | +| `extraEnvVarsSecret` | Name of existing Secret containing extra env vars | `nil` | + ### Statefulset parameters -| Parameter | Description | Default | -|--------------------------------------|-------------------------------------------------------------------------------------------|--------------------------------| -| `replicaCount` | Number of Cassandra replicas | `1` | -| `updateStrategy` | Update strategy type for the statefulset | `RollingUpdate` | -| `rollingUpdatePartition` | Partition update strategy | `nil` | -| `priorityClassName` | Cassandra priorityClassName | `nil` | -| `podManagementPolicy` | StatefulSet pod management policy | `OrderedReady` | -| `podAnnotations` | Additional pod annotations | `{}` | -| `podLabels` | Additional pod labels | `{}` | -| `podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | -| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` | -| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | -| `nodeAffinityPreset.key` | Node label key to match Ignored if `affinity` is set. | `""` | -| `nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set. | `[]` | -| `affinity` | Affinity for pod assignment | `{}` (evaluated as a template) | -| `nodeSelector` | Node labels for pod assignment | `{}` (evaluated as a template) | -| `tolerations` | Tolerations for pod assignment | `[]` (evaluated as a template) | -| `topologySpreadConstraints` | Topology Spread Constraints for pod assignment | `[]` (evaluated as a template) | -| `podSecurityContext.enabled` | Enable security context for Cassandra pods | `true` | -| `podSecurityContext.fsGroup` | Group ID for the volumes of the pod | `1001` | -| `containerSecurityContext.enabled` | Cassandra Container securityContext | `true` | -| `containerSecurityContext.runAsUser` | User ID for the Cassandra container | `1001` | -| `resources.limits` | The resources limits for Cassandra containers | `{}` | -| `resources.requests` | The requested resources for Cassandra containers | `{}` | -| `livenessProbe` | Liveness probe configuration for Cassandra | Check `values.yaml` file | -| `readinessProbe` | Readiness probe configuration for Cassandra | Check `values.yaml` file | -| `customLivenessProbe` | Override default liveness probe | `nil` | -| `customReadinessProbe` | Override default readiness probe | `nil` | -| `extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for cassandra container | `[]` | -| `extraVolumes` | Optionally specify extra list of additional volumes for cassandra container | `[]` | -| `initContainers` | Add additional init containers to the cassandra pods | `{}` (evaluated as a template) | -| `sidecars` | Add additional sidecar containers to the cassandra pods | `{}` (evaluated as a template) | -| `pdb.create` | Enable/disable a Pod Disruption Budget creation | `false` | -| `pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `1` | -| `pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable | `nil` | -| `hostNetwork` | Use Host-Network for the PODs (if true, also dnsPolicy: ClusterFirstWithHostNet is set) | `false` | -| `containerPorts.intra` | Intra Port on the Host and Container | `7000` | -| `containerPorts.tls` | TLS Port on the Host and Container | `7001` | -| `containerPorts.jmx` | JMX Port on the Host and Container | `7199` | -| `containerPorts.cql` | CQL Port on the Host and Container | `9042` | -| `containerPorts.thrift` | Thrift Port on the Host and Container | `9160` | -| `metrics.containerPorts.http` | HTTP Port on the Host and Container | `8080` | -| `metrics.containerPorts.jmx` | JMX Port on the Host and Container | `5555` | +| Name | Description | Value | +| ------------------------------------ | ----------------------------------------------------------------------------------------- | --------------- | +| `replicaCount` | Number of Cassandra replicas | `1` | +| `updateStrategy` | updateStrategy for Cassandra statefulset | `RollingUpdate` | +| `hostAliases` | Add deployment host aliases | `[]` | +| `rollingUpdatePartition` | Partition update strategy | `nil` | +| `podManagementPolicy` | StatefulSet pod management policy | `OrderedReady` | +| `priorityClassName` | Cassandra pods' priority. | `""` | +| `podAnnotations` | Additional pod annotations | `{}` | +| `podLabels` | Additional pod labels | `{}` | +| `podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` | +| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` | +| `nodeAffinityPreset.key` | Node label key to match. Ignored if `affinity` is set | `""` | +| `nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set | `[]` | +| `affinity` | Affinity for pod assignment | `{}` | +| `nodeSelector` | Node labels for pod assignment | `{}` | +| `tolerations` | Tolerations for pod assignment | `[]` | +| `topologySpreadConstraints` | Topology Spread Constraints for pod assignment | `[]` | +| `podSecurityContext.enabled` | Enabled Cassandra pods' Security Context | `true` | +| `podSecurityContext.fsGroup` | Set Cassandra pod's Security Context fsGroup | `1001` | +| `containerSecurityContext.enabled` | Enabled Cassandra containers' Security Context | `true` | +| `containerSecurityContext.runAsUser` | et Cassandra container's Security Context runAsUser | `1001` | +| `resources.limits` | The resources limits for Cassandra containers | `{}` | +| `resources.requests` | The requested resources for Cassandra containers | `{}` | +| `livenessProbe.enabled` | Enable livenessProbe | `true` | +| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `60` | +| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `30` | +| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` | +| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `5` | +| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` | +| `readinessProbe.enabled` | Enable readinessProbe | `true` | +| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `60` | +| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` | +| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` | +| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `5` | +| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` | +| `customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` | +| `customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` | +| `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 | `[]` | +| `sidecars` | Add additional sidecar containers to the cassandra pods | `[]` | +| `pdb.create` | Enable/disable a Pod Disruption Budget creation | `false` | +| `pdb.minAvailable` | Mininimum number of pods that must still be available after the eviction | `1` | +| `pdb.maxUnavailable` | Max number of pods that can be unavailable after the eviction | `nil` | +| `hostNetwork` | Enable HOST Network | `false` | +| `containerPorts.intra` | Intra Port on the Host and Container | `7000` | +| `containerPorts.tls` | TLS Port on the Host and Container | `7001` | +| `containerPorts.jmx` | JMX Port on the Host and Container | `7199` | +| `containerPorts.cql` | CQL Port on the Host and Container | `9042` | +| `containerPorts.thrift` | Thrift Port on the Host and Container | `9160` | + ### RBAC parameters -| Parameter | Description | Default | -|------------------------------|------------------------------------------------------------|---------------------------------------------------| -| `serviceAccount.create` | Enable the creation of a ServiceAccount for Cassandra pods | `true` | -| `serviceAccount.name` | Name of the created ServiceAccount | Generated using the `cassandra.fullname` template | -| `serviceAccount.annotations` | Annotations for Cassandra Service Account | `{}` (evaluated as a template) | +| Name | Description | Value | +| ---------------------------- | ---------------------------------------------------------- | ------ | +| `serviceAccount.create` | Enable the creation of a ServiceAccount for Cassandra pods | `true` | +| `serviceAccount.name` | The name of the ServiceAccount to use. | `nil` | +| `serviceAccount.annotations` | Annotations for Cassandra Service Account | `{}` | -### Exposure parameters -| Parameter | Description | Default | -|-------------------------------|--------------------------------------------------|-------------| -| `service.type` | Kubernetes Service type | `ClusterIP` | -| `service.port` | CQL Port for the Kubernetes service | `9042` | -| `service.thriftPort` | Thrift Port for the Kubernetes service | `9160` | -| `service.metricsPort` | Metrics Port for the Kubernetes service | `8080` | -| `service.nodePorts.cql` | Kubernetes CQL node port | `""` | -| `service.nodePorts.thrift` | Kubernetes Thrift node port | `""` | -| `service.nodePorts.metrics` | Kubernetes Metrics node port | `""` | -| `service.loadBalancerIP` | LoadBalancerIP if service type is `LoadBalancer` | `nil` | -| `service.annotations` | Annotations for the service | {} | -| `networkPolicy.enabled` | Enable NetworkPolicy | `false` | -| `networkPolicy.allowExternal` | Don't require client label for connections | `true` | +### Traffic Exposure Parameters + +| Name | Description | Value | +| ----------------------------- | --------------------------------------------------------- | ----------- | +| `service.type` | Cassandra service type | `ClusterIP` | +| `service.port` | Cassandra service CQL Port | `9042` | +| `service.thriftPort` | Cassandra service Thrift Port | `9160` | +| `service.metricsPort` | Cassandra service metrics port | `8080` | +| `service.nodePorts.cql` | Node port for CQL | `""` | +| `service.nodePorts.thrift` | Node port for Thrift | `""` | +| `service.nodePorts.metrics` | Node port for metrics | `""` | +| `service.loadBalancerIP` | LoadBalancerIP if service type is `LoadBalancer` | `nil` | +| `service.annotations` | Provide any additional annotations which may be required. | `{}` | +| `networkPolicy.enabled` | Specifies whether a NetworkPolicy should be created | `false` | +| `networkPolicy.allowExternal` | Don't require client label for connections | `true` | + ### Persistence parameters -| Parameter | Description | Default | -|----------------------------------|-----------------------------------------------------|--------------------------------| -| `persistence.enabled` | Enable Cassandra data persistence using PVC | `true` | -| `persistence.storageClass` | PVC Storage Class for Cassandra data volume | `nil` | -| `persistence.commitStorageClass` | PVC Storage Class for Cassandra Commit Log volume | `nil` | -| `persistence.annotations` | Persistent Volume Claim annotations Annotations | `{}` (evaluated as a template) | -| `persistence.accessMode` | PVC Access Mode for Cassandra data volume | `[ReadWriteOnce]` | -| `persistence.size` | PVC Storage Request for Cassandra data volume | `8Gi` | -| `persistence.commitLogsize` | PVC Storage Request for Cassandra commit log volume | `nil` | -| `persistence.mountPath` | The path the data volume will be mounted at | `/bitnami/cassandra` | -| `persistence.commitLogMountPath` | The path the commit log volume will be mounted at | `nil` | +| Name | Description | Value | +| -------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------- | +| `persistence.enabled` | Enable Cassandra data persistence using PVC, use a Persistent Volume Claim, If false, use emptyDir | `true` | +| `persistence.storageClass` | PVC Storage Class for Cassandra data volume | `nil` | +| `persistence.commitStorageClass` | PVC Storage Class for Cassandra Commit Log volume | `nil` | +| `persistence.annotations` | Persistent Volume Claim annotations | `nil` | +| `persistence.accessModes` | Persistent Volume Access Mode | `[]` | +| `persistence.size` | PVC Storage Request for Cassandra data volume | `8Gi` | +| `persistence.mountPath` | The path the data volume will be mounted at | `/bitnami/cassandra` | + ### Volume Permissions parameters -| Parameter | Description | Default | -|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------| -| `volumePermissions.enabled` | Enable init container that changes the owner and group of the persistent volume(s) mountpoint to `runAsUser:fsGroup` | `false` | -| `volumePermissions.image.registry` | Init container volume-permissions image registry | `docker.io` | -| `volumePermissions.image.repository` | Init container volume-permissions image name | `bitnami/bitnami-shell` | -| `volumePermissions.image.tag` | Init container volume-permissions image tag | `"10"` | -| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `Always` | -| `volumePermissions.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | -| `volumePermissions.resources.limits` | Init container volume-permissions resource limits | `{}` | -| `volumePermissions.resources.requests` | Init container volume-permissions resource requests | `{}` | -| `volumePermissions.securityContext.*` | Other container security context to be included as-is in the container spec | `{}` | -| `volumePermissions.securityContext.runAsUser` | User ID for the init container (when facing issues in OpenShift or uid unknown, try value "auto") | `0` | +| Name | Description | Value | +| --------------------------------------------- | ------------------------------------------------------------------------------- | ----------------------- | +| `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-r112` | +| `volumePermissions.image.pullPolicy` | Init container volume | `Always` | +| `volumePermissions.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | +| `volumePermissions.resources.limits` | The resources limits for the container | `{}` | +| `volumePermissions.resources.requests` | The requested resources for the container | `{}` | +| `volumePermissions.securityContext.runAsUser` | User ID for the init container | `0` | + ### Metrics parameters -| Parameter | Description | Default | -|----------------------------------------|--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------| -| `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 | `{TAG_NAME}` | -| `metrics.image.pullPolicy` | Image pull policy | `IfNotPresent` | -| `metrics.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | -| `metrics.podAnnotations` | Additional annotations for Metrics exporter | `{prometheus.io/scrape: "true", prometheus.io/port: "8080"}` | -| `metrics.resources` | Exporter resource requests/limit | `{}` | -| `metrics.serviceMonitor.enabled` | if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`) | `false` | -| `metrics.serviceMonitor.namespace` | Namespace in which Prometheus is running | `nil` | -| `metrics.serviceMonitor.interval` | Interval at which metrics should be scraped. | `nil` (Prometheus Operator default value) | -| `metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `nil` (Prometheus Operator default value) | -| `metrics.serviceMonitor.selector` | Prometheus instance selector labels | `nil` | +| Name | Description | Value | +| -------------------------------------- | ------------------------------------------------------------------------------------------------------ | ---------------------------- | +| `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.4-debian-10-r435` | +| `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 | `{}` | +| `metrics.resources.requests` | The requested resources for the container | `{}` | +| `metrics.podAnnotations` | Metrics exporter pod Annotation and Labels | `{}` | +| `metrics.serviceMonitor.enabled` | If `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`) | `false` | +| `metrics.serviceMonitor.namespace` | Namespace in which Prometheus is running | `monitoring` | +| `metrics.serviceMonitor.interval` | Interval at which metrics should be scraped. | `nil` | +| `metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `nil` | +| `metrics.serviceMonitor.selector` | Prometheus instance selector labels | `nil` | +| `metrics.containerPorts.http` | HTTP Port on the Host and Container | `8080` | +| `metrics.containerPorts.jmx` | JMX Port on the Host and Container | `5555` | + ### TLS/SSL parameters -| Parameter | Description | Default | -|-------------------------- |--------------------------------------------------------------------|---------| -| `tls.internodeEncryption` | Set internode encryption. | `none` | -| `tls.clientEncryption` | Set client-server encryption. | `false` | -| `tls.autoGenerated` | Generate automatically self-signed TLS certificates | `false` | -| `tls.existingSecret` | Existing secret that contains Cassandra Keystore and truststore | `nil` | -| `tls.passwordsSecret` | Secret containing the Keystore and Truststore passwords if needed | `nil` | -| `tls.resources.limits` | The resources limits for the TLS init container | `{}` | -| `tls.resources.requests` | The requested resources for the TLS init container | `{}` | +| Name | Description | Value | +| ------------------------- | --------------------------------------------------------------------------------------------- | ------- | +| `tls.internodeEncryption` | Set internode encryption | `none` | +| `tls.clientEncryption` | Set client-server encryption | `false` | +| `tls.autoGenerated` | Generate automatically self-signed TLS certificates. Currently only supports PEM certificates | `false` | +| `tls.existingSecret` | Existing secret that contains Cassandra Keystore and truststore | `nil` | +| `tls.passwordsSecret` | Secret containing the Keystore and Truststore passwords if needed | `nil` | +| `tls.keystorePassword` | Password for the keystore, if needed. | `nil` | +| `tls.truststorePassword` | Password for the truststore, if needed. | `nil` | +| `tls.resources.limits` | The resources limits for the TLS init container | `{}` | +| `tls.resources.requests` | The requested resources for the TLS init container | `{}` | + The above parameters map to the env variables defined in [bitnami/cassandra](http://github.com/bitnami/bitnami-docker-cassandra). For more information please refer to the [bitnami/cassandra](http://github.com/bitnami/bitnami-docker-cassandra) image documentation. diff --git a/bitnami/cassandra/values.yaml b/bitnami/cassandra/values.yaml index 8b0208607a..6076f16387 100644 --- a/bitnami/cassandra/values.yaml +++ b/bitnami/cassandra/values.yaml @@ -1,22 +1,56 @@ +## @section Global parameters ## 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 +## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass -## Bitnami Cassandra image version +## @param global.imageRegistry Global Docker image registry +## @param global.imagePullSecrets Global Docker registry secret names as an array +## @param global.storageClass Global StorageClass for Persistent Volume(s) +## +global: + imageRegistry: + ## E.g. + ## imagePullSecrets: + ## - myRegistryKeySecretName + ## + imagePullSecrets: [] + storageClass: + +## @section Common parameters + +## @param nameOverride String to partially override common.names.fullname +## +nameOverride: +## @param fullnameOverride String to fully override common.names.fullname +## +fullnameOverride: +## @param commonLabels Labels to add to all deployed objects (sub-charts are not considered) +## +commonLabels: {} +## @param commonAnnotations Annotations to add to all deployed objects +## +commonAnnotations: {} +## @param clusterDomain Kubernetes cluster domain name +## +clusterDomain: cluster.local +## @param extraDeploy Array of extra objects to deploy with the release +## +extraDeploy: [] + +## @section Cassandra parameters + +## Bitnami Cassandra image ## ref: https://hub.docker.com/r/bitnami/cassandra/tags/ +## @param image.registry Cassandra image registry +## @param image.repository Cassandra image repository +## @param image.tag Cassandra image tag (immutable tags are recommended) +## @param image.pullPolicy image pull policy +## @param image.pullSecrets Cassandra image pull secrets +## @param image.debug Enable image debug mode ## image: registry: docker.io repository: bitnami/cassandra - ## Bitnami Cassandra image tag - ## ref: https://github.com/bitnami/bitnami-docker-cassandra#supported-tags-and-respective-dockerfile-links - ## tag: 3.11.10-debian-10-r125 ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' @@ -26,195 +60,63 @@ image: ## 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: - # - myRegistryKeySecretName - ## Set to true if you would like to see extra information on logs - ## It turns BASH and/or NAMI debugging in the image + pullSecrets: [] + ## Enable debug mode ## debug: false -## String to partially override cassandra.fullname template (will maintain the release name) -## -# nameOverride: - -## String to fully override cassandra.fullname template -## -# fullnameOverride: - -## Kubernetes Cluster Domain -## -clusterDomain: cluster.local - -## Common annotations to add to all Cassandra resources (sub-charts are not considered). Evaluated as a template -## -commonAnnotations: {} - -## Common labels to add to all Cassandra resources (sub-charts are not considered). Evaluated as a template -## -commonLabels: {} - -## Cassandra pods ServiceAccount -## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ -## -serviceAccount: - ## Specifies whether a ServiceAccount should be created - ## - create: true - ## The name of the ServiceAccount to use. - ## If not set and create is true, a name is generated using the cassandra.fullname template - ## - # name: - ## Annotations to add to the service account (evaluated as a template) - ## - annotations: {} - -## Cassandra container ports to open -## If hostNetwork true: the hostPort is set identical to the containerPort -## -containerPorts: - intra: 7000 - tls: 7001 - jmx: 7199 - cql: 9042 - thrift: 9160 - -## Enable HOST Network -## If hostNetwork true -> dnsPolicy is set to ClusterFirstWithHostNet -## -hostNetwork: false - -## Deployment pod host aliases -## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ -## -hostAliases: [] - -## Service parameters -## -service: - ## Service type - ## - type: ClusterIP - ## CQL port - ## - port: 9042 - ## Thrift Client API port - ## - thriftPort: 9160 - ## Metrics port - ## - metricsPort: 8080 - ## 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: - cql: '' - thrift: '' - metrics: '' - ## Set the LoadBalancer service type to internal only. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer - ## - # loadBalancerIP: - ## Provide any additional annotations which may be required. This can be used to - ## set the LoadBalancer service type to internal only. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer - ## - 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: - ## 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: "-" - ### Storage class to use with CASSANDRA_COMMITLOG_DIR to reduce the concurrence for writing data and commit logs - ## ref: https://github.com/bitnami/bitnami-docker-cassandra - ## If set to "-", commitStorageClass: "", 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) - ## - # commitStorageClass: "-" - ## Persistent Volume Claim annotations - ## - annotations: - ## Persistent Volume Access Mode - ## - accessModes: - - ReadWriteOnce - ## Persistent Volume size - ## - size: 8Gi - ## Commit Log Persistent Volume size - ## - # commitLogsize: 2Gi - ## The path the volume will be mounted at - ## - mountPath: /bitnami/cassandra - ## The path the volume will be mounted at - ## - # commitLogMountPath: /bitnami/cassandra/commitlog - -## 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-debian-10-r112 - 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/ - ## - # pullSecrets: - # - myRegistryKeySecretName - ## 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:'. - limits: {} - # cpu: 100m - # memory: 128Mi - requests: {} - # cpu: 100m - # memory: 128Mi - ## Init container Security Context - ## Note: the chown of the data folder is done to securityContext.runAsUser - ## and not the below volumePermissions.securityContext.runAsUser - ## When runAsUser is set to special value "auto", init container will try to chwon the - ## data folder to autodetermined user&group, using commands: `id -u`:`id -G | cut -d" " -f2` - ## "auto" is especially useful for OpenShift which has scc with dynamic userids (and 0 is not allowed). - ## You may want to use this volumePermissions.securityContext.runAsUser="auto" in combination with - ## pod securityContext.enabled=false and shmVolume.chmod.enabled=false - ## - securityContext: - runAsUser: 0 - ## Secret with keystore, keystore password, truststore, truststore password ## DEPRECATED. Use tls.existingSecret instead # tlsEncryptionSecretName: -## ConfigMap with custom cassandra configuration files. This overrides any other Cassandra configuration set in the chart +## Database credentials +## @param dbUser.user Cassandra admin user +## @param dbUser.forcePassword Force the user to provide a non +## @param dbUser.password Password for `dbUser.user`. Randomly generated if empty +## @param dbUser.existingSecret Use an existing secret object for `dbUser.user` password (will ignore `dbUser.password`) ## -# existingConfiguration: +dbUser: + user: cassandra + forcePassword: false + password: + ## Use an existing secrets which already stores your password data. + ## for backwards compatibility, existingSecret can be a simple string, + ## referencing the secret by name. + ## existingSecret: + ## ## Name of the existing secret + ## ## + ## name: mySecret + ## ## Key mapping where is the value which the deployment is expecting and + ## ## is the name of the key in the existing secret. + ## ## + ## keyMapping: + ## cassandra-password: myCassandraPasswordKey + existingSecret: +## @param initDBConfigMap ConfigMap with cql scripts. Useful for creating a keyspace and pre-populating data +## +initDBConfigMap: +## @param initDBSecret Secret with cql script (with sensitive data). Useful for creating a keyspace and pre-populating data +## +initDBSecret: +## @param existingConfiguration ConfigMap with custom cassandra configuration files. This overrides any other Cassandra configuration set in the chart +## +existingConfiguration: ## Cluster parameters +## @param cluster.name Cassandra cluster name +## @param cluster.seedCount Number of seed nodes +## @param cluster.numTokens Number of tokens for each node +## @param cluster.datacenter Datacenter name +## @param cluster.rack Rack name +## @param cluster.enableRPC Enable Thrift RPC endpoint +## @param cluster.endpointSnitch Endpoint Snitch +## @param cluster.internodeEncryption DEPRECATED: use tls.internode and tls.client instead. Encryption values. +## @param cluster.clientEncryption Client Encryption +## @param cluster.extraSeeds For an external/second cassandra ring. ## cluster: name: cassandra @@ -224,226 +126,176 @@ cluster: rack: rack1 enableRPC: true endpointSnitch: SimpleSnitch - ## Encryption values. - ## DEPRECATED: use tls.internode and tls.client instead. + ## NOTE: internodeEncryption requires tlsEncryptionSecretName + ## internodeEncryption: none clientEncryption: false - ## extraSeeds - For an external/second cassandra ring. Seed list will be appended by this. - ## - # extraSeeds: - # - hostname/IP - # - hostname/IP - + ## eg: + ## extraSeeds: + ## - hostname/IP + ## - hostname/IP + extraSeeds: [] ## JVM Settings +## @param jvm.extraOpts Set the value for Java Virtual Machine extra options +## @param jvm.maxHeapSize Set Java Virtual Machine maximum heap size (MAX_HEAP_SIZE). Calculated automatically if `nil` +## @param jvm.newHeapSize Set Java Virtual Machine new heap size (HEAP_NEWSIZE). Calculated automatically if `nil` ## jvm: - ## Extra JVM options - ## extraOpts: - ## Memory settings: These are calculated automatically unless specified otherwise ## To run on environments with little resources (<= 8GB), tune your heap settings: - ## maxHeapSize: ## - calculate 1/2 ram and cap to 1024MB ## - calculate 1/4 ram and cap to 8192MB ## - pick the max + maxHeapSize: ## newHeapSize: ## A good guideline is 100 MB per CPU core. ## - min(100 * num_cores, 1/4 * heap size) ## ref: https://docs.datastax.com/en/archived/cassandra/2.0/cassandra/operations/ops_tune_jvm_c.html ## - # maxHeapSize: 4G - # newHeapSize: 800M - -## Database credentials -## -dbUser: - user: cassandra - forcePassword: false - # password: - - ## Use an existing secrets which already stores your password data. - ## for backwards compatibility, existingSecret can be a simple string, - ## referencing the secret by name. - # existingSecret: - # ## Name of the existing secret - # ## - # name: mySecret - # ## Key mapping where is the value which the deployment is expecting and - # ## is the name of the key in the existing secret. - # ## - # keyMapping: - # cassandra-password: myCassandraPasswordKey - -## ConfigMap with cql scripts. Useful for creating a keyspace -## and pre-populating data -## -# initDBConfigMap: - -## Secret with cql script (with sensitive data). Useful for creating a keyspace -## and pre-populating data -## -# initDBSecret: - -## Command and args for running the container (set to default if not set). Use array form + newHeapSize: +## @param command Command for running the container (set to default if not set). Use array form ## command: [] +## @param args Args for running the container (set to default if not set). Use array form +## args: [] - -## An array to add extra env vars +## @param extraEnvVars Extra environment variables to be set on cassandra container ## For example: +## - name: FOO +## value: BAR ## extraEnvVars: [] -# - name: FOO -# value: BAR - -## ConfigMap with extra environment variables +## @param extraEnvVarsCM Name of existing ConfigMap containing extra env vars ## extraEnvVarsCM: - -## Secret with extra environment variables +## @param extraEnvVarsSecret Name of existing Secret containing extra env vars ## extraEnvVarsSecret: -## Extra volumes to add to the deployment -## -extraVolumes: [] +## @section Statefulset parameters -## Extra volume mounts to add to the container -## -extraVolumeMounts: [] - -## Extra init containers to add to the deployment -## -initContainers: [] - -## Extra sidecar containers to add to the deployment -## -sidecars: [] - -## Number of Cassandra replicas to deploy. +## @param replicaCount Number of Cassandra replicas ## replicaCount: 1 - -## updateStrategy for Cassandra statefulset +## @param updateStrategy updateStrategy for Cassandra statefulset ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies ## updateStrategy: RollingUpdate - -## Partition update strategy +## @param hostAliases Add deployment host aliases +## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ +## +hostAliases: [] +## @param rollingUpdatePartition Partition update strategy ## https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions ## -# rollingUpdatePartition: - -## StatefulSet pod management policy +rollingUpdatePartition: +## @param podManagementPolicy StatefulSet pod management policy ## podManagementPolicy: OrderedReady - -## Cassandra pods' priority. +## @param priorityClassName Cassandra pods' priority. ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ ## -# priorityClassName: "" - -## Additional pod annotations +priorityClassName: "" +## @param podAnnotations Additional pod annotations ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ ## podAnnotations: {} - -## Additional pod labels +## @param podLabels Additional pod labels ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ ## podLabels: {} - -## Pod affinity preset +## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` ## 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 +## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` ## 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 + ## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` ## type: "" - ## Node label key to match - ## E.g. - ## key: "kubernetes.io/e2e-az-name" + ## @param nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set ## key: "" - ## Node label values to match + ## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set ## E.g. ## values: ## - e2e-az1 ## - e2e-az2 ## values: [] - -## Affinity for pod assignment +## @param affinity 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 +## 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/ +## @param nodeSelector 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/ +## @param tolerations Tolerations for pod assignment +## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ ## tolerations: [] - -## Pod topology spread constraints +## @param topologySpreadConstraints Topology Spread Constraints for pod assignment ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ## The value is evaluated as a template ## topologySpreadConstraints: [] - ## Pod security context ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod +## @param podSecurityContext.enabled Enabled Cassandra pods' Security Context +## @param podSecurityContext.fsGroup Set Cassandra pod's Security Context fsGroup ## podSecurityContext: enabled: true fsGroup: 1001 - -## Cassandra container security context +## Configure Container Security Context (only main container) ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container +## @param containerSecurityContext.enabled Enabled Cassandra containers' Security Context +## @param containerSecurityContext.runAsUser et Cassandra container's Security Context runAsUser ## containerSecurityContext: enabled: true runAsUser: 1001 - ## Cassandra pods' resource requests and limits ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ ## Minimum memory for development is 4GB and 2 CPU cores ## Minimum memory for production is 8GB and 4 CPU cores ## ref: http://docs.datastax.com/en/archived/cassandra/2.0/cassandra/architecture/architecturePlanningHardware_c.html ## +## 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:'. +## @param resources.limits The resources limits for Cassandra containers +## @param resources.requests The requested resources for Cassandra containers +## 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:'. + ## Example: + ## limits: + ## cpu: 2 + ## memory: 4Gi limits: {} - # cpu: 2 - # memory: 4Gi + ## Examples: + ## requests: + ## cpu: 2 + ## memory: 4Gi requests: {} - # cpu: 2 - # memory: 4Gi - -## Cassandra container's liveness and readiness probes -## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes +## Configure extra options for Cassandra containers' liveness and readiness probes +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes +## @param livenessProbe.enabled Enable livenessProbe +## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe +## @param livenessProbe.periodSeconds Period seconds for livenessProbe +## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe +## @param livenessProbe.failureThreshold Failure threshold for livenessProbe +## @param livenessProbe.successThreshold Success threshold for livenessProbe ## livenessProbe: enabled: true @@ -452,6 +304,13 @@ livenessProbe: timeoutSeconds: 5 successThreshold: 1 failureThreshold: 5 +## @param readinessProbe.enabled Enable readinessProbe +## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe +## @param readinessProbe.periodSeconds Period seconds for readinessProbe +## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe +## @param readinessProbe.failureThreshold Failure threshold for readinessProbe +## @param readinessProbe.successThreshold Success threshold for readinessProbe +## readinessProbe: enabled: true initialDelaySeconds: 60 @@ -459,47 +318,248 @@ readinessProbe: timeoutSeconds: 5 successThreshold: 1 failureThreshold: 5 - -## Custom Liveness probe +## @param customLivenessProbe Custom livenessProbe that overrides the default one ## customLivenessProbe: {} - -## Custom Rediness probe +## @param customReadinessProbe Custom readinessProbe that overrides the default one ## customReadinessProbe: {} +## @param extraVolumes Optionally specify extra list of additional volumes for cassandra container +## +extraVolumes: [] +## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for cassandra container +## +extraVolumeMounts: [] +## @param initContainers Add additional init containers to the cassandra pods +## +initContainers: [] +## @param sidecars Add additional sidecar containers to the cassandra pods +## +sidecars: [] +## Cassandra Pod Disruption Budget configuration +## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ +## +pdb: + ## @param pdb.create Enable/disable a Pod Disruption Budget creation + ## + create: false + ## @param pdb.minAvailable Mininimum number of pods that must still be available after the eviction + ## + minAvailable: 1 + ## @param pdb.maxUnavailable Max number of pods that can be unavailable after the eviction + ## + maxUnavailable: +## @param hostNetwork Enable HOST Network +## If hostNetwork true -> dnsPolicy is set to ClusterFirstWithHostNet +## +hostNetwork: false +## Cassandra container ports to open +## If hostNetwork true: the hostPort is set identical to the containerPort +## @param containerPorts.intra Intra Port on the Host and Container +## @param containerPorts.tls TLS Port on the Host and Container +## @param containerPorts.jmx JMX Port on the Host and Container +## @param containerPorts.cql CQL Port on the Host and Container +## @param containerPorts.thrift Thrift Port on the Host and Container +## +containerPorts: + intra: 7000 + tls: 7001 + jmx: 7199 + cql: 9042 + thrift: 9160 +## @section RBAC parameters + +## Cassandra pods ServiceAccount +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ +## +serviceAccount: + ## @param serviceAccount.create Enable the creation of a ServiceAccount for Cassandra pods + ## + create: true + ## @param serviceAccount.name The name of the ServiceAccount to use. + ## If not set and create is true, a name is generated using the cassandra.fullname template + ## + name: + ## @param serviceAccount.annotations Annotations for Cassandra Service Account + ## + annotations: {} + +## @section Traffic Exposure Parameters + +## Cassandra service parameters +## +service: + ## @param service.type Cassandra service type + ## + type: ClusterIP + ## @param service.port Cassandra service CQL Port + ## + port: 9042 + ## @param service.thriftPort Cassandra service Thrift Port + ## + thriftPort: 9160 + ## @param service.metricsPort Cassandra service metrics port + ## + metricsPort: 8080 + ## Node ports to expose + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport + ## @param service.nodePorts.cql Node port for CQL + ## @param service.nodePorts.thrift Node port for Thrift + ## @param service.nodePorts.metrics Node port for metrics + ## + nodePorts: + cql: '' + thrift: '' + metrics: '' + ## @param service.loadBalancerIP LoadBalancerIP if service type is `LoadBalancer` + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer + ## + loadBalancerIP: + ## @param service.annotations Provide any additional annotations which may be required. + ## This can be used to set the LoadBalancer service type to internal only. + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer + ## + annotations: {} ## Network policies ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/ ## networkPolicy: - ## Specifies whether a NetworkPolicy should be created + ## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created ## enabled: false - + ## @param networkPolicy.allowExternal Don't require client label for connections ## The Policy model to apply. When set to false, only pods with the correct ## client label will have network access to the port Redis(TM) is listening ## on. When true, Redis(TM) will accept connections from any source ## (with the correct destination port). ## - # allowExternal: true + allowExternal: true -## Cassandra Pod Disruption Budget configuration -## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ +## @section Persistence parameters + +## Enable persistence using Persistent Volume Claims +## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ ## -pdb: - create: false - ## Min number of pods that must still be available after the eviction +persistence: + ## @param persistence.enabled Enable Cassandra data persistence using PVC, use a Persistent Volume Claim, If false, use emptyDir ## - minAvailable: 1 - ## Max number of pods that can be unavailable after the eviction + enabled: true + ## @param persistence.storageClass PVC Storage Class for Cassandra data volume + ## If defined, storageClassName: + ## 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) ## - # maxUnavailable: 1 + storageClass: + ## @param persistence.commitStorageClass PVC Storage Class for Cassandra Commit Log volume + ## Storage class to use with CASSANDRA_COMMITLOG_DIR to reduce the concurrence for writing data and commit logs + ## ref: https://github.com/bitnami/bitnami-docker-cassandra + ## If set to "-", commitStorageClass: "", 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) + ## + commitStorageClass: + ## @param persistence.annotations Persistent Volume Claim annotations + ## + annotations: + ## @param persistence.accessModes Persistent Volume Access Mode + ## + accessModes: + - ReadWriteOnce + ## @param persistence.size PVC Storage Request for Cassandra data volume + ## + size: 8Gi + ## @skip persistence.commitLogsize PVC Storage Request for Cassandra commit log volume + ## + # commitLogsize: 2Gi + ## @param persistence.mountPath The path the data volume will be mounted at + ## + mountPath: /bitnami/cassandra + ## @skip persistence.commitLogMountPath The path the commit log volume will be mounted at + ## + # commitLogMountPath: /bitnami/cassandra/commitlog + +## @section Volume Permissions parameters + +## Init containers parameters: +## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section. +## +volumePermissions: + ## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume + ## + enabled: false + ## @param volumePermissions.image.registry Init container volume + ## @param volumePermissions.image.repository Init container volume + ## @param volumePermissions.image.tag Init container volume + ## @param volumePermissions.image.pullPolicy Init container volume + ## @param volumePermissions.image.pullSecrets Specify docker-registry secret names as an array + ## + image: + registry: docker.io + repository: bitnami/bitnami-shell + tag: 10-debian-10-r112 + 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/ + ## 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:'. + ## @param volumePermissions.resources.limits The resources limits for the container + ## @param volumePermissions.resources.requests The requested resources for the container + ## + resources: + ## Example: + ## limits: + ## cpu: 100m + ## memory: 128Mi + limits: {} + ## Examples: + ## requests: + ## cpu: 100m + ## memory: 128Mi + requests: {} + ## Init container Security Context + ## Note: the chown of the data folder is done to securityContext.runAsUser + ## and not the below volumePermissions.securityContext.runAsUser + ## @param volumePermissions.securityContext.runAsUser User ID for the init container + ## + ## When runAsUser is set to special value "auto", init container will try to chwon the + ## data folder to autodetermined user&group, using commands: `id -u`:`id -G | cut -d" " -f2` + ## "auto" is especially useful for OpenShift which has scc with dynamic userids (and 0 is not allowed). + ## You may want to use this volumePermissions.securityContext.runAsUser="auto" in combination with + ## pod securityContext.enabled=false and shmVolume.chmod.enabled=false + ## + securityContext: + runAsUser: 0 + +## @section Metrics parameters ## Cassandra Prometheus exporter configuration -## ref: https://hub.docker.com/r/bitnami/cassandra-exporter/tags/ ## metrics: + ## @param metrics.enabled Start a side-car prometheus exporter + ## enabled: false + ## Bitnami Cassandra Exporter image + ## ref: https://hub.docker.com/r/bitnami/cassandra-exporter/tags/ + ## @param metrics.image.registry Cassandra exporter image registry + ## @param metrics.image.repository Cassandra exporter image name + ## @param metrics.image.tag Cassandra exporter image tag + ## @param metrics.image.pullPolicy image pull policy + ## @param metrics.image.pullSecrets Specify docker-registry secret names as an array + ## image: registry: docker.io pullPolicy: IfNotPresent @@ -508,90 +568,108 @@ metrics: ## 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: - # - myRegistryKeySecretName + pullSecrets: [] ## Cassandra Prometheus exporter resource requests and limits ## ref: http://kubernetes.io/docs/user-guide/compute-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:'. + ## @param metrics.resources.limits The resources limits for the container + ## @param metrics.resources.requests The requested resources for the container ## 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:'. + ## Example: + ## limits: + ## cpu: 100m + ## memory: 128Mi limits: {} - # cpu: 100m - # memory: 128Mi + ## Examples: + ## requests: + ## cpu: 100m + ## memory: 128Mi requests: {} - # cpu: 100m - # memory: 128Mi - ## Metrics exporter pod Annotation and Labels + ## @param metrics.podAnnotations [object] Metrics exporter pod Annotation and Labels ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ ## podAnnotations: prometheus.io/scrape: 'true' prometheus.io/port: '8080' - ## Prometheus Operator ServiceMonitor configuration ## serviceMonitor: + ## @param metrics.serviceMonitor.enabled If `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`) + ## enabled: false - ## Namespace in which Prometheus is running + ## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running ## - # namespace: monitoring - ## Interval at which metrics should be scraped. + namespace: monitoring + ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped. ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint + ## e.g: + ## interval: 10s ## - # interval: 10s - ## Timeout after which the scrape is ended + interval: + ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint + ## e.g: + ## scrapeTimeout: 10s ## - # scrapeTimeout: 10s - ## ServiceMonitor selector labels + scrapeTimeout: + ## @param metrics.serviceMonitor.selector Prometheus instance selector labels ## ref: https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-configuration + ## e.g: + ## selector: + ## prometheus: my-prometheus ## - # selector: - # prometheus: my-prometheus - + selector: ## Metrics container ports to open ## If hostNetwork true: the hostPort is set identical to the containerPort + ## @param metrics.containerPorts.http HTTP Port on the Host and Container + ## @param metrics.containerPorts.jmx JMX Port on the Host and Container ## containerPorts: http: 8080 jmx: 5555 -## Array with extra yaml to deploy with the chart. Evaluated as a template -## -extraDeploy: [] +## @section TLS/SSL parameters +## TLS/SSL parameters +## @param tls.internodeEncryption Set internode encryption +## @param tls.clientEncryption Set client-server encryption +## @param tls.autoGenerated Generate automatically self-signed TLS certificates. Currently only supports PEM certificates +## @param tls.existingSecret Existing secret that contains Cassandra Keystore and truststore +## @param tls.passwordsSecret Secret containing the Keystore and Truststore passwords if needed +## @param tls.keystorePassword Password for the keystore, if needed. +## @param tls.truststorePassword Password for the truststore, if needed. +## @param tls.resources.limits The resources limits for the TLS init container +## @param tls.resources.requests The requested resources for the TLS init container +## tls: internodeEncryption: none clientEncryption: false - ## Create self-signed TLS certificates. Currently only supports PEM certificates. - ## autoGenerated: false - ## Name of the existing secret containing Cassandra JKS certificates - ## existingSecret: - ## Secret containing the passwords for the truststore and keystore if needed - ## passwordsSecret: - ## Password for the keystore and truststore, if needed. - ## keystorePassword: truststorePassword: - + ## 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:'. + ## 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:'. - ## + ## Example: + ## limits: + ## cpu: 100m + ## memory: 128Mi limits: {} - ## cpu: 100m - ## memory: 128Mi - ## + ## Examples: + ## requests: + ## cpu: 100m + ## memory: 128Mi requests: {} - ## cpu: 100m - ## memory: 128Mi - ##