Metal3 Continuous Integration¶
The Metal3 Continuous Integration job, named metal3-integration
in the zuul
configuration file, deploys a kubernetes cluster on emulated bare metal nodes,
helping tests the ironic source code using the Metal3 Development
Environment (metal3-dev-env) workflow from the Metal3 project.
Job configuration¶
While the metal3-integration job definition yaml file is in the same path
of the other Ironic CI jobs, it uses separate configuration files under
playbooks/metal3-ci in the Ironic repository.
The configuration follows ansible syntax as for other CI jobs.
The actual job is configured in run.yaml, where various environment variables
for metal3-dev-env are defined under the metal3_environment
entry.
For more info about the metal3-dev-env environment variables definition and
values please see the metal3-dev-env env variables page.
In post.yaml we execute some post execution operations, like collecting logs
and environment configuration, that are useful in case of troubleshooting.
Metal3 Development Environment Guide¶
To familiarize with the Metal3 Development Environment (metal3-dev-env), the Metal3 workflow, and in general with the project, it’s recommended to follow the TryIt section of the Metal3 User Guide. The metal3-dev-env workflow steps are explained in Section 1.2.
The Metal3 Development Environment (metal3-dev-env) is maintained by the
Metal3 project community which is present in the #cluster-api-baremetal
channel on Kubernetes Slack.
For any questions or help on the project, or to escalate issues related to the
metal3-integration
job please contact the Metal3 community.
Troubleshooting Guide¶
The metal3-integration
job logs are stored in the same way and
following roughly the same path of the other Ironic CI jobs.
In the main directory the job-output.txt
file contains the console
output of the job and, if any failure exists, the main reason of the breakage.
Other useful logs are stored under the controller
directory:
before_pivoting
directory stores services logs of the management clusterlibvirt
directory stores libvirt configuration and logs, including console logs of the emulated bare metal nodesmanagement_cluster
directory stores all configuration and logs of the metal3 services, such as the baremetal-operator (BMO)system
directory stores information and logs from the operating system where metal3-dev-env is running