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