Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

baremetal: Update IPI docs for latest version #5054

Merged
merged 1 commit into from Jul 7, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -6,7 +6,7 @@
* [AWS (UPI)](docs/user/aws/install_upi.md)
* [Azure](docs/user/azure/README.md)
* [Bare Metal (UPI)](docs/user/metal/install_upi.md)
* [Bare Metal (IPI) (Experimental)](docs/user/metal/install_ipi.md)
* [Bare Metal (IPI)](docs/user/metal/install_ipi.md)
* [GCP](docs/user/gcp/README.md)
* [GCP (UPI)](docs/user/gcp/install_upi.md)
* [Libvirt with KVM](docs/dev/libvirt/README.md) (development only)
Expand Down
79 changes: 19 additions & 60 deletions docs/user/metal/install_ipi.md
@@ -1,7 +1,5 @@
# Bare Metal IPI (Installer Provisioned Infrastructure) Overview

Current Status: **Experimental**

This document discusses the installer support for an IPI (Installer Provisioned
Infrastructure) install for bare metal hosts. This includes platform support
for the management of bare metal hosts, as well as some automation of DNS and
Expand Down Expand Up @@ -124,8 +122,13 @@ pre-requisites, the install process is the same as other IPI based platforms.

`openshift-install create cluster`

However, it is recommended to prepare an `install-config.yaml` file in advance,
containing all of the details of the bare metal hosts to be provisioned.
Note for baremetal the installer must be built with both `libvirt` and
`baremetal` tags - in releases such a binary is included,
named `openshift-baremetal-install`

The installer supports interactive mode, but it is recommended to prepare an
`install-config.yaml` file in advance, containing all of the details of the
bare metal hosts to be provisioned.

### Install Config

Expand All @@ -137,29 +140,6 @@ the available hardware so that it is able to fully manage it. There are
Here is an example `install-config.yaml` with the required `baremetal` platform
details.

**IMPORTANT NOTE:** The current install configuration for the `baremetal`
platform should be considered experimental and still subject to change without
backwards compatibility. In particular, some items likely to change soon
include:

* **This field is deprecated. See rootDeviceHints instead.**
The `hardwareProfile` is currently exposed as a way to allow specifying
different hardware parameters for deployment. By default, we will deploy
RHCOS to the first disk, but that may not be appropriate for all hardware.
The `hardwareProfile` is the field we have available to change that. This
interface is subject to change. In the meantime, hardware profiles can be
found here:
https://github.com/metal3-io/baremetal-operator/blob/master/pkg/hardware/profile.go#L48

* *rootDeviceHints* -- Guidance for how to choose the device to
receive the image being provisioned. Documentation on using this field can
be found here
https://github.com/metal3-io/baremetal-operator/blob/master/docs/api.md

* *bootMode* -- Put the server in legacy (BIOS) or UEFI mode for
booting. Use UEFISecureBoot to enable UEFI and secure boot on the server.
The default is UEFI.

```yaml
apiVersion: v1
baseDomain: test.metalkube.org
Expand Down Expand Up @@ -251,6 +231,8 @@ should be used to build the cluster. The number of assets must be at least great
| `role` | | Either `master` or `worker`. |
| `bmc` | | Connection details for the baseboard management controller. See below for details. |
| `bootMACAddress` | | The MAC address of the NIC the host will use to boot on the provisioning network. It must be unique. |
| `rootDeviceHints` | | How to choose the target disk for the OS during provisioning - for more details see [upstream docs](https://github.com/metal3-io/baremetal-operator/blob/master/docs/api.md). |
| `bootMode` | `UEFI` | Choose `legacy` (BIOS) or `UEFI` mode for booting. Use `UEFISecureBoot` to enable UEFI and secure boot on the server. |

The `bmc` parameter for each host is a set of values for accessing the
baseboard management controller in the host.
Expand Down Expand Up @@ -287,22 +269,14 @@ image to the host, use `redfish-virtualmedia://` or `idrac-virtualmedia://`
Please note that when the provisioning network is disabled, the only
supported BMC's are virtual media.

## Work in Progress

Integration of the `baremetal` platform is still a work-in-progress across
various parts of OpenShift. This section discusses key items that are not yet
fully integrated, and their workarounds.

Note that once this work moves into the `openshift/installer` repository, new
issues will get created or existing issues will be moved to track these gaps
instead of the leaving the existing issues against the KNI fork of the installer.
## Known Issues

### `destroy cluster` support

`openshift-install destroy cluster` is not supported for the `baremetal`
platform.

https://github.com/openshift-metal3/kni-installer/issues/74
https://github.com/openshift/installer/issues/2005

## Troubleshooting

Expand Down Expand Up @@ -338,7 +312,8 @@ may also view the logs of the individual containers:

- `podman logs ipa-downloader`
- `podman logs coreos-downloader`
- `podman logs ironic`
- `podman logs ironic-api`
- `podman logs ironic-conductor`
- `podman logs ironic-inspector`
- `podman logs ironic-dnsmasq`
- `podman logs ironic-deploy-ramdisk-logs`
Expand All @@ -360,26 +335,10 @@ may be useful to examine the logs of the pods within the
### Ironic

You may want to examine Ironic itself and look at the state of the
hosts. The below file, when named clouds.yaml and placed in the current
working directory, can be used to communicate with Ironic using the
openstack commandline utilities.
hosts. On the bootstrap VM there is a `/opt/metal3/auth/clouds.yaml`
file which may be used with the Ironic `baremetal` client.

```yaml
clouds:
metal3-bootstrap:
auth_type: none
baremetal_endpoint_override: http://172.22.0.2:6385
baremetal_introspection_endpoint_override: http://172.22.0.2:5050
metal3:
auth_type: none
baremetal_endpoint_override: http://172.22.0.3:6385
baremetal_introspection_endpoint_override: http://172.22.0.3:5050
```

If bootstrap is still up, you can use metal3-bootstrap, otherwise use
metal3 to examine Ironic running in the control plane:

```
export OS_CLOUD=metal3-bootstrap
/usr/local/bin/openstack baremetal node list
```
To interact with Ironic running on the cluster, it will be necessary
to create a similar `clouds.yaml` using the content from the metal3-ironic
secrets in the openshift-machine-api namespace, and the hostIP of the
controlplane host running the metal3 pod.