blob: 49d2e8b60589f27244a35ff96af7fa0473b3f4a9 [file] [log] [blame]
# 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