New to Kestra?
Use blueprints to kickstart your first workflows.
Reconcile a live network scan against NetBox with Kestra. Auto-register missing devices and open a GitHub issue documenting every drift on a schedule.
Network documentation rots the moment a switch is racked without a NetBox entry. This NetBox drift reconciliation blueprint detects that gap automatically: it reads the devices NetBox records for a site, compares them to a live discovery scan, registers any devices that exist on the network but are missing from your source of truth, and opens a GitHub issue summarizing the reconciliation so the team keeps a permanent audit trail. Run it on a schedule and undocumented infrastructure changes surface before they cause an outage or a failed audit.
list_netbox_devices (io.kestra.plugin.ee.netbox.device.List) fetches the device names NetBox currently records for the requested site slug using fetchType: FETCH.scan_and_diff (io.kestra.plugin.scripts.python.Script, run on a Docker task runner) reads those devices, compares them to a discovery source, and emits the missing devices plus a drift_count via Kestra.outputs.register_missing_devices (io.kestra.plugin.core.flow.ForEach) loops over each missing device and calls create_device (io.kestra.plugin.ee.netbox.device.Create) to register it in NetBox with status: active.open_drift_issue (io.kestra.plugin.github.issues.Create) opens a GitHub issue in github_repository, titled with the site and labeled netbox-drift, documenting how many devices were reconciled.NetBox is a system of record, not a scheduler. It will not poll your network, reconcile drift, retry a flaky API call, or notify your team. Kestra adds the event triggers, the Schedule trigger, automatic retries, and execution lineage that turn a one-off script into a dependable control loop. The whole pipeline is declarative YAML, version controlled, and every run is observable end to end.
NETBOX_URL: base URL of your NetBox instance.NETBOX_API_TOKEN: NetBox API token with device read and write access.GITHUB_TOKEN: GitHub token allowed to open issues in the target repository.You also need NetBox device type and role slugs that match what your scan reports.
NETBOX_URL, NETBOX_API_TOKEN, and GITHUB_TOKEN as secrets in your Kestra namespace.scan_and_diff with your real scan source (SNMP sweep, scanner export, CMDB feed).site slug and a github_repository.daily_reconciliation Schedule trigger to run it continuously.status: planned to require human confirmation before activation.