/baremetal-operator

Bare metal host provisioning integration for Kubernetes

Primary LanguageGoApache License 2.0Apache-2.0

Bare Metal Operator

CLOMonitor OpenSSF Scorecard Ubuntu daily main build status CentOS daily main build status BMO e2e periodic main

The Bare Metal Operator implements a Kubernetes API for managing bare metal hosts. It maintains an inventory of available hosts as instances of the BareMetalHost Custom Resource Definition. The Bare Metal Operator knows how to:

  • Inspect the host’s hardware details and report them on the corresponding BareMetalHost. This includes information about CPUs, RAM, disks, NICs, and more.
  • Provision hosts with a desired image.
  • Clean a host’s disk contents before or after provisioning.

More capabilities are being added regularly. See open issues and pull requests for more information on work in progress.

For more information about Metal³, the Bare Metal Operator, and other related components, see the Metal³ docs.

Resources

Integration tests

Currently a PR in BMO is tested with CAPM3 integration tests. There are two types of CAPM3 integration test, CAPM3 e2e integration tests and ansible integration tests. You will see one of each kind as a required test on a BMO PR. Eventually these tests will be replaced with BMO's own e2e tests. BMO e2e tests are currently under active development. Here are the tests which run on different branches in BMO:

E2E tests:

  • /test metal3-bmo-e2e-test-pull runs required BMO e2e tests on your PR. Works for main and release-0.5 branches.
  • /test metal3-bmo-e2e-test-optional-pull runs optional BMO e2e tests on your PR. These are under active development currently.

For more details on the e2e tests, see test/e2e/README.md.

Main branch:

  • /test metal3-centos-e2e-integration-test-main runs CAPM3 e2e integration tests with CAPM3 main branch and BMO main branch on Centos
  • /test metal3-ubuntu-e2e-integration-test-main runs ansible integration tests with CAPM3 main branch and BMO main branch on Ubuntu

Release-0.6 branch:

  • /test metal3-centos-e2e-integration-test-release-1-7 runs CAPM3 e2e integration tests with CAPM3 release-1.7 branch and BMO release-0.6 branch on Centos
  • /test metal3-ubuntu-e2e-integration-test-release-1-7 runs ansible integration tests with CAPM3 release-1.7 branch and BMO release-0.6 branch on Ubuntu

Release-0.5 branch:

  • /test metal3-centos-e2e-integration-test-release-1-6 runs CAPM3 e2e integration tests with CAPM3 release-1.6 branch and BMO release-0.5 branch on Centos
  • /test metal3-ubuntu-e2e-integration-test-release-1-6 runs ansible integration tests with CAPM3 release-1.6 branch and BMO release-0.5 branch on Ubuntu

Release-0.4 branch:

  • /test metal3-centos-e2e-integration-test-release-1-5 runs CAPM3 e2e integration tests with CAPM3 release-1.5 branch and BMO release-0.4 branch on Centos
  • /test metal3-ubuntu-e2e-integration-test-release-1-5 runs ansible integration tests with CAPM3 release-1.5 branch and BMO release-0.4 branch on Ubuntu

Important Notes

Whenever there is a change in config/ directory, please remember to run the following command:

make manifests

This will render the config/render/capm3.yaml. Please do not change the content of config/render/capm3.yaml manually.