commit 0f9a8fa3bc01a51043864c953553c8a9e68f062a Author: shadowlegend Date: Tue Apr 1 14:47:32 2025 +0700 chore: add argocd + infra setup diff --git a/k8s-bootstrap/bootstrap.yml b/k8s-bootstrap/bootstrap.yml new file mode 100644 index 0000000..f0a862e --- /dev/null +++ b/k8s-bootstrap/bootstrap.yml @@ -0,0 +1,22 @@ +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: bootstrap + namespace: argocd +spec: + syncPolicy: + automated: + selfHeal: true + retry: + limit: 4 + backoff: + duration: 8s + factor: 2 + project: default + sources: + - repoURL: https://github.com/EKYCSolutions/crime-management-system.git + targetRevision: HEAD + path: deployment/k8s-infra + destination: + server: https://kubernetes.default.svc diff --git a/k8s-bootstrap/kustomization.yml b/k8s-bootstrap/kustomization.yml new file mode 100644 index 0000000..dbf5e8e --- /dev/null +++ b/k8s-bootstrap/kustomization.yml @@ -0,0 +1,18 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: argocd + +resources: +- namespaces.yml +- https://raw.githubusercontent.com/argoproj/argo-cd/v2.14.7/manifests/install.yaml +- management-plugin.yml + +patches: +- path: management-plugin-patch.yml + target: + group: apps + version: v1 + kind: Deployment + name: argocd-repo-server diff --git a/k8s-infra/apps.yml b/k8s-infra/apps.yml new file mode 100644 index 0000000..e14f984 --- /dev/null +++ b/k8s-infra/apps.yml @@ -0,0 +1,123 @@ +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: sealed-secrets + namespace: argocd +spec: + syncPolicy: + automated: + selfHeal: true + syncOptions: + - CreateNamespace=true + project: default + sources: + - chart: sealed-secrets + repoURL: https://bitnami-labs.github.io/sealed-secrets + targetRevision: 2.17.1 + destination: + server: https://kubernetes.default.svc + namespace: kube-system + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: cloudnative-pg + namespace: argocd +spec: + syncPolicy: + automated: + selfHeal: true + syncOptions: + - CreateNamespace=true + - ServerSideApply=true + project: default + sources: + - chart: cloudnative-pg + repoURL: https://cloudnative-pg.github.io/charts + targetRevision: 0.23.0 + helm: + values: | + crds: + create: true + destination: + server: https://kubernetes.default.svc + namespace: cloudnative-pg + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: reloader + namespace: argocd +spec: + syncPolicy: + automated: + selfHeal: true + syncOptions: + - CreateNamespace=true + project: default + sources: + - chart: reloader + repoURL: https://stakater.github.io/stakater-charts + targetRevision: 2.0.0 + destination: + server: https://kubernetes.default.svc + namespace: reloader + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: vector + namespace: argocd +spec: + syncPolicy: + automated: + selfHeal: true + syncOptions: + - CreateNamespace=true + project: default + sources: + - chart: vector + repoURL: https://helm.vector.dev + targetRevision: 0.40.0 + helm: + values: | + role: Agent + + persistence: + hostPath: + enabled: false + destination: + server: https://kubernetes.default.svc + namespace: vector + +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: autocert + namespace: smallstep +spec: + syncPolicy: + automated: + selfHeal: true + syncOptions: + - CreateNamespace=true + project: default + sources: + - chart: autocert + repoURL: https://smallstep.github.io/helm-charts + targetRevision: 1.20.1 + helm: + values: | + role: Agent + + persistence: + hostPath: + enabled: false + destination: + server: https://kubernetes.default.svc + namespace: smallstep diff --git a/k8s-infra/kustomization.yml b/k8s-infra/kustomization.yml new file mode 100644 index 0000000..00f22be --- /dev/null +++ b/k8s-infra/kustomization.yml @@ -0,0 +1,7 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: +- apps.yml +- https://raw.githubusercontent.com/dragonflydb/dragonfly-operator/main/manifests/dragonfly-operator.yaml