Add baremetal IPI platform#1873
Conversation
|
Builds for other platforms will fail until openshift-metal3/kni-installer#115 is in, go-lint is addressed in openshift-metal3/kni-installer#113. |
|
Please reduce the bash and python magic, and make sure there is a lot of documentation. It's not acceptable to point to docs in a different repo, I would expect that commits have the detailed documentation. |
ec082ae to
e4d82ab
Compare
This vendors cluster-api-provider-baremetal, and related code for use by the baremetal platform.
This adds experimental support for the baremetal IPI platform. Baremetal IPI is implemented via a libvirt bootstrap VM, and an Ironic instance that handles provisioning of baremetal nodes. This baremetal platform is still experimental and relies on the openshift-metal3/dev-scripts to perform a complete deployment. Co-authored-by: Antoni Segura Puimedon <antoni@redhat.com> Co-authored-by: Ben Nemec <bnemec@redhat.com> Co-authored-by: Derek Higgins <derekh@redhat.com> Co-authored-by: Eduardo Minguez Perez <e.minguez@gmail.com> Co-authored-by: Mark McLoughlin <markmc@redhat.com> Co-authored-by: Russell Bryant <rbryant@redhat.com> Co-authored-by: Sandhya Dasu <sdasu@redhat.com> Co-authored-by: Stephen Benjamin <stephen@redhat.com> Co-authored-by: Steven Hardy <shardy@redhat.com> Co-authored-by: Yolanda Robla <yroblamo@redhat.com>
|
@eparis Needs another /lgtm due to rebasing. Small conflict in Gopkg.toml and pkg/asset/machines/worker.go |
|
/retest |
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: abhinavdahiya, eparis, stbenjam The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/retest |
|
@stbenjam: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
For platforms without a DNS as a Service available, there is a chicken/egg scenario. This is because we cannot setup our own DNS solution on the nodes before they are booted via ignition. Instead, we get the ignition config via a virtual IP that is conifgured and maintained by keepalived. The setup of keepalived will be done via machine-config-operator, so it is not part of this patch. This patch only sets up the plumbing so that we can merge the keepalived work while keeping CI green. Then we can put up a patch that will switch to actually using this functionality. This patch also adds an interface for other platforms that need this functionality to work from. Specifically, these PRs can be rebased on this work: openshift#1873 openshift#1948
For platforms without a DNS as a Service available, there is a chicken/egg scenario. This is because we cannot setup our own DNS solution on the nodes before they are booted via ignition. Instead, we get the ignition config via a virtual IP that is conifgured and maintained by keepalived. The setup of keepalived will be done via machine-config-operator, so it is not part of this patch. This patch only sets up the plumbing so that we can merge the keepalived work while keeping CI green. Then we can put up a patch that will switch to actually using this functionality. This patch also adds an interface for other platforms that need this functionality to work from. Specifically, these PRs can be rebased on this work: openshift#1873 openshift#1948
For platforms without a DNS as a Service available, there is a chicken/egg scenario. This is because we cannot setup our own DNS solution on the nodes before they are booted via ignition. Instead, we get the ignition config via a virtual IP that is conifgured and maintained by keepalived. The setup of keepalived will be done via machine-config-operator, so it is not part of this patch. This patch only sets up the plumbing so that we can merge the keepalived work while keeping CI green. Then we can put up a patch that will switch to actually using this functionality. This patch also adds an interface for other platforms that need this functionality to work from. Specifically, these PRs can be rebased on this work: openshift#1873 openshift#1948
Hi all 👋
This adds experimental support for the baremetal IPI platform. Details about how to use it are in the docs/ directory. We have a prerequisite that there is an existing Ironic infrastructure, and that can be deployed with openshift-metal3/dev-scripts. We are working on moving that to the bootstrap VM, to avoid the dependency on another repository, but we are blocked until RHCOS has an updated version of libpod.
Other known issues that we are working on are tracked here.
This PR since it's initial opening has been broken up into some smaller PR's in addition to this one.