What Gets Deployed
This layer installs:- ArgoCD: GitOps continuous delivery platform
- Traefik: Modern ingress controller and reverse proxy
- EBS CSI Driver: Amazon EBS storage integration for Kubernetes
- Application TLS Certificates: Automated certificate provisioning for services
- Vault Roles & Policies: Application-specific secret access controls
- External DNS: Automatic DNS record management
Environment Variables
Before deploying, ensure you have configured all required variables:Required Variables
| Variable | Description | Source |
|---|---|---|
VAULT_TOKEN | Vault root token | Generated by vault-bootstrap.sh |
VAULT_ADDR | Vault server URL | Set by vault-bootstrap.sh |
TF_VAR_github_owner | GitHub username or organization | Your .env file |
TF_VAR_github_helm_charts_repo | Helm charts repository name | Your .env file |
TF_VAR_github_app_id | GitHub App ID | Your .env file |
TF_VAR_github_app_installation_id | GitHub App Installation ID | Your .env file |
TF_VAR_github_app_private_key_file | Path to GitHub App private key | Your .env file |
Deployment Steps
Review the plan
- ArgoCD deployment and configuration
- Traefik Helm release
- Application TLS certificates
- Vault policies for applications
- External DNS configuration
Application Components
ArgoCD
ArgoCD provides GitOps continuous delivery for Kubernetes. Features:- Declarative GitOps CD
- Automated application deployment
- Health status monitoring
- Rollback capabilities
- Multi-cluster management
- Deployed in
argocdnamespace - Web UI accessible via ingress
- ApplicationSets for dynamic app discovery
- GitHub integration for Helm chart repositories
Traefik
Traefik is a modern HTTP reverse proxy and load balancer. Features:- Automatic service discovery
- Let’s Encrypt integration
- Middleware support (auth, rate limiting, etc.)
- Metrics and tracing
- Dynamic configuration
- Deployed in
traefiknamespace - IngressRoute CRDs for routing
- Automatic TLS certificate provisioning
- Integration with cert-manager
EBS CSI Driver
The Amazon EBS CSI driver enables Kubernetes to manage EBS volumes. Features:- Dynamic volume provisioning
- Volume snapshots
- Volume expansion
- EBS volume types support (gp3, gp2, io1, etc.)
- Deployed in
kube-systemnamespace - StorageClasses for different EBS volume types
- IAM Roles for Service Accounts (IRSA)
Application TLS Certificates
Automated TLS certificates for application services. Certificates provisioned:- Wildcard certificate for
*.yourdomain.com - ArgoCD certificate
- Vault certificate
- Traefik dashboard certificate
- Uses cert-manager with Let’s Encrypt
- DNS-01 challenge via Cloudflare
- Automatic renewal before expiration
Vault Policies
Application-specific Vault policies for secret access. Policies created:- ArgoCD policy for Git credentials
- Application policy for app secrets
- External Secrets Operator policy
Accessing Services
ArgoCD
Access UI
Connect to Tailscale, then navigate to:Login with:
- Username:
admin - Password: (from step 1)
Traefik Dashboard
Access the Traefik dashboard:http://localhost:9000/dashboard/.
Verification
Check All Pods
Running state.
Verify ArgoCD
Verify Certificates
Ready status.
Verify Vault Policies
Using the Vault CLI:ArgoCD ApplicationSets
The deployment includes ApplicationSets that automatically discover and deploy Helm charts from your GitHub repository. Configuration:- Monitors specified GitHub repository for Helm charts
- Automatically creates ArgoCD Applications for each chart
- Syncs applications to the cluster
Troubleshooting
ArgoCD Not Syncing
Check application status:- GitHub credentials incorrect
- Repository not accessible
- Invalid Helm chart syntax
- Resource quotas exceeded
Certificate Not Issuing
Check certificate and challenge status:- Cloudflare API token permissions
- DNS propagation delays
- Let’s Encrypt rate limits
Vault Policy Errors
Verify Vault authentication:- Token expired
- Insufficient permissions
- Vault address incorrect
Next Steps
With all layers deployed, you can now access and manage your services.Accessing Services
Learn how to access Vault, ArgoCD, and EKS
Troubleshooting
Common issues and solutions