[bitnami/redis-cluster] Redis Cluster Helm Chart standardisation (#7710)

* [bitnami/redis-cluster] Standardise Redis Cluster Helm Chart

Signed-off-by: Miguel A. Cabrera Minagorri <mcabrera@vmware.com>

* Bump version

Signed-off-by: Miguel A. Cabrera Minagorri <mcabrera@vmware.com>

* Fix and regenerate README

Signed-off-by: Miguel A. Cabrera Minagorri <mcabrera@vmware.com>

* Apply suggestions

* Re-generate readme

* Address changes and improvements

* Improve rollingUpdate values

* Use 0 as default partition

* Add upgrade notice to README
This commit is contained in:
Miguel Ángel Cabrera Miñagorri
2021-10-08 16:46:40 +02:00
committed by GitHub
parent f0deb0039a
commit cfce1c478e
11 changed files with 372 additions and 182 deletions

View File

@@ -23,4 +23,4 @@ name: redis-cluster
sources:
- https://github.com/bitnami/bitnami-docker-redis
- http://redis.io/
version: 6.3.9
version: 7.0.0

View File

@@ -92,120 +92,138 @@ The command removes all the Kubernetes components associated with the chart and
### Redis&trade; Cluster Common parameters
| Name | Description | Value |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| `image.registry` | Redis&trade; cluster image registry | `docker.io` |
| `image.repository` | Redis&trade; cluster image repository | `bitnami/redis-cluster` |
| `image.tag` | Redis&trade; cluster image tag (immutable tags are recommended) | `6.2.6-debian-10-r0` |
| `image.pullPolicy` | Redis&trade; cluster image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
| `image.debug` | Enable image debug mode | `false` |
| `networkPolicy.enabled` | Enable NetworkPolicy | `false` |
| `networkPolicy.allowExternal` | The Policy model to apply. Don't require client label for connections | `true` |
| `networkPolicy.ingressNSMatchLabels` | Allow connections from other namespacess. Just set label for namespace and set label for pods (optional). | `{}` |
| `networkPolicy.ingressNSPodMatchLabels` | For other namespaces match by pod labels and namespace labels | `{}` |
| `serviceAccount.create` | Specifies whether a ServiceAccount should be created | `false` |
| `serviceAccount.name` | The name of the ServiceAccount to create | `""` |
| `rbac.create` | Specifies whether RBAC resources should be created | `false` |
| `rbac.role.rules` | Rules to create. It follows the role specification | `[]` |
| `podSecurityContext.enabled` | Enable Redis&trade; pod Security Context | `true` |
| `podSecurityContext.fsGroup` | Group ID for the pods | `1001` |
| `podSecurityContext.runAsUser` | User ID for the pods | `1001` |
| `podSecurityContext.sysctls` | Set namespaced sysctls for the pods | `[]` |
| `podDisruptionBudget` | Limits the number of pods of the replicated application that are down simultaneously from voluntary disruptions | `{}` |
| `minAvailable` | Min number of pods that must still be available after the eviction | `""` |
| `maxUnavailable` | Max number of pods that can be unavailable after the eviction | `""` |
| `containerSecurityContext.enabled` | Enable Containers' Security Context | `true` |
| `containerSecurityContext.runAsUser` | User ID for the containers. | `1001` |
| `usePassword` | Use password authentication | `true` |
| `password` | Redis&trade; password (ignored if existingSecret set) | `""` |
| `existingSecret` | Name of existing secret object (for password authentication) | `""` |
| `existingSecretPasswordKey` | Name of key containing password to be retrieved from the existing secret | `""` |
| `usePasswordFile` | Mount passwords as files instead of environment variables | `false` |
| `tls.enabled` | Enable TLS support for replication traffic | `false` |
| `tls.authClients` | Require clients to authenticate or not | `true` |
| `tls.autoGenerated` | Generate automatically self-signed TLS certificates | `false` |
| `tls.existingSecret` | The name of the existing secret that contains the TLS certificates | `""` |
| `tls.certificatesSecret` | DEPRECATED. Use tls.existingSecret instead | `""` |
| `tls.certFilename` | Certificate filename | `""` |
| `tls.certKeyFilename` | Certificate key filename | `""` |
| `tls.certCAFilename` | CA Certificate filename | `""` |
| `tls.dhParamsFilename` | File containing DH params (in order to support DH based ciphers) | `""` |
| `service.port` | Kubernetes Service port | `6379` |
| `service.annotations` | Provide any additional annotations which may be required. | `{}` |
| `service.labels` | Additional labels for redis service | `{}` |
| `service.type` | Service type for default redis service | `ClusterIP` |
| `service.loadBalancerIP` | Load balancer IP if `service.type` is `LoadBalancer` | `""` |
| `persistence.enabled` | Use a PVC to persist data. | `true` |
| `persistence.path` | Path to mount the volume at, to use other images Redis&trade; images. | `/bitnami/redis/data` |
| `persistence.subPath` | The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services | `""` |
| `persistence.storageClass` | Storage class of backing PVC | `""` |
| `persistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` |
| `persistence.size` | Size of data volume | `8Gi` |
| `persistence.matchLabels` | Persistent Volume selectors | `{}` |
| `persistence.matchExpressions` | matchExpressions Persistent Volume selectors | `{}` |
| `statefulset.updateStrategy` | Update strategy for StatefulSet | `RollingUpdate` |
| `statefulset.rollingUpdatePartition` | Partition update strategy | `""` |
| `volumePermissions.enabled` | Enable init container that changes volume permissions in the registry (for cases where the default k8s `runAsUser` and `fsUser` values do not work) | `false` |
| `volumePermissions.image.registry` | Init container volume-permissions image registry | `docker.io` |
| `volumePermissions.image.repository` | Init container volume-permissions image repository | `bitnami/bitnami-shell` |
| `volumePermissions.image.tag` | Init container volume-permissions image tag | `10-debian-10-r212` |
| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `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 | `{}` |
| `podSecurityPolicy.create` | Specifies whether a PodSecurityPolicy should be created | `false` |
| Name | Description | Value |
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| `image.registry` | Redis&trade; cluster image registry | `docker.io` |
| `image.repository` | Redis&trade; cluster image repository | `bitnami/redis-cluster` |
| `image.tag` | Redis&trade; cluster image tag (immutable tags are recommended) | `6.2.6-debian-10-r0` |
| `image.pullPolicy` | Redis&trade; cluster image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
| `image.debug` | Enable image debug mode | `false` |
| `networkPolicy.enabled` | Enable NetworkPolicy | `false` |
| `networkPolicy.allowExternal` | The Policy model to apply. Don't require client label for connections | `true` |
| `networkPolicy.ingressNSMatchLabels` | Allow connections from other namespacess. Just set label for namespace and set label for pods (optional). | `{}` |
| `networkPolicy.ingressNSPodMatchLabels` | For other namespaces match by pod labels and namespace labels | `{}` |
| `serviceAccount.create` | Specifies whether a ServiceAccount should be created | `false` |
| `serviceAccount.name` | The name of the ServiceAccount to create | `""` |
| `serviceAccount.annotations` | Annotations for Cassandra Service Account | `{}` |
| `serviceAccount.automountServiceAccountToken` | Automount API credentials for a service account. | `false` |
| `rbac.create` | Specifies whether RBAC resources should be created | `false` |
| `rbac.role.rules` | Rules to create. It follows the role specification | `[]` |
| `podSecurityContext.enabled` | Enable Redis&trade; pod Security Context | `true` |
| `podSecurityContext.fsGroup` | Group ID for the pods | `1001` |
| `podSecurityContext.runAsUser` | User ID for the pods | `1001` |
| `podSecurityContext.sysctls` | Set namespaced sysctls for the pods | `[]` |
| `podDisruptionBudget` | Limits the number of pods of the replicated application that are down simultaneously from voluntary disruptions | `{}` |
| `minAvailable` | Min number of pods that must still be available after the eviction | `""` |
| `maxUnavailable` | Max number of pods that can be unavailable after the eviction | `""` |
| `containerSecurityContext.enabled` | Enable Containers' Security Context | `true` |
| `containerSecurityContext.runAsUser` | User ID for the containers. | `1001` |
| `containerSecurityContext.runAsNonRoot` | Run container as non root | `true` |
| `usePassword` | Use password authentication | `true` |
| `password` | Redis&trade; password (ignored if existingSecret set) | `""` |
| `existingSecret` | Name of existing secret object (for password authentication) | `""` |
| `existingSecretPasswordKey` | Name of key containing password to be retrieved from the existing secret | `""` |
| `usePasswordFile` | Mount passwords as files instead of environment variables | `false` |
| `tls.enabled` | Enable TLS support for replication traffic | `false` |
| `tls.authClients` | Require clients to authenticate or not | `true` |
| `tls.autoGenerated` | Generate automatically self-signed TLS certificates | `false` |
| `tls.existingSecret` | The name of the existing secret that contains the TLS certificates | `""` |
| `tls.certificatesSecret` | DEPRECATED. Use tls.existingSecret instead | `""` |
| `tls.certFilename` | Certificate filename | `""` |
| `tls.certKeyFilename` | Certificate key filename | `""` |
| `tls.certCAFilename` | CA Certificate filename | `""` |
| `tls.dhParamsFilename` | File containing DH params (in order to support DH based ciphers) | `""` |
| `service.ports.redis` | Kubernetes Redis service port | `6379` |
| `service.nodePorts.redis` | Node port for Redis | `""` |
| `service.extraPorts` | Extra ports to expose in the service (normally used with the `sidecar` value) | `[]` |
| `service.annotations` | Provide any additional annotations which may be required. | `{}` |
| `service.labels` | Additional labels for redis service | `{}` |
| `service.type` | Service type for default redis service | `ClusterIP` |
| `service.clusterIP` | Service Cluster IP | `""` |
| `service.loadBalancerIP` | Load balancer IP if `service.type` is `LoadBalancer` | `""` |
| `service.loadBalancerSourceRanges` | Service Load Balancer sources | `[]` |
| `service.externalTrafficPolicy` | Service external traffic policy | `Cluster` |
| `persistence.enabled` | Use a PVC to persist data. | `true` |
| `persistence.path` | Path to mount the volume at, to use other images Redis&trade; images. | `/bitnami/redis/data` |
| `persistence.subPath` | The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services | `""` |
| `persistence.storageClass` | Storage class of backing PVC | `""` |
| `persistence.annotations` | Persistent Volume Claim annotations | `{}` |
| `persistence.accessModes` | Persistent Volume Access Modes | `["ReadWriteOnce"]` |
| `persistence.size` | Size of data volume | `8Gi` |
| `persistence.matchLabels` | Persistent Volume selectors | `{}` |
| `persistence.matchExpressions` | matchExpressions Persistent Volume selectors | `{}` |
| `volumePermissions.enabled` | Enable init container that changes volume permissions in the registry (for cases where the default k8s `runAsUser` and `fsUser` values do not work) | `false` |
| `volumePermissions.image.registry` | Init container volume-permissions image registry | `docker.io` |
| `volumePermissions.image.repository` | Init container volume-permissions image repository | `bitnami/bitnami-shell` |
| `volumePermissions.image.tag` | Init container volume-permissions image tag | `10-debian-10-r212` |
| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `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 | `{}` |
| `podSecurityPolicy.create` | Specifies whether a PodSecurityPolicy should be created | `false` |
### Redis&trade; statefulset parameters
| Name | Description | Value |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------- |
| `redis.command` | Redis&trade; entrypoint string. The command `redis-server` is executed if this is not provided | `[]` |
| `redis.args` | Arguments for the provided command if needed | `[]` |
| `redis.hostAliases` | Deployment pod host aliases | `[]` |
| `redis.useAOFPersistence` | Whether to use AOF Persistence mode or not | `yes` |
| `redis.port` | Redis&trade; port | `6379` |
| `redis.lifecycleHooks` | LifecycleHook to set additional configuration before or after startup. Evaluated as a template | `{}` |
| `redis.extraVolumes` | Extra volumes to add to the deployment | `[]` |
| `redis.extraVolumeMounts` | Extra volume mounts to add to the container | `[]` |
| `redis.customLivenessProbe` | Override default liveness probe | `{}` |
| `redis.customReadinessProbe` | Override default readiness probe | `{}` |
| `redis.initContainers` | Extra init containers to add to the deployment | `[]` |
| `redis.sidecars` | Extra sidecar containers to add to the deployment | `[]` |
| `redis.podLabels` | Additional labels for Redis&trade; pod | `{}` |
| `redis.priorityClassName` | Redis&trade; Master pod priorityClassName | `""` |
| `redis.configmap` | Additional Redis&trade; configuration for the nodes | `""` |
| `redis.extraEnvVars` | An array to add extra environment variables | `[]` |
| `redis.extraEnvVarsCM` | ConfigMap with extra environment variables | `""` |
| `redis.extraEnvVarsSecret` | Secret with extra environment variables | `""` |
| `redis.podAnnotations` | Redis&trade; additional annotations | `{}` |
| `redis.resources.limits` | The resources limits for the container | `{}` |
| `redis.resources.requests` | The requested resources for the container | `{}` |
| `redis.schedulerName` | Use an alternate scheduler, e.g. "stork". | `""` |
| `redis.shareProcessNamespace` | Enable shared process namespace in a pod. | `false` |
| `redis.livenessProbe.enabled` | Enable livenessProbe | `true` |
| `redis.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `5` |
| `redis.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `5` |
| `redis.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
| `redis.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `5` |
| `redis.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `redis.readinessProbe.enabled` | Enable readinessProbe | `true` |
| `redis.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
| `redis.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `5` |
| `redis.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` |
| `redis.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `5` |
| `redis.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `redis.podAffinityPreset` | Redis&trade; pod affinity preset. Ignored if `redis.affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `redis.podAntiAffinityPreset` | Redis&trade; pod anti-affinity preset. Ignored if `redis.affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `redis.nodeAffinityPreset.type` | Redis&trade; node affinity preset type. Ignored if `redis.affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `redis.nodeAffinityPreset.key` | Redis&trade; node label key to match Ignored if `redis.affinity` is set. | `""` |
| `redis.nodeAffinityPreset.values` | Redis&trade; node label values to match. Ignored if `redis.affinity` is set. | `[]` |
| `redis.affinity` | Affinity settings for Redis&trade; pod assignment | `{}` |
| `redis.nodeSelector` | Node labels for Redis&trade; pods assignment | `{}` |
| `redis.tolerations` | Tolerations for Redis&trade; pods assignment | `[]` |
| `redis.topologySpreadConstraints` | Pod topology spread constraints for Redis&trade; pod | `[]` |
| `redis.busPort` | The busPort should be obtained adding 10000 to the redisPort. By default: 10000 + 6379 = 16379 | `16379` |
| Name | Description | Value |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | --------------- |
| `redis.command` | Redis&trade; entrypoint string. The command `redis-server` is executed if this is not provided | `[]` |
| `redis.args` | Arguments for the provided command if needed | `[]` |
| `redis.updateStrategy.type` | Argo Workflows statefulset strategy type | `RollingUpdate` |
| `redis.updateStrategy.rollingUpdate.partition` | Partition update strategy | `0` |
| `redis.podManagementPolicy` | Statefulset Pod management policy, it needs to be Parallel to be able to complete the cluster join | `Parallel` |
| `redis.hostAliases` | Deployment pod host aliases | `[]` |
| `redis.useAOFPersistence` | Whether to use AOF Persistence mode or not | `yes` |
| `redis.containerPorts.redis` | Redis&trade; port | `6379` |
| `redis.containerPorts.bus` | The busPort should be obtained adding 10000 to the redisPort. By default: 10000 + 6379 = 16379 | `16379` |
| `redis.lifecycleHooks` | LifecycleHook to set additional configuration before or after startup. Evaluated as a template | `{}` |
| `redis.extraVolumes` | Extra volumes to add to the deployment | `[]` |
| `redis.extraVolumeMounts` | Extra volume mounts to add to the container | `[]` |
| `redis.customLivenessProbe` | Override default liveness probe | `{}` |
| `redis.customReadinessProbe` | Override default readiness probe | `{}` |
| `redis.customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
| `redis.initContainers` | Extra init containers to add to the deployment | `[]` |
| `redis.sidecars` | Extra sidecar containers to add to the deployment | `[]` |
| `redis.podLabels` | Additional labels for Redis&trade; pod | `{}` |
| `redis.priorityClassName` | Redis&trade; Master pod priorityClassName | `""` |
| `redis.configmap` | Additional Redis&trade; configuration for the nodes | `""` |
| `redis.extraEnvVars` | An array to add extra environment variables | `[]` |
| `redis.extraEnvVarsCM` | ConfigMap with extra environment variables | `""` |
| `redis.extraEnvVarsSecret` | Secret with extra environment variables | `""` |
| `redis.podAnnotations` | Redis&trade; additional annotations | `{}` |
| `redis.resources.limits` | The resources limits for the container | `{}` |
| `redis.resources.requests` | The requested resources for the container | `{}` |
| `redis.schedulerName` | Use an alternate scheduler, e.g. "stork". | `""` |
| `redis.shareProcessNamespace` | Enable shared process namespace in a pod. | `false` |
| `redis.livenessProbe.enabled` | Enable livenessProbe | `true` |
| `redis.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `5` |
| `redis.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `5` |
| `redis.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
| `redis.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `5` |
| `redis.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `redis.readinessProbe.enabled` | Enable readinessProbe | `true` |
| `redis.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
| `redis.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `5` |
| `redis.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` |
| `redis.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `5` |
| `redis.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `redis.startupProbe.enabled` | Enable startupProbe | `false` |
| `redis.startupProbe.path` | Path to check for startupProbe | `/` |
| `redis.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `300` |
| `redis.startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
| `redis.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `5` |
| `redis.startupProbe.failureThreshold` | Failure threshold for startupProbe | `6` |
| `redis.startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
| `redis.podAffinityPreset` | Redis&trade; pod affinity preset. Ignored if `redis.affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `redis.podAntiAffinityPreset` | Redis&trade; pod anti-affinity preset. Ignored if `redis.affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `redis.nodeAffinityPreset.type` | Redis&trade; node affinity preset type. Ignored if `redis.affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `redis.nodeAffinityPreset.key` | Redis&trade; node label key to match Ignored if `redis.affinity` is set. | `""` |
| `redis.nodeAffinityPreset.values` | Redis&trade; node label values to match. Ignored if `redis.affinity` is set. | `[]` |
| `redis.affinity` | Affinity settings for Redis&trade; pod assignment | `{}` |
| `redis.nodeSelector` | Node labels for Redis&trade; pods assignment | `{}` |
| `redis.tolerations` | Tolerations for Redis&trade; pods assignment | `[]` |
| `redis.topologySpreadConstraints` | Pod topology spread constraints for Redis&trade; pod | `[]` |
### Cluster update job parameters
@@ -257,30 +275,37 @@ The command removes all the Kubernetes components associated with the chart and
### Metrics sidecar parameters
| Name | Description | Value |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------ |
| `metrics.enabled` | Start a side-car prometheus exporter | `false` |
| `metrics.image.registry` | Redis&trade; exporter image registry | `docker.io` |
| `metrics.image.repository` | Redis&trade; exporter image name | `bitnami/redis-exporter` |
| `metrics.image.tag` | Redis&trade; exporter image tag | `1.27.1-debian-10-r12` |
| `metrics.image.pullPolicy` | Redis&trade; exporter image pull policy | `IfNotPresent` |
| `metrics.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
| `metrics.resources` | Metrics exporter resource requests and limits | `{}` |
| `metrics.extraArgs` | Extra arguments for the binary; possible values [here](https://github.com/oliver006/redis_exporter | `{}` |
| `metrics.podAnnotations` | Additional annotations for Metrics exporter pod | `{}` |
| `metrics.podLabels` | Additional labels for Metrics exporter pod | `{}` |
| `metrics.serviceMonitor.enabled` | If `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`) | `false` |
| `metrics.serviceMonitor.namespace` | Optional namespace which Prometheus is running in | `""` |
| `metrics.serviceMonitor.interval` | How frequently to scrape metrics (use by default, falling back to Prometheus' default) | `""` |
| `metrics.prometheusRule.enabled` | Set this to true to create prometheusRules for Prometheus operator | `false` |
| `metrics.prometheusRule.additionalLabels` | Additional labels that can be used so prometheusRules will be discovered by Prometheus | `{}` |
| `metrics.prometheusRule.namespace` | namespace where prometheusRules resource should be created | `""` |
| `metrics.prometheusRule.rules` | (https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) to be created, check values for an example. | `[]` |
| `metrics.priorityClassName` | Metrics exporter pod priorityClassName | `""` |
| `metrics.service.type` | Kubernetes Service type (redis metrics) | `ClusterIP` |
| `metrics.service.loadBalancerIP` | Use serviceLoadBalancerIP to request a specific static IP, otherwise leave blank | `""` |
| `metrics.service.annotations` | Annotations for the services to monitor. | `{}` |
| `metrics.service.labels` | Additional labels for the metrics service | `{}` |
| Name | Description | Value |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------ |
| `metrics.enabled` | Start a side-car prometheus exporter | `false` |
| `metrics.image.registry` | Redis&trade; exporter image registry | `docker.io` |
| `metrics.image.repository` | Redis&trade; exporter image name | `bitnami/redis-exporter` |
| `metrics.image.tag` | Redis&trade; exporter image tag | `1.27.1-debian-10-r12` |
| `metrics.image.pullPolicy` | Redis&trade; exporter image pull policy | `IfNotPresent` |
| `metrics.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
| `metrics.resources` | Metrics exporter resource requests and limits | `{}` |
| `metrics.extraArgs` | Extra arguments for the binary; possible values [here](https://github.com/oliver006/redis_exporter | `{}` |
| `metrics.podAnnotations` | Additional annotations for Metrics exporter pod | `{}` |
| `metrics.podLabels` | Additional labels for Metrics exporter pod | `{}` |
| `metrics.serviceMonitor.enabled` | If `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`) | `false` |
| `metrics.serviceMonitor.namespace` | Optional namespace which Prometheus is running in | `""` |
| `metrics.serviceMonitor.interval` | How frequently to scrape metrics (use by default, falling back to Prometheus' default) | `""` |
| `metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `""` |
| `metrics.serviceMonitor.selector` | Prometheus instance selector labels | `{}` |
| `metrics.serviceMonitor.labels` | ServiceMonitor extra labels | `{}` |
| `metrics.serviceMonitor.annotations` | ServiceMonitor annotations | `{}` |
| `metrics.serviceMonitor.jobLabel` | The name of the label on the target service to use as the job name in prometheus. | `""` |
| `metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` |
| `metrics.serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples before ingestion | `[]` |
| `metrics.prometheusRule.enabled` | Set this to true to create prometheusRules for Prometheus operator | `false` |
| `metrics.prometheusRule.additionalLabels` | Additional labels that can be used so prometheusRules will be discovered by Prometheus | `{}` |
| `metrics.prometheusRule.namespace` | namespace where prometheusRules resource should be created | `""` |
| `metrics.prometheusRule.rules` | (https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) to be created, check values for an example. | `[]` |
| `metrics.priorityClassName` | Metrics exporter pod priorityClassName | `""` |
| `metrics.service.type` | Kubernetes Service type (redis metrics) | `ClusterIP` |
| `metrics.service.loadBalancerIP` | Use serviceLoadBalancerIP to request a specific static IP, otherwise leave blank | `""` |
| `metrics.service.annotations` | Annotations for the services to monitor. | `{}` |
| `metrics.service.labels` | Additional labels for the metrics service | `{}` |
### Sysctl Image parameters
@@ -561,6 +586,17 @@ Find more information about how to deal with common errors related to Bitnami
## Upgrading
### To 7.0.0
This major release renames several values in this chart and adds missing features, in order to be inline with the rest of assets in the Bitnami charts repository.
Since this version performs changes in the statefulset, in order to upgrade from previous versions you need to delete the statefulset object before the upgrade.
```console
kubectl delete statefulset <statefulsetName>
helm upgrade <release-name> bitnami/redis-cluster --set redis.password=<REDIS_PASSWORD>
```
### To 6.0.0
The cluster initialization job have been removed. Instead, the pod with index 0 from the statefulset will handle the initialization of the cluster.

View File

@@ -51,7 +51,7 @@ To connect to your Redis&trade; server from outside the cluster check the follow
To connect to your database from outside the cluster execute the following commands:
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "common.names.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
redis-cli -c -h $SERVICE_IP -p {{ .Values.service.port }} {{- if .Values.usePassword }} -a $REDIS_PASSWORD{{ end }}{{ if .Values.tls.enabled }} --tls --cert /tmp/client.cert --key /tmp/client.key --cacert /tmp/CA.cert{{ end }}
redis-cli -c -h $SERVICE_IP -p {{ .Values.service.ports.redis }} {{- if .Values.usePassword }} -a $REDIS_PASSWORD{{ end }}{{ if .Values.tls.enabled }} --tls --cert /tmp/client.cert --key /tmp/client.key --cacert /tmp/CA.cert{{ end }}
{{- end }}
{{- else }}

View File

@@ -15,9 +15,9 @@ spec:
publishNotReadyAddresses: true
ports:
- name: tcp-redis
port: {{ .Values.redis.port }}
port: {{ .Values.redis.containerPorts.redis }}
targetPort: tcp-redis
- name: tcp-redis-bus
port: {{ .Values.redis.busPort }}
port: {{ .Values.redis.containerPorts.bus }}
targetPort: tcp-redis-bus
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}

View File

@@ -10,17 +10,41 @@ metadata:
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- if .Values.metrics.serviceMonitor.labels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.labels "context" $ ) | nindent 4 }}
{{- end }}
{{- if or .Values.commonAnnotations .Values.metrics.serviceMonitor.annotations }}
annotations:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.metrics.serviceMonitor.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.annotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
spec:
{{- if .Values.serviceMonitor.jobLabel }}
jobLabel: {{ .Values.serviceMonitor.jobLabel }}
{{- end }}
endpoints:
- port: metrics
{{- if .Values.metrics.serviceMonitor.interval }}
interval: {{ .Values.metrics.serviceMonitor.interval }}
{{- end }}
{{- if .Values.metrics.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }}
{{- end }}
{{- if .Values.serviceMonitor.relabelings }}
relabelings: {{- include "common.tplvalues.render" ( dict "value" .Values.serviceMonitor.relabelings "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.serviceMonitor.metricRelabelings }}
metricRelabelings: {{- include "common.tplvalues.render" ( dict "value" .Values.serviceMonitor.metricRelabelings "context" $) | nindent 8 }}
{{- end }}
selector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
{{- if .Values.metrics.serviceMonitor.selector }}
{{- include "common.tplvalues.render" (dict "value" .Values.metrics.serviceMonitor.selector "context" $) | nindent 6 }}
{{- end }}
app.kubernetes.io/component: "metrics"
namespaceSelector:
matchNames:

View File

@@ -25,16 +25,16 @@ spec:
protocol: UDP
# Allow outbound connections to other cluster pods
- ports:
- port: {{ .Values.redis.port }}
- port: {{ .Values.redis.busPort }}
- port: {{ .Values.redis.containerPorts.redis }}
- port: {{ .Values.redis.containerPorts.bus }}
to:
- podSelector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 14 }}
ingress:
# Allow inbound connections
- ports:
- port: {{ .Values.redis.port }}
- port: {{ .Values.redis.busPort }}
- port: {{ .Values.redis.containerPorts.redis }}
- port: {{ .Values.redis.containerPorts.bus }}
from:
{{- if not .Values.networkPolicy.allowExternal }}
- podSelector:

View File

@@ -7,7 +7,14 @@ metadata:
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- if or .Values.serviceAccount.annotations .Values.commonAnnotations }}
annotations:
{{- if .Values.serviceAccount.annotations }}
{{- include "common.tplvalues.render" (dict "value" .Values.serviceAccount.annotations "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }}
{{- end }}
{{- end }}
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
{{- end -}}

View File

@@ -11,11 +11,14 @@ metadata:
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
{{- if .Values.redis.updateStrategy }}
updateStrategy: {{- toYaml .Values.redis.updateStrategy | nindent 4 }}
{{- end }}
selector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
replicas: {{ .Values.cluster.nodes }}
serviceName: {{ include "common.names.fullname" . }}-headless
podManagementPolicy: "Parallel"
podManagementPolicy: {{ .Values.redis.podManagementPolicy }}
template:
metadata:
labels: {{- include "common.labels.standard" . | nindent 8 }}
@@ -165,7 +168,7 @@ spec:
value: {{ ternary "yes" "no" .Values.tls.enabled | quote }}
{{- if .Values.tls.enabled }}
- name: REDIS_TLS_PORT
value: {{ .Values.redis.port | quote }}
value: {{ .Values.redis.containerPorts.redis | quote }}
- name: REDIS_TLS_AUTH_CLIENTS
value: {{ ternary "yes" "no" .Values.tls.authClients | quote }}
- name: REDIS_TLS_CERT_FILE
@@ -180,7 +183,7 @@ spec:
{{- end }}
{{- else }}
- name: REDIS_PORT
value: {{ .Values.redis.port | quote }}
value: {{ .Values.redis.containerPorts.redis | quote }}
{{- end }}
{{- if .Values.redis.extraEnvVars }}
{{- include "common.tplvalues.render" ( dict "value" .Values.redis.extraEnvVars "context" $ ) | nindent 12 }}
@@ -198,9 +201,9 @@ spec:
{{- end }}
ports:
- name: tcp-redis
containerPort: {{ .Values.redis.port }}
containerPort: {{ .Values.redis.containerPorts.redis }}
- name: tcp-redis-bus
containerPort: {{ .Values.redis.busPort }}
containerPort: {{ .Values.redis.containerPorts.bus }}
{{- if not .Values.diagnosticMode.enabled }}
{{- if .Values.redis.livenessProbe.enabled }}
livenessProbe:
@@ -234,6 +237,18 @@ spec:
{{- else if .Values.redis.customReadinessProbe }}
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.redis.customReadinessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.redis.startupProbe.enabled }}
startupProbe:
tcpSocket:
port: tcp-redis
initialDelaySeconds: {{ .Values.redis.startupProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.redis.startupProbe.periodSeconds }}
timeoutSeconds: {{ .Values.redis.startupProbe.timeoutSeconds }}
successThreshold: {{ .Values.redis.startupProbe.successThreshold }}
failureThreshold: {{ .Values.redis.startupProbe.failureThreshold }}
{{- else if .Values.redis.customStartupProbe }}
startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.redis.customStartupProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.redis.lifecycleHooks }}
lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.redis.lifecycleHooks "context" $) | nindent 12 }}
{{- end }}
@@ -288,7 +303,7 @@ spec:
- name: REDIS_ALIAS
value: {{ template "common.names.fullname" . }}
- name: REDIS_ADDR
value: {{ printf "%s://127.0.0.1:%g" (ternary "rediss" "redis" .Values.tls.enabled) .Values.redis.port | quote }}
value: {{ printf "%s://127.0.0.1:%g" (ternary "rediss" "redis" .Values.tls.enabled) .Values.redis.containerPorts.redis | quote }}
{{- if and .Values.usePassword (not .Values.usePasswordFile) }}
- name: REDIS_PASSWORD
valueFrom:
@@ -407,6 +422,10 @@ spec:
volumeClaimTemplates:
- metadata:
name: redis-data
labels: {{- include "common.labels.matchLabels" . | nindent 10 }}
{{- if .Values.persistence.annotations }}
annotations: {{- include "common.tplvalues.render" (dict "value" .Values.persistence.annotations "context" $) | nindent 10 }}
{{- end }}
spec:
accessModes:
{{- range .Values.persistence.accessModes }}
@@ -428,14 +447,4 @@ spec:
{{- end -}}
{{- end }}
{{- end }}
updateStrategy:
type: {{ .Values.statefulset.updateStrategy }}
{{- if .Values.statefulset.rollingUpdatePartition }}
{{- if (eq "Recreate" .Values.statefulset.updateStrategy) }}
rollingUpdate: null
{{- else }}
rollingUpdate:
partition: {{ .Values.statefulset.rollingUpdatePartition }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -18,11 +18,29 @@ metadata:
{{- end }}
spec:
type: {{ .Values.service.type }}
{{- if and .Values.service.clusterIP (eq .Values.service.type "ClusterIP") }}
clusterIP: {{ .Values.service.clusterIP }}
{{- end }}
{{- if or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort") }}
externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }}
{{- end }}
{{- if and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges: {{- toYaml . | nindent 4 }}
{{- end }}
{{- if and (eq "LoadBalancer" .Values.service.type) .Values.service.loadBalancerIP }}
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
{{- end}}
ports:
- name: tcp-redis
port: {{ .Values.service.port }}
port: {{ .Values.service.ports.redis }}
targetPort: tcp-redis
protocol: TCP
{{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.redis)) }}
nodePort: {{ .Values.service.nodePorts.redis }}
{{- else if eq .Values.service.type "ClusterIP" }}
nodePort: null
{{- end }}
{{- if .Values.service.extraPorts }}
{{- include "common.tplvalues.render" (dict "value" .Values.service.extraPorts "context" $) | nindent 4 }}
{{- end }}
selector: {{- include "common.labels.matchLabels" $ | nindent 4 }}

View File

@@ -35,7 +35,7 @@ spec:
targetPort: tcp-redis
- name: tcp-redis-bus
targetPort: tcp-redis-bus
port: {{ $root.Values.redis.busPort }}
port: {{ $root.Values.redis.containerPorts.bus }}
selector: {{- include "common.labels.matchLabels" $ | nindent 4 }}
statefulset.kubernetes.io/pod-name: {{ $targetPod }}
---

View File

@@ -102,6 +102,7 @@ networkPolicy:
allowExternal: true
ingressNSMatchLabels: {}
ingressNSPodMatchLabels: {}
serviceAccount:
## @param serviceAccount.create Specifies whether a ServiceAccount should be created
##
@@ -110,6 +111,13 @@ serviceAccount:
## If not set and create is true, a name is generated using the fullname template
##
name: ""
## @param serviceAccount.annotations Annotations for Cassandra Service Account
##
annotations: {}
## @param serviceAccount.automountServiceAccountToken Automount API credentials for a service account.
##
automountServiceAccountToken: false
rbac:
## @param rbac.create Specifies whether RBAC resources should be created
##
@@ -157,10 +165,12 @@ maxUnavailable: ""
## Containers Security Context
## @param containerSecurityContext.enabled Enable Containers' Security Context
## @param containerSecurityContext.runAsUser User ID for the containers.
## @param containerSecurityContext.runAsNonRoot Run container as non root
##
containerSecurityContext:
enabled: true
runAsUser: 1001
runAsNonRoot: true
## @param usePassword Use password authentication
##
usePassword: true
@@ -212,9 +222,19 @@ tls:
## Redis&trade; Service properties for standalone mode.
##
service:
## @param service.port Kubernetes Service port
## @param service.ports.redis Kubernetes Redis service port
##
port: 6379
ports:
redis: 6379
## Node ports to expose
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
## @param service.nodePorts.redis Node port for Redis
##
nodePorts:
redis: ""
## @param service.extraPorts Extra ports to expose in the service (normally used with the `sidecar` value)
##
extraPorts: []
## @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
@@ -228,9 +248,25 @@ service:
## Currently supported types are ClusterIP (default) and LoadBalancer
##
type: ClusterIP
## @param service.clusterIP Service Cluster IP
## e.g.:
## clusterIP: None
##
clusterIP: ""
## @param service.loadBalancerIP Load balancer IP if `service.type` is `LoadBalancer`
## If service.type is LoadBalancer, request a specific static IP address if supported by the cloud provider, otherwise leave blank
loadBalancerIP: ""
## @param service.loadBalancerSourceRanges 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 Service external traffic policy
## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
##
externalTrafficPolicy: Cluster
## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
@@ -252,6 +288,9 @@ persistence:
## GKE, AWS & OpenStack)
##
storageClass: ""
## @param persistence.annotations Persistent Volume Claim annotations
##
annotations: {}
## @param persistence.accessModes Persistent Volume Access Modes
##
accessModes:
@@ -266,17 +305,7 @@ persistence:
## @param persistence.matchExpressions matchExpressions Persistent Volume selectors
##
matchExpressions: {}
## Update strategy, can be set to RollingUpdate or onDelete by default.
## https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets
##
statefulset:
## @param statefulset.updateStrategy Update strategy for StatefulSet
##
updateStrategy: RollingUpdate
## @param statefulset.rollingUpdatePartition Partition update strategy
## https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions
##
rollingUpdatePartition: ""
## Init containers parameters:
## volumePermissions: Change the owner of the persist volume mountpoint to RunAsUser:fsGroup
##
@@ -335,6 +364,24 @@ redis:
## @param redis.args Arguments for the provided command if needed
##
args: []
## @param redis.updateStrategy.type Argo Workflows statefulset strategy type
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
##
updateStrategy:
## StrategyType
## Can be set to RollingUpdate or OnDelete
##
type: RollingUpdate
## @param redis.updateStrategy.rollingUpdate.partition Partition update strategy
## https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions
##
rollingUpdate:
partition: 0
## @param redis.podManagementPolicy Statefulset Pod management policy, it needs to be Parallel to be able to complete the cluster join
## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
##
podManagementPolicy: Parallel
## @param redis.hostAliases Deployment pod host aliases
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
##
@@ -345,9 +392,12 @@ redis:
## ref: https://redis.io/topics/cluster-tutorial#creating-and-using-a-redis-cluster
##
useAOFPersistence: "yes"
## @param redis.port Redis&trade; port
## @param redis.containerPorts.redis Redis&trade; port
## @param redis.containerPorts.bus The busPort should be obtained adding 10000 to the redisPort. By default: 10000 + 6379 = 16379
##
port: 6379
containerPorts:
redis: 6379
bus: 16379
## @param redis.lifecycleHooks LifecycleHook to set additional configuration before or after startup. Evaluated as a template
##
lifecycleHooks: {}
@@ -363,6 +413,9 @@ redis:
## @param redis.customReadinessProbe Override default readiness probe
##
customReadinessProbe: {}
## @param redis.customStartupProbe Custom startupProbe that overrides the default one
##
customStartupProbe: {}
## @param redis.initContainers Extra init containers to add to the deployment
##
initContainers: []
@@ -456,6 +509,22 @@ redis:
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 5
## @param redis.startupProbe.enabled Enable startupProbe
## @param redis.startupProbe.path Path to check for startupProbe
## @param redis.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
## @param redis.startupProbe.periodSeconds Period seconds for startupProbe
## @param redis.startupProbe.timeoutSeconds Timeout seconds for startupProbe
## @param redis.startupProbe.failureThreshold Failure threshold for startupProbe
## @param redis.startupProbe.successThreshold Success threshold for startupProbe
##
startupProbe:
enabled: false
path: /
initialDelaySeconds: 300
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 6
successThreshold: 1
## @param redis.podAffinityPreset Redis&trade; pod affinity preset. Ignored if `redis.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
##
@@ -501,9 +570,6 @@ redis:
## The value is evaluated as a template
##
topologySpreadConstraints: []
## @param redis.busPort The busPort should be obtained adding 10000 to the redisPort. By default: 10000 + 6379 = 16379
##
busPort: 16379
## @section Cluster update job parameters
@@ -730,6 +796,36 @@ metrics:
## @param metrics.serviceMonitor.interval How frequently to scrape metrics (use by default, falling back to Prometheus' default)
##
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: ""
## @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: {}
## @param metrics.serviceMonitor.labels ServiceMonitor extra labels
##
labels: {}
## @param metrics.serviceMonitor.annotations ServiceMonitor annotations
##
annotations: {}
## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
##
jobLabel: ""
## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
##
relabelings: []
## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
##
metricRelabelings: []
## Custom PrometheusRule to be defined
## The value is evaluated as a template, so, for example, the value can depend on .Release or .Chart
## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions