diff --git a/stable/rabbitmq-ha/Chart.yaml b/stable/rabbitmq-ha/Chart.yaml index 2b2eb960b0..0a904d3366 100644 --- a/stable/rabbitmq-ha/Chart.yaml +++ b/stable/rabbitmq-ha/Chart.yaml @@ -1,7 +1,7 @@ name: rabbitmq-ha apiVersion: v1 appVersion: 3.8.0 -version: 1.40.1 +version: 1.40.2 description: Highly available RabbitMQ cluster, the open source message broker software that implements the Advanced Message Queuing Protocol (AMQP). keywords: diff --git a/stable/rabbitmq-ha/README.md b/stable/rabbitmq-ha/README.md index d486af2d2b..680b53bdd3 100644 --- a/stable/rabbitmq-ha/README.md +++ b/stable/rabbitmq-ha/README.md @@ -63,127 +63,128 @@ deletes the release. The following table lists the configurable parameters of the RabbitMQ chart and their default values. -| Parameter | Description | Default | -|------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------| -| `existingConfigMap` | Use an existing ConfigMap | `false` | -| `existingSecret` | Use an existing secret for password, managementPassword & erlang cookie | `""`                               | -| `extraPlugins` | Additional plugins to add to the default configmap | `rabbitmq_shovel, rabbitmq_shovel_management, rabbitmq_federation, rabbitmq_federation_management,` | -| `extraConfig` | Additional configuration to add to default configmap | `{}` | -| `extraContainers` | Additional containers passed through the tpl | `[]` | -| `extraInitContainers` | Additional init containers passed through the tpl | `[]` | -| `env` | Environment variables to set for Rabbitmq container | `{}` | -| `advancedConfig` | Additional configuration in classic config format | `""` | -| `definitions.globalParameters` | Pre-configured global parameters | `""` | -| `definitions.users` | Additional users | `""` | -| `definitions.vhosts` | Additional vhosts | `""` | -| `definitions.parameters` | Additional parameters | `""` | -| `definitions.permissions` | Additional permissions | `""` | -| `definitions.queues` | Pre-created queues | `""` | -| `definitions.exchanges` | Pre-created exchanges | `""` | -| `definitions.bindings` | Pre-created bindings | `""` | -| `definitions.policies` | HA policies to add to definitions.json | `""` | -| `definitionsSource` | Use this key within an existing secret to reference the definitions specification | `"definitions.json"` | -| `forceBoot` | [Force](https://www.rabbitmq.com/rabbitmqctl.8.html#force_boot) the cluster to start even if it was shutdown in an unexpected order, preferring availability over integrity | `false` | -| `lifecycle` | RabbitMQ container lifecycle hooks | `{}` | -| `image.pullPolicy` | Image pull policy | `IfNotPresent` | -| `image.repository` | RabbitMQ container image repository | `rabbitmq` | -| `image.tag` | RabbitMQ container image tag | `3.8.0-alpine` | -| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | -| `managementPassword` | Management user password. | _random 24 character long alphanumeric string_ | -| `managementUsername` | Management user with minimal permissions used for health checks | `management` | -| `nodeSelector` | Node labels for pod assignment | `{}` | -| `persistentVolume.accessMode` | Persistent volume access modes | `[ReadWriteOnce]` | -| `persistentVolume.annotations` | Persistent volume annotations | `{}` | -| `persistentVolume.labels` | Persistent volume labels | `{}` | -| `persistentVolume.enabled` | If `true`, persistent volume claims are created | `false` | -| `persistentVolume.name` | Persistent volume name | `data` | -| `persistentVolume.size` | Persistent volume size | `8Gi` | -| `persistentVolume.storageClass` | Persistent volume storage class | `-` | -| `podAntiAffinity` | Pod anti-affinity, `hard` or `soft` | `soft` | -| `podAntiAffinityTopologyKey` | TopologyKey for anti-affinity, default is hostname | `"kubernetes.io/hostname"` | -| `affinity` | Affinity settings. If specified, this will disable `podAntiAffinity` settings. If you still need anti-affinity, you must include the configuration here. | `{}` | -| `podDisruptionBudget` | Pod Disruption Budget rules | `{}` | -| `podManagementPolicy` | Whether the pods should be restarted in parallel or one at a time. Either `OrderedReady` or `Parallel`. | `OrderedReady` | -| `prometheus.exporter.enabled` | Configures Prometheus Exporter to expose and scrape stats | `false` | -| `prometheus.exporter.env` | Environment variables to set for Exporter container | `{}` | -| `prometheus.exporter.image.repository` | Prometheus Exporter repository | `kbudde/rabbitmq-exporter` | -| `prometheus.exporter.image.tag` | Image Tag | `v0.29.0` | -| `prometheus.exporter.image.pullPolicy` | Image Pull Policy | `IfNotPresent` | -| `prometheus.exporter.port` | Port Prometheus scrapes for metrics | `9090` | -| `prometheus.exporter.capabilities` | Comma-separated list of extended scraping capabilities supported by the target RabbitMQ server. [Click here for details.](https://github.com/kbudde/rabbitmq_exporter#extended-rabbitmq-capabilities) | `bert,no_sort` | -| `prometheus.exporter.resources` | Resource Limits for Prometheus Exporter | `{}` | -| `prometheus.operator.enabled` | Are you using Prometheus Operator? [Blog Post](https://coreos.com/blog/the-prometheus-operator.html) | `true` | -| `prometheus.operator.alerts.enabled` | Create default Alerts for RabbitMQ | `true` | -| `prometheus.operator.alerts.selector` | Selector to find ConfigMaps and create Prometheus Alerts | `alert-rules` | -| `prometheus.operator.alerts.labels` | Labels to add to Alerts | `{}` | -| `prometheus.operator.serviceMonitor.interval` | How often Prometheus Scrapes metrics | `10s` | -| `prometheus.operator.serviceMonitor.namespace` | Namespace which Prometheus is installed | `monitoring` | -| `prometheus.operator.serviceMonitor.selector` | Label Selector for Prometheus to find ServiceMonitors | `{ prometheus: kube-prometheus }` | -| `rabbitmqCert.enabled` | Mount a Secret container certificates | `false` | -| `rabbitmqCert.cacertfile` | base64 encoded CA certificate (overwrites existing Secret) | `` | -| `rabbitmqCert.certfile` | base64 encoded server certificate (overwrites existing Secret) | `` | -| `rabbitmqCert.existingSecret` | Name of an existing `Secret` to mount for amqps | `""` | -| `rabbitmqCert.keyfile` | base64 encoded server private key (overwrites existing Secret) | `` | -| `rabbitmqClusterPartitionHandling` | [Automatic Partition Handling Strategy (split brain handling)](https://www.rabbitmq.com/partitions.html#automatic-handling) | `autoheal` | -| `extraVolumes` | Extra volumes to attach to the statefulset | `[]` | -| `extraVolumeMounts` | Extra volume mounts to mount to the statefulset | `[]` | -| `rabbitmqEpmdPort` | EPMD port used for cross cluster replication | `4369` | -| `rabbitmqErlangCookie` | Erlang cookie | _random 32 character long alphanumeric string_ | -| `rabbitmqHipeCompile` | Precompile parts of RabbitMQ using HiPE | `false` | -| `rabbitmqMQTTPlugin.config` | MQTT configuration | `` | -| `rabbitmqMQTTPlugin.enabled` | Enable MQTT plugin | `false` | -| `rabbitmqManagerPort` | RabbitMQ Manager port | `15672` | -| `rabbitmqMemoryHighWatermark` | Memory high watermark | `256MB` | -| `rabbitmqMemoryHighWatermarkType` | Memory high watermark type. Either absolute or relative | `absolute` | -| `rabbitmqNodePort` | Node port | `5672` | -| `rabbitmqPassword` | RabbitMQ application password | _random 24 character long alphanumeric string_ | -| `rabbitmqSTOMPPlugin.config` | STOMP configuration | `` | -| `rabbitmqSTOMPPlugin.enabled` | Enable STOMP plugin | `false` | -| `rabbitmqUsername` | RabbitMQ application username | `guest` | -| `rabbitmqVhost` | RabbitMQ application vhost | `/` | -| `rabbitmqWebMQTTPlugin.config` | MQTT over websocket configuration | `` | -| `rabbitmqWebMQTTPlugin.enabled` | Enable MQTT over websocket plugin | `false` | -| `rabbitmqWebSTOMPPlugin.config` | STOMP over websocket configuration | `` | -| `rabbitmqWebSTOMPPlugin.enabled` | Enable STOMP over websocket plugin | `false` | -| `rabbitmqPrometheusPlugin.enabled` | Enable native RabbitMQ prometheus plugin. (Available in RabbitMQ 3.8) | `false` | -| `rabbitmqPrometheusPlugin.nodePort` | Exposes the native prometheus metrics port on the given NodePort | `null` | -| `rabbitmqPrometheusPlugin.port` | The port RabbitMQ prometheus plugin will use | `15692` | -| `rabbitmqPrometheusPlugin.path` | The path RabbitMQ prometheus plugin will use | `/metrics` | -| `rabbitmqPrometheusPlugin.config` | RabbitMQ prometheus plugin aditional configuration | `` | -| `rbac.create` | If true, create & use RBAC resources | `true` | -| `replicaCount` | Number of replica | `3` | -| `resources` | CPU/Memory resource requests/limits | `{}` | -| `schedulerName` | alternate scheduler name | `nil` | -| `securityContext.fsGroup` | Group ID for the container's volumes | `101` | -| `securityContext.runAsGroup` | Group ID for the container | `101` | -| `securityContext.runAsNonRoot` | Enforce non-root user ID for the container | `true` | -| `securityContext.runAsUser` | User ID for the container | `100` | -| `serviceAccount.create` | Create service account | `true` | -| `serviceAccount.automountServiceAccountToken` | Automount API credentials for a service account | `true` | -| `serviceAccount.name` | Service account name to use | _name of the release_ | -| `service.annotations` | Annotations to add to the service | `{}` | -| `service.clusterIP` | IP address to assign to the service | None | -| `service.externalIPs` | Service external IP addresses | `[]` | -| `service.loadBalancerIP` | IP address to assign to load balancer (if supported) | `""` | -| `service.loadBalancerSourceRanges` | List of IP CIDRs allowed access to load balancer (if supported) | `[]` | -| `service.type` | Type of service to create | `ClusterIP` | -| `ingress.enabled` | Enable Ingress | `false` | -| `ingress.path` | Ingress path | `/` | -| `ingress.hostName` | Ingress hostname | | -| `ingress.tls` | Enable Ingress TLS | `false` | -| `ingress.tlsSecret` | Ingress TLS secret name | `myTlsSecret` | -| `ingress.annotations` | Ingress annotations | `{}` | -| `tolerations` | Toleration labels for pod assignment | `[]` | -| `podAnnotations` | Extra annotations to add to pod | `{}` | -| `statefulSetAnnotations` | Extra annotations to add the statefulSet | `{}` | -| `terminationGracePeriodSeconds` | Duration pod needs to terminate gracefully | `10` | -| `updateStrategy` | Statefulset update strategy | `OnDelete` | -| `priorityClassName` | Statefulsets Pod Priority | `` | -| `extraLabels` | Labels to add to the Resources | `{}` | -| `busyboxImage.repository` | Busybox initContainer image repo | `busybox` | -| `busyboxImage.tag` | Busybox initContainer image tag | `1.30.1` | -| `busyboxImage.pullPolicy` | Busybox initContainer image pullPolicy | `IfNotPresent` | -| `clusterDomain` | The internal Kubernetes cluster domain | `cluster.local` | +| Parameter | Description | Default | +|-----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------| +| `existingConfigMap` | Use an existing ConfigMap | `false` | +| `existingSecret` | Use an existing secret for password, managementPassword & erlang cookie | `""`                               | +| `extraPlugins` | Additional plugins to add to the default configmap | `rabbitmq_shovel, rabbitmq_shovel_management, rabbitmq_federation, rabbitmq_federation_management,` | +| `extraConfig` | Additional configuration to add to default configmap | `{}` | +| `extraContainers` | Additional containers passed through the tpl | `[]` | +| `extraInitContainers` | Additional init containers passed through the tpl | `[]` | +| `env` | Environment variables to set for Rabbitmq container | `{}` | +| `advancedConfig` | Additional configuration in classic config format | `""` | +| `definitions.globalParameters` | Pre-configured global parameters | `""` | +| `definitions.users` | Additional users | `""` | +| `definitions.vhosts` | Additional vhosts | `""` | +| `definitions.parameters` | Additional parameters | `""` | +| `definitions.permissions` | Additional permissions | `""` | +| `definitions.queues` | Pre-created queues | `""` | +| `definitions.exchanges` | Pre-created exchanges | `""` | +| `definitions.bindings` | Pre-created bindings | `""` | +| `definitions.policies` | HA policies to add to definitions.json | `""` | +| `definitionsSource` | Use this key within an existing secret to reference the definitions specification | `"definitions.json"` | +| `forceBoot` | [Force](https://www.rabbitmq.com/rabbitmqctl.8.html#force_boot) the cluster to start even if it was shutdown in an unexpected order, preferring availability over integrity | `false` | +| `lifecycle` | RabbitMQ container lifecycle hooks | `{}` | +| `image.pullPolicy` | Image pull policy | `IfNotPresent` | +| `image.repository` | RabbitMQ container image repository | `rabbitmq` | +| `image.tag` | RabbitMQ container image tag | `3.8.0-alpine` | +| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | +| `managementPassword` | Management user password. | _random 24 character long alphanumeric string_ | +| `managementUsername` | Management user with minimal permissions used for health checks | `management` | +| `nodeSelector` | Node labels for pod assignment | `{}` | +| `persistentVolume.accessMode` | Persistent volume access modes | `[ReadWriteOnce]` | +| `persistentVolume.annotations` | Persistent volume annotations | `{}` | +| `persistentVolume.labels` | Persistent volume labels | `{}` | +| `persistentVolume.enabled` | If `true`, persistent volume claims are created | `false` | +| `persistentVolume.name` | Persistent volume name | `data` | +| `persistentVolume.size` | Persistent volume size | `8Gi` | +| `persistentVolume.storageClass` | Persistent volume storage class | `-` | +| `podAntiAffinity` | Pod anti-affinity, `hard` or `soft` | `soft` | +| `podAntiAffinityTopologyKey` | TopologyKey for anti-affinity, default is hostname | `"kubernetes.io/hostname"` | +| `affinity` | Affinity settings. If specified, this will disable `podAntiAffinity` settings. If you still need anti-affinity, you must include the configuration here. | `{}` | +| `podDisruptionBudget` | Pod Disruption Budget rules | `{}` | +| `podManagementPolicy` | Whether the pods should be restarted in parallel or one at a time. Either `OrderedReady` or `Parallel`. | `OrderedReady` | +| `prometheus.exporter.enabled` | Configures Prometheus Exporter to expose and scrape stats | `false` | +| `prometheus.exporter.env` | Environment variables to set for Exporter container | `{}` | +| `prometheus.exporter.image.repository` | Prometheus Exporter repository | `kbudde/rabbitmq-exporter` | +| `prometheus.exporter.image.tag` | Image Tag | `v0.29.0` | +| `prometheus.exporter.image.pullPolicy` | Image Pull Policy | `IfNotPresent` | +| `prometheus.exporter.port` | Port Prometheus scrapes for metrics | `9090` | +| `prometheus.exporter.capabilities` | Comma-separated list of extended scraping capabilities supported by the target RabbitMQ server. [Click here for details.](https://github.com/kbudde/rabbitmq_exporter#extended-rabbitmq-capabilities) | `bert,no_sort` | +| `prometheus.exporter.resources` | Resource Limits for Prometheus Exporter | `{}` | +| `prometheus.operator.enabled` | Are you using Prometheus Operator? [Blog Post](https://coreos.com/blog/the-prometheus-operator.html) | `true` | +| `prometheus.operator.alerts.enabled` | Create default Alerts for RabbitMQ | `true` | +| `prometheus.operator.alerts.selector` | Selector to find ConfigMaps and create Prometheus Alerts | `alert-rules` | +| `prometheus.operator.alerts.labels` | Labels to add to Alerts | `{}` | +| `prometheus.operator.serviceMonitor.interval` | How often Prometheus Scrapes metrics | `10s` | +| `prometheus.operator.serviceMonitor.scrapeTimeout` | Specify the timeout after which the scrape is ended | `nil` | +| `prometheus.operator.serviceMonitor.namespace` | Namespace which Prometheus is installed | `monitoring` | +| `prometheus.operator.serviceMonitor.selector` | Label Selector for Prometheus to find ServiceMonitors | `{ prometheus: kube-prometheus }` | +| `rabbitmqCert.enabled` | Mount a Secret container certificates | `false` | +| `rabbitmqCert.cacertfile` | base64 encoded CA certificate (overwrites existing Secret) | `` | +| `rabbitmqCert.certfile` | base64 encoded server certificate (overwrites existing Secret) | `` | +| `rabbitmqCert.existingSecret` | Name of an existing `Secret` to mount for amqps | `""` | +| `rabbitmqCert.keyfile` | base64 encoded server private key (overwrites existing Secret) | `` | +| `rabbitmqClusterPartitionHandling` | [Automatic Partition Handling Strategy (split brain handling)](https://www.rabbitmq.com/partitions.html#automatic-handling) | `autoheal` | +| `extraVolumes` | Extra volumes to attach to the statefulset | `[]` | +| `extraVolumeMounts` | Extra volume mounts to mount to the statefulset | `[]` | +| `rabbitmqEpmdPort` | EPMD port used for cross cluster replication | `4369` | +| `rabbitmqErlangCookie` | Erlang cookie | _random 32 character long alphanumeric string_ | +| `rabbitmqHipeCompile` | Precompile parts of RabbitMQ using HiPE | `false` | +| `rabbitmqMQTTPlugin.config` | MQTT configuration | `` | +| `rabbitmqMQTTPlugin.enabled` | Enable MQTT plugin | `false` | +| `rabbitmqManagerPort` | RabbitMQ Manager port | `15672` | +| `rabbitmqMemoryHighWatermark` | Memory high watermark | `256MB` | +| `rabbitmqMemoryHighWatermarkType` | Memory high watermark type. Either absolute or relative | `absolute` | +| `rabbitmqNodePort` | Node port | `5672` | +| `rabbitmqPassword` | RabbitMQ application password | _random 24 character long alphanumeric string_ | +| `rabbitmqSTOMPPlugin.config` | STOMP configuration | `` | +| `rabbitmqSTOMPPlugin.enabled` | Enable STOMP plugin | `false` | +| `rabbitmqUsername` | RabbitMQ application username | `guest` | +| `rabbitmqVhost` | RabbitMQ application vhost | `/` | +| `rabbitmqWebMQTTPlugin.config` | MQTT over websocket configuration | `` | +| `rabbitmqWebMQTTPlugin.enabled` | Enable MQTT over websocket plugin | `false` | +| `rabbitmqWebSTOMPPlugin.config` | STOMP over websocket configuration | `` | +| `rabbitmqWebSTOMPPlugin.enabled` | Enable STOMP over websocket plugin | `false` | +| `rabbitmqPrometheusPlugin.enabled` | Enable native RabbitMQ prometheus plugin. (Available in RabbitMQ 3.8) | `false` | +| `rabbitmqPrometheusPlugin.nodePort` | Exposes the native prometheus metrics port on the given NodePort | `null` | +| `rabbitmqPrometheusPlugin.port` | The port RabbitMQ prometheus plugin will use | `15692` | +| `rabbitmqPrometheusPlugin.path` | The path RabbitMQ prometheus plugin will use | `/metrics` | +| `rabbitmqPrometheusPlugin.config` | RabbitMQ prometheus plugin aditional configuration | `` | +| `rbac.create` | If true, create & use RBAC resources | `true` | +| `replicaCount` | Number of replica | `3` | +| `resources` | CPU/Memory resource requests/limits | `{}` | +| `schedulerName` | alternate scheduler name | `nil` | +| `securityContext.fsGroup` | Group ID for the container's volumes | `101` | +| `securityContext.runAsGroup` | Group ID for the container | `101` | +| `securityContext.runAsNonRoot` | Enforce non-root user ID for the container | `true` | +| `securityContext.runAsUser` | User ID for the container | `100` | +| `serviceAccount.create` | Create service account | `true` | +| `serviceAccount.automountServiceAccountToken` | Automount API credentials for a service account | `true` | +| `serviceAccount.name` | Service account name to use | _name of the release_ | +| `service.annotations` | Annotations to add to the service | `{}` | +| `service.clusterIP` | IP address to assign to the service | None | +| `service.externalIPs` | Service external IP addresses | `[]` | +| `service.loadBalancerIP` | IP address to assign to load balancer (if supported) | `""` | +| `service.loadBalancerSourceRanges` | List of IP CIDRs allowed access to load balancer (if supported) | `[]` | +| `service.type` | Type of service to create | `ClusterIP` | +| `ingress.enabled` | Enable Ingress | `false` | +| `ingress.path` | Ingress path | `/` | +| `ingress.hostName` | Ingress hostname | | +| `ingress.tls` | Enable Ingress TLS | `false` | +| `ingress.tlsSecret` | Ingress TLS secret name | `myTlsSecret` | +| `ingress.annotations` | Ingress annotations | `{}` | +| `tolerations` | Toleration labels for pod assignment | `[]` | +| `podAnnotations` | Extra annotations to add to pod | `{}` | +| `statefulSetAnnotations` | Extra annotations to add the statefulSet | `{}` | +| `terminationGracePeriodSeconds` | Duration pod needs to terminate gracefully | `10` | +| `updateStrategy` | Statefulset update strategy | `OnDelete` | +| `priorityClassName` | Statefulsets Pod Priority | `` | +| `extraLabels` | Labels to add to the Resources | `{}` | +| `busyboxImage.repository` | Busybox initContainer image repo | `busybox` | +| `busyboxImage.tag` | Busybox initContainer image tag | `1.30.1` | +| `busyboxImage.pullPolicy` | Busybox initContainer image pullPolicy | `IfNotPresent` | +| `clusterDomain` | The internal Kubernetes cluster domain | `cluster.local` | Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, diff --git a/stable/rabbitmq-ha/templates/servicemonitor.yaml b/stable/rabbitmq-ha/templates/servicemonitor.yaml index dad8430a6d..8547cfbd95 100644 --- a/stable/rabbitmq-ha/templates/servicemonitor.yaml +++ b/stable/rabbitmq-ha/templates/servicemonitor.yaml @@ -15,6 +15,9 @@ spec: release: {{ .Release.Name }} endpoints: - interval: {{ .Values.prometheus.operator.serviceMonitor.interval }} + {{- if .Values.prometheus.operator.serviceMonitor.scrapeTimeout }} + scrapeTimeout: {{ .Values.prometheus.operator.serviceMonitor.scrapeTimeout }} + {{- end }} {{- if .Values.rabbitmqPrometheusPlugin.enabled }} port: metrics path: {{ .Values.rabbitmqPrometheusPlugin.path }} @@ -23,4 +26,4 @@ spec: {{- end }} namespaceSelector: any: true -{{- end }} \ No newline at end of file +{{- end }}