Skip to content

Azure CVMs do not pick up Ignition custom data #2191

Description

@Jakob-Naucke

Describe the bug

Azure VMs can read Ignition as custom data. This does not work with CVMs, even though those still work with user data.

Reproduction steps

following FCOS docs:

gallery_name="mygallery"
az sig create --resource-group "${az_resource_group}" --gallery-name "${gallery_name}"

gallery_image_definition="mygallery-def"
az sig image-definition create \
    --resource-group "${az_resource_group}" \
    --gallery-name "${gallery_name}" \
    --gallery-image-definition "${gallery_image_definition}" \
    --publisher azure \
    --offer example \
    --sku standard \
    --features SecurityType=ConfidentialVmSupported \
    --os-type Linux \
    --hyper-v-generation V2

os_vhd_storage_account=$(az storage account list -g ${az_resource_group} | jq -r '.[0].id')
gallery_image_version="1.0.0"
az sig image-version create \
    --resource-group "${az_resource_group}" \
    --gallery-name "${gallery_name}" \
    --gallery-image-definition "${gallery_image_definition}" \
    --gallery-image-version "${gallery_image_version}" \
    --os-vhd-storage-account "${os_vhd_storage_account}" \
    --os-vhd-uri "https://${az_storage_account}.blob.core.windows.net/${az_container}/fedora-coreos-44.20260707.1.1-azure.x86_64.vhd"

vm_name="my-fcos-cvm"
ignition_path="./config.ign"
vm_size="Standard_DC2as_v5"

gallery_image_id=$(az sig image-version show \
    --gallery-image-definition "${gallery_image_definition}" \
	--gallery-image-version "${gallery_image_version}" \
	--gallery-name "${gallery_name}" \
	--resource-group $az_resource_group | \
	jq -r .id)
az vm create \
    --name "${vm_name}" \
    --resource-group $az_resource_group \
    --size "${vm_size}" \
    --image "${gallery_image_id}" \
    --admin-username core \
    --generate-ssh-keys \
    --custom-data "$(cat ${ignition_path})" \
    --public-ip-sku Standard \
    --enable-vtpm true \
    --security-type ConfidentialVM \
    --os-disk-security-encryption-type VMGuestStateOnly \
    --enable-secure-boot true
	
ssh core@<ip address>

Expected behavior

(as tested without the last 4 VM creation options, and size Standard_B2s)

core@my-fcos-vm:~$ cat /etc/canary
ok

Actual behavior

core@my-fcos-cvm:~$ cat /etc/canary
cat: /etc/canary: No such file or directory

System details

  • Azure
  • fedora-coreos-44.20260707.1.1-azure.x86_64.vhd (next)
State: idle
AutomaticUpdatesDriver: Zincati
  DriverState: active; periodically polling for updates (last checked Fri 2026-07-10 13:52:59 UTC)
BootedDeployment:
● ostree-image-signed:docker://quay.io/fedora/fedora-coreos:next
                   Digest: sha256:5089844802a74362869a1160f30e4be8c91be4dc6ede54468f01bc48078ce18c
                  Version: 44.20260707.1.1 (2026-07-07T18:26:24Z)

Butane or Ignition config

{
  "ignition": {
    "version": "3.4.0"
  },
  "storage": {
    "files": [
      {
        "path": "/etc/canary",
        "contents": {
          "source": "data:,ok%0A"
        },
        "mode": 420
      }
    ]
  }
}

Additional information

  • Passing e.g. cloud-init custom data to Ubuntu CVMs (like Canonical:ubuntu-24_04-lts:cvm:latest) still works.
  • I noticed because we're using Azure CVMs with CoreOS as part of Trusted Execution Clusters, where passing custom data to CVMs still worked around ~April. IME there was, with no updated image, a period where it still worked sometimes, and today it doesn't work at all. Passing Ignition as user data still works, which has been our workaround, but e.g. OpenShift MAPI relies on custom data and the FCOS docs also suggest using custom data.

cc @travier @alicefr

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions