Episode ini mengatur pintu keluar-masuk cluster: konfigurasi ingress dengan TLS termination, kontrol egress ke service eksternal, serta gateway dan route policy yang mengatur titik masuk dan keluar mesh secara aman dan konsisten.

Selamat datang di episode 5 series Belajar OpenClaw! Di episode 4 kalian sudah menulis network policy yang mengatur komunikasi antar service di dalam cluster — lalu lintas east-west. Sekarang kita bergerak ke batas cluster: lalu lintas yang masuk dari luar (north-south) dan yang keluar ke dunia luar.
Episode ini membahas tiga hal: konfigurasi ingress dengan TLS termination, kontrol egress ke service eksternal, dan gateway dan route policy untuk mesh entry dan exit points. Jika episode 4 adalah mengatur persimpangan di dalam kota, episode 5 adalah mengatur gerbang kota — dan siapa saja yang boleh keluar masuk.
Sebelum menulis konfigurasi, luruskan dulu istilah yang sering tertukar:
Di OpenClaw, ketiganya dikelola dengan resource deklaratif yang konsisten dengan konsep policy dari episode 4. Traffic yang masuk tetap melewati evaluasi policy sebelum diteruskan ke service tujuan.
Ingress di OpenClaw dimulai dari sebuah gateway yang mendengarkan host tertentu, lalu route yang memetakan path ke service. Contoh konfigurasi gateway dengan TLS:
apiVersion: openclaw.io/v1
kind: Gateway
metadata:
name: public-gateway
namespace: sample
spec:
listener:
- host: api.example.com
port: 443
tls:
mode: terminate
secretName: api-tls-certSecret api-tls-cert menyimpan certificate dan private key. OpenClaw menghentikan TLS di gateway ini (termination), jadi traffic ke service di dalam bisa berupa plain HTTP. Terapkan dan cek statusnya:
kubectl apply -f gateway.yaml{:bash}
kubectl get gateway public-gateway -n sample -o yamlUntuk certificate, gunakan Secret Kubernetes biasa, atau otomatiskan dengan cert-manager jika tersedia. Pastikan host yang dipakai benar-benar menunjuk ke gateway — kalian bisa menguji dengan request lokal:
curl --resolve api.example.com:443:$(kubectl get svc -n openclaw-system -l app=gateway -o jsonpath="{.spec.clusterIP}") https://api.example.com/healthzJika response keluar dengan status sukses, ingress dan TLS sudah bekerja. Ingat: host dan IP di atas adalah placeholder untuk contoh — sesuaikan dengan gateway milik kalian.
Tidak semua traffic keluar boleh lewat. Egress control di OpenClaw memastikan service hanya bisa menghubungi endpoint eksternal yang diizinkan. Konsep ini dibangun di atas policy outbound dari episode 4, tapi dengan representasi target eksternal:
apiVersion: openclaw.io/v1
kind: Policy
metadata:
name: web-payment-external
namespace: sample
spec:
selectors:
- matchLabels:
app: web
match:
to:
- external:
host: payment-gateway.example.com
port: 443
rules:
- allow:
methods: [POST]Policy ini mengizinkan web memanggil payment-gateway.example.com melalui HTTPS dan hanya dengan metode POST. Request ke host lain atau metode lain otomatis ditolak.
Ada dua model egress yang umum: allow-list eksplisit (semua dilarang kecuali yang terdaftar) dan deny-list (semua diizinkan kecuali yang dilarang). Untuk production, selalu mulai dari allow-list eksplisit — lebih mudah diaudit dan lebih aman.
Gateway tidak hanya melayani traffic eksternal. OpenClaw bisa membuat gateway internal sebagai titik masuk ke mesh — misalnya service di satu namespace mengakses mesh lewat gateway yang sudah menerapkan policy keamanan. Pola ini sering dipakai untuk mesh entry points.
Berikut route policy yang menghubungkan gateway ke service di dalam mesh dengan pembatasan metode:
apiVersion: openclaw.io/v1
kind: Route
metadata:
name: api-public-route
namespace: sample
spec:
gatewayRef: public-gateway
match:
pathPrefix: /api
forwardTo:
service: api
port: 8080
rules:
- allow:
methods: [GET]Route ini menerima request dengan prefix /api dari public-gateway, meneruskannya ke service api di port 8080, dan hanya membolehkan GET. Dengan memisahkan gateway, route, dan policy, kalian mendapatkan lapisan yang bisa diuji dan diganti secara independen.
Info
Pola yang membantu skala: pisahkan tanggung jawab. Gateway hanya mengurus termination TLS dan listener, route mengurus pemetaan path ke service, policy mengurus otorisasi. Ketiganya bisa diubah tanpa saling menyentuh.
Di episode 5 ini kalian sudah mengatur batas cluster: ingress dengan TLS termination melalui gateway, kontrol egress ke service eksternal dengan allow-list, serta gateway dan route policy yang menjadi titik masuk dan keluar mesh.
Inti yang harus dibawa pulang:
Di episode 6 selanjutnya kita akan membahas security policy enforcement: mengaktifkan authentication, authorization, dan mTLS, menerapkan policy untuk komunikasi service-to-service, serta audit logging dan policy change tracking. Di sinilah OpenClaw benar-benar menjadi benteng.