- This commit introduces the Terraform configuration to provision a production environment on Hetzner Cloud, building on the existing test setup. - Key improvements and new features include: * **Multi-node clusters:** Scaling to 3-node Swarm application and database clusters for improved resilience. * **High availability:** Utilizing a Hetzner Floating IP for the application entry point and `spread` placement groups for fault tolerance across physical hosts. * **Enhanced network security:** Internal management services (RabbitMQ, APISIX, Prometheus, Grafana) are restricted to the application subnet, expected to be accessed via an internal reverse proxy (SWAG). * **Internal database replication:** New firewall rules enable PostgreSQL replication and MongoDB replica set traffic within the database subnet. * **Refined test environment:** Updates to align `test` configuration with the new `prod` structure, including a dedicated floating IP and adjusted firewall rules. * **Configuration standardization:** Environment-specific details moved to `locals.tf` for clarity, with upgraded server types and migration to Rocky Linux as the base image. - Updates were also made to the latest version of Terraform to ensure consistency in the documentation
23 lines
504 B
HCL
23 lines
504 B
HCL
locals {
|
|
environment = "prod"
|
|
hcloud_project = "iklim_prod"
|
|
name_prefix = "iklim-prod"
|
|
|
|
swarm_private_ips = {
|
|
"iklim-app-01" = "10.20.10.11"
|
|
"iklim-app-02" = "10.20.10.12"
|
|
"iklim-app-03" = "10.20.10.13"
|
|
}
|
|
|
|
db_private_ips = {
|
|
"iklim-db-01" = "10.20.20.11"
|
|
"iklim-db-02" = "10.20.20.12"
|
|
"iklim-db-03" = "10.20.20.13"
|
|
}
|
|
|
|
network_zone = "eu-central"
|
|
network_cidr = "10.20.0.0/16"
|
|
app_subnet_cidr = "10.20.10.0/24"
|
|
db_subnet_cidr = "10.20.20.0/24"
|
|
}
|