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.