According to Hazelcast requirements, we need to have Kubernetes Clusters in different regions with different configurations.
Basically we need to maintain multiple Kubernetes clusters at the same time.
Also we shouldn't lose any configuration that applied to kubernetes clusters.
Upgrading/Updating clusters should be smooth and scalable.

Client: Hazelcast
Project type: DevOps as a Service



kloia always applies Infrastructure as A Code approach. So we defined Kubernetes cluster
configs in YAML format. So for each cluster we have different YAML file that defines specific
Kubernetes Cluster. ( Like region, zone, machine count, kubernetes version etc)
Then we wrote Terraform scripts that gets the YAML config file and applies to Cloud.




Now, Hazelcast commits their changes to their git repository. Then it is applied to cloud automatically.
They can add/remove machines, upgrade kubernetes version or change any config they want.
Everything is persistent. If someone joins the team then new person can easily see configuration of the whole system.