Skip to content

Validation Status

Components

ComponentValidation MethodStatusNotes
Kubernetes manifestskubectl apply --dry-run✅ ValidatedAll manifests validated locally
Network policiesKind/GCP/AWS deployment✅ ValidatedPolicies tested with all providers
RBAC configurationskubectl auth can-i✅ ValidatedRBAC tested locally
Resource quotaskubectl describe✅ ValidatedQuotas validated
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 (optional)
AWS resourcesRequires deployment⚠️ ReviewedNot deployed to AWS (optional)

Multi-Cloud Support

This lab supports three deployment options:

  1. Kind (Local) - Free, fully validated locally
  2. GCP (GKE) - Cloud deployment option
  3. AWS (EKS) - Cloud deployment option

Validation status applies to all providers unless otherwise noted. The Kubernetes application layer (multi-tenant patterns) is identical across all providers.

How to Validate

bash
# Create Kind cluster
cd labs/06-multi-tenant-deployment
./scripts/setup.sh  # Creates Kind cluster automatically

# Or manually:
kind create cluster --name multi-tenant-cluster

# Validate manifests
kubectl apply --dry-run=client -f manifests/

# Create tenant and validate
./tenant-onboarding/create-tenant.sh tenant-a standard
kubectl get namespace tenant-a
kubectl get resourcequota -n tenant-a
kubectl get networkpolicy -n tenant-a
kubectl get role -n tenant-a

# Test isolation
kubectl run test1 --image=busybox -n tenant-a --rm -it --restart=Never -- sh
# Try to reach tenant-b (should fail)

Cloud Validation (GCP)

bash
# Requires GCP project and credentials
cd labs/06-multi-tenant-deployment

# Set cloud_provider = "gcp" in terraform.tfvars
terraform init
terraform plan
terraform apply

# Get credentials
terraform output get_credentials_command
eval $(terraform output -raw get_credentials_command)

# Create tenants and validate
kubectl apply -f manifests/shared-services/
./tenant-onboarding/create-tenant.sh tenant-a standard
./scripts/validate.sh

Cloud Validation (AWS)

bash
# Requires AWS account and credentials
cd labs/06-multi-tenant-deployment

# Set cloud_provider = "aws" in terraform.tfvars
terraform init
terraform plan
terraform apply

# Get credentials
terraform output get_credentials_command
eval $(terraform output -raw get_credentials_command)

# Create tenants and validate
kubectl apply -f manifests/shared-services/
./tenant-onboarding/create-tenant.sh tenant-a standard
./scripts/validate.sh

Provider-Specific Validation

Kind (Local)

  • Network Policies: Fully supported (tested)
  • RBAC: Fully supported (tested)
  • Resource Quotas: Fully supported (tested)
  • Cost: Free (no validation cost)

GCP (GKE)

  • Network Policies: Supported (requires network_policy_enabled = true)
  • RBAC: Fully supported
  • Resource Quotas: Fully supported
  • ⚠️ Validation: Requires GCP deployment

AWS (EKS)

  • Network Policies: Supported (VPC CNI automatically supports it)
  • RBAC: Fully supported
  • Resource Quotas: Fully supported
  • ⚠️ Validation: Requires AWS deployment

Community Validation

If you've deployed this lab successfully, please:

  1. Open an issue confirming successful deployment
  2. Note your:
    • Provider (Kind, GCP, or AWS)
    • Cluster name and region/zone
    • Number of tenants created
    • Confirmation that tenant isolation is working
  3. Note any modifications made
  4. Update this file via PR if appropriate

Community Validation Results

  • Kind: ⏳ Awaiting community validation
  • 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)

Known Issues

None at this time. If you encounter issues, please open a GitHub issue with:

  • Provider (Kind, GCP, or AWS)
  • Error messages
  • Relevant logs
  • Region/zone information
  • Tenant configuration details

Released under the MIT License.