https://github.com/felipelaptrin/kubernetes-gitops-argocd
A demo for my blog post about how to bridge the gap between Terraform and ArgoCD
https://github.com/felipelaptrin/kubernetes-gitops-argocd
app-of-apps applicationset argocd gitops helm karpenter kubernetes mise terraform
Last synced: 5 days ago
JSON representation
A demo for my blog post about how to bridge the gap between Terraform and ArgoCD
- Host: GitHub
- URL: https://github.com/felipelaptrin/kubernetes-gitops-argocd
- Owner: felipelaptrin
- Created: 2026-04-20T11:22:48.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-10T14:09:36.000Z (9 days ago)
- Last Synced: 2026-06-10T15:12:12.858Z (9 days ago)
- Topics: app-of-apps, applicationset, argocd, gitops, helm, karpenter, kubernetes, mise, terraform
- Language: HCL
- Homepage: https://www.felipetrindade.com/bridge-the-gap-argocd/
- Size: 304 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Kubernetes Bootstrap ArgoCD
## How to run the project
1) Install dependencies with [Mise](https://mise.jdx.dev/)
```sh
mise install
```
2) Adjust backend and vars file in `config/dev/us-east-1.tfvars` folder
3) Export AWS credentials related to the account you would like to deploy
4) Initialize Terraform
```sh
cd src/
mise run init-dev
```
5) Deploy initial infrastructure
```sh
mise run apply-dev-bootstrap
```
The infrastructure needs to be deployed in a two-phase process when using Terraform. This is a limitation of the Kubernetes provider for Terraform, since it's required to have an [EKS cluster provisioned before using the provider](https://registry.terraform.io/providers/hashicorp/kubernetes/3.0.1/docs#stacking-with-managed-kubernetes-cluster-resources).
6) Deploy the rest of the infrastructure
```sh
mise run apply-dev
```
From now on, no need to run bootstrap anymore! Every future deployment can run directly `mise run apply-dev`.
7) Add Deploy key to GitHub Repository
The Terraform created the SSH key to be used by ArgoCD in order to pull the repository (if it's private). Basically you should copy the output of `argocd_deploy_public_key` and add it as a `Deploy Key` in your repository.
8) Get ArgoCD Admin Password
```sh
mise run update-kubeconfig
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
```
9) Access ArgoCD UI
The URL will be `argocd.`, where the domain is the domain set in the `config/dev/us-east-1.tfvars` file.
Use username `admin` and password the value you got from the previous step (STEP 8)