Skip to content

Add baremetal IPI platform#1873

Merged
openshift-merge-robot merged 2 commits intoopenshift:masterfrom
openshift-metal3:baremetal-ipi
Jul 17, 2019
Merged

Add baremetal IPI platform#1873
openshift-merge-robot merged 2 commits intoopenshift:masterfrom
openshift-metal3:baremetal-ipi

Conversation

@stbenjam
Copy link
Copy Markdown
Member

@stbenjam stbenjam commented Jun 19, 2019

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.

@openshift-ci-robot openshift-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jun 19, 2019
Comment thread images/baremetal/Dockerfile.ci Outdated
Comment thread Gopkg.toml Outdated
Comment thread cmd/openshift-install/create.go Outdated
@stbenjam
Copy link
Copy Markdown
Member Author

Builds for other platforms will fail until openshift-metal3/kni-installer#115 is in, go-lint is addressed in openshift-metal3/kni-installer#113.

Comment thread data/data/baremetal/masters/main.tf Outdated
Comment thread data/data/bootstrap/files/usr/local/bin/bootkube.sh.template Outdated
Comment thread data/data/baremetal/OWNERS Outdated
@abhinavdahiya
Copy link
Copy Markdown
Contributor

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.

Comment thread data/data/bootstrap/files/usr/local/bin/bootkube.sh.template Outdated
Comment thread pkg/asset/tls/mcscertkey.go Outdated
Comment thread pkg/types/baremetal/metadata.go Outdated
Comment thread pkg/types/baremetal/platform.go Outdated
Comment thread pkg/types/baremetal/platform.go Outdated
Comment thread pkg/types/machinepools.go Outdated
@openshift-ci-robot openshift-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 20, 2019
@openshift-ci-robot openshift-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 20, 2019
@openshift-ci-robot openshift-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 21, 2019
@openshift-ci-robot openshift-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 2, 2019
@stbenjam stbenjam force-pushed the baremetal-ipi branch 2 times, most recently from ec082ae to e4d82ab Compare July 2, 2019 14:59
stbenjam and others added 2 commits July 16, 2019 22:10
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>
@openshift-ci-robot openshift-ci-robot removed lgtm Indicates that a PR is ready to be merged. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Jul 17, 2019
@stbenjam
Copy link
Copy Markdown
Member Author

@eparis Needs another /lgtm due to rebasing. Small conflict in Gopkg.toml and pkg/asset/machines/worker.go

@stbenjam
Copy link
Copy Markdown
Member Author

/retest

@eparis
Copy link
Copy Markdown
Member

eparis commented Jul 17, 2019

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Jul 17, 2019
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

[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

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@russellb
Copy link
Copy Markdown
Contributor

/retest

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@stbenjam: The following test failed, say /retest to rerun them all:

Test name Commit Details Rerun command
ci/prow/e2e-aws-scaleup-rhel7 0055065 link /test e2e-aws-scaleup-rhel7

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.

Details

Instructions 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.

@openshift-merge-robot openshift-merge-robot merged commit 45807e8 into openshift:master Jul 17, 2019
trown pushed a commit to trown/installer that referenced this pull request Jul 18, 2019
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
mandre pushed a commit to mandre/installer that referenced this pull request Jul 26, 2019
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
iamemilio pushed a commit to iamemilio/installer that referenced this pull request Jul 26, 2019
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. platform/baremetal IPI bare metal hosts platform size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.