|
1 | 1 | # install-scripts
|
2 | 2 | Installation scripts for OpenShift KNI clusters
|
3 | 3 |
|
| 4 | +## What's going on here? |
| 5 | + |
| 6 | +KNI clusters consist of: |
| 7 | + |
| 8 | +* OpenShift deployed on physical hardware using OpenShift's [bare |
| 9 | + metal |
| 10 | + IPI](https://github.com/openshift/installer/blob/master/docs/user/metal/install_ipi.md) |
| 11 | + platform based on [Metal³](http://metal3.io/). |
| 12 | +* OpenShift Container Storage (OCS) based on [Ceph |
| 13 | + Rook](https://rook.io/) and using the [OCS |
| 14 | + Operator](https://github.com/openshift/ocs-operator). |
| 15 | +* Container Native Virtualization (CNV) based on |
| 16 | + [KubeVirt](https://kubevirt.io/) and using the [Hyperconverged |
| 17 | + Cluster Operator |
| 18 | + (HCO)](https://github.com/kubevirt/hyperconverged-cluster-operator). |
| 19 | +* 4x Dell PowerEdge R640 nodes, each with 2x Mellanox NICs, and 2x |
| 20 | + Mellanox ethernet switches, all in a 12U rack. 1 node is used as a |
| 21 | + "provisioning host", while the other 3 nodes are OpenShift control |
| 22 | + plane machines. |
| 23 | + |
| 24 | +The goal of this repository is to provide scripts and tooling to ease |
| 25 | +the initial installation and validation of one of these clusters. |
| 26 | + |
| 27 | +The current target is OpenShift 4.2, OCS 4.2, and CNV 2.1. The scripts |
| 28 | +will need to support both published releases and [pre-release versions |
| 29 | +(#12)](https://github.com/openshift-kni/install-scripts/issues/12) of |
| 30 | +each of these. |
| 31 | + |
| 32 | +The scripts will: |
| 33 | + |
| 34 | +1. [Creates an admin user |
| 35 | + (#21)](https://github.com/openshift-kni/install-scripts/issues/21) |
| 36 | + with passwordless sudo on the provisioning host. |
| 37 | +1. Ensure the provisioning host has all [required software |
| 38 | + installed](https://github.com/openshift-kni/install-scripts/blob/master/01_install_requirements.sh). This |
| 39 | + script will also be used to [prepare an ISO image |
| 40 | + (#20)](https://github.com/openshift-kni/install-scripts/issues/20) |
| 41 | + to speed up this part of the installation process. |
| 42 | +1. [Validate any environment requirements |
| 43 | + (#22)](https://github.com/openshift-kni/install-scripts/issues/22) - |
| 44 | + the [bare metal IPI network |
| 45 | + requirements](https://github.com/openshift/installer/blob/master/docs/user/metal/install_ipi.md#network-requirements) |
| 46 | + are a good example of environment requirements. |
| 47 | +1. Apply any [configuration changes to the provisioning |
| 48 | + host](https://github.com/openshift-kni/install-scripts/blob/master/02_configure_host.sh) |
| 49 | + that are required for the OpenShift installer - for example, |
| 50 | + creating the `default` libvirt storage pool and the `baremetal` and |
| 51 | + `provisioning` bridges. |
| 52 | +1. [Prepare the node information |
| 53 | + (#19)](https://github.com/openshift-kni/install-scripts/issues/19) |
| 54 | + required for the [bare metal IPI |
| 55 | + install-config](https://github.com/openshift/installer/blob/master/docs/user/metal/install_ipi.md#install-config). |
| 56 | +1. Launch the OpenShift installer and wait for the cluster |
| 57 | + installation to complete. |
| 58 | +1. Complete some post-install configuration - including [machine/node |
| 59 | + linkage |
| 60 | + (#14)](https://github.com/openshift-kni/install-scripts/issues/14), |
| 61 | + and [configuring a storage VLAN on the `provisioning` interface on |
| 62 | + the OpenShift nodes |
| 63 | + (#4)](https://github.com/openshift-kni/install-scripts/issues/4). |
| 64 | +1. [Deploy OCS |
| 65 | + (#7)](https://github.com/openshift-kni/install-scripts/issues/7) |
| 66 | + and [configure a Ceph cluster and |
| 67 | + StorageClass](https://github.com/openshift-kni/install-scripts/blob/master/OCS/customize-ocs.sh). [Configure |
| 68 | + the image registry to use an OCS PVC |
| 69 | + (#5)](https://github.com/openshift-kni/install-scripts/issues/5) |
| 70 | + for image storage. |
| 71 | +1. [Deploy |
| 72 | + CNV](https://github.com/openshift-kni/install-scripts/blob/master/CNV/deploy-cnv.sh). [Configure |
| 73 | + a bridge on the `baremetal` interface on OpenShift nodes |
| 74 | + (#18)](https://github.com/openshift-kni/install-scripts/issues/18) |
| 75 | + to allow VMs access this network. |
| 76 | +1. Temporarily install Ripsaw, carry out some performance tests, and |
| 77 | + capture the results. |
| 78 | + |
| 79 | +The following environment-specific information will be required for |
| 80 | +each installation: |
| 81 | + |
| 82 | +1. A pull secret - used to access OpenShift content - and an SSH key |
| 83 | + that will be used to authenticate SSH access to the control plane |
| 84 | + machines. |
| 85 | +1. The cluster name and the domain name under which it will be |
| 86 | + available. |
| 87 | +1. The network CIDR in which the machines will be allocated IPs on the |
| 88 | + `baremetal` network interface. |
| 89 | +1. The [3 IP addresses |
| 90 | + reserved](https://github.com/openshift/installer/blob/master/docs/user/metal/install_ipi.md#network-requirements) |
| 91 | + for API, Ingress, and DNS access. |
| 92 | +1. The BMC IPMI addresses and credentials for the 3 control plane |
| 93 | + machines. |
| 94 | +1. Optionally, a Network Time Protocol (NTP) server where the default |
| 95 | + public server is not accessible |
| 96 | + |
4 | 97 | ## Provisioning Host Setup
|
5 | 98 |
|
6 | 99 | The provisioning host must be a RHEL-8 machine.
|
|
0 commit comments