Run Nutanix AHV Day-2 ops from one flow.

Capture app-consistent recovery points before patching, replicate them to a DR cluster on schedule, slice Prism inventory by Category for chargeback, and run VMware-to-AHV migration waves when the moment comes.

Blueprints for Nutanix orchestration.

Replace Nutanix Self-Service (Calm) and X-Play with a workflow engine that listens to schedules or migration waves, handles crash- or app-consistent recovery points with cross-cluster DR replication, and chains AHV with VMware, Ansible, and ServiceNow. Drop the Calm catalog license; cut VMware-to-AHV cutover risk to per-VM waves with rollback.

Pre-patch snapshot, OS update, rollback on health-check failure Open blueprint
Coordinate a Nutanix Move wave: readiness check, gate, cutover, AHV start Open blueprint
Weekly chargeback report from Prism Central inventory Open blueprint

Around every AHV operation, across every cluster.

What Kestra wraps around your Nutanix clusters: how migrations from VMware land in waves, what gets a recovery point first, who approves an LCM upgrade, and where the audit lives. Prism Central and your AHV hosts stay in place. The Calm / Self-Service catalog gets replaced.

VMware-to-AHV migration coordinated in waves

Drive Nutanix Move through the v2 REST API from a flow: add source and target providers, build a migration plan, run readiness checks, then cut over wave by wave when each VM hits state 5 (ready for cutover). Kestra handles the wave scheduling, dependency ordering, and rollback path that Move itself does not.

Crash- or app-consistent recovery points before any risky change

CreateVmSnapshot emits a recovery point through the Nutanix dataprotection v4 API, with optional expiration. Pick crash-consistent for speed, app-consistent (Guest Tools quiesce) for databases. RestoreVmSnapshot reverts on a failed health check, with the snapshotExtId flowing forward from the create step.

AHV template versioning with the v4 lifecycle

CloneTemplate, ConvertVmToTemplate, and ConvertTemplateToVm chain in a single flow. Build a new template version, deploy a test VM from it via ConvertTemplateToVm, run an Ansible smoke test, then mark the version active. Old versions stay deployable for rollback. The async taskExtId from each call is logged.

Prism inventory and Categories as flow inputs

ListVms exposes the VMM v4 OData surface: filter, sort, select, and paginate by Category, cluster, power state, or tag. Build chargeback reports grouped by department, identify drift between Categories and ServiceNow CMDB, or pull only the VMs in a given environment for a wave migration.

Calm catalog replaced by Kestra Apps with named approvers

A Kestra App is a typed form bound to a flow: dropdowns for the cluster, the Category, the template, the recovery point. Operators submit, the same audited flow runs every time. The Pause task suspends before DeleteVm, ResetVm, or a template conversion. Reviewer identity and resume timestamp land in the execution.

Per-VM, per-task execution history with the async taskExtId

Every AHV task returns the async taskExtId from Prism Central. Kestra waits on the task, surfaces success or failure inline, and stores the operator, inputs, and resulting VM extId with the execution. Auditors get evidence by default, attached to the execution that produced it.

How Nutanix admins use AHV and Kestra

Patterns Nutanix platform teams run in production today. Each one shows the flow end to end, with the real plugin classes in play.

Migration

VMware-to-AHV migration coordinated in waves

Inventory the source with vmware.vcenter.ListVms, build a Nutanix Move migration plan through the v2 REST API, drive readiness checks, then cut over one wave at a time. Move handles the data copy, Kestra orchestrates the wave schedule, dependency ordering, and the per-VM rollback path. The cutover commit happens only after the VM state reads 5 (ready).

Wave-by-wave by Category

Filter source VMs by Category (department, criticality, environment) and migrate one slice at a time.

Move data copy, Kestra orchestration

Move handles the storage replication, Kestra runs the scheduling, dependency check, and per-VM cutover gate.

Rollback path per wave

VMware source stays live until cutover; an errors branch can power the source VM back on and pause the wave.

Per-VM audit trail

Every cutover has the source vCenter UUID, the AHV extId, the operator, and the readiness state on record.

What you get

Pattern based on the documented Nutanix Move v2 REST API workflow (login, build plan, poll workloads to state 5, cutover).

wave trigger
manual or schedule
source inventory
vCenter ListVms
Move plan
v2 API create
readiness poll
wait state=5
approve wave
named reviewer
cutover action
per-VM commit
AHV start
power on target
Ansible reconfigure
join domain, agents
Operations

Pre-patch snapshot, OS update, rollback on health-check failure

CreateVmSnapshot emits a crash-consistent recovery point on the target AHV VM. A Shell task runs the OS update over SSH and reboots. An HTTP probe checks the application. On any failure, the errors branch fires RestoreVmSnapshot against the same snapshotExtId and pages on-call. Shipped as a working Kestra blueprint.

Crash- or app-consistent per VM

