This repository includes scripts to set up a Metal³ development environment.
Instructions can be found here: https://book.metal3.io/developer_environment/tryit
Version v1beta1 is later referred as v1betaX.
The v1betaX deployment can be done with Ubuntu 18.04, 20.04, 22.04 or Centos 10 Stream target host images. By default, for Ubuntu based target hosts we are using Ubuntu 22.04
The requirements for the dev env machine are, when deploying Ubuntu target hosts:
- 8GB of memory
- 4 cpus
And when deploying Centos target hosts:
- 16GB of memory
- 4 cpus
The Minikube machine is deployed with 4GB of RAM, and 2 vCPUs, and the target hosts with 4 vCPUs and 4GB of RAM.
export CAPM3_VERSION=v1beta1
export CAPI_VERSION=v1beta2The following environment variables need to be set for Centos:
export IMAGE_OS=centosAnd the following environment variables need to be set for Ubuntu:
export IMAGE_OS=ubuntuAnd the following environment variables need to be set for Flatcar:
export IMAGE_OS=flatcarBy default the virtualization hypervisor used is kvm. To be able to use it the nested virtualization needs to be enabled in the host. In case kvm or nested virtualization are not available it is possible to switch to qemu, although at this moment there are limitations in the execution and it is considered as experimental configuration. To switch to the qemu hypervisor apply the following setting:
export LIBVIRT_DOMAIN_TYPE=qemuYou can check a list of all the environment variables here
Note: These scripts are invasive and will reconfigure part of the host OS in addition to package installation, and hence it is recommended to run dev-env in a VM. Please read the scripts to understand what they do before running them on your machine.
./01_prepare_host.sh
./02_configure_host.sh
./03_launch_mgmt_cluster.sh
./04_verify.shor
make./tests/scripts/provision/cluster.sh
./tests/scripts/provision/controlplane.sh
./tests/scripts/provision/worker.sh./tests/scripts/provision/pivot.shkubectl delete cluster "${CLUSTER_NAME:-"test1"}" -n metal3Tilt can be used to run the CAPI, BMO, CAPM3, and IPAM components for local development. For detailed instructions, see Tiltfile.md.
In case, you want recreate the local ironic containers enabled with TLS, you need to use the following instructions:
source lib/common.sh
source lib/network.sh
export IRONIC_HOST="${CLUSTER_BARE_METAL_PROVISIONER_HOST}"
export IRONIC_HOST_IP="${CLUSTER_BARE_METAL_PROVISIONER_IP}"
source lib/ironic_tls_setup.sh
source lib/ironic_basic_auth.sh
cd ${BMOPATH}
./tools/run_local_ironic.shHere ${BMOPATH} points to the baremetal operator directory. For more
information, regarding the TLS setup and running ironic locally please refer to
these documents:
TLS
, Run local ironic.
The following table describes which branches are tested for different test triggers:
| test suffix | CAPM3 branch | IPAM branch | BMO branch/tag | Keepalived tag | Ironic-image tag | IPA branch |
|---|---|---|---|---|---|---|
| main | main | main | main | latest | latest | master |
| release-1-11 | release-1.11 | release-1.11 | release-0.11 | release-0.9 | release-31.0 | bugfix/11.1 |
| release-1-10 | release-1.10 | release-1.10 | release-0.10 | release-0.9 | release-29.0 | stable/2025.1 |
| release-1-9 | release-1.9 | release-1.9 | release-0.9 | release-0.9 | release-27.0 | bugfix/10.0 |