The community provides an experimental standalone/lightweight bootable container
image including MicroShift, the Jumpstarter {term}operator, and a small web UI.
This is ideal for small development environments, and small labs. For production deployments where High Availability is desired see Production.
- An Intel device, capable of running Centos 10
- At least 4GB RAM and 40GB disk space recommended
From a linux system, for example fedora:
export CENTOS_ISO=CentOS-Stream-10-latest-x86_64-boot.iso
curl -o "${CENTOS_ISO}" "https://mirrors.centos.org/mirrorlist?path=/10-stream/BaseOS/x86_64/iso/${CENTOS_ISO}&redirect=1&protocol=https"
curl -o kickstart.ks https://raw.githubusercontent.com/jumpstarter-dev/jumpstarter/refs/heads/main/controller/deploy/microshift-bootc/kickstart.ks
mkksiso kickstart.ks ${CENTOS_ISO} cs10-js-install.isoFlash the .iso to a pendrive, and boot/install your system, watch out and remove the pendrive once install has finished.
From a bootc capable system (Fedora or Centos 10), run the following command, please note that this action is destructive and will re-install your system.
sudo dnf -y install system-reinstall-bootc
sudo system-reinstall-bootc quay.io/jumpstarter-dev/microshift/bootc:latest
sudo rebootOnce installed and booted, the system displays a banner with the HTTP management interface URL, for example:
http://jumpstarter.192.168.1.11.nip.io:8880/
The default password for root will be jumpstarter and you will be requested to change it on the first connection.
The system uses nip.io for automatic DNS resolution (e.g.
jumpstarter.10.0.2.2.nip.io) although you can setup your own domain if you
have control over your DNS.
| Port | Service | Description |
|---|---|---|
| 80 | HTTP | MicroShift ingress |
| 443 | HTTPS | MicroShift API and ingress |
| 8880 | Config UI | Web configuration interface |
| 6443 | API Server | Kubernetes API (internal) |
- Default Password:
root:jumpstarter. Console login forces a change. Web UI requires a change before access. - TLS Certificates: This deployment uses self-signed certs by default.
- Authentication: Web UI uses PAM authentication with root credentials.
This section covers working with and modifying the bootc image for development purposes.
- Fedora/RHEL-based system (tested on Fedora 42)
- Podman installed and configured
- Root/sudo access required for privileged operations
- At least 4GB RAM and 20GB disk space recommended
From the controller/deploy/microshift-bootc/ directory:
make bootc-buildTo build for multiple architectures (amd64 and arm64):
make bootc-build-multiRun MicroShift in a privileged container for testing:
make bootc-runThis creates a 1GB LVM disk image, starts MicroShift in a privileged container, sets up LVM volume groups for TopoLVM, and waits for MicroShift to be ready.
Access the services:
- Configuration Web UI:
http://localhost:8880(login:root/jumpstarter) - MicroShift API:
https://jumpstarter.<your-ip>.nip.io:6443 - Pod Monitoring:
http://localhost:8880/pods
Check running pods:
sudo podman exec -it jumpstarter-microshift-okd oc get pods -ACreate a QCOW2 image for VMs or bare-metal deployments:
make build-imageCreate an ISO installer image:
make build-isoIf the container is running, stop it first with `make bootc-rm` to avoid LVM conflicts.
The images are configured via config.toml with LVM partitioning (20GB minimum),
XFS root filesystem, and default password root:jumpstarter.
To create a kickstart ISO that automates the installation:
make download-centos-iso # Downloads CentOS Stream 10 ISO
make build-ks-iso # Creates kickstart ISOFor ARM64 builds:
make download-centos-iso ARCH=aarch64
make build-ks-iso ARCH=aarch64For iterative development of the web UI without rebuilding the entire image:
make bootc-reload-appThis copies the updated Python modules and templates into the running container and restarts the config service.
Open a shell in the running container:
make bootc-shsudo podman exec jumpstarter-microshift-okd vgs
sudo podman exec jumpstarter-microshift-okd pvs
make bootc-rm && make clean && make bootc-runsudo podman logs jumpstarter-microshift-okd
sudo podman exec jumpstarter-microshift-okd journalctl -u microshift -fsudo podman exec jumpstarter-microshift-okd systemctl status config-svc
sudo podman exec jumpstarter-microshift-okd journalctl -u config-svc -fStop and remove the container:
make bootc-rmRemove all build artifacts and images:
make cleanOverride the default image tag:
BOOTC_IMG=quay.io/your-org/microshift-bootc:v1.0 make bootc-buildAdd Kubernetes manifests by editing the kustomization.yaml file in
controller/deploy/microshift-bootc/manifests/ - they will be deployed to
/etc/microshift/manifests.d/002-jumpstarter/ in the image.
Push single-architecture image:
make bootc-pushPush multi-architecture manifest:
make bootc-push-multi