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