bootc-dev / bootc-dev/bootc

Add update hooks

Aperta
#517 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
area/rpmostree enhancement
Lingua principale
Rust
Stelle
2.3k
Fork
230
Merge medio
3g 3h
PR unite (30g)
36

Descrizione

One thing that rpm-ostree has is that by default it displays the rpm database diff between two OS images.

I think we could add something like:

```
/usr/lib/bootc/diff-hooks.d
```

That we'd run each time a deployment changes. Then software like `dnf` could drop in a `/usr/lib/bootc/hooks.d/dnf` that would basically do what `rpm-ostree db diff` does; it would get passed two filesystem roots (as file descriptors or maybe easier by running as a container with `/from` and `/to` mount points for the two roots).

This would get us into a space where typing `bootc upgrade` would at least have that CLI sugar for admins.

But I'd probably say that we shouldn't try to scope creep this package/container integration too much beyond that; if one wants to do things with packages one would invoke `apt/dnf` directly, which should learn how to interact with bootc.

See e.g. https://github.com/coreos/rpm-ostree/issues/4924 which is about codifying an API in rpm-ostree for these diffs. I don't think we should do anything like that here; the API for such a thing should live in a tool like `apt/dnf` which are about packages.

IOW there'd be e.g. `dnf bootc diff` perhaps. (But also, `dnf podman diff `!).

Basically a core tradeoff in rpm-ostree is that we didn't invest enough in the package-independent `ostree` tool, and I want bootc to feel first class for non-packaged content too, and deferring package things to package tools.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Start with the proposed /usr/lib/bootc/diff-hooks.d location and the bootc upgrade path described in the issue. Determine the hook contract, how the two filesystem roots are exposed, and what deployment-change behavior is required; done means the design is agreed and the resulting hooks run with a documented interface.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
linux, rust
Ambito
operating-systems
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.