With this project you can provision an AWS EKS
cluster with Terraform
, install ArgoCD
to deploy a configuration file which look for changes in another GitHub repo k8-pipeline-GitOps.
This repo keeps track of the docker image tag changes from a sample Python flask application k8-pipeline-ci, triggering the ArgoCD
agent to deploy the python flask application with the new changes.
The main goal is to showcase the GitOps pattern in DevOps
- AWS account https://repost.aws/knowledge-center/create-and-activate-aws-account
- IAM user credentials configure with
aws configure
command https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html - Install aws cli https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
- Terraform https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli
terraform init
terraform apply
orterraform apply -auto-approve
aws eks update-kubeconfig --region <aws-region> --name testing-environment-eks
replace<aws-region>
for your preferred one, e.g.us-east-1
kubectl get all
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl get pods -n argocd
kubectl apply -f argocd-application.yml
kubectl get svc -n argocd
kubectl port-forward svc/argocd-server 8080:443 -n argocd
- Go to
https://127.0.0.1:8080
- Enter username
admin
& password, the value originated after runningkubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 --decode && echo
kubectl get pods -n flaskdemo