Examples and infrastructure for demonstrating Kubernetes Gateway API functionality on IONOS Cloud.
This repository contains:
- Setup Scripts (
setup.sh,teardown.sh,demo.sh): Main entrypoints for cluster provisioning, cleanup, and running demos - Demo Examples (
demo/): Gateway API demo configurations (basic routing, advanced routing, basic auth, rate limiting, TLS) - Terraform Configuration (
terraform/): Infrastructure-as-Code to provision a Kubernetes cluster on IONOS Cloud
→ See GETTING_STARTED.md for a detailed step-by-step guide.
Run the setup script to provision the cluster and install Envoy Gateway:
# Configure authentication
export IONOS_USERNAME="your-username"
export IONOS_PASSWORD="your-password"
# Run setup (provisions cluster, installs cert-manager, Envoy Gateway, and demo services)
./setup.shCluster Configuration:
- Node Pool "loadbalancer": 1 node, 2 CPUs, 4 GB RAM
- Node Pool "service": 2 nodes, 2 CPUs, 4 GB RAM
Run Gateway API demos:
# List available demos
./demo.sh --list
# Run a specific demo
./demo.sh basic-routing
./demo.sh advanced-routing
./demo.sh basic-auth
./demo.sh rate-limiting
./demo.sh tls
# Run all demos
./demo.sh allThe Terraform configuration creates:
- Managed Kubernetes cluster on IONOS Cloud
- Two node pools optimized for different workloads
- Configurable cluster settings (version, location, storage)
- IONOS Cloud account
- Terraform >= 1.0
- kubectl
- helm
- curl
.
├── setup.sh # Main setup script (provisions cluster, installs Gateway)
├── teardown.sh # Teardown script (cleans up resources)
├── demo.sh # Demo runner script
├── demo/ # Gateway API demo configurations
│ ├── basic-routing/ # Basic HTTP routing demo
│ ├── advanced-routing/ # Weighted load balancing demo
│ ├── basic-auth/ # Basic authentication demo
│ ├── rate-limiting/ # Rate limiting demo
│ ├── tls/ # TLS/HTTPS termination demo
│ └── services.yaml # Demo backend services
└── terraform/ # Infrastructure as Code for IONOS Cloud
├── main.tf # Main Terraform configuration
├── variables.tf # Input variables
├── outputs.tf # Output values
└── README.md # Terraform documentation
To clean up all resources, use the teardown script:
# Full teardown (destroys cluster and all resources)
./teardown.sh
# Keep cluster, only remove Kubernetes resources
./teardown.sh --keep-cluster
# Skip confirmation prompts
./teardown.sh --forceThe teardown script will:
- Clean up all demo resources
- Remove GatewayClass and EnvoyProxy configuration
- Uninstall Envoy Gateway and Cert-Manager Helm releases
- Optionally destroy the Terraform infrastructure (unless
--keep-clusteris used)
See LICENSE file for details.