Skip to content

Test composefs#81

Open
alicefr wants to merge 6 commits into
bootc-dev:mainfrom
alicefr:test-composefs
Open

Test composefs#81
alicefr wants to merge 6 commits into
bootc-dev:mainfrom
alicefr:test-composefs

Conversation

@alicefr

@alicefr alicefr commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Add infrastructure to tests composefs

@alicefr

alicefr commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator Author

The REUSE test will fail until #79 is merged

@alicefr

alicefr commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator Author

/cc @Johan-Liebert1

alicefr added 6 commits June 29, 2026 15:00
Use the Ginkgo Label("composefs") decorator so that the cluster
creation test can be selected with --label-filter. Read BINK_NODE_IMAGE
env var to allow overriding the default node image at runtime.

Assisted-by: Claude Opus 4.6 (1M context)
Signed-off-by: Alice Frosi <afrosi@redhat.com>
Provide a dedicated target to run only composefs-labeled tests
using ginkgo --label-filter, mirroring the existing test targets.

Assisted-by: Claude Opus 4.6 (1M context)
Signed-off-by: Alice Frosi <afrosi@redhat.com>
Run the composefs-labeled subset of integration tests against
the composefs node image to validate the composefs backend on
every push and PR. Sets BINK_NODE_IMAGE to the composefs disk
image so the test uses it instead of the default.

Assisted-by: Claude Opus 4.6 (1M context)
Signed-off-by: Alice Frosi <afrosi@redhat.com>
Composefs-based images do not have /etc/fstab, causing
cloud-init runcmd to fail and report error status.

Traditional bootc images use a regular filesystem where /etc/fstab
lists mount points. Composefs-based images use a content-addressed,
read-only erofs filesystem overlay where root mounting is handled by
ostree deployment metadata and the initramfs boot logic, not by
/etc/fstab. Since there are no traditional block-device mounts to
describe, the file is simply absent.

Guard the sed command with a file-existence check so cloud-init
succeeds on both composefs and non-composefs images.

Assisted-by: Claude Opus 4.6 (1M context)
Signed-off-by: Alice Frosi <afrosi@redhat.com>
The origin file path and format differ between ostree and composefs:
- ostree: /ostree/deploy/default/deploy/<checksum>.<serial>.origin
- composefs: /sysroot/state/deploy/<verity>/<verity>.origin
- composefs uses spaces around '=' in key-value pairs

Use find to locate the origin file in both paths, and fix the
sed pattern to match both formats.

Assisted-by: Claude Opus 4.6 (1M context)
Signed-off-by: Alice Frosi <afrosi@redhat.com>
Previously WaitForCloudInit retried forever when cloud-init
reported "error", but that is a terminal state — the status
will never change to "done". Accept it with a warning instead
of blocking for the full timeout.

Assisted-by: Claude Opus 4.6 (1M context)
Signed-off-by: Alice Frosi <afrosi@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants