Deploys a Private GKE cluster with Istio and a helloworld deployment plumbed up to an Istio Ingress Gateway via an Istio VirtualService.
- Private cluster
- default node pool removed
- Control plane authorized networks enabled
- Custom node pool
- Shielded nodes
- Istio service mesh
- Default install profile via tf module flag
- Ingress Gateway
- Gateway
- Virtual Service
- Custom myapp namespace
- myapp namespace has istio-injection enabled
- App deployed into custom
myapp namespace
Then perform the following commands on the root folder:
terraform init to get the plugins
terraform plan to see the infrastructure plan
terraform apply to apply the infrastructure build
terraform destroy to destroy the built infrastructure
Terraform will provide outputs containing the app URL.
No requirements.
| Name |
Source |
Version |
| gke |
terraform-google-modules/kubernetes-engine/google//modules/beta-private-cluster |
21.0.0 |
| Name |
Description |
Type |
Default |
Required |
| cluster_name_suffix |
A suffix to append to the default cluster name |
string |
"" |
no |
| compute_engine_service_account |
Service account to associate to the nodes in the cluster |
any |
n/a |
yes |
| ip_range_pods |
The secondary ip range to use for pods |
any |
n/a |
yes |
| ip_range_services |
The secondary ip range to use for services |
any |
n/a |
yes |
| network |
The VPC network to host the cluster in |
any |
n/a |
yes |
| project_id |
The project ID to host the cluster in |
any |
n/a |
yes |
| region |
The region to host the cluster in |
any |
n/a |
yes |
| subnetwork |
The subnetwork to host the cluster in |
any |
n/a |
yes |
| zones |
The zone to host the cluster in (required if is a zonal cluster) |
list(string) |
n/a |
yes |