Standardized git repo layouts helps to keep deployments consistent and clean:
k-argocd
- /appofapps/clusters/application.yaml
- /apps
- /argocd-seed/update.sh
- /argocd/applicationset.yaml
- /clusterapi/applicationset.yaml
- /daytwo/applicationset.yaml
- /projects
- /addons.yaml
- /developer.yaml
- /devsecops.yaml
k-argocd-addons
- /apps
- /adcs-issuer-system/applicationset.yaml
- /adcs-issuer-system/base/Chart.yaml
- /cert-manager/applicationset.yaml
- /external-dns/applicationset.yaml
- /external-dns-root/applicationset.yaml
- /fluent-bit/applicationset.yaml
- /kasten/applicationset.yaml
- /nginx-ingress/applicationset.yaml
- /metrics-server/applicationset.yaml
- /pinniped-concierge/applicationset.yaml
- /prometheus/applicationset.yaml
k-argocd-clusters
- /clusters
- /vc-non.yaml
- /vc-prod.yaml
k-vc-non
- /appofapps
- /namespaces/application.yaml
- /apps
- /example/applicationset.yaml
- /example/base/Chart.yaml
- /namespaces
- /example/namespace.yaml
- /example/resourcequota.yaml
- /example/servicemesh.yaml
k-vc-prod
- /appofapps
- /namespaces/application.yaml
- /apps
- /example/applicationset.yaml
- /example/base/Chart.yaml
- /namespaces
- /example/namespace.yaml
- /example/resourcequota.yaml
- /example/servicemesh.yaml
daytwo automates several steps needed when first deploying clusters:
- register cluster with argocd, also adds annotation allowing applications to target by cluster name
- copy labels from cluster yaml to argocd secret, useful for deploying addons
- generates pinniped kubeconfig, allows for initial access without needing admin kubeconfig
- registers as a kasten secondary cluster, (if kasten is being used)
Scripts / pipelines are needed to:
- provision / decommission a cluster
- adjust cluster resources
- add / remove a namespace
- adjust namespace resource quota
- grant developers access to namespaces