feat: add ArgoCD app-of-apps manifests for homelab GitOps deployment
Root application + project plus per-component Application CRs (Strimzi operator, Kafka cluster, Redis, queue CRD/operator, management-service).
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: strimzi-operator
|
||||
namespace: cicd
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "0"
|
||||
spec:
|
||||
project: kmsvc
|
||||
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
|
||||
@@ -0,0 +1,31 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: kafka-cluster
|
||||
namespace: cicd
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "1"
|
||||
spec:
|
||||
project: kmsvc
|
||||
source:
|
||||
repoURL: https://forgejo.riotpiao.homelab.com/rock/kafaka-management-service.git
|
||||
targetRevision: main
|
||||
path: k8s/charts/kafka-cluster
|
||||
helm:
|
||||
values: |
|
||||
namespace: sqs
|
||||
nodePool:
|
||||
replicas: 3
|
||||
storage:
|
||||
class: longhorn
|
||||
sizeGi: 50
|
||||
resources:
|
||||
memory: 5Gi
|
||||
cpu: "2"
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: sqs
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
@@ -0,0 +1,43 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: kmsvc-redis
|
||||
namespace: cicd
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "1"
|
||||
spec:
|
||||
project: kmsvc
|
||||
source:
|
||||
repoURL: https://charts.bitnami.com/bitnami
|
||||
chart: redis
|
||||
targetRevision: 20.6.0
|
||||
helm:
|
||||
values: |
|
||||
architecture: standalone
|
||||
# docker.io/bitnami stopped publishing version-pinned tags; bitnamilegacy
|
||||
# mirrors them for free. allowInsecureImages silences the chart's
|
||||
# container-image allowlist check, which doesn't know about that mirror.
|
||||
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
|
||||
@@ -0,0 +1,30 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: queue-crd
|
||||
namespace: cicd
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "2"
|
||||
spec:
|
||||
project: kmsvc
|
||||
source:
|
||||
repoURL: https://forgejo.riotpiao.homelab.com/rock/kafaka-management-service.git
|
||||
targetRevision: main
|
||||
path: k8s/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"
|
||||
image:
|
||||
repository: forgejo.riotpiao.homelab.com/rock/kafka-management-service-queue-operator
|
||||
# CI (.forgejo/workflows/release.yaml) writes the released git tag
|
||||
# here and pushes the commit -- ArgoCD picks it up on its next sync.
|
||||
tag: latest
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: sqs
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
@@ -0,0 +1,37 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: management-service
|
||||
namespace: cicd
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "2"
|
||||
spec:
|
||||
project: kmsvc
|
||||
source:
|
||||
repoURL: https://forgejo.riotpiao.homelab.com/rock/kafaka-management-service.git
|
||||
targetRevision: main
|
||||
path: k8s/charts/management-service
|
||||
helm:
|
||||
values: |
|
||||
namespace: sqs
|
||||
image:
|
||||
repository: forgejo.riotpiao.homelab.com/rock/kafka-management-service
|
||||
# CI (.forgejo/workflows/release.yaml) writes the released git tag
|
||||
# here and pushes the commit -- ArgoCD picks it up on its next sync.
|
||||
tag: latest
|
||||
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.homelab.internal
|
||||
clusterIssuer: homelab-ca
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: sqs
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
Reference in New Issue
Block a user