Murat ÖZDEMİR 27f4f83f73 docs(prod): resolve cross-layer inconsistencies and complete prod env implementation
Ansible roles:
- act_runner/defaults: set act_runner_name to inventory_hostname (was
  hardcoded to iklim-test-app); added vault_gitea_runner_token to vault.yml
- prod/group_vars/all: restructured from flat files to all/ directory;
  added act_runner_labels override (prod-runner,ubuntu-24.04,hostname);
  added storagebox_managed_directories; added swarm_manager_ip and other
  prod-specific vars
- prod/roles/db_stack: prod-specific db_node tasks using StorageBox paths
  (/mnt/storagebox/db/...) instead of local paths
- docker/tasks: split firewalld loop into all-nodes (Swarm ports) and
  app-only (80/443) tasks
- swarm/tasks: added --advertise-addr private_ip to join commands for
  correct multi-homed node advertisement
- hardening/tasks: corrected firewalld drop zone configuration
- node_dirs/tasks: added /opt/iklimco/vault/data for Vault Raft volume
- db_stack/tasks/app_node: updated stale comment (removed pg-proxy reference)
- db_stack/templates: removed pg-proxy and mongo-proxy service blocks
- test/host_vars/iklim-app-01: added act_runner_name override to preserve
  existing test runner registration

Roadmap and setup docs:
- roadmap/03-infra-stack-changes: added replicas:0 for etcd/postgresql/
  mongodb/pg-proxy/mongo-proxy in prod overlay; updated placement table;
  fixed grafana/data mkdir (auto-created by Ansible); translated Turkish
  note to English
- roadmap/08-deploy-pipeline-update: updated stale "remains idle" note
  for standalone etcd (now disabled with replicas:0)
- roadmap/01-swarm-init-multinode: consistency fixes
- setup/06: added Outputs section and etcd firewall port documentation
- setup/07: removed prometheus/data from StorageBox acceptance criteria;
  replaced manual StorageBox mkdir section with Ansible auto-creation note;
  updated prod README section with full bootstrap instructions and vault docs;
  added act_runner_labels prod policy
- setup/08: extensive rewrite — aligned with Patroni etcd overlay DNS,
  corrected hcloud_firewall.app reference, updated all StorageBox paths
  from /prod/db/ to /db/
- setup/09: removed prometheus/data from acceptance criteria; updated
  runner label policy (removed docker/swarm-manager labels); added
  acceptance criterion for disabled services absent from docker service ls

Terraform:
- prod/firewall.tf: added missing DB subnet mutual rules (etcd, Patroni)
- prod/outputs.tf: added prod_floating_ip and prod_private_ips outputs
- prod/servers.tf: aligned placement group and naming
- prod/variables.tf: corrected variable descriptions
- prod/terraform.tfvars.example: updated defaults
- terraform/hetzner/README.md: new comprehensive README covering both
  test and prod environments with firewall tables and inventory instructions

ansible/README.md: expanded prod section with inventory groups, bootstrap
  run order, runner label policy, and vault variable documentation
2026-05-18 19:17:56 +03:00

🌍 iklim.co Altyapı ve Sunucu Yönetimi

Bu depo, iklim.co projesinin test ve production ortamlarını kurmak, yönetmek ve modernize etmek için gerekli olan Infrastructure-as-Code (IaC) varlıklarını, teknik rehberleri ve operasyonel standartları barındırır.

Altyapı yönetimi; Hetzner Cloud üzerinde Terraform ile kaynak provisioning, Ansible ile işletim sistemi yapılandırması ve Docker Swarm üzerinde mikroservis mimarisinin kurgulanması süreçlerini kapsar.


📂 Depo Yapısı ve Temel Bölümler

Bu depodaki dökümantasyon ve kod varlıkları beş ana kategoriye ayrılmıştır:

1. 🛣️ Roadmap (roadmap/)

Ortamların (test ve prod) sıfırdan kurulması veya mevcut yapının güncellenmesi için gerekli olan iş gereksinimlerini, teknik hedefleri ve adım adım uygulama planlarını içerir.

  • Altyapıda yapılacak büyük değişikliklerin (örn: Redis Sentinel geçişi, APISIX konfigürasyonu, RabbitMQ Quorum Queues) stratejik dökümantasyonudur.
  • roadmap/test-env/ - Test ortamı gereksinimleri ve planları.
  • roadmap/prod-env/ - Üretim ortamı HA (High Availability) ve güvenilirlik planları.

2. 🛠️ Setup (setup/)

Altyapının fiziksel olarak ayağa kaldırılması için kullanılan uygulama dökümanlarıdır. Bu bölüm şunları yönetmek için kullanılır:

  • Terraform: Bulut kaynaklarının (Server, Network, Firewall) üretilmesi.
  • Ansible: İşletim sistemi hazırlığı, güvenlik sertleştirme (hardening), Docker/Swarm kurulumu.
  • CI/CD: Deployment workflow'larının (Gitea Actions) ve stack manifest'lerinin oluşturulması/güncellenmesi.
  • Örn: setup/06-prod-terraform-iaac.md, setup/07-prod-ansible-bootstrap.md

3. 🗺️ Setup vs Roadmap Matrisi (setup-vs-roadmap-map.md)

İşterler doğrultusunda hazırlanan Roadmap dökümanları ile bu isterleri teknik olarak hayata geçiren Setup dökümanları arasındaki ilişkiyi açıklar.

  • Hangi roadmap adımının hangi setup dökümanı ile uygulandığını gösteren bir eşleşme matrisidir.
  • setup-vs-roadmap-map.md dökümanından detaylara ulaşılabilir.

4. 📊 Hetzner Sizing Report (hetzner-sizing-report.md)

İklim altyapı servisleri (API Gateway, Microservices, Databases, Broker) için seçilen Hetzner sunucu tiplerini, CPU/RAM kapasitelerini ve maliyet/performans analizlerini anlatır.

  • Ortam kurulumundan önce kapasite planlaması için temel referans noktasıdır.
  • hetzner-sizing-report.md dökümanını inceleyin.

5. 💡 Facts (facts/)

Ortam kurulumları tamamlandıktan sonra ortaya çıkan, sistemin o anki gerçek durumunu (source of truth) ve bilinmesi gereken kritik teknik detayları barındıran dökümanlardır.


🧱 Kurulum Akışı (Kanonik Sıra)

Bir ortamı sıfırdan kurarken veya majör bir güncelleme yaparken şu sırayı takip edin:

  1. Analiz: hetzner-sizing-report.md ile kaynak ihtiyacını belirleyin.
  2. Planlama: roadmap/ altındaki ilgili ortam dökümanlarını inceleyerek yapılacak değişiklikleri anlayın.
  3. Hizalama: setup-vs-roadmap-map.md ile hangi setup dökümanlarını kullanacağınızı netleştirin.
  4. Uygulama: setup/ dökümanlarını (00'dan 09'a kadar) sırasıyla takip ederek Terraform ve Ansible süreçlerini işletin.
  5. Doğrulama: Kurulum sonrası sistemin çalışma prensipleri için facts/ dökümanlarını referans alın.

Ön Koşullar ve Araçlar

  • Terraform >= 1.6: Altyapı provisioning.
  • Ansible: Konfigürasyon yönetimi.
  • Hetzner Cloud API Token: Ortam bazlı yetkilendirme.
  • SSH Key: Sunucu erişimi için sisteme tanımlı anahtar çifti.

iklim.co Infrastructure Team - 2026

Description
No description provided
Readme 2.6 MiB
Languages
HCL 83.6%
Jinja 16.4%