Terraform module
modules/neolite-vm/variables.tf:
modules/neolite-vm/main.tf:
modules/neolite-vm/outputs.tf:
var.console_password di sini itu persis yang udah dideklarasiin lengkap di tutorial quickstart dan project structure. product_id dipilih pake nama per environment, pola yang sama kayak di Environment - jangan pernah pass products[0] langsung ke module, soalnya module gak punya cara buat warning ke caller-nya kalau value itu asal-asalan:
"MS 4.2" dulu ke output katalog akun lu sendiri - liat Langkah 1 di overview katalog. Source lokal ./modules/... udah cukup buat satu repository. Publish ke module registry bisa aja, tapi cuma worth it kalau lebih dari satu repository butuh module yang sama.
Pulumi component
Yang setara di Pulumi ituComponentResource, dicontohin di sini pake TypeScript:
{ parent: this } daftarin keypair dan VM sebagai child dari component ini di resource tree Pulumi, jadi pulumi up dan console Pulumi Cloud nunjukin mereka nested di bawahnya, bukan sebagai dua top-level resource yang gak nyambung.
Instantiate satu per stack. config itu persis yang udah dideklarasiin lengkap di quickstart Pulumi. productId dipilih pake nama, pola yang sama kayak di Environment - jangan pernah pass products[0] langsung ke component:
Langkah berikutnya
- Testing, validasi, dan guardrail - tangkep kesalahan sebelum module ini manggil API beneran