Skip to content

Terraform files for creating a Kubernetes cluster for running the conformance test on GCP

License

Notifications You must be signed in to change notification settings

mia-platform/k8s-conformance-cluster

Repository files navigation

GCP K8s Conformance Environment

This Terraform project can be used to create a test environment on GCP to run the K8s conformance tests for the Mia-Platform distribution.

Usage

The projects requires a minimal set of configuration as input of the terraform module that you can see here, you can choose to set them via flags or via a terraform.auto.tfvars file.

When you have the values that you want to set, run the following commands:

terraform init
terraform plan -out=plan.tfplan <optional -var flags>

The plan should create these resources, and showing as output the public IP address of the control-plane.

Finally, run:

terraform apply plan.tfplan

The initialization of the nodes may take a few minutes. You can check the cluster status by checking when the control plane port is open on the public IP adress that terraform will show you with netcat:

nc -v <public-ip> 6443

Or via telnet:

telnet <public-ip> 6443

You may now connect to the control plane via ssh, we suggest the usage of the gcloud command that Google will give you via the UI.
Once inside the control-plane become the root user and you will find a configured context for connecting to the cluster, you may now setup your preferred connection method for interacting with the cluster via the public endpoint.

Development

Pre-commit Hooks Install

Requisites:

# Install hooks in .git/hooks/pre-commit
pre-commit install --install-hooks
# (optional) Run manually pre-commit hooks to check if all its working
pre-commit run -a

Requirements

Name Version
terraform >= 1
google ~> 6
random ~> 3.6

Providers

Name Version
google 6.5.0
random 3.6.3

Modules

No modules.

Resources

Name Type
google_compute_firewall.allow_iap_access resource
google_compute_firewall.allow_node_ports resource
google_compute_firewall.allow_nodes_communication resource
google_compute_firewall.allow_public_access resource
google_compute_instance.control_plane resource
google_compute_instance.worker resource
google_compute_network.network resource
google_compute_subnetwork.subnetwork resource
random_string.join_token_first_part resource
random_string.join_token_second_part resource

Inputs

Name Description Type Default Required
cluster_version The version of Kubernetes that will run on the cluster. string "1.29" no
nodes_network_cidr The IP CIDR of the Kubernetes clusrter nodes. Default to 172.16.0.0/24 string "172.16.0.0/24" no
pod_network_cidr The IP CIDR of the pods in the Kubernetes cluster. Default to 10.10.0.0/16 string "10.10.0.0/16" no
project The Google project ID. string n/a yes
region The region where the cluster will be created. string "europe-west1" no
worker_count The number of worker nodes of the cluster. Default to 3 number 3 no

Outputs

Name Description
control_plane_public_ip The public IP for connecting to the cluster control plane

About

Terraform files for creating a Kubernetes cluster for running the conformance test on GCP

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published