Skip to content

Kali cloud-init user-data prevents networking on first boot #2653

Description

@dguerri

Describe the bug

Creating a native arm64 Kali machine with Cloud-init user-data fails during first boot:

create 'kali': setup: machine didn't start in 30s (missing IP address)

The failed machine is automatically deleted.

A plain Kali machine created without --user-data boots and gets IPv4/IPv6 addresses normally. An Ubuntu machine created with the same provisioning flow also gets an IP and completes creation.

The Kali boot log shows:

systemd 261.1-2 running in system mode
Detected virtualization lxc.
Detected architecture arm64.
Detected first boot.
...
Starting cloud-init-main.service - Cloud-init: Single Process...
...
Started cloud-init-main.service - Cloud-init: Single Process.
Starting cloud-init-local.service - Cloud-init: Local Stage (pre-network)...
cloud-init[156]: Cloud-init v. 26.2 running 'init-local'
Finished cloud-init-local.service - Cloud-init: Local Stage (pre-network).
Reached target network-pre.target - Preparation for Network.
Starting systemd-networkd.service - Network Management...
Started systemd-networkd.service - Network Management.
Starting systemd-networkd-wait-online.service - Wait for Network to be Online...
Job systemd-networkd-wait-online.service/start running...

No address is assigned before OrbStack's 30-second creation timeout.

This may be related to the Cloud-init 26.x NoCloud network-config compatibility change documented here:

https://docs.cloud-init.io/en/latest/reference/breaking_changes.html#addition-of-nocloud-network-config

That documentation says a NoCloud installation which does not provide network-config can experience a retry/timeout during boot, and that an empty network-config restores previous behavior.

To Reproduce

  1. On an Apple Silicon Mac, save an ordinary #cloud-config user-data file (for example, installing openssh-server and zsh and configuring a user).

  2. Run:

    orb create --arch arm64 --user gt --user-data user-data.yml kali kali
  3. Creation fails after 30 seconds:

    create 'kali': setup: machine didn't start in 30s (missing IP address)
    

Control tests:

  • orb create --arch arm64 --user gt kali kali succeeds.
  • Ubuntu with the same Cloud-init provisioning flow gets an IP and completes creation.

A post-boot workaround also succeeds: create Kali without --user-data, then provision it using orbctl run -m kali -u root ....

Expected behavior

Kali should obtain an IP address and apply the supplied Cloud-init user-data, as other supported distributions do.

Diagnostic report (REQUIRED)

OrbStack info:
Version: 2.2.3
Commit: c83556b0ef8f1ba9a33abbb194622b6b7a1c0307 (v2.2.3)

System info:
macOS: 26.5.2 (25F84)
CPU: arm64, 10 cores
CPU model: Apple M1 Max
Model: MacBookPro18,4
Memory: 32 GiB

Full report (private to OrbStack developers):
https://orbstack.dev/_admin/diag/orbstack-diagreport_2026-08-13T20-43-44.478468Z.zip

Screenshots and additional context (optional)

The OrbStack manager log shows the contrast directly:

agent:kali: cloud-init / early boot starts
scon: waiting for network before setup
scon: machine is missing IP addresses
scon: machine didn't start in 30s (missing IP address)
scon: deleting container

A previous plain Kali creation on the same host/network reached:

network is up container=kali ips="[192.168.139.202 ...]"
running initial setup
container created

Ubuntu with Cloud-init reached network is up in approximately three seconds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions