New to Kestra?
Use blueprints to kickstart your first workflows.
Orchestrate VMware-to-Nutanix AHV migration waves in Kestra. Fetch the wave plan, pause for go/no-go approval, then power on each VM one at a time.
Cutting over a VMware-to-Nutanix AHV migration wave is high-stakes: replication has finished, but VMs still need to be powered on in the right order, at the right moment, after a human signs off. This blueprint orchestrates the AHV power-on step of a VMware-to-Nutanix AHV migration so a wave comes up in a controlled, observable, auditable sequence instead of a flurry of manual Prism clicks. It pulls the planned migration wave from your tooling, notifies the team, blocks on a go/no-go approval, then starts each migrated VM one at a time on Nutanix AHV.
fetch_wave_plan (io.kestra.plugin.core.http.Request) issues a GET to the plan_url input and retrieves the planned migration wave for review.notify_approval (io.kestra.plugin.microsoft365.teams.TeamsIncomingWebhook) posts an Adaptive Card to Microsoft Teams telling the team a cutover is waiting for go/no-go, referencing the running execution.id.approve_cutover (io.kestra.plugin.core.flow.Pause) halts the flow for up to the approval_timeout duration until a human resumes it with a go decision.power_on_wave (io.kestra.plugin.core.flow.ForEach) iterates over the vm_ext_ids array with concurrencyLimit: 1, and for each value runs start_vm (io.kestra.plugin.ee.nutanix.ahv.StartVm) to power on that VM on AHV using its vmExtId.Prism and migration tools can move and replicate VMs, but they do not give you an event-driven, approval-gated, fully logged cutover workflow that spans your migration API, your chat tooling, and AHV. Kestra adds a declarative YAML pipeline with a native Pause approval gate, sequential power-on via ForEach, retries on transient AHV API failures, and end-to-end execution lineage so every wave cutover is reproducible and reviewable. Event triggers let you wire this into upstream replication-complete signals rather than babysitting a console.
vm_ext_ids.plan_url.NUTANIX_HOST: Prism Central host or IP.NUTANIX_TOKEN: Prism Central bearer token.TEAMS_WEBHOOK_URL: Microsoft Teams incoming webhook URL for the approval notification.NUTANIX_HOST, NUTANIX_TOKEN, and TEAMS_WEBHOOK_URL as secrets in your Kestra namespace.plan_url at your migration tool's wave endpoint.vm_ext_ids for the wave.approve_cutover Pause to begin power-on.retry policy to start_vm to absorb transient Prism Central API errors.