| # Copyright (c) 2022 VEXXHOST, Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may |
| # not use this file except in compliance with the License. You may obtain |
| # a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations |
| # under the License. |
| |
| - name: Deploy Helm chart |
| kubernetes.core.helm: |
| name: rabbitmq-cluster-operator |
| chart_ref: bitnami/rabbitmq-cluster-operator |
| chart_version: 2.5.2 |
| release_namespace: openstack |
| kubeconfig: /etc/kubernetes/admin.conf |
| values: |
| rabbitmqImage: |
| repository: library/rabbitmq |
| tag: 3.10.2-management |
| credentialUpdaterImage: |
| repository: rabbitmqoperator/default-user-credential-updater |
| tag: 1.0.2 |
| clusterOperator: |
| image: |
| repository: rabbitmqoperator/cluster-operator |
| tag: 1.13.1 |
| fullnameOverride: rabbitmq-cluster-operator |
| nodeSelector: |
| openstack-control-plane: enabled |
| msgTopologyOperator: |
| image: |
| repository: rabbitmqoperator/messaging-topology-operator |
| tag: 1.6.0 |
| fullnameOverride: rabbitmq-messaging-topology-operator |
| nodeSelector: |
| openstack-control-plane: enabled |
| useCertManager: true |
| |
| - name: Create PodMonitor |
| kubernetes.core.k8s: |
| state: present |
| definition: |
| apiVersion: monitoring.coreos.com/v1 |
| kind: PodMonitor |
| metadata: |
| name: rabbitmq |
| namespace: monitoring |
| labels: |
| release: kube-prometheus-stack |
| spec: |
| jobLabel: app.kubernetes.io/component |
| podMetricsEndpoints: |
| - port: prometheus |
| path: /metrics |
| relabelings: |
| - sourceLabels: ["__meta_kubernetes_pod_name"] |
| targetLabel: "instance" |
| - action: "labeldrop" |
| regex: "^(container|endpoint|namespace|pod|service)$" |
| namespaceSelector: |
| matchNames: |
| - openstack |
| selector: |
| matchLabels: |
| app.kubernetes.io/component: rabbitmq |
| |
| - name: Create PrometheusRule |
| kubernetes.core.k8s: |
| state: present |
| definition: |
| apiVersion: monitoring.coreos.com/v1 |
| kind: PrometheusRule |
| metadata: |
| name: rabbitmq |
| namespace: monitoring |
| labels: |
| release: kube-prometheus-stack |
| spec: |
| groups: |
| - name: limits |
| rules: |
| - alert: RabbitmqMemoryHigh |
| expr: rabbitmq_process_resident_memory_bytes / rabbitmq_resident_memory_limit_bytes > 0.80 |
| labels: |
| severity: warning |
| - alert: RabbitmqMemoryHigh |
| expr: rabbitmq_process_resident_memory_bytes / rabbitmq_resident_memory_limit_bytes > 0.95 |
| labels: |
| severity: critical |
| - alert: RabbitmqFileDescriptorsUsage |
| expr: rabbitmq_process_open_fds / rabbitmq_process_max_fds > 0.80 |
| labels: |
| severity: warning |
| - alert: RabbitmqFileDescriptorsUsage |
| expr: rabbitmq_process_open_fds / rabbitmq_process_max_fds > 0.95 |
| labels: |
| severity: critical |
| - alert: RabbitmqConnections |
| expr: rabbitmq_connections > 1000 |
| labels: |
| severity: warning |
| - name: msgs |
| rules: |
| - alert: RabbitmqUnackedMessages |
| expr: sum(rabbitmq_queue_messages_unacked) BY (queue) > 1000 |
| for: 5m |
| labels: |
| severity: warning |
| - alert: RabbitmqUnackedMessages |
| expr: sum(rabbitmq_queue_messages_unacked) BY (queue) > 1000 |
| for: 1h |
| labels: |
| severity: critical |