feat(argocd): migrate phase1 hookless releases to ArgoCD

This commit is contained in:
Story Crater Bot
2026-08-18 15:08:01 -07:00
parent 8eab299b30
commit 3e0a1c86ba
3 changed files with 227 additions and 116 deletions
-116
View File
@@ -448,14 +448,6 @@ releases:
needs:
- storage/minio
- name: promtail
namespace: logging
chart: grafana/promtail
values:
- k8s/logging/promtail-values.yaml
needs:
- logging/loki
- name: grafana
namespace: logging
chart: grafana/grafana
@@ -502,16 +494,6 @@ releases:
kubectl apply -f k8s/monitoring/alerts/
kubectl apply -f k8s/longhorn/longhorn-servicemonitor.yaml
- name: blackbox-exporter
namespace: monitoring
chart: prometheus-community/prometheus-blackbox-exporter
version: "~11"
values:
- k8s/monitoring/blackbox-exporter-values.yaml
needs:
- monitoring/prometheus
- ingress-nginx/ingress-nginx
# ── CI/CD (Forgejo + runner + Argo CD) ───────────────────────────────────────
# Required env vars:
# FORGEJO_ADMIN_PASSWORD — bootstrap admin password (set once, stored in .env)
@@ -672,99 +654,8 @@ releases:
# ── Dashboard (Portainer) ─────────────────────────────────────────────────────
- name: portainer
namespace: dashboard
createNamespace: true
chart: portainer/portainer
values:
- k8s/portainer/portainer-values.yaml
hooks:
- events: ["presync"]
command: bash
args:
- -c
- |
bash k8s/base/namespace-setup.sh dashboard
# ── Messaging Queue (SQS-like Kafka) ─────────────────────────────────────────
- name: strimzi-operator
namespace: sqs
createNamespace: true
chart: strimzi/strimzi-kafka-operator
version: 0.46.0
values:
- watchNamespaces: ["sqs"]
- name: kafka-cluster
namespace: sqs
chart: k8s/sqs/charts/kafka-cluster
needs:
- sqs/strimzi-operator
values:
- namespace: sqs
nodePool:
replicas: 3
storage:
class: longhorn-kafka
sizeGi: 10
resources:
memory: 5Gi
cpu: "2"
- name: kmsvc-redis
namespace: sqs
chart: bitnami/redis
version: 20.6.0
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
- name: queue-crd
namespace: sqs
chart: k8s/sqs/charts/queue-crd
needs:
- sqs/kafka-cluster
- sqs/kmsvc-redis
values:
- namespace: sqs
kafkaBrokers: "{{ env "KAFKA_BOOTSTRAP" }}"
redisAddr: "{{ env "REDIS_ADDR" }}"
- name: management-service
namespace: sqs
chart: k8s/sqs/charts/management-service
needs:
- sqs/kafka-cluster
- sqs/kmsvc-redis
values:
- namespace: sqs
env:
kafkaBrokers: "{{ env "KAFKA_BOOTSTRAP" }}"
redisAddr: "{{ env "REDIS_ADDR" }}"
authentikIssuerURL: "https://authentik.{{ env "CLUSTER_DOMAIN" }}/application/o/kafaka/"
authentikAudience: "QI0gPtR99ar8VvhK8Tqox4SDkTKzbNU7lbgwBNSc"
ingress:
enabled: true
host: kmsvc.{{ env "CLUSTER_DOMAIN" }}
clusterIssuer: homelab-ca
# ── Story Crater Backend ───────────────────────────────────────────────────────
# Story Crater Backend — migrated to CloudNativePG in ddb namespace
# The story_crater database is created by CNPG bootstrap.initdb.postInitApplicationSQL.
@@ -872,13 +763,6 @@ releases:
# ── Claude Terminal (persistent dev environment) ─────────────────────────────
- name: claude-terminal
namespace: dev-tools
createNamespace: true
chart: ./k8s/dev-tools
values:
- k8s/dev-tools/values.yaml
# ── Global Reloader Configuration ────────────────────────────────────────────
hooks:
+172
View File
@@ -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
+55
View File
@@ -0,0 +1,55 @@
# Phase 1 — Hookless releases continued: promtail, portainer
---
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: 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