Pulumi + NixOS + Podman kube-play = 100% 宣告式部署。
Pulumi 的範圍只到基礎設施,系統以上的狀態管理通常靠 Ansible,但 Ansible 實在有點慢,而且 playbook 看起來不夠直覺,所以這次嘗試改用 NixOS,系統設定和套件都是宣告式,再用 Kubernetes 或 Podman 搭配 Kubernetes resource YAML。
建立 qcow 映像檔
nix-shell -p nixos-generators --run 'nixos-generate --format-path qcow.nix -c configuration.nix -o result'
cp result/nixos.qcow2 .
rm result
Oracle Cloud 搭配 Pulumi
Instance
- Type: VM.Standard.A1.Flex
- CPU: 1 vCPU
- Memory: 6 GB
- Boot Disk Size: 50GB
- Launch Mode: PARAVIRTUALIZED
Custom Image
- Firmware: UEFI
- Launch Mode: PARAVIRTUALIZED
- Boot Volume Type: PARAVIRTUALIZED
- Local Data Volume Type: PARAVIRTUALIZED
- Remote Data Volume Type: PARAVIRTUALIZED
部署容器服務
podman kube play "<URL>"