Skip to content

Teach IBM Cloud provider to nuke cidata partition if it lives on the primary disk #1599

Open
@jlebon

Description

Feature Request

Environment

What hardware/cloud provider/hypervisor is being used to run Ignition?

IBM Cloud

Desired Feature

IBM Cloud has bare metal instance types which reuse the same images normally used for the virtual instance types. To do this, the backend transforms the qcow2 image to raw, copies it to the disk, and then adds a partition at the end of the disk containing an ISO9660 filesystem with label cidata to simulate the same API as the attached CD drive on virtual instance types.

This has implications for Ignition since the config allows modifying the partition table of the primary disk. E.g. a config that uses partition number 5 will reference a yet-to-be-allocated partition number in virtual instance types but a pre-existing one in bare metal instance types. This means for example that wipePartitionEntry would be additionally required.

For consistency, we should have Ignition automatically wipe the partition after it fetched its data. That way, the disk state will be the same regardless of instance type. It also plays into our recent trend to delete user-data on platforms where possible. The data will have to be saved somewhere so that Afterburn can fetch additional information from it. Afterburn will have to be taught to look there.

Other Information

The partition name is cloudinit. The filesystem name is cidata. I'm not sure if the partition UUID is stable or not. The partition type UUID is 0fc63daf-8483-4772-8e79-3d69d8477de4 ("Linux filesystem data").

It's possible that in the future, bare metal instances will also support the user-data being supplied either via a secondary remotely-attached block device, or a metadata server. At that point, we may be able to drop this scrubbing logic.

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

    jirafor syncing to jira

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions