Skip to content

Commit c312ffd

Browse files
author
Christopher Tauchen
authored
Merge pull request #39205 from aireilly/TELCODOCS-368_JohnWilkins
TELCODOCS-368: [CLONED] Deploying an OCP cluster manually without Assisted Installer (regardless of use case)
2 parents 6a2911e + 10f31b4 commit c312ffd

11 files changed

+294
-43
lines changed

_topic_maps/_topic_map.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,9 +213,9 @@ Topics:
213213
Dir: installing_sno
214214
Distros: openshift-origin,openshift-enterprise
215215
Topics:
216-
- Name: Preparing to install on a single node
216+
- Name: Preparing to install OpenShift on a single node
217217
File: install-sno-preparing-to-install-sno
218-
- Name: Installing on a single node
218+
- Name: Installing OpenShift on a single node
219219
File: install-sno-installing-sno
220220
- Name: Deploying installer-provisioned clusters on bare metal
221221
Dir: installing_bare_metal_ipi
Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
1-
[id="installing-sno"]
2-
= Installing on a single node
3-
:context: install-sno-installing-sno
1+
[id="install-sno-installing-sno"]
2+
= Installing OpenShift on a single node
3+
:context: install-sno-installing-sno-with-the-assisted-installer
44
include::modules/common-attributes.adoc[]
55

66
toc::[]
77

8-
include::modules/install-sno-generate-the-discovery-iso.adoc[leveloffset=+1]
8+
include::modules/install-sno-generating-the-discovery-iso-with-the-assisted-installer.adoc[leveloffset=+1]
9+
10+
include::modules/install-sno-generating-the-discovery-iso-manually.adoc[leveloffset=+1]
911

1012
include::modules/install-sno-installing-with-usb-media.adoc[leveloffset=+1]
13+
14+
include::modules/install-sno-monitoring-the-installation-with-the-assisted-installer.adoc[leveloffset=+1]
15+
16+
include::modules/install-sno-monitoring-the-installation-manually.adoc[leveloffset=+1]

installing/installing_sno/install-sno-preparing-to-install-sno.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ include::modules/common-attributes.adoc[]
55

66
toc::[]
77

8+
[id="preparing-to-install-sno_{context}"]
9+
== Prerequisites
10+
11+
* You reviewed details about the xref:../../architecture/architecture-installation.adoc#architecture-installation[{product-title} installation and update] processes.
12+
* You have read the documentation on xref:../../installing/installing-preparing.adoc#installing-preparing[selecting a cluster installation method and preparing it for users].
13+
814
include::modules/install-sno-about-installing-on-a-single-node.adoc[leveloffset=+1]
915

1016
include::modules/install-sno-requirements-for-installing-on-a-single-node.adoc[leveloffset=+1]

modules/install-sno-about-installing-on-a-single-node.adoc

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
// installing_sno/install-sno-preparing-to-install-sno.adoc
44

55
[id="install-sno-about-installing-on-a-single-node_{context}"]
6-
= About installing on a single node
6+
= About OpenShift on a single node
77

