## 1. Image Creation & Local Build - [ ] Draft Containerfile: Create a multi-stage Containerfile based on a bootc-compatible image - [ ] Local Build: Use Podman Desktop/CLI to build the image locally to verify there are no layer errors. - [ ] Decide directory stucture and make a PR with the Container file and a minimal documentation for how to test and use it ## 2. Registry Integration (GitHub Packages) - [ ] GHCR Authentication: Configure local Podman to authenticate with ghcr.io using a Personal Access Token (PAT). - [ ] Initial Push: Manually push the first stable image to the GitHub Container Registry associated with the repo. ## 3. Provisioning & Deployment - [ ] Boot test device (or VM) with a bootc distro. - [ ] Use bootc swith to deploy the image from the container repo (e.g. with `bootc switch ghcr.io/os2sandbox/openclient-core:0.02`) - [ ] Status Verification: Confirm the node is running the containerized OS (e.g. with `bootc status`) ## 4. Auto-Update Testing - [ ] Trigger Update: Modify a small component in the Containerfile, rebuild, and push a new version to GHCR. - [ ] Verify Pull: Ensure the remote node detects the new image version via the bootc-fetcher or a manual bootc update command. - [ ] Reboot Validation: Confirm the system performs a transactional update and reboots into the new image state without manual intervention. ## Definition of Done (DoD) - The system boots successfully from an image hosted on GHCR. - bootc status shows the system is tracking the GitHub registry correctly. - A change pushed to the registry is automatically pulled and applied to the device. - Documentation provided for the Containerfile structure.
1. Image Creation & Local Build
Draft Containerfile: Create a multi-stage Containerfile based on a bootc-compatible image
Local Build: Use Podman Desktop/CLI to build the image locally to verify there are no layer errors.
Decide directory stucture and make a PR with the Container file and a minimal documentation for how to test and use it
2. Registry Integration (GitHub Packages)
GHCR Authentication: Configure local Podman to authenticate with ghcr.io using a Personal Access Token (PAT).
Initial Push: Manually push the first stable image to the GitHub Container Registry associated with the repo.
3. Provisioning & Deployment
Boot test device (or VM) with a bootc distro.
Use bootc swith to deploy the image from the container repo (e.g. with
bootc switch ghcr.io/os2sandbox/openclient-core:0.02)Status Verification: Confirm the node is running the containerized OS (e.g. with
bootc status)4. Auto-Update Testing
Trigger Update: Modify a small component in the Containerfile, rebuild, and push a new version to GHCR.
Verify Pull: Ensure the remote node detects the new image version via the bootc-fetcher or a manual bootc update command.
Reboot Validation: Confirm the system performs a transactional update and reboots into the new image state without manual intervention.
Definition of Done (DoD)