The project demonstrates a GitOps approach to deploying applications to Kubernetes (EKS) via ArgoCD. Changes in Git are automatically applied to the cluster.
goit-argo/
├── namespaces/
│ ├── application/
│ │ ├── nginx.yaml # Deployment + nginx service
│ │ └── ns.yaml # Namespace: application
│ └── infra-tools/
│ └── ns.yaml # Namespace: infra-tools
├── application.yaml # ArgoCD Application manifesto
└── README.md
- AWS CLI configured with
terraform-adminprofile - Terraform >= 1.0
- kubectl
- EKS cluster created via Terraform
cd eks-vpc-cluster
terraform init
terraform applyaws eks --region eu-central-1 update-kubeconfig \
--name eks-cluster \
--profile terraform-admincd terraform/argocd
terraform init
terraform applykubectl get pods -n infra-toolsThere should be 7 pods with the argocd- prefix in the Running status.
kubectl -n infra-tools get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -dkubectl port-forward svc/argocd-server -n infra-tools 8080:80Перейти на http://localhost:8080
- Username:
admin - Password: from the previous step
kubectl apply -f application.yamlkubectl get applications -n infra-toolsExpected result: NAME SYNC STATUS HEALTH STATUS nginx Synced Healthy
kubectl get pods -n applicationThere should be 2 demo-nginx pods in Running status.
kubectl port-forward svc/demo-nginx 8080:80 -n applicationOpen browser: http://localhost:8080
Remove in reverse order:
# 1. Видалити ArgoCD
cd terraform/argocd
terraform destroy
# 2. Видалити EKS і VPC
cd eks-vpc-cluster
terraform destroy