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

[enterprise-4.16] GH#51152: document Single Node OKD #72639

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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions _attributes/common-attributes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,8 @@ endif::[]
:quay: Red Hat Quay
:sno: single-node OpenShift
:sno-caps: Single-node OpenShift
:sno-okd: single-node OKD
:sno-caps-okd: Single-node OKD
//TALO and Redfish events Operators
:cgu-operator-first: Topology Aware Lifecycle Manager (TALM)
:cgu-operator-full: Topology Aware Lifecycle Manager
Expand Down
2 changes: 1 addition & 1 deletion _topic_maps/_topic_map.yml
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ Topics:
File: installation-config-parameters-agent
- Name: Installing on a single node
Dir: installing_sno
Distros: openshift-enterprise
Distros: openshift-enterprise,openshift-origin
Topics:
- Name: Preparing to install OpenShift on a single node
File: install-sno-preparing-to-install-sno
Expand Down
38 changes: 36 additions & 2 deletions installing/installing_sno/install-sno-installing-sno.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ include::_attributes/common-attributes.adoc[]

toc::[]

You can install {sno} using the web-based Assisted Installer and a discovery ISO that you generate using the Assisted Installer. You can also install {sno} by using `coreos-installer` to generate the installation ISO.

ifndef::openshift-origin[]
You can install {sno} using the web-based Assisted Installer and a discovery ISO that you generate using the Assisted Installer. You can also install {sno} by using `coreos-installer` to generate the installation ISO.

[id="installing-sno-assisted-installer"]
== Installing {sno} using the Assisted Installer
Expand All @@ -26,18 +25,40 @@ include::modules/install-sno-generating-the-discovery-iso-with-the-assisted-inst
* xref:../../virt/about_virt/about-virt.adoc#virt-what-you-can-do-with-virt_about-virt[What you can do with OpenShift Virtualization]

include::modules/install-sno-installing-with-the-assisted-installer.adoc[leveloffset=+2]
endif::openshift-origin[]

ifdef::openshift-origin[]
You can install {sno-okd} using the Assisted Service or you can generate an installation ISO using `openshift-installer`.

[id="installing-sno-assisted-installer"]
== Installing {sno-okd} using the Assisted Service

To install {sno-okd} with the Assisted Service, please refer to the following documentation:
* link:https://github.com/openshift/assisted-service/tree/master/deploy/podman#okd-configuration[Install OKD using Assisted Service]
endif::openshift-origin[]

[role="_additional-resources"]
.Additional resources

* xref:../../installing/installing_sno/install-sno-installing-sno.adoc#installing-with-usb-media_install-sno-installing-sno-with-the-assisted-installer[Creating a bootable ISO image on a USB drive]

ifndef::openshift-origin[]
* xref:../../installing/installing_sno/install-sno-installing-sno.adoc#install-booting-from-an-iso-over-http-redfish_install-sno-installing-sno-with-the-assisted-installer[Booting from an HTTP-hosted ISO image using the Redfish API]
* xref:../../nodes/nodes/nodes-sno-worker-nodes.adoc#nodes-sno-worker-nodes[Adding worker nodes to {sno} clusters]
endif::openshift-origin[]

ifdef::openshift-origin[]
* xref:../../nodes/nodes/nodes-sno-worker-nodes.adoc#nodes-sno-worker-nodes[Adding worker nodes to {sno-okd} clusters]
endif::openshift-origin[]

ifndef::openshift-origin[]
[id="install-sno-installing-sno-manually"]
== Installing {sno} manually
endif::openshift-origin[]
ifdef::openshift-origin[]
[id="install-sno-installing-sno-manually"]
== Installing {sno-okd} manually
endif::openshift-origin[]

To install {product-title} on a single node, first generate the installation ISO, and then boot the server from the ISO. You can monitor the installation using the `openshift-install` installation program.

