From 807798946ff91ef7612e13a33dd87d9df89d3794 Mon Sep 17 00:00:00 2001 From: David Landry Date: Thu, 12 Sep 2024 14:35:28 -0400 Subject: [PATCH] chore(work): spinup rabbitmq cluster --- apps/rabbitmq-cluster/base/kustomization.yaml | 6 +++ .../base/pod-disruption-budget.yaml | 9 ++++ apps/rabbitmq-cluster/base/rabbitmq.yaml | 44 +++++++++++++++++++ .../overlays/work/config.json | 11 +++++ .../overlays/work/kustomization.yaml | 4 ++ 5 files changed, 74 insertions(+) create mode 100644 apps/rabbitmq-cluster/base/kustomization.yaml create mode 100644 apps/rabbitmq-cluster/base/pod-disruption-budget.yaml create mode 100644 apps/rabbitmq-cluster/base/rabbitmq.yaml create mode 100644 apps/rabbitmq-cluster/overlays/work/config.json create mode 100644 apps/rabbitmq-cluster/overlays/work/kustomization.yaml diff --git a/apps/rabbitmq-cluster/base/kustomization.yaml b/apps/rabbitmq-cluster/base/kustomization.yaml new file mode 100644 index 0000000..6527431 --- /dev/null +++ b/apps/rabbitmq-cluster/base/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: work-rabbitmq-cluster +resources: + - ./rabbitmq.yaml + - ./pod-disruption-budget.yaml diff --git a/apps/rabbitmq-cluster/base/pod-disruption-budget.yaml b/apps/rabbitmq-cluster/base/pod-disruption-budget.yaml new file mode 100644 index 0000000..003fa13 --- /dev/null +++ b/apps/rabbitmq-cluster/base/pod-disruption-budget.yaml @@ -0,0 +1,9 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: rabbitmq-main +spec: + maxUnavailable: 1 + selector: + matchLabels: + app.kubernetes.io/name: rabbitmq-main diff --git a/apps/rabbitmq-cluster/base/rabbitmq.yaml b/apps/rabbitmq-cluster/base/rabbitmq.yaml new file mode 100644 index 0000000..374d525 --- /dev/null +++ b/apps/rabbitmq-cluster/base/rabbitmq.yaml @@ -0,0 +1,44 @@ +apiVersion: rabbitmq.com/v1beta1 +kind: RabbitmqCluster +metadata: + name: rabbitmq-main +spec: + replicas: 1 # We'll want to bump this up to 3 if we're using this for customer-facing production loads + resources: + requests: + cpu: 1000m # This should be at least 2000m for customer-facing production loads; example had it as 4000m + memory: 2Gi # Not sure what we need here; example had it as 10Gi + limits: + cpu: 1000m + memory: 2Gi + rabbitmq: + additionalConfig: | + cluster_partition_handling = pause_minority + disk_free_limit.relative = 1.0 + collect_statistics_interval = 10000 + persistence: + storageClassName: gp2 + storage: "8Gi" + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - rabbitmq-main + topologyKey: kubernetes.io/hostname + override: + statefulSet: + spec: + template: + spec: + containers: [] + topologySpreadConstraints: + - maxSkew: 1 + topologyKey: "topology.kubernetes.io/zone" + whenUnsatisfiable: DoNotSchedule + labelSelector: + matchLabels: + app.kubernetes.io/name: rabbitmq-main diff --git a/apps/rabbitmq-cluster/overlays/work/config.json b/apps/rabbitmq-cluster/overlays/work/config.json new file mode 100644 index 0000000..bea017b --- /dev/null +++ b/apps/rabbitmq-cluster/overlays/work/config.json @@ -0,0 +1,11 @@ +{ + "appName": "rabbitmq-cluster", + "userGivenName": "rabbitmq-cluster", + "destNamespace": "work-rabbitmq-clusters", + "destServer": "https://kubernetes.default.svc", + "srcPath": "apps/rabbitmq-cluster/overlays/work", + "srcRepoURL": "ssh://git@gitea-ssh.gitops.svc.cluster.local:2222/davad/argo.git", + "srcTargetRevision": "", + "labels": null, + "annotations": null +} diff --git a/apps/rabbitmq-cluster/overlays/work/kustomization.yaml b/apps/rabbitmq-cluster/overlays/work/kustomization.yaml new file mode 100644 index 0000000..2333422 --- /dev/null +++ b/apps/rabbitmq-cluster/overlays/work/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../base