# ============================================================================= # cluster.example.yml — inventory multi-host SiCABE (CONTOH; salin ke cluster.yml) # ----------------------------------------------------------------------------- # Fase 1 R10 §4.3/§4.5 + taksonomi 7-tier R11. # # CARA PAKAI # cp cluster.example.yml cluster.yml # lalu sesuaikan address # ./install.sh --generate # hasil ke generated/host-/ # # Penting: berkas `cluster.yml` bersifat OPSIONAL. Bila TIDAK ADA, installer # berjalan seperti sekarang (single-host) — `docker-compose.yml` dipakai langsung # dan tidak ada berkas di `generated/` yang dibuat. # # PRECEDENCE (tertinggi → terendah) # 1. components..host (override eksplisit) # 2. hosts..tiers (tier → host) # 3. preset (a3 | b5) — hanya mengisi default tiers # ============================================================================= version: 1 cluster: name: sicabe-prod env: production # domain = basis nama BROWSER-FACING (lihat blok `tls` di bawah). Isi nama domain # saja — tanpa skema, tanpa garis miring. Untuk mode `none` nilainya tidak dipakai. domain: sicabe.com # ─── TLS (langkah 1: baru SKEMA; Traefik + sertifikat menyusul di step 2) ───── # none (DEFAULT) — perilaku sekarang: http, IP + port 12xxx. Bidang internal # plaintext. Cocok untuk lab/uji tertutup. # edge — browser memakai https://. lewat ingress; # bidang internal (container↔container) TETAP plaintext. # Pilihan paling murah untuk pilot: satu sertifikat wildcard, # dan naik ke `full` nanti TIDAK mengubah URL/issuer. # full — seluruh segmen TLS (butuh kepercayaan CA di semua klien). # tls: # mode: edge # contoh: aktifkan ingress berbasis nama tls: mode: none # a3 = 3 host (default) · b5 = 5 host (coord terpisah + 2 engine) preset: a3 hosts: control: address: 10.20.0.10 # tier = kelompok peran (R11 §3.1). Preset a3 sudah mengisi ini; ditulis # eksplisit agar terbaca. `control` mengelompokkan komponen ringan. tiers: [identity, policy, pipeline, governance] compute: address: 10.20.0.11 # coord = trino-coordinator + starrocks-fe · engine = trino-worker + starrocks-cn tiers: [coord, engine] state: address: 10.20.0.12 # state WAJIB tepat satu host dan tidak boleh digabung dengan `engine`. # Berisi: postgres, minio (+minio-init), openmetadata-opensearch. tiers: [state] components: # Override penempatan per komponen (prioritas tertinggi). Contoh: pindahkan # StarRocks FE ke host control bila compute sudah terlalu padat. # starrocks-fe: { host: control } # ── Komponen EKSTERNAL (dikelola sistem lain) ─────────────────────────────── # Tandai dengan `address` — maka komponen TIDAK dijalankan di cluster ini dan # koneksi diarahkan ke alamat itu. Host = alamat IP/hostname biasa: # keycloak: { address: 100.93.54.108 } # URL boleh berupa **URL PENUH** (skema + host + port). Skema & port dihormati # apa adanya (port default per skema, mis. https→443, boleh dihilangkan): # keycloak: { address: https://sso.example.com } # minio: { address: https://minio.corp:9000 } # nessie: { address: https://nessie.corp } # openldap: { address: ldaps://ldap.corp:636 } # opa: { address: https://opa.corp } # Efek URL penuh: `*_HOST` = host saja; `*_URL`/`*_PUBLIC_URL` = URL itu; # server→server OIDC diarahkan lewat KEYCLOAK_INTERNAL_URL (Trino/Grafana); # `https://…` ⇒ KEYCLOAK_SSL_REQUIRED=external. `host` dan `address` tak boleh # bersamaan (host = dijalankan cluster; address = dikelola pihak lain). # Dremio default NONAKTIF. Bila diaktifkan: taruh di host bertier `engine` # (butuh RAM ~4 GB lebih — cek kapasitas host). dremio: { enabled: false } # Contoh blueprint b5 (5 host): hapus komentar dan GANTI `preset` di atas. # preset: b5 # hosts: # control: { address: 10.20.0.10, tiers: [identity, policy, pipeline, governance] } # coord: { address: 10.20.0.11, tiers: [coord] } # engine-1: { address: 10.20.0.12, tiers: [engine] } # engine-2: { address: 10.20.0.13, tiers: [engine] } # state: { address: 10.20.0.14, tiers: [state] } # Catatan b5: dua host `engine` menjalankan service `trino-worker` dan # `starrocks-cn` masing-masing satu — jadi tiap host engine punya node sendiri.