From bba55ef84ca699a0488765a2337fb9e6e2623fc2 Mon Sep 17 00:00:00 2001 From: Jonas Juselius Date: Tue, 24 Jun 2025 11:30:55 +0200 Subject: [PATCH] feat: helmfileify rabbitmq --- helmfile.d/rabbitmq.yaml.gotmpl | 44 ++++++++++++++++++ values/rabbitmq/env-oceanbox.yaml.gotmpl | 2 + values/rabbitmq/env.yaml.gotmpl | 4 +- values/rabbitmq/kustomize/prod/nodeport.yaml | 22 --------- .../rabbitmq/kustomize/staging/nodeport.yaml | 22 --------- values/rabbitmq/manifests/nodeport.yaml | 45 +++++++++++++++++++ values/rabbitmq/manifests/rabbitmq.yaml | 26 +++++------ values/rabbitmq/prod/nodeport.yaml | 22 --------- values/rabbitmq/staging/nodeport.yaml | 22 --------- .../rabbitmq/values/rabbitmq-prod.yaml.gotmpl | 31 ------------- .../values/rabbitmq-staging.yaml.gotmpl | 38 ---------------- values/rabbitmq/{ => values}/values-prod.yaml | 9 ---- .../rabbitmq/{ => values}/values-staging.yaml | 8 ---- .../{rabbitmq.yaml.gotmpl => values.yaml} | 1 + 14 files changed, 107 insertions(+), 189 deletions(-) create mode 100644 helmfile.d/rabbitmq.yaml.gotmpl create mode 100644 values/rabbitmq/env-oceanbox.yaml.gotmpl delete mode 100644 values/rabbitmq/kustomize/prod/nodeport.yaml delete mode 100644 values/rabbitmq/kustomize/staging/nodeport.yaml create mode 100644 values/rabbitmq/manifests/nodeport.yaml delete mode 100644 values/rabbitmq/prod/nodeport.yaml delete mode 100644 values/rabbitmq/staging/nodeport.yaml delete mode 100644 values/rabbitmq/values/rabbitmq-prod.yaml.gotmpl delete mode 100644 values/rabbitmq/values/rabbitmq-staging.yaml.gotmpl rename values/rabbitmq/{ => values}/values-prod.yaml (79%) rename values/rabbitmq/{ => values}/values-staging.yaml (83%) rename values/rabbitmq/values/{rabbitmq.yaml.gotmpl => values.yaml} (99%) diff --git a/helmfile.d/rabbitmq.yaml.gotmpl b/helmfile.d/rabbitmq.yaml.gotmpl new file mode 100644 index 00000000..794d9302 --- /dev/null +++ b/helmfile.d/rabbitmq.yaml.gotmpl @@ -0,0 +1,44 @@ +bases: + - ../envs/environments.yaml.gotmpl + +repositories: +- name: bitnami + url: https://charts.bitnami.com/bitnami + + +commonLabels: + tier: oceanbox + +releases: +- name: {{ .Environment.Name }}-rabbitmq + namespace: rabbitmq + chart: bitnami/rabbitmq + version: 12.9.0 + condition: rabbitmq.enabled + values: + - ../values/rabbitmq/values/values.yaml.gotmpl + - ../values/rabbitmq/values/values-{{ .Environment.Name }}.yaml.gotmpl + postRenderer: ../bin/kustomizer + postRendererArgs: + - ../values/rabbitmq/kustomize/{{ .Environment.Name }} + missingFileHandler: Info +- name: manifests + namespace: rabbitmq + chart: manifests + condition: rabbitmq.enabled + missingFileHandler: Info + values: + - ../values/env.yaml + - ../values/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml + - ../values/rabbitmq/env.yaml.gotmpl + - ../values/rabbitmq/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml.gotmpl + hooks: + - events: [ prepare, cleanup ] + showlogs: true + command: ../bin/helmify + args: + - '{{`{{ if eq .Event.Name "prepare" }}build{{ else }}clean{{ end }}`}}' + - '{{`{{ .Release.Chart }}`}}' + - '{{`{{ .Environment.Name }}`}}' + - ../values/rabbitmq/manifests + - manifests diff --git a/values/rabbitmq/env-oceanbox.yaml.gotmpl b/values/rabbitmq/env-oceanbox.yaml.gotmpl new file mode 100644 index 00000000..301f607a --- /dev/null +++ b/values/rabbitmq/env-oceanbox.yaml.gotmpl @@ -0,0 +1,2 @@ +rabbitmq: + enabled: true diff --git a/values/rabbitmq/env.yaml.gotmpl b/values/rabbitmq/env.yaml.gotmpl index 72c83f75..05e930af 100644 --- a/values/rabbitmq/env.yaml.gotmpl +++ b/values/rabbitmq/env.yaml.gotmpl @@ -1,2 +1,4 @@ rabbitmq: - enabled: true + enabled: false + autosync: false + env: {{ .Environment.Name }} diff --git a/values/rabbitmq/kustomize/prod/nodeport.yaml b/values/rabbitmq/kustomize/prod/nodeport.yaml deleted file mode 100644 index 7a95a11a..00000000 --- a/values/rabbitmq/kustomize/prod/nodeport.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: prod-rabbitmq-nodeport - namespace: rabbitmq -spec: - ports: - - name: amqp - nodePort: 30672 - port: 5672 - protocol: TCP - targetPort: 5672 - - name: amqp-http - nodePort: 30673 - port: 15672 - protocol: TCP - targetPort: 15672 - selector: - app.kubernetes.io/instance: prod-rabbitmq - app.kubernetes.io/name: rabbitmq - type: NodePort - diff --git a/values/rabbitmq/kustomize/staging/nodeport.yaml b/values/rabbitmq/kustomize/staging/nodeport.yaml deleted file mode 100644 index 884d4926..00000000 --- a/values/rabbitmq/kustomize/staging/nodeport.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: staging-rabbitmq-nodeport - namespace: rabbitmq -spec: - ports: - - name: amqp - nodePort: 31672 - port: 5672 - protocol: TCP - targetPort: 5672 - - name: amqp-http - nodePort: 31673 - port: 15672 - protocol: TCP - targetPort: 15672 - selector: - app.kubernetes.io/instance: staging-rabbitmq - app.kubernetes.io/name: rabbitmq - type: NodePort - diff --git a/values/rabbitmq/manifests/nodeport.yaml b/values/rabbitmq/manifests/nodeport.yaml new file mode 100644 index 00000000..d6b60b62 --- /dev/null +++ b/values/rabbitmq/manifests/nodeport.yaml @@ -0,0 +1,45 @@ +{{- if eq .Values.rabbitmq.env "prod" }} +apiVersion: v1 +kind: Service +metadata: + name: prod-rabbitmq-nodeport + namespace: rabbitmq +spec: + ports: + - name: amqp + nodePort: 30672 + port: 5672 + protocol: TCP + targetPort: 5672 + - name: amqp-http + nodePort: 30673 + port: 15672 + protocol: TCP + targetPort: 15672 + selector: + app.kubernetes.io/instance: prod-rabbitmq + app.kubernetes.io/name: rabbitmq + type: NodePort +{{- else if eq .Values.rabbitmq.env "staging" }} +apiVersion: v1 +kind: Service +metadata: + name: staging-rabbitmq-nodeport + namespace: rabbitmq +spec: + ports: + - name: amqp + nodePort: 31672 + port: 5672 + protocol: TCP + targetPort: 5672 + - name: amqp-http + nodePort: 31673 + port: 15672 + protocol: TCP + targetPort: 15672 + selector: + app.kubernetes.io/instance: staging-rabbitmq + app.kubernetes.io/name: rabbitmq + type: NodePort +{{- end }} diff --git a/values/rabbitmq/manifests/rabbitmq.yaml b/values/rabbitmq/manifests/rabbitmq.yaml index f9a789f8..1681af44 100644 --- a/values/rabbitmq/manifests/rabbitmq.yaml +++ b/values/rabbitmq/manifests/rabbitmq.yaml @@ -1,9 +1,8 @@ -{{- if .Values.clusterConfig.argo.enabled }} -{{- range .Values.rabbitmq.envs }} +{{ if .Values.clusterConfig.argo.enabled }} apiVersion: argoproj.io/v1alpha1 kind: Application metadata: - name: {{ . }}-rabbitmq + name: {{ .Values.rabbitmq.env }}-rabbitmq namespace: argocd annotations: argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true @@ -11,30 +10,29 @@ metadata: - resources-finalizer.argocd.argoproj.io spec: destination: - namespace: {{ . }}-rabbitmq - server: 'https://kubernetes.default.svc' + namespace: {{ .Values.rabbitmq.env }}-rabbitmq + server: https://kubernetes.default.svc + project: rabbitmq sources: - repoURL: {{ .Values.clusterConfig.manifests }} targetRevision: HEAD - path: helmfiles/rabbitmq + path: helmfile.d plugin: - name: helmfile + name: helmfile-cmp env: - name: CLUSTER_NAME value: {{ .Values.clusterConfig.cluster }} - project: aux + - name: HELMFILE_ENVIRONMENT + value: {{ .Values.rabbitmq.env }} + - name: HELMFILE_FILE_PATH + value: rabbitmq.yaml.gotmpl syncPolicy: - managedNamespaceMetadata: - labels: - component: aux syncOptions: - CreateNamespace=true - ApplyOutOfSyncOnly=true - # - ServerSideApply=true {{- if .Values.rabbitmq.autosync }} automated: prune: true - # selfHeal: false + selfHeal: false {{- end }} {{- end }} -{{- end }} diff --git a/values/rabbitmq/prod/nodeport.yaml b/values/rabbitmq/prod/nodeport.yaml deleted file mode 100644 index 7a95a11a..00000000 --- a/values/rabbitmq/prod/nodeport.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: prod-rabbitmq-nodeport - namespace: rabbitmq -spec: - ports: - - name: amqp - nodePort: 30672 - port: 5672 - protocol: TCP - targetPort: 5672 - - name: amqp-http - nodePort: 30673 - port: 15672 - protocol: TCP - targetPort: 15672 - selector: - app.kubernetes.io/instance: prod-rabbitmq - app.kubernetes.io/name: rabbitmq - type: NodePort - diff --git a/values/rabbitmq/staging/nodeport.yaml b/values/rabbitmq/staging/nodeport.yaml deleted file mode 100644 index 884d4926..00000000 --- a/values/rabbitmq/staging/nodeport.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: staging-rabbitmq-nodeport - namespace: rabbitmq -spec: - ports: - - name: amqp - nodePort: 31672 - port: 5672 - protocol: TCP - targetPort: 5672 - - name: amqp-http - nodePort: 31673 - port: 15672 - protocol: TCP - targetPort: 15672 - selector: - app.kubernetes.io/instance: staging-rabbitmq - app.kubernetes.io/name: rabbitmq - type: NodePort - diff --git a/values/rabbitmq/values/rabbitmq-prod.yaml.gotmpl b/values/rabbitmq/values/rabbitmq-prod.yaml.gotmpl deleted file mode 100644 index 9bcba693..00000000 --- a/values/rabbitmq/values/rabbitmq-prod.yaml.gotmpl +++ /dev/null @@ -1,31 +0,0 @@ -replicaCount: 3 -auth: - erlangCookie: prod-rabbitmq - existingErlangSecret: prod-rabbitmq - existingPasswordSecret: prod-rabbitmq - password: "" - username: user -#clusterDomain: cluster.local -ingress: - annotations: - cert-manager.io/cluster-issuer: letsencrypt-production - nginx.ingress.kubernetes.io/ssl-redirect: "true" - oceanbox.io/expose: internal - enabled: true - extraHosts: [] - extraPaths: [] - extraRules: [] - hostname: rabbitmq.srv.oceanbox.io - ingressClassName: "" - path: / - pathType: ImplementationSpecific - secrets: [] - selfSigned: false - tls: true -#persistence: -# accessModes: -# - ReadWriteOnce -# enabled: true -# existingClaim: "" -# size: 8Gi -# storageClass: "" diff --git a/values/rabbitmq/values/rabbitmq-staging.yaml.gotmpl b/values/rabbitmq/values/rabbitmq-staging.yaml.gotmpl deleted file mode 100644 index 7b5d5f1e..00000000 --- a/values/rabbitmq/values/rabbitmq-staging.yaml.gotmpl +++ /dev/null @@ -1,38 +0,0 @@ -replicaCount: 1 -auth: - erlangCookie: staging-rabbitmq - existingErlangSecret: staging-rabbitmq - existingPasswordSecret: staging-rabbitmq - password: "" - username: user -#clusterDomain: cluster.local -ingress: - annotations: - cert-manager.io/cluster-issuer: letsencrypt-staging - nginx.ingress.kubernetes.io/ssl-redirect: "true" - oceanbox.io/expose: internal - enabled: true - ingressClassName: "" - extraHosts: - - name: rabbitmq.dev.oceanbox.io - path: / - extraTls: - - hosts: - - rabbitmq.dev.oceanbox.io - secretName: rabbitmq.dev.oceanbox.io-tls - extraPaths: [] - extraRules: [] - hostname: rabbitmq.beta.oceanbox.io - path: / - pathType: ImplementationSpecific - secrets: [] - selfSigned: false - tls: true -#persistence: -# accessModes: -# - ReadWriteOnce -# enabled: true -# existingClaim: "" -# size: 8Gi -# storageClass: "" - diff --git a/values/rabbitmq/values-prod.yaml b/values/rabbitmq/values/values-prod.yaml similarity index 79% rename from values/rabbitmq/values-prod.yaml rename to values/rabbitmq/values/values-prod.yaml index bfddc700..4bec8ba2 100644 --- a/values/rabbitmq/values-prod.yaml +++ b/values/rabbitmq/values/values-prod.yaml @@ -5,7 +5,6 @@ auth: existingPasswordSecret: prod-rabbitmq password: "" username: user -clusterDomain: cluster.local ingress: annotations: cert-manager.io/cluster-issuer: letsencrypt-production @@ -22,11 +21,3 @@ ingress: secrets: [] selfSigned: false tls: true -persistence: - accessModes: - - ReadWriteOnce - enabled: true - existingClaim: "" - size: 8Gi - storageClass: "" - diff --git a/values/rabbitmq/values-staging.yaml b/values/rabbitmq/values/values-staging.yaml similarity index 83% rename from values/rabbitmq/values-staging.yaml rename to values/rabbitmq/values/values-staging.yaml index 825f093a..35c756e6 100644 --- a/values/rabbitmq/values-staging.yaml +++ b/values/rabbitmq/values/values-staging.yaml @@ -5,7 +5,6 @@ auth: existingPasswordSecret: staging-rabbitmq password: "" username: user -clusterDomain: cluster.local ingress: annotations: cert-manager.io/cluster-issuer: letsencrypt-staging @@ -28,11 +27,4 @@ ingress: secrets: [] selfSigned: false tls: true -persistence: - accessModes: - - ReadWriteOnce - enabled: true - existingClaim: "" - size: 8Gi - storageClass: "" diff --git a/values/rabbitmq/values/rabbitmq.yaml.gotmpl b/values/rabbitmq/values/values.yaml similarity index 99% rename from values/rabbitmq/values/rabbitmq.yaml.gotmpl rename to values/rabbitmq/values/values.yaml index 151b4e76..58d02a7e 100644 --- a/values/rabbitmq/values/rabbitmq.yaml.gotmpl +++ b/values/rabbitmq/values/values.yaml @@ -1,4 +1,5 @@ clusterDomain: cluster.local + persistence: accessModes: - ReadWriteOnce