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 configurecommand 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 initterraform applyorterraform apply -auto-approveaws eks update-kubeconfig --region <aws-region> --name testing-environment-eksreplace<aws-region>for your preferred one, e.g.us-east-1kubectl get allkubectl create namespace argocdkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yamlkubectl get pods -n argocdkubectl apply -f argocd-application.ymlkubectl get svc -n argocdkubectl 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