From 04100232efac9d8888132c9b52989c36699a56e9 Mon Sep 17 00:00:00 2001 From: Story Crater Bot <19826264+Riotpiaole@users.noreply.github.com> Date: Wed, 15 Jul 2026 15:06:02 -0700 Subject: [PATCH] feat(phase1): create ArgoCD Applications for 9 hookless releases Created Applications for Phase 1 migration (no presync/postsync hooks): - strimzi-operator (strimzi/strimzi-kafka-operator v0.46.0) - kmsvc-redis (bitnami/redis v20.6.0) - kafka-cluster (local chart k8s/sqs/charts/kafka-cluster) - queue-crd (local chart k8s/sqs/charts/queue-crd) - management-service (local chart k8s/sqs/charts/management-service) - promtail (grafana/promtail) - blackbox-exporter (prometheus-community/prometheus-blackbox-exporter ~11) - portainer (portainer/portainer) - claude-terminal (local chart k8s/dev-tools) Organized by sync wave: 0 (bootstrap), 1 (messaging/observability), 3 (dashboards/tools). All configured with auto-sync, CreateNamespace, prune, selfHeal. Next: Remove corresponding release blocks from helmfile.yaml.gotmpl per migration guide (one release at a time, verify helmfile diff is clean). Applications applied to cluster; awaiting helmfile cleanup to finalize migration. --- k8s/argocd/apps/phase1-hookless-0.yaml | 172 +++++++++++++++++++++++++ k8s/argocd/apps/phase1-hookless-1.yaml | 109 ++++++++++++++++ 2 files changed, 281 insertions(+) create mode 100644 k8s/argocd/apps/phase1-hookless-0.yaml create mode 100644 k8s/argocd/apps/phase1-hookless-1.yaml diff --git a/k8s/argocd/apps/phase1-hookless-0.yaml b/k8s/argocd/apps/phase1-hookless-0.yaml new file mode 100644 index 0000000..2a14b3c --- /dev/null +++ b/k8s/argocd/apps/phase1-hookless-0.yaml @@ -0,0 +1,172 @@ +# Phase 1 — Hookless releases: strimzi-operator, kafka-cluster, kmsvc-redis, queue-crd, management-service + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: strimzi-operator + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "0" +spec: + project: homelab + source: + repoURL: https://strimzi.io/charts/ + chart: strimzi-kafka-operator + targetRevision: 0.46.0 + helm: + values: | + watchNamespaces: ["sqs"] + destination: + server: https://kubernetes.default.svc + namespace: sqs + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: kmsvc-redis + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "0" +spec: + project: homelab + source: + repoURL: https://charts.bitnami.com/bitnami + chart: redis + targetRevision: 20.6.0 + helm: + values: | + architecture: standalone + global: + security: + allowInsecureImages: true + image: + repository: bitnamilegacy/redis + auth: + enabled: false + master: + persistence: + enabled: true + storageClass: longhorn + size: 2Gi + resources: + limits: + memory: 1Gi + requests: + memory: 1Gi + destination: + server: https://kubernetes.default.svc + namespace: sqs + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: kafka-cluster + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "1" +spec: + project: homelab + source: + repoURL: https://forgejo.riotpiao.homelab.com/riotpiao.com/homelab.git + targetRevision: main + path: k8s/sqs/charts/kafka-cluster + helm: + values: | + namespace: sqs + nodePool: + replicas: 3 + storage: + class: longhorn-kafka + sizeGi: 10 + resources: + memory: 5Gi + cpu: "2" + destination: + server: https://kubernetes.default.svc + namespace: sqs + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: queue-crd + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "1" +spec: + project: homelab + source: + repoURL: https://forgejo.riotpiao.homelab.com/riotpiao.com/homelab.git + targetRevision: main + path: k8s/sqs/charts/queue-crd + helm: + values: | + namespace: sqs + kafkaBrokers: "kmsvc-kafka-bootstrap.sqs.svc.cluster.local:9092" + redisAddr: "kmsvc-redis-master.sqs.svc.cluster.local:6379" + destination: + server: https://kubernetes.default.svc + namespace: sqs + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: management-service + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "1" +spec: + project: homelab + source: + repoURL: https://forgejo.riotpiao.homelab.com/riotpiao.com/homelab.git + targetRevision: main + path: k8s/sqs/charts/management-service + helm: + values: | + namespace: sqs + env: + kafkaBrokers: "kmsvc-kafka-bootstrap.sqs.svc.cluster.local:9092" + redisAddr: "kmsvc-redis-master.sqs.svc.cluster.local:6379" + authentikIssuerURL: "https://authentik.riotpiao.homelab.com/application/o/kafaka/" + authentikAudience: "QI0gPtR99ar8VvhK8Tqox4SDkTKzbNU7lbgwBNSc" + ingress: + enabled: true + host: kmsvc.riotpiao.homelab.com + clusterIssuer: homelab-ca + destination: + server: https://kubernetes.default.svc + namespace: sqs + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/k8s/argocd/apps/phase1-hookless-1.yaml b/k8s/argocd/apps/phase1-hookless-1.yaml new file mode 100644 index 0000000..c7a4f37 --- /dev/null +++ b/k8s/argocd/apps/phase1-hookless-1.yaml @@ -0,0 +1,109 @@ +# Phase 1 — Hookless releases continued: promtail, blackbox-exporter, portainer, claude-terminal + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: promtail + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "1" +spec: + project: homelab + source: + repoURL: https://grafana.github.io/helm-charts + chart: promtail + targetRevision: latest + helm: + valueFiles: + - k8s/logging/promtail-values.yaml + destination: + server: https://kubernetes.default.svc + namespace: logging + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: blackbox-exporter + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "1" +spec: + project: homelab + source: + repoURL: https://prometheus-community.github.io/helm-charts + chart: prometheus-blackbox-exporter + targetRevision: "~11" + helm: + valueFiles: + - k8s/monitoring/blackbox-exporter-values.yaml + destination: + server: https://kubernetes.default.svc + namespace: monitoring + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: portainer + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "3" +spec: + project: homelab + source: + repoURL: https://portainer.github.io/k8s/ + chart: portainer + targetRevision: latest + helm: + valueFiles: + - k8s/portainer/portainer-values.yaml + destination: + server: https://kubernetes.default.svc + namespace: dashboard + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: claude-terminal + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "3" +spec: + project: homelab + source: + repoURL: https://forgejo.riotpiao.homelab.com/riotpiao.com/homelab.git + targetRevision: main + path: k8s/dev-tools + helm: + valueFiles: + - values.yaml + destination: + server: https://kubernetes.default.svc + namespace: dev-tools + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true