8-
An installation of {product-title} on a single node is a specialized installation. The primary use case is for edge computing workloads, including small physical footprints, intermittent connectivity, portable clouds, and 5G radio access networks (RAN) close to a base station. An installation on a single node supports autonomous workloads.
9-
10-
The major trade off with an installation on a single node is the lack of high availability.
8+
You can create a single node cluster with standard installation methods. {product-title} on a single node is a specialized installation that requires the creation of a special ignition configuration ISO. The primary use case is for edge computing workloads, including intermittent connectivity, portable clouds, and 5G radio access networks (RAN) close to a base station. The major tradeoff with an installation on a single node is the lack of high availability.
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
// This is included in the following assemblies:
2+
//
3+
// installing_sno/install-sno-installing-sno.adoc
4+
5+
[id="generating-the-discovery-iso-manually_{context}"]
6+
= Generating the discovery ISO manually
7+
8+
Installing {product-title} on a single node requires a discovery ISO, which you can generate with the following procedure.
9+
10+
.Procedure
11+
12+
. Download the {product-title} client (`oc`) and make it available for use by entering the following command:
13+
+
14+
[source,terminal]
15+
----
16+
$ curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux.tar.gz > oc.tar.gz
17+
----
18+
+
19+
[source,terminal]
20+
----
21+
$ tar zxf oc.tar.gz
22+
----
23+
+
24+
[source,terminal]
25+
----
26+
$ chmod +x oc
27+
----
28+
29+
. Set the {product-title} version:
30+
+
31+
[source,terminal]
32+
----
33+
$ OCP_VERSION=<ocp_version> <1>
34+
----
35+
+
36+
<1> Replace `<ocp_version>` with the current version. For example. `latest-{product-version}`
37+
38+
. Download the {product-title} installer and make it available for use by entering the following commands:
39+
+
40+
[source,terminal]
41+
----
42+
$ curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$OCP_VERSION/openshift-install-linux.tar.gz > openshift-install-linux.tar.gz
43+
----
44+
+
45+
[source,terminal]
46+
----
47+
$ tar zxvf openshift-install-linux.tar.gz
48+
----
49+
+
50+
[source,terminal]
51+
----
52+
$ chmod +x openshift-install
53+
----
54+
55+
. Retrieve the {op-system} ISO URL:
56+
+
57+
[source,terminal]
58+
----
59+
$ ISO_URL=$(./openshift-install coreos print-stream-json | grep location | grep x86_64 | grep iso | cut -d\" -f4)
60+
----
61+
62+
. Download the {op-system} ISO:
63+
+
64+
[source,terminal]
65+
----
66+
$ curl $ISO_URL > rhcos-live.x86_64.iso
67+
----
68+
69+
. Prepare the `install-config.yaml` file:
70+
+
71+
[source,yaml]
72+
----
73+
apiVersion: v1
74+
baseDomain: <domain> <1>
75+
compute:
76+
- name: worker
77+
replicas: 0 <2>
78+
controlPlane:
79+
name: master
80+
replicas: 1 <3>
81+
metadata:
82+
name: <name> <4>
83+
networking:
84+
networkType: OVNKubernetes
85+
clusterNetwork:
86+
- cidr: <IP_address>/<prefix> <5>
87+
hostPrefix: <prefix> <6>
88+
serviceNetwork:
89+
- <IP_address>/<prefix> <7>
90+
platform:
91+
none: {}
92+
BootstrapInPlace:
93+
InstallationDisk: <path_to_install_drive> <8>
94+
pullSecret: '<pull_secret>' <9>
95+
sshKey: |
96+
<ssh_key> <10>
97+
----
98+
+
99+
<1> Add the cluster domain name.
100+
+
101+
<2> Set the `compute` replicas to `0`. This makes the control plane node schedulable.
102+
+
103+
<3> Set the `controlPlane` replicas to `1`. In conjunction with the previous `compute` setting, this setting ensures the cluster runs on a single node.
104+
+
105+
<4> Set the `metadata` name to the cluster name.
106+
+
107+
<5> Set the `clusterNetwork` CIDR.
108+
+
109+
<6> Set the `clusterNetwork` host prefix. Pods receive their IP addresses from this pool.
110+
+
111+
<7> Set the `serviceNetwork` CIDR. Services receive their IP addresses from this pool.
112+
+
113+
<8> Set the path to the installation disk drive.
114+
+
115+
<9> Copy the pull secret from link:https://console.redhat.com/openshift/install/pull-secret[Red Hat Hybrid Cloud Console]. In step 1, click *Download pull secret* and add the contents to this configuration setting.
116+
+
117+
<10> Add the public SSH key from the administration host so that you can log in to the cluster after installation.
118+
119+
. Generate {product-title} assets:
120+
+
121+
[source,terminal]
122+
----
123+
$ mkdir ocp
124+
----
125+
+
126+
[source,terminal]
127+
----
128+
$ cp install-config.yaml ocp
129+
----
130+
+
131+
[source,terminal]
132+
----
133+
$ ./openshift-install --dir=ocp create single-node-ignition-config
134+
----
135+
136+
. Embed the ignition data into the {op-system} ISO:
137+
+
138+
[source,terminal]
139+
----
140+
$ alias coreos-installer='podman run --privileged --rm \
141+
-v /dev:/dev -v /run/udev:/run/udev -v $PWD:/data \
142+
-w /data quay.io/coreos/coreos-installer:release'
143+
----
144+
+
145+
[source,terminal]
146+
----
147+
$ cp ocp/bootstrap-in-place-for-live-iso.ign iso.ign
148+
----
149+
+
150+
[source,terminal]
151+
----
152+
$ coreos-installer iso ignition embed -fi iso.ign rhcos-live.x86_64.iso
153+
----

modules/install-sno-generate-the-discovery-iso.adoc renamed to modules/install-sno-generating-the-discovery-iso-with-the-assisted-installer.adoc

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,20 @@
22
//
33
// installing_sno/install-sno-installing-sno.adoc
44

5-
[id="generate-the-discovery-iso_{context}"]
5+
[id="install-sno-generating-the-discovery-iso-with-the-assisted-installer_{context}"]
6+
= Generating the discovery ISO with the Assisted Installer
67

7-
= Generate the discovery ISO
8-
9-
Installing {product-title} on a single node requires a discovery ISO, which the Assisted Installer (AI) generates with the cluster name, base domain, Secure Shell (SSH) public key, and pull secret.
8+
Installing {product-title} on a single node requires a discovery ISO, which the Assisted Installer (AI) can generate with the cluster name, base domain, Secure Shell (SSH) public key, and pull secret.
109

1110
.Procedure
1211

1312
. On the administration node, open a browser and navigate to link:https://console.redhat.com/openshift/assisted-installer/clusters[Install OpenShift with the Assisted Installer].
1413

15-
. Click *Create New Cluster* to create a new cluster.
14+
. Click *Create Cluster* to create a new cluster.
1615

17-
. In the *Cluster Name* field, enter a name for the cluster.
16+
. In the *Cluster name* field, enter a name for the cluster.
1817

19-
. In the *Base Domain* field, enter a base domain. For example:
18+
. In the *Base domain* field, enter a base domain. For example:
2019
+
2120
----
2221
example.com
@@ -28,21 +27,21 @@ All DNS records must be subdomains of this base domain and include the cluster n
2827
<cluster-name>.example.com
2928
----
3029

31-
. Select *"I want to install single node OpenShift (SNO)"*.
30+
. Select *Install single node OpenShift (SNO)*.
3231

3332
. Read the limitations for installing {product-title} on a single node.
3433

35-
. Select *"I understand, accept, and agree to the limitations associated with using Single Node OpenShift"*.
36-
3734
. Select the {product-title} version.
3835

36+
. Optional: Edit the pull secret.
37+
3938
. Click *Next*.
4039

4140
. Click *Generate Discovery ISO*.
4241

43-
. Select *Full ISO* to boot with a USB drive or PXE. Select *Minimal ISO* to boot with virtual media.
42+
. Select *Full image file* to boot with a USB drive or PXE. Select *Minimal image file* to boot with virtual media.
4443

45-
. Add the Secure Shell public key of the administration node to the *Public key* field.
44+
. Add SSH public key of the administration node to the *Public key* field.
4645

4746
. Click *Generate Discovery ISO*.
4847

modules/install-sno-installing-with-usb-media.adoc

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,3 @@ After the ISO is copied to the USB drive, you can use the USB drive to install {
3434
. Change boot drive order to make the USB drive boot first.
3535

3636
. Save and exit the BIOS settings. The server will boot with the discovery image.
37-
38-
. On the administration node, return to the browser and refresh the page. If necessary, reload the link:https://console.redhat.com/openshift/assisted-installer/clusters[Install OpenShift with the Assisted Installer] page and select the cluster name.
39-
40-
. Click *Next* until you reach step 3.
41-
42-
. Select a subnet from the available subnets.
43-
44-
. Keep *Use the same host discovery SSH key* checked. You can change the SSH public key, if necessary.
45-
46-
. Click *Next* to step 4.
47-
48-
. Click *Install cluster*.
49-
50-
. Monitor the installation's progress. Watch the cluster events. After the installation process finishes writing the discovery image to the server's drive, the server will reboot. Remove the USB drive and reset the BIOS to boot to the server's local media rather than the USB drive.
51-
52-
The server will reboot several times, deploying a control plane followed by a worker.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// This is included in the following assemblies:
2+
//
3+
// installing_sno/install-sno-installing-sno.adoc
4+
5+
[id="install-sno-monitoring-the-installation-manually_{context}"]
6+
= Monitoring the installation manually
7+
8+
If you created the ISO manually, use this procedure to monitor the installation.
9+
10+
.Procedure
11+
12+
. Monitor the installation:
13+
+
14+
[source,terminal]
15+
----
16+
$ ./openshift-install --dir=ocp wait-for install-complete
17+
----
18+
+
19+
The server will restart several times while deploying the control plane.
20+
21+
. Optional: After the installation is complete, check the environment:
22+
+
23+
[source,terminal]
24+
----
25+
$ export KUBECONFIG=ocp/auth/kubeconfig
26+
----
27+
+
28+
[source,terminal]
29+
----
30+
$ oc get nodes
31+
----
32+
+
33+
[source,terminal]
34+
----
35+
$ oc get clusterversion
36+
----
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// This is included in the following assemblies:
2+
//
3+
// installing_sno/install-sno-installing-sno.adoc
4+
5+
[id="install-sno-monitoring-the-installation-with-the-assisted-installer_{context}"]
6+
= Monitoring the installation with the Assisted Installer
7+
8+
If you created the ISO using the Assisted Installer, use this procedure to monitor the installation.
9+
10+
.Procedure
11+
12+
. On the administration host, return to the browser and refresh the page. If necessary, reload the link:https://console.redhat.com/openshift/assisted-installer/clusters[*Install OpenShift with the Assisted Installer*] page and select the cluster name.
13+
14+
. Click *Next* until you reach step 3, *Networking*.
15+
16+
. Select a subnet from the available subnets.
17+
18+
. Keep *Use the same host discovery SSH key* checked. You can change the SSH public key, if necessary.
19+
20+
. Click *Next* to proceed to the *Review and Create* step.
21+
22+
. Click *Install cluster*.
23+
24+
. Monitor the installation's progress. Watch the cluster events. After the installation process finishes writing the discovery image to the server's drive, the server will restart. Remove the USB drive and reset the BIOS to boot to the server's local media rather than the USB drive.
25+
26+
The server will restart several times, deploying the control plane.

modules/install-sno-requirements-for-installing-on-a-single-node.adoc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
//
33
// installing_sno/install-sno-preparing-to-install-sno.adoc
44

5-
[id="requirements-for-installing-on-a-single-node_{context}"]
6-
= Requirements for installing on a single node
5+
[id="install-sno-requirements-for-installing-on-a-single-node_{context}"]
6+
= Requirements for installing OpenShift on a single node
77

8-
Installing {product-title} on a single node alleviates some of the requirements of high availability and large scale clusters. However, you must address the following requirements:
8+
Installing {product-title} on a single node alleviates some of the requirements for high availability and large scale clusters. However, you must address the following requirements:
99

10-
* *Administration node:* You must have an administration node or laptop to access link:https://console.redhat.com/openshift/assisted-installer/clusters[Install OpenShift with the Assisted Installer], to specify the cluster name, to create the USB boot drive, and to monitor the installation.
10+
* *Administration host:* You must have a computer to prepare the ISO, to create the USB boot drive, and to monitor the installation.
1111

1212
* *Production-grade server:* Installing {product-title} on a single node requires a server with sufficient resources to run {product-title} services and a production workload.
1313
+
14-
.Hardware requirements
14+
.Minimum resource requirements
1515
[options="header"]
1616
|====
1717
|Profile|vCPU|Memory|Storage
@@ -34,6 +34,7 @@ The server must have a Baseboard Management Controller (BMC) when booting with v
3434
|====
3535
|Usage|FQDN|Description
3636
|Kubernetes API|`api.<cluster_name>.<base_domain>`| Add a DNS A/AAAA or CNAME record. This record must be resolvable by clients external to the cluster.
37+
|Internal API|`api-int.<cluster_name>.<base_domain>`| Add a DNS A/AAAA or CNAME record when creating the ISO manually. This record must be resolvable by nodes within the cluster.
3738
|Ingress route|`*.apps.<cluster_name>.<base_domain>`| Add a wildcard DNS A/AAAA or CNAME record that targets the node. This record must be resolvable by clients external to the cluster.
3839
|Cluster node|`<hostname>.<cluster_name>.<base_domain>`| Add a DNS A/AAAA or CNAME record and DNS PTR record to identify the node.
3940
|====

0 commit comments

Comments
 (0)