New to Kestra?
Use blueprints to kickstart your first workflows.
Event-driven VMware VM offboarding with Kestra: clear DNS A records, delete Active Directory computer objects, and hide hosts in CrowdStrike on vCenter VM_REMOVED.
Decommissioned virtual machines leave a trail of stale infrastructure: orphaned DNS A records, dead Active Directory computer objects, and ghost endpoints in your EDR console. This blueprint turns VMware vCenter into the source of truth for VM lifecycle and lets Kestra react in real time. The flow subscribes to VM_REMOVED events on vCenter, then fans out the offboarding work across DNS, AD, and CrowdStrike so your CMDB, security posture, and IP space stay clean without manual tickets.
io.kestra.plugin.ee.vmware.vcenter.Trigger polls vCenter every minute (interval: PT1M) for events matching eventType: VM_REMOVED and a configurable vmNameRegex filter.io.kestra.plugin.core.flow.ForEach iterates over {{ trigger.events }}, so a single poll cycle can offboard many VMs in parallel.io.kestra.plugin.core.log.Log records the VM name, event type, and timestamp for audit trails.Sequential block runs three cleanup steps per VM:io.kestra.plugin.scripts.powershell.Commands calls Remove-DnsServerResourceRecord to drop the DNS A record.Remove-ADComputer to delete the Active Directory computer object.io.kestra.plugin.core.http.Request POSTs action_name: hide_host to the CrowdStrike devices-actions/v2 API to retire the sensor.Platform, virtualization, and infrastructure engineers running VMware on-prem or in hybrid cloud, Windows admins who own AD and DNS, and SecOps teams who manage CrowdStrike Falcon.
vCenter alarms and PowerCLI scripts can fire on a VM removal, but they cannot natively coordinate a multi-system workflow across DNS, AD, and a SaaS EDR with retries, logs, and audit lineage. Kestra adds an event-driven trigger that fans out into typed tasks, retries each cleanup independently, captures structured logs per VM, and keeps the entire policy declarative in version-controlled YAML. If CrowdStrike rate-limits or AD is briefly unreachable, only the failing branch retries, the rest already succeeded.
hosts:write scope.VMWARE_VCENTER_USERNAME, vCenter service account username.VMWARE_VCENTER_PASSWORD, vCenter service account password.CROWDSTRIKE_API_TOKEN, bearer token for the CrowdStrike API.server, the DNS ZoneName, and vmNameRegex to match your environment.io.kestra.plugin.notifications.slack.SlackIncomingWebhook step to broadcast each offboarding to your platform channel.vmNameRegex to route production versus lab VMs to different cleanup policies.