@@ -13,6 +13,11 @@ deployments. The tasks are executed using the `make` utility.
1313- ** controller** : A customized CentOS 9 Stream image with packages needed for
1414 the hotstack controller node. Built using diskimage-builder (DIB) with custom
1515 elements from the ` dib/ ` subdirectory.
16+ - ** microshift** : A CentOS 9 Stream image with MicroShift packages installed
17+ from GitHub releases. Built using diskimage-builder (DIB) with the
18+ ` hotstack-microshift ` element. The image is intentionally unconfigured and
19+ requires cloud-init or manual setup to enable services and configure runtime
20+ settings.
1621- ** blank** : A minimal blank image used for virtual baremetal node disks with
1722 Redfish virtual BMC
1823- ** nat64** : A NAT64 appliance image built using ci-framework for IPv6-only
@@ -108,6 +113,18 @@ directly use qcow2 images for VM disks.
108113 ` CONTROLLER_IMAGE_FORMAT ` (in-place conversion if ` raw ` ).
109114 - ` controller_clean ` : Removes the controller image, virtual environment, and
110115 build artifacts.
116+ - ` microshift ` : Builds the MicroShift image using diskimage-builder (DIB).
117+ Depends on ` microshift_dib_setup ` , ` microshift_dib_build ` , and
118+ ` microshift_convert ` .
119+ - ` microshift_dib_setup ` : Creates a Python virtual environment and installs
120+ diskimage-builder.
121+ - ` microshift_dib_build ` : Builds the MicroShift image using DIB with the
122+ configuration from ` dib/microshift-image.yaml ` and the custom
123+ ` hotstack-microshift ` element from ` dib/elements/ ` .
124+ - ` microshift_convert ` : Converts the image to the format specified by
125+ ` MICROSHIFT_IMAGE_FORMAT ` (in-place conversion if ` raw ` ).
126+ - ` microshift_clean ` : Removes the MicroShift image, virtual environment, and
127+ build artifacts.
111128- ` blank ` : A target that creates a blank image file of the specified size in the
112129 format specified by ` BLANK_IMAGE_FORMAT ` .
113130- ` blank_clean ` : A target that removes the blank image file.
@@ -134,6 +151,26 @@ directly use qcow2 images for VM disks.
134151 specified by ` SWITCH_HOST_IMAGE_FORMAT ` (in-place conversion if ` raw ` ).
135152 - ` switch-host_clean ` : A target that removes the switch-host image file.
136153
154+ ### MicroShift Image Variables
155+
156+ - ` MICROSHIFT_IMAGE_NAME ` : The name of the MicroShift image file to be created
157+ (default: ` microshift.qcow2 ` ).
158+ - ` MICROSHIFT_IMAGE_FORMAT ` : The desired format for the MicroShift image
159+ (default: ` raw ` ). Set to ` qcow2 ` to skip conversion and keep the original
160+ DIB output format.
161+ - ` MICROSHIFT_DIB_VENV ` : Path to the Python virtual environment for
162+ diskimage-builder (default: ` ~/microshift-dib-venv ` ).
163+ - ` MICROSHIFT_DIB_WORKDIR ` : Working directory for DIB build artifacts and cache
164+ (default: ` .microshift-build ` ).
165+ - ` MICROSHIFT_VERSION ` : MicroShift major.minor version for dependency
166+ resolution (default: ` 4.20 ` ). This determines which OpenShift mirror
167+ repository to enable and which GitHub release to auto-discover.
168+ - ` DIB_MICROSHIFT_RPM_ARCHIVE ` : * Optional* . Direct URL to the MicroShift RPM
169+ archive (tgz file) from a GitHub release. When not set, the latest release
170+ matching ` MICROSHIFT_VERSION ` is auto-discovered from the
171+ ` microshift-io/microshift ` GitHub releases. Example:
172+ ` https://github.com/microshift-io/microshift/releases/download/4.20.0_g153ff0ca9_4.20.0_okd_scos.16/microshift-rpms-x86_64.tgz `
173+
137174### Examples
138175
139176#### Cleanup
@@ -171,6 +208,45 @@ make clean
171208 --file controller.qcow2
172209 ```
173210
211+ #### Building and uploading the MicroShift image to glance
212+
213+ 1 . Build the MicroShift image (using diskimage-builder):
214+
215+ The latest RPM archive for the configured version is auto-discovered from
216+ GitHub releases:
217+
218+ ``` shell
219+ make microshift \
220+ MICROSHIFT_VERSION=4.20 \
221+ MICROSHIFT_IMAGE_FORMAT=raw # Optional, defaults to raw
222+ ```
223+
224+ To pin a specific release, set ` DIB_MICROSHIFT_RPM_ARCHIVE ` explicitly:
225+
226+ ``` shell
227+ make microshift \
228+ DIB_MICROSHIFT_RPM_ARCHIVE=https://github.com/microshift-io/microshift/releases/download/4.20.0_g153ff0ca9_4.20.0_okd_scos.16/microshift-rpms-x86_64.tgz \
229+ MICROSHIFT_VERSION=4.20
230+ ```
231+
232+ This will create a Python virtual environment, install diskimage-builder,
233+ build the image using the configuration from ` dib/microshift-image.yaml ` , and
234+ convert it to raw format (default).
235+
236+ 2 . Upload the MicroShift image to Glance:
237+
238+ ``` shell
239+ openstack image create hotstack-microshift \
240+ --disk-format raw \
241+ --file microshift.qcow2 \
242+ --property hw_firmware_type=uefi \
243+ --property hw_machine_type=q35
244+ ```
245+
246+ 3 . See ` dib/elements/hotstack-microshift/README.rst ` for detailed runtime
247+ configuration instructions, including firewall setup, LVM configuration for
248+ TopoLVM, kubeconfig setup, and service enablement.
249+
174250#### Building and uploading the blank image to glance
175251
1762521 . Create the blank image:
0 commit comments