create-stateful-vm
Create VM, PXE boot, install Alpine to disk, set boot order, reboot from disk
v13174d77c7 steps
Steps
auth
keebDev02.authAuthenticate with Proxmox via keebDev02
Configuration
apiUrl: https://10.0.0.4:8006
username: root
password: ${{ vault.get("proxmox-vault", "password") }}
realm: pam
node: keeb-dev-02
skipTlsVerify: true
create-vm
fleet.createCreate VM with persistent disk (PXE-first boot order)
← depends on: auth (on succeeded)
Configuration
apiUrl: https://10.0.0.4:8006
ticket: ${{ model.keebDev02.resource.node.node.attributes.ticket }}
csrfToken: ${{ model.keebDev02.resource.node.node.attributes.csrfToken }}
node: keeb-dev-02
skipTlsVerify: true
start-vm
fleet.startStart VM (PXE boots into diskless Alpine)
← depends on: create-vm (on succeeded)
Configuration
apiUrl: https://10.0.0.4:8006
ticket: ${{ model.keebDev02.resource.node.node.attributes.ticket }}
csrfToken: ${{ model.keebDev02.resource.node.node.attributes.csrfToken }}
node: keeb-dev-02
skipTlsVerify: true
install-alpine
alpineInstaller.installInstall Alpine to disk via setup-alpine + post-install chroot
← depends on: start-vm (on succeeded)
Configuration
sshHost: ${{ model.fleet.resource.vm[inputs.vmName].attributes.ip }}
sshUser: root
set-boot-order
fleet.setBootOrderSet boot order to disk-first (scsi0 then net0)
← depends on: install-alpine (on succeeded)
Configuration
apiUrl: https://10.0.0.4:8006
ticket: ${{ model.keebDev02.resource.node.node.attributes.ticket }}
csrfToken: ${{ model.keebDev02.resource.node.node.attributes.csrfToken }}
node: keeb-dev-02
skipTlsVerify: true
stop-vm
fleet.stopStop VM before rebooting from disk
← depends on: set-boot-order (on succeeded)
Configuration
apiUrl: https://10.0.0.4:8006
ticket: ${{ model.keebDev02.resource.node.node.attributes.ticket }}
csrfToken: ${{ model.keebDev02.resource.node.node.attributes.csrfToken }}
node: keeb-dev-02
skipTlsVerify: true
start-from-disk
fleet.startStart VM from disk (boots installed Alpine, waits for IP)
← depends on: stop-vm (on succeeded)
Configuration
apiUrl: https://10.0.0.4:8006
ticket: ${{ model.keebDev02.resource.node.node.attributes.ticket }}
csrfToken: ${{ model.keebDev02.resource.node.node.attributes.csrfToken }}
node: keeb-dev-02
skipTlsVerify: true