Expand All @@ -55,11 +76,22 @@ include::modules/install-sno-monitoring-the-installation-manually.adoc[leveloffs
.Additional resources

* xref:../../installing/installing_sno/install-sno-installing-sno.adoc#installing-with-usb-media_install-sno-installing-sno-with-the-assisted-installer[Creating a bootable ISO image on a USB drive]
ifndef::openshift-origin[]
* xref:../../installing/installing_sno/install-sno-installing-sno.adoc#install-booting-from-an-iso-over-http-redfish_install-sno-installing-sno-with-the-assisted-installer[Booting from an HTTP-hosted ISO image using the Redfish API]
endif::openshift-origin[]
ifndef::openshift-origin[]
* xref:../../nodes/nodes/nodes-sno-worker-nodes.adoc#nodes-sno-worker-nodes[Adding worker nodes to {sno} clusters]

[id="install-sno-installing-sno-on-cloud-providers"]
== Installing {sno} on cloud providers
endif::openshift-origin[]

ifdef::openshift-origin[]
* xref:../../nodes/nodes/nodes-sno-worker-nodes.adoc#nodes-sno-worker-nodes[Adding worker nodes to {sno-okd} clusters]

[id="install-sno-installing-sno-on-cloud-providers"]
== Installing {sno-okd} on cloud providers
endif::openshift-origin[]

include::modules/install-sno-additional-requirements-for-installing-sno-on-a-cloud-provider.adoc[leveloffset=+2]

Expand Down Expand Up @@ -89,6 +121,7 @@ include::modules/install-sno-installing-sno-on-gcp.adoc[leveloffset=+2]

include::modules/install-sno-installing-with-usb-media.adoc[leveloffset=+1]

ifndef::openshift-origin[]
include::modules/install-booting-from-an-iso-over-http-redfish.adoc[leveloffset=+1]

include::modules/creating-custom-live-rhcos-iso.adoc[leveloffset=+1]
Expand Down Expand Up @@ -153,3 +186,4 @@ You can use dedicated or shared IFLs to assign sufficient compute resources. Res
include::modules/setting-up-bastion-for-sno.adoc[leveloffset=+2]

include::modules/install-sno-ibm-power.adoc[leveloffset=+2]
endif::openshift-origin[]
8 changes: 8 additions & 0 deletions modules/install-sno-about-installing-on-a-single-node.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,15 @@

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

ifndef::openshift-origin[]
[IMPORTANT]
====
The use of OpenShiftSDN with {sno} is not supported. OVN-Kubernetes is the default network plugin for {sno} deployments.
====
endif::openshift-origin[]
ifdef::openshift-origin[]
[IMPORTANT]
====
The use of OpenShiftSDN with {sno-okd} is not supported. OVN-Kubernetes is the default network plugin for {sno-okd} deployments.
====
endif::openshift-origin[]
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,24 @@

:_mod-docs-content-type: CONCEPT
[id="additional-requirements-for-installing-sno-on-a-cloud-provider_{context}"]
ifndef::openshift-origin[]
= Additional requirements for installing {sno} on a cloud provider

The documentation for installer-provisioned installation on cloud providers is based on a high availability cluster consisting of three control plane nodes. When referring to the documentation, consider the differences between the requirements for a {sno} cluster and a high availability cluster.

* A high availability cluster requires a temporary bootstrap machine, three control plane machines, and at least two compute machines. For a {sno} cluster, you need only a temporary bootstrap machine and one cloud instance for the control plane node and no worker nodes.

* The minimum resource requirements for high availability cluster installation include a control plane node with 4 vCPUs and 100GB of storage. For a {sno} cluster, you must have a minimum of 8 vCPU cores and 120GB of storage.
endif::openshift-origin[]
ifdef::openshift-origin[]
= Additional requirements for installing {sno-okd} on a cloud provider

The documentation for installer-provisioned installation on cloud providers is based on a high availability cluster consisting of three control plane nodes. When referring to the documentation, consider the differences between the requirements for a {sno-okd} cluster and a high availability cluster.

* A high availability cluster requires a temporary bootstrap machine, three control plane machines, and at least two compute machines. For a {sno-okd} cluster, you need only a temporary bootstrap machine and one cloud instance for the control plane node and no worker nodes.

* The minimum resource requirements for high availability cluster installation include a control plane node with 4 vCPUs and 100GB of storage. For a {sno-okd} cluster, you must have a minimum of 8 vCPU cores and 120GB of storage.
endif::openshift-origin[]

* The `controlPlane.replicas` setting in the `install-config.yaml` file should be set to `1`.

Expand Down
91 changes: 91 additions & 0 deletions modules/install-sno-generating-the-install-iso-manually.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Installing {product-title} on a single node requires an installation ISO, which

.Procedure

ifndef::openshift-origin[]
. Set the {product-title} version:
+
[source,terminal]
Expand All @@ -22,6 +23,17 @@ $ OCP_VERSION=<ocp_version> <1>
----
+
<1> Replace `<ocp_version>` with the current version, for example, `latest-{product-version}`
endif::openshift-origin[]
ifdef::openshift-origin[]
. Set the {product-title} version:
+
[source,terminal]
----
$ OKD_VERSION=<okd_version> <1>
----
+
<1> Replace `<okd_version>` with the current version, for example, `4.14.0-0.okd-2024-01-26-175629`
endif::openshift-origin[]

. Set the host architecture:
+
Expand All @@ -31,6 +43,7 @@ $ ARCH=<architecture> <1>
----
<1> Replace `<architecture>` with the target host architecture, for example, `aarch64` or `x86_64`.

ifndef::openshift-origin[]
. Download the {product-title} client (`oc`) and make it available for use by entering the following commands:
+
[source,terminal]
Expand All @@ -47,13 +60,42 @@ $ tar zxf oc.tar.gz
----
$ chmod +x oc
----
endif::openshift-origin[]
ifdef::openshift-origin[]
. Download the {product-title} client (`oc`) and make it available for use by entering the following commands:
+
[source,terminal]
----
$ curl -L https://github.com/okd-project/okd/releases/download/$OKD_VERSION/openshift-client-linux-$OKD_VERSION.tar.gz -o oc.tar.gz
----
+
[source,terminal]
----
$ tar zxf oc.tar.gz
----
+
[source,terminal]
----
$ chmod +x oc
----
endif::openshift-origin[]

ifndef::openshift-origin[]
. Download the {product-title} installer and make it available for use by entering the following commands:
+
[source,terminal]
----
$ curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$OCP_VERSION/openshift-install-linux.tar.gz -o openshift-install-linux.tar.gz
----
endif::openshift-origin[]
ifdef::openshift-origin[]
. Download the {product-title} installer and make it available for use by entering the following commands:
+
[source,terminal]
----
$ curl -L https://github.com/okd-project/okd/releases/download/$OKD_VERSION/openshift-install-linux-$OKD_VERSION.tar.gz -o openshift-install-linux.tar.gz
----
endif::openshift-origin[]
+
[source,terminal]
----
Expand All @@ -72,12 +114,22 @@ $ chmod +x openshift-install
$ ISO_URL=$(./openshift-install coreos print-stream-json | grep location | grep $ARCH | grep iso | cut -d\" -f4)
----

ifndef::openshift-origin[]
. Download the {op-system} ISO:
+
[source,terminal]
----
$ curl -L $ISO_URL -o rhcos-live.iso
----
endif::openshift-origin[]
ifdef::openshift-origin[]
. Download the {op-system} ISO:
+
[source,terminal]
----
$ curl -L $ISO_URL -o fcos-live.iso
----
endif::openshift-origin[]

. Prepare the `install-config.yaml` file:
+
Expand Down Expand Up @@ -115,11 +167,17 @@ sshKey: |
<3> Set the `controlPlane` replicas to `1`. In conjunction with the previous `compute` setting, this setting ensures the cluster runs on a single node.
<4> Set the `metadata` name to the cluster name.
<5> Set the `networking` details. OVN-Kubernetes is the only allowed network plugin type for single-node clusters.
ifndef::openshift-origin[]
<6> Set the `cidr` value to match the subnet of the {sno} cluster.
endif::openshift-origin[]
ifdef::openshift-origin[]
<6> Set the `cidr` value to match the subnet of the {sno-okd} cluster.
endif::openshift-origin[]
<7> Set the path to the installation disk drive, for example, `/dev/disk/by-id/wwn-0x64cd98f04fde100024684cf3034da5c2`.
<8> Copy the {cluster-manager-url-pull} and add the contents to this configuration setting.
<9> Add the public SSH key from the administration host so that you can log in to the cluster after installation.

ifndef::openshift-origin[]
. Generate {product-title} assets by running the following commands:
+
[source,terminal]
Expand Down Expand Up @@ -150,3 +208,36 @@ $ alias coreos-installer='podman run --privileged --pull always --rm \
----
$ coreos-installer iso ignition embed -fi ocp/bootstrap-in-place-for-live-iso.ign rhcos-live.iso
----
endif::openshift-origin[]
ifdef::openshift-origin[]
. Generate {product-title} assets by running the following commands:
+
[source,terminal]
----
$ mkdir sno
----
+
[source,terminal]
----
$ cp install-config.yaml sno
----
+
[source,terminal]
----
$ ./openshift-install --dir=sno create single-node-ignition-config
----

. Embed the ignition data into the {op-system} ISO by running the following commands:
+
[source,terminal]
----
$ alias coreos-installer='podman run --privileged --pull always --rm \
-v /dev:/dev -v /run/udev:/run/udev -v $PWD:/data \
-w /data quay.io/coreos/coreos-installer:release'
----
+
[source,terminal]
----
$ coreos-installer iso ignition embed -fi sno/bootstrap-in-place-for-live-iso.ign fcos-live.iso
----
endif::openshift-origin[]
5 changes: 5 additions & 0 deletions modules/install-sno-installing-sno-on-azure.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@

:_mod-docs-content-type: CONCEPT
[id="installing-sno-on-azure_{context}"]
ifndef::openshift-origin[]
= Installing {sno} on Azure
endif::openshift-origin[]
ifdef::openshift-origin[]
= Installing {sno-okd} on Azure
endif::openshift-origin[]

Installing a single node cluster on Azure requires installer-provisioned installation using the "Installing a cluster on Azure with customizations" procedure.
5 changes: 5 additions & 0 deletions modules/install-sno-installing-sno-on-gcp.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@

:_mod-docs-content-type: CONCEPT
[id="installing-sno-on-gcp_{context}"]
ifndef::openshift-origin[]
= Installing {sno} on GCP
endif::openshift-origin[]
ifdef::openshift-origin[]
= Installing {sno-okd} on GCP
endif::openshift-origin[]

Installing a single node cluster on GCP requires installer-provisioned installation using the "Installing a cluster on GCP with customizations" procedure.
9 changes: 9 additions & 0 deletions modules/install-sno-installing-with-usb-media.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,19 @@ You can install software using a bootable USB drive that contains an ISO image.
----
+
where:
ifndef::openshift-origin[]
+
--
<path_to_iso>:: is the relative path to the downloaded ISO file, for example, `rhcos-live.iso`.
<path_to_usb>:: is the location of the connected USB drive, for example, `/dev/sdb`.
--
endif::openshift-origin[]
ifdef::openshift-origin[]
+
--
<path_to_iso>:: is the relative path to the downloaded ISO file, for example, `fcos-live.iso`.
<path_to_usb>:: is the location of the connected USB drive, for example, `/dev/sdb`.
--
endif::openshift-origin[]
+
After the ISO is copied to the USB drive, you can use the USB drive to install software on the server.
Loading