Validation Status
Components
| Component | Validation Method | Status | Notes |
|---|---|---|---|
| Kubernetes manifests | kubeval, dry-run | ✅ Validated | All manifests validated locally |
| Helm charts | helm template | ✅ Validated | Charts render successfully |
| Terraform modules | terraform validate | ✅ Validated | All modules pass validation (GCP and AWS) |
| Terraform plan (GCP) | terraform plan | ⚠️ Reviewed | Requires GCP credentials |
| Terraform plan (AWS) | terraform plan | ⚠️ Reviewed | Requires AWS credentials |
| GCP resources | Requires deployment | ⚠️ Reviewed | Not deployed to GCP |
| AWS resources | Requires deployment | ⚠️ Reviewed | Not deployed to AWS |
| Private cluster access | Bastion host | ⚠️ Reviewed | Requires full deployment |
Multi-Cloud Support
This lab supports two deployment options:
- GCP (GKE) - Private GKE cluster with private endpoint
- AWS (EKS) - Private EKS cluster with private endpoint
Validation status applies to both providers unless otherwise noted. The Kubernetes application layer (Argo Workflows, Ingress) is identical across both providers.
How to Validate
Local Validation
bash
# Validate Terraform
cd labs/03-private-network-deployment
terraform init
terraform validate
terraform fmt -check
# Validate Kubernetes manifests
kubectl apply --dry-run=client -f manifests/
# Validate Helm charts
helm template argo-workflows argo/argo-workflows \
-f ../../modules/kubernetes/argo-workflows/helm-values.yaml
# GCP Ingress chart
helm template ingress-nginx ingress-nginx/ingress-nginx \
--set controller.service.type=LoadBalancer \
--set controller.service.annotations."cloud\.google\.com/load-balancer-type"="Internal"
# AWS Ingress chart
helm template ingress-nginx ingress-nginx/ingress-nginx \
--set controller.service.type=LoadBalancer \
--set controller.service.annotations."service\.beta\.kubernetes\.io/aws-load-balancer-scheme"="internal"Cloud Validation (GCP)
bash
# Requires GCP project and credentials
cd labs/03-private-network-deployment
# Set cloud_provider = "gcp" in terraform.tfvars
terraform plan
terraform apply
# Access bastion
./scripts/bastion-access.sh
# From bastion, deploy and validate
gcloud container clusters get-credentials <cluster-name> --region <region> --project <project-id> --internal-ip
./scripts/deploy-argo.sh
./scripts/validate.shCloud Validation (AWS)
bash
# Requires AWS account and credentials
cd labs/03-private-network-deployment
# Set cloud_provider = "aws" in terraform.tfvars
terraform plan
terraform apply
# Access bastion
./scripts/bastion-access.sh
# From bastion, deploy and validate
aws eks update-kubeconfig --region <region> --name <cluster-name>
./scripts/deploy-argo.sh
./scripts/validate.shProvider-Specific Validation
GCP (GKE)
- ✅ Private Endpoint: Validated via Terraform configuration
- ✅ Private Google Access: Validated via VPC module
- ✅ Internal Load Balancer: Validated via Helm annotations
- ⚠️ Bastion Access: Requires deployment to test
AWS (EKS)
- ✅ Private Endpoint: Validated via Terraform configuration
- ✅ VPC Endpoints: Validated via VPC module
- ✅ Internal Load Balancer: Validated via Helm annotations (automatic with private subnets)
- ⚠️ Bastion Access: Requires deployment to test
Community Validation
If you've deployed this lab successfully, please:
- Open an issue confirming successful deployment
- Note your:
- Provider (GCP or AWS)
- Region/zone
- Any modifications made
- Confirm bastion access and private cluster connectivity worked
- Update this file via PR if appropriate
Community Validation Results
- GCP: ⏳ Awaiting community validation
- AWS: ⏳ Awaiting community validation
Status Legend
- ✅ Validated - Tested and confirmed working
- ⏳ Pending - Not yet validated
- ⚠️ Reviewed - Code reviewed but not deployed
- ❌ Failed - Validation failed (see notes)