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_pivotingdirectory stores services logs of the management clusterlibvirtdirectory stores libvirt configuration and logs, including console logs of the emulated bare metal nodesmanagement_clusterdirectory stores all configuration and logs of the metal3 services, such as the baremetal-operator (BMO)systemdirectory stores information and logs from the operating system where metal3-dev-env is running