Pick consistency per VM. Databases get quiesce via Guest Tools, stateless tiers stay crash-consistent for speed.

Automatic rollback

The errors branch restores the recovery point if the post-patch probe fails, no human required.

Replayable per VM

Re-run the patch on the same VM with the same snapshotExtId from the execution UI.

What you get

Published as the nutanix-safe-patching-workflow blueprint in the Kestra catalog.

cron trigger
patch window
pre-patch snapshot
recovery point
ssh patch
apt / yum upgrade
health check
HTTP probe
rollback on fail
restore snapshot
notify
Slack
DR

Cross-cluster recovery point replication for DR readiness

On a daily schedule, CreateVmSnapshot captures a recovery point on the production cluster. A core.http.Request call to the Prism Central v4 dataprotection API replicates the recovery point to the DR cluster. ListVmSnapshots on the DR side confirms the replica landed. The retention is set per environment via the API expiration field, so old recovery points cycle out automatically.

Per-Category retention

Production VMs get 14-day retention, test gets 3. The expirationTime on the recovery point enforces it.

Loop by Category

ListVms + OData filter gives you the VMs in scope per environment, then ForEach handles the per-VM replication.

DR drill replayable

Re-run the verify task on demand to confirm a specific recovery point still exists on the DR cluster before a drill.

Quarterly DR exercise as a flow

Same flow, target inputs flipped: restore on DR cluster, validate, restore production routing, all in one execution ID.

daily cron
DR window
ForEach VM
by Category
create recovery point
prod cluster
replicate to DR
v4 API call
verify on DR
list snapshots
report
Slack summary
Inventory

Inventory and chargeback report from Prism Central

ListVms with an OData filter returns the VMs per Category (department, environment, owner). A small Python task aggregates vCPU, memory, and storage by department. The report posts to Slack and writes a row to a Google Sheet for chargeback. VMs without an owner Category get flagged as untagged.

OData filter at the API

Filter and select fields server-side via the v4 API, so the flow only ships the rows it needs.

Untagged VM detection

VMs without the expected Category surface in a separate Slack alert so owners can claim them.

Weekly trend stored

Each run appends a row to the Sheet, so leadership sees the per-department vCPU and memory trend over time.

weekly cron
Monday 9am
ListVms
OData filter
aggregate
Python by Category
post Slack
summary
write Sheet
chargeback
Kestra allowed us to move from fragmented automation to a unified control plane, secure, scalable, and manageable by all our teams.
Julien Legrand, PO Data · Crédit Agricole

Kestra vs Nutanix orchestration alternatives

Capability
Nutanix Self-Service (Calm) + X-Play
HPE Morpheus
Ansible Automation Platform
VMware-to-AHV wave migration coordination
Drives Move v2 API, wave gates, per-VM rollback, all in YAML
Not a Move orchestratorMigration as a service offeringPossible via custom playbooks, no native Move integration
Crash- or app-consistent recovery points as flow steps
Native via dataprotection v4 API
Built-in policies, no flow chainingPolicy-driven, vendor-specificPossible via Nutanix Ansible collection
Cross-cluster recovery point replication
Native v4 API call from flow
Leap policy (separate product)Built-in replicationPossible via REST API calls
Categories and Prism inventory as flow inputs
ListVms with OData filter / sort / select
Calm uses Categories internally, less openTag-based but proprietaryAnsible dynamic inventory plugin for Nutanix
Self-service catalog (replacing Calm)
Kestra Apps, typed inputs, RBAC, audit
Calm catalog (the thing being replaced)Morpheus catalog (proprietary)AAP survey forms (basic)
Chain AHV with Ansible, Terraform, ServiceNow
Native, with outputs across tools
Calm integrations (DSL, limited)Built-in connectors (proprietary)Ansible-centric, glue collections required
Workflow language
Declarative YAML, Git-native, polyglot scripts
Calm DSL plus Python actionsCypher / Morpheus-specific scriptsAnsible YAML + Jinja (Ansible-only)
Air-gapped deploy across multiple clusters
Self-hosted, per-cluster control plane
Centralized applianceCentralized applianceSelf-hosted (Red Hat subscription)
Orchestrate beyond Nutanix
1300+ plugins, cross-stack
Nutanix-centricMulti-cloud (proprietary connectors)Ansible-centric, broad collections
Deeper comparison Kestra vs HPE Morpheus

Side-by-side breakdown across HCI day-2 ops, self-service catalogs, multi-cloud reach, and cross-stack orchestration.

See the full comparison

Nutanix & Kestra: common questions

Find answers to your questions right here, and don't hesitate to Contact Us if you couldn't find what you're looking for.

See How

Ready to orchestrate Nutanix day-2 ops?

Keep Prism Central and AHV. Replace Calm / Self-Service with declarative YAML flows: crash- or app-consistent recovery points, cross-cluster replication, and Category-driven Prism inventory, all from one execution history.