An Azure platform for running a service on AKS with Terraform, Argo CD, CI, observability and incident handling.
View the Project on GitHub Franklindot04/production-platform-Azure
After session.sh up --apply the cluster is empty. Argo CD (ADR 0006) has to be installed, and told what to sync, without a manual step, every session. ADR 0006 said that Terraform installs Argo CD with Helm. A Helm provider in the session root would be configured from a cluster that the same apply creates, and a third root would split the state of one layer (ADR 0010).
Facts read from the Argo CD Helm chart repository:
argo-cd 10.14.0, which installs Argo CD v3.6.1.bootstrap step in infrastructure/session.sh runs after the apply. It is a script step, not Terraform, and there is no third Terraform root.helm upgrade --install from a pinned chart version (10.14.0) and the values in gitops/bootstrap/argocd-values.yaml, waits until it is ready, sets the source range of the ingress (ADR 0016), and applies one root Application. PP_KUBE_CONTEXT makes it use an existing kubectl context instead, which is how it is run against kind.gitops/dev in this repository. The repository is public, so Argo CD needs no repository credential (ADR 0006).kubectl port-forward only.session.sh (argocd-password) reads it from the cluster when asked and prints it to the terminal. It is not written to a file, a log or the repository, and the step refuses to print it when the output is not a terminal. It disappears with the cluster.kind, including a repeat. Its ingress part runs against a stand-in for the add-on’s resource there, because kind has no add-on. That part is checked on AKS in a live session.kubectl are needed on the maintainer’s machine.