Skip to content

install: Preserve /var when installing to existing root - #2586

Open
ckyrouac wants to merge 11 commits into
bootc-dev:mainfrom
ckyrouac:preserve-var
Open

ckyrouac wants to merge 11 commits into
bootc-dev:mainfrom
ckyrouac:preserve-var

Conversation

@ckyrouac

Copy link
Copy Markdown
Collaborator

Splitting --preserve-var off of #2384

@github-actions github-actions Bot added area/install Issues related to `bootc install` area/documentation Updates to the documentation labels Oct 22, 2026
@bootc-bot
bootc-bot Bot requested a review from henrywang October 22, 2026 16:21
@ckyrouac ckyrouac added ci/tier-1 Run CI for tier-1 OS (centos-10) only and removed area/install Issues related to `bootc install` area/documentation Updates to the documentation labels Oct 22, 2026
@ckyrouac
ckyrouac marked this pull request as ready for review November 2, 2026 18:34
@github-actions github-actions Bot added area/install Issues related to `bootc install` area/documentation Updates to the documentation labels Nov 2, 2026
@ckyrouac
ckyrouac requested a review from jmarrero November 2, 2026 18:35
The /var copy needs careful filtering around exclusions and nested mounts,
and must avoid publishing partial entries or overwriting existing data.
Isolating the copy engine and its tests makes these filesystem guarantees
reviewable before adding installer orchestration.

Assisted-by: AI
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
Stored images should be validated before target mutations.

Assisted-by: AI
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
Users converting an existing package-mode root need an opt-in path to move
its state into the new OSTree deployment before reboot. Keep migration
behind the existing-root install option and defer destructive cleanup until
the copy succeeds, while preserving the established install behavior for
other callers.

Assisted-by: AI
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
Large /var trees are expensive to duplicate when the source and deployment filesystems support copy-on-write clones. Probe the actual source/destination pair, use reflinks when available, and retain a full-copy fallback for unsupported filesystems.

Assisted-by: AI
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
Users converting package-mode systems need to understand the copy strategy, required backend, exclusions, and lack of snapshot consistency before opting in.

Assisted-by: AI
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
A /var migration is useful only if copied data remains available after the first reboot. Add a single-guest plan that invokes --preserve-var and verifies a host marker after boot, while keeping TMT workdirs accessible when /var/tmp is excluded.

Assisted-by: AI
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
The package-mode host's /etc is not migrated by to-existing-root, so a tmpfiles rule written there disappears on reboot. Write and verify the rule in the mounted deployment's persistent /etc before reboot instead.

Assisted-by: AI
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
The split package-mode test no longer exercised how preserve-var handles a nested bind mount. Add a derived image with an enabled mount and verify copied data and the rebooted mount behavior.

Assisted-by: AI
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
Reject wipe mode before installation can mutate the running source tree. Make no-clobber collisions visible and clarify the copy, staging, and crash-durability guarantees.

Assisted-by: AI
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
Clarify that a completed preserve-var copy is not guaranteed to survive sudden power loss or kernel failure, while retaining the consistent-live-snapshot caveat.

Assisted-by: AI
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
Explain that atomic per-entry namespace visibility does not make the migration a tree-wide snapshot or transaction, and distinguish both from crash durability. This helps operators reason about partial migrations and live database data.

Assisted-by: AI
Signed-off-by: ckyrouac <ckyrouac@redhat.com>

This branch has not been deployed

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

Labels

area/documentation Updates to the documentation area/install Issues related to `bootc install` ci/tier-1 Run CI for tier-1 OS (centos-10) only

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant