- terraform
- kubectl
- aws-cli
- argocd
- Store AWS credentials and config in
~/.aws/
- Get LabRole ARN
aws iam get-role --role-name LabRole | grep Arn
- Terraform init and apply
terraform -chdir=terraform init
terraform -chdir=terraform apply -var="aws_iam_role=your_lab_role_arn"
- Check the cluster's name
aws eks list-clusters
- Generate kubeconfig
aws eks update-kubeconfig --name your_cluster_name
- Verify connection via kubectl
kubectl get nodes
- Create namespace
kubectl create namespace argocd
- Install ArgoCD
kubectl -n argocd apply -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
- Expose ArgoCD service
kubectl -n argocd port-forward svc/argocd-server 8080:443
- Access ArgoCD UI
open http://localhost:8080
- Obtain the initial password
argocd admin initial-password -n argocd
- Login
argocd login localhost:8080 --username admin --password your_initial_password
- Create namespace
kubectl create namespace argo
- Install Argo Workflows
kubectl -n argo apply -f https://github.com/argoproj/argo-workflows/releases/download/v3.5.7/quick-start-minimal.yaml
- Apply patch to Argo Workflows deployment
kubectl -n argo patch deployment argo-server --type JSON --patch-file k8s/argo-server-patch.yaml
- Expose Argo Workflows service
kubectl -n argo port-forward svc/argo-server 2746:2746
- Access Argo Workflows UI
open http://localhost:2746
- Create namespace
kubectl config set-context --current --namespace=argocd
- Create application in ArgoCD from repository
argocd app create workflow-api --repo https://github.com/SUU-Argo/workflow-api.git --path deploy --dest-server https://kubernetes.default.svc --dest-namespace argo
- Display application instance details
argocd app get workflow-api
- Enable automatic sync
argocd app set workflow-api --sync-policy automated
- Expose workflow-api application
kubectl -n argo port-forward svc/workflow-api 8081:8080
- Access workflow-api application
open http://localhost:8081