Skip to content

Validation Status ​

Components ​

ComponentValidation MethodStatusNotes
Kubernetes manifestskubeval, dry-run✅ ValidatedAll manifests validated locally
Helm chartshelm template✅ ValidatedCharts render successfully
Terraform modulesterraform validate✅ ValidatedAll modules pass validation (GCP and AWS)
Terraform plan (GCP)terraform plan⚠️ ReviewedRequires GCP credentials
Terraform plan (AWS)terraform plan⚠️ ReviewedRequires AWS credentials
GCP resourcesRequires deployment⚠️ ReviewedNot deployed to GCP
AWS resourcesRequires deployment⚠️ ReviewedNot deployed to AWS
Private cluster accessBastion host⚠️ ReviewedRequires full deployment

Multi-Cloud Support ​

This lab supports two deployment options:

  1. GCP (GKE) - Private GKE cluster with private endpoint
  2. 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.sh

Cloud 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.sh

Provider-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:

  1. Open an issue confirming successful deployment
  2. Note your:
    • Provider (GCP or AWS)
    • Region/zone
    • Any modifications made
  3. Confirm bastion access and private cluster connectivity worked
  4. 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)

Released under the MIT License.