Skip to main content
Satu set file konfigurasi, dijalanin ke beberapa environment yang beda-beda, masing-masing punya state dan setting sendiri. Itu ide intinya: main.tf atau index.ts yang sama dari tutorial project structure, diapply tiga kali dengan tiga jawaban berbeda buat “seberapa besar” dan “siapa yang bayar.”

Terraform workspace

Workspace itu slot state yang keisolasi di dalam backend yang sama. Semua workspace share file konfigurasi yang sama.
Reference workspace yang aktif di dalam konfigurasi lu pake terraform.workspace. Block data dan resource biznetgio_neolite_keypair itu persis yang udah dideklarasiin lengkap di quickstart - yang beda di sini, product_id udah bukan products[0] lagi. Dipilih dengan sengaja per workspace, pake nama paket beneran dari katalog NEO Lite:
Confirm "XS 1.1" dan "MS 4.2" dulu ke output katalog akun lu sendiri - liat Langkah 1 di overview katalog. select_os di sini masih pake oss[0] karena list OS biasanya pendek dan didominasi satu pilihan yang jelas; pake pola filter nama yang sama kalau di akun lu gak gitu.
Selalu cek workspace mana yang lagi aktif sebelum apply: terraform workspace show. Apply ke workspace yang salah itu cara paling umum orang gak sengaja nyenggol production. Coba bungkus apply di script atau CI job yang mewajibkan nama workspace sebagai argumen eksplisit, bukan ngandelin workspace mana yang lagi keselect.
Kalau dev, staging, dan production butuh resource yang beneran beda (bukan cuma value yang beda), workspace udah bukan tools yang cocok lagi, karena semua workspace share satu konfigurasi yang sama. Di titik itu, pindah ke satu direktori per environment (envs/dev, envs/staging, envs/production), masing-masing punya konfigurasi backend dan tfvars sendiri, tapi tetep manggil module yang sama-sama dishare.

Pulumi stack

Stack itu versi native-nya Pulumi, dan ini primitive yang udah dipake quickstart tanpa disebut namanya.
Setiap stack punya file config Pulumi.<stack>.yaml sendiri dan state yang independen. Set config per stack secara eksplisit pake --stack:
Baca nama stack yang aktif di dalam program lu pake pulumi.getStack(). keypair dan config itu persis yang udah dideklarasiin lengkap di quickstart Pulumi - yang beda di sini, productId udah bukan products[0] lagi. Dipilih dengan sengaja per stack, pake nama paket beneran dari katalog NEO Lite:
Confirm "XS 1.1" dan "MS 4.2" dulu ke output katalog akun lu sendiri - liat Langkah 1 di overview katalog. selectOs di sini masih pake oss[0] karena list OS biasanya pendek dan didominasi satu pilihan yang jelas; pake pola filter nama yang sama kalau di akun lu gak gitu.
Aturan yang sama kayak Terraform: cek pulumi stack ls (yang aktif ditandain) sebelum pulumi up. Pass --stack <name> secara eksplisit di CI, jangan ngandelin stack mana yang terakhir keselect di runner itu.

Pola dev/staging/production yang praktis

Pola yang cocok buat provider ini secara spesifik: Baca panduan billing buat tau tepatnya apa yang pay_with_credit_card = false lakuin; itu cara paling murah buat gladi resik satu siklus apply/up penuh sebelum komit duit beneran.

Langkah berikutnya