Skip to content

Commit ca1a22b

Browse files
committed
OSDOCS-6888-new: Created the agent-based installer book for OCI
1 parent f124014 commit ca1a22b

8 files changed

+397
-0
lines changed

_attributes/common-attributes.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,10 @@ endif::[]
254254
//Oracle
255255
:oci-first: Oracle(R) Cloud Infrastructure (OCI)
256256
:oci: OCI
257+
:oci-ccm-full: Oracle Cloud Controller Manager (CCM)
258+
:oci-ccm: Oracle CCM
259+
:oci-csi-full: Oracle Container Storage Interface (CSI)
260+
:oci-csi: Oracle CSI
257261
:ocid-first: Oracle(R) Cloud Identifier (OCID)
258262
:ocid: OCID
259263
:ocvs-first: Oracle(R) Cloud VMware Solution (OCVS)

_topic_maps/_topic_map.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,8 @@ Topics:
481481
Topics:
482482
- Name: Using the Assisted Installer to install a cluster on OCI
483483
File: installing-oci-assisted-installer
484+
- Name: Using the Agent-based Installer to install a cluster on OCI
485+
File: installing-oci-agent-based-installer
484486
- Name: Installing on vSphere
485487
Dir: installing_vsphere
486488
Distros: openshift-origin,openshift-enterprise
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
:_mod-docs-content-type: ASSEMBLY
2+
[id="installing-oci-agent-based-installer"]
3+
= Installing a cluster OCI by using the Agent-based Installer
4+
include::_attributes/common-attributes.adoc[]
5+
:context: installing-oci-agent-based-installer
6+
7+
toc::[]
8+
9+
In {product-title} {product-version}, you can use the Agent-based Installer to install a cluster on {oci-first}, so that you can run cluster workloads on infrastructure that supports dedicated, hybrid, public, and multiple cloud environments.
10+
11+
// The Agent-based Installer and OCI overview
12+
include::modules/installing-oci-about-agent-based-installer.adoc[leveloffset=+1]
13+
14+
[role="_additional-resources"]
15+
.Additional resources
16+
17+
* xref:../../architecture/architecture-installation.html#installation-process_architecture-installation[Installation process]
18+
* xref:../../installing/installing_platform_agnostic/installing-platform-agnostic.html#cluster-entitlements_installing-platform-agnostic[Internet access for {product-title}]
19+
* xref:../../installing/installing_with_agent_based_installer/preparing-to-install-with-agent-based-installer.html#understanding-agent-install_preparing-to-install-with-agent-based-installer[Understanding the Agent-based Installer]
20+
* See link:https://docs.oracle.com/en-us/iaas/Content/Compute/Concepts/computeoverview.htm[Overview of the Compute Service] in the Oracle documentation.
21+
* See link:https://docs.oracle.com/en-us/iaas/Content/Block/Concepts/blockvolumeperformance.htm#vpus[Volume Performance Units] in the Oracle documentation.
22+
23+
// Creating OCI infrastructure resources and services
24+
include::modules/creating-oci-infra-resources-services.adoc[leveloffset=+1]
25+
26+
[role="_additional-resources"]
27+
.Additional resources
28+
29+
See the following Oracle documentation resources:
30+
31+
* link:https://docs.oracle.com/en-us/iaas/Content/Identity/Tasks/managingcompartments.htm#ariaid-title5[Creating compartments]
32+
* link:https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/create_vcn.htm[Creating a VCN]
33+
* link:https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/create-nsg.htm[Creating an NSG]
34+
* link:https://docs.oracle.com/en-us/iaas/Content/ContEng/Tasks/contengdynamicgrouppolicyforselfmanagednodes.htm[Creating a dynamic group and a policy for self-managed nodes]
35+
* link:https://docs.oracle.com/en-us/iaas/Content/Identity/Tasks/managingpolicies.htm[Managing policies]
36+
* link:https://docs.oracle.com/en-us/iaas/Content/Balance/Tasks/managingloadbalancer_topic-Creating_Load_Balancers.htm[Creating a load balancer]
37+
* link:https://docs.oracle.com/en-us/iaas/Content/DNS/Tasks/record-add.htm[Adding a record to a DNS zone]
38+
39+
// Creating configuration files for installing a cluster on OCI
40+
include::modules/creating-config-files-cluster-install-oci.adoc[leveloffset=+1]
41+
42+
[role="_additional-resources"]
43+
.Additional resources
44+
45+
* xref:../../installing/installing_with_agent_based_installer/installing-with-agent-based-installer.html#installing-ocp-agent-ztp_installing-with-agent-based-installer[Optional: Using ZTP manifests]
46+
47+
// Running your cluster on OCI
48+
include::modules/running-cluster-oci-agent-based.adoc[leveloffset=+1]
49+
50+
// Verifying a succesful cluster installation on OCI
51+
include::modules/verifying-cluster-install-oci-agent-based.adoc[leveloffset=+1]
52+
53+
[role="_additional-resources"]
54+
.Additional resources
55+
56+
* xref:../../installing/installing_with_agent_based_installer/installing-with-agent-based-installer.html#installing-ocp-agent-gather-log_installing-with-agent-based-installer[Gathering log data from a failed Agent-based installation]
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * installing/installing_oci/installing-oci-agent-based-installer.adoc [Using the Agent-based Installer to install a cluster on OCI]
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="creating-config-files-cluster-install-oci_{context}"]
7+
= Creating configuration files for installing a cluster on OCI
8+
9+
You need to create the `install-config.yaml` and the `agent-config.yaml` configuration files so that you can use the Agent-based Installer to generate a bootable ISO image. The Agent-based installation comprises a bootable ISO that contains the Assisted discovery agent and the Assisted Service. Both of these components are required to perform the cluster installation, but the latter component runs on only one of the hosts.
10+
11+
In a subsequent procedure, you can upload your generated Agent ISO image to Oracle’s default Object Storage bucket, which is the initial step for integrating your {product-title} cluster on {oci-first}.
12+
13+
You can also use the Agent-based Installer to generate or accept Zero Touch Provisioning (ZTP) custom resources.
14+
15+
.Prerequisites
16+
* You reviewed details about the xref:../../architecture/architecture-installation.html#installation-overview_architecture-installation[{product-title} installation and update processes].
17+
* You read the documentation on xref:../../installing/installing-preparing.html#installing-preparing-selecting-cluster-type[Selecting a cluster installation method and preparing it for users].
18+
* You have read the xref:../../installing/installing_with_agent_based_installer/preparing-to-install-with-agent-based-installer.html#about-the-agent-based-installer[Preparing to install with the Agent-based Installer] documentation.
19+
* You downloaded the xref:../../installing/installing_with_agent_based_installer/installing-with-agent-based-installer.html#installing-ocp-agent-retrieve_installing-with-agent-based-installer[Agent-Based Installer] and the command-line interface (CLI) from Red Hat’s Hybrid Cloud Console.
20+
* For a disconnected environment, you created a container image registry, such as Red Hat Quay. See xref:../../installing/disconnected_install/installing-mirroring-creating-registry.html#mirror-registry-introduction_installing-mirroring-creating-registry[Mirror registry for Red Hat OpenShift introduction].
21+
* You have logged into the {product-title} with administrator privileges.
22+
23+
.Procedure
24+
25+
. Configure the `install-config.yaml` configuration file to meet the needs of your organization.
26+
+
27+
.Example `install-config.yaml` configuration file that demonstrates setting an external platform
28+
+
29+
[source,yaml]
30+
----
31+
# install-config.yaml
32+
apiVersion: v1
33+
baseDomain: <base_domain> <1>
34+
networking:
35+
clusterNetwork:
36+
- cidr: 10.128.0.0/14
37+
hostPrefix: 23
38+
network type: OVNKubernetes
39+
machineNetwork:
40+
- cidr: <ip_address_from_cidr> <2>
41+
serviceNetwork:
42+
- 172.30.0.0/16
43+
compute:
44+
- architecture: amd64 <3>
45+
hyperthreading: Enabled
46+
name: worker
47+
replicas: 0
48+
controlPlane:
49+
architecture: amd64 <3>
50+
hyperthreading: Enabled
51+
name: master
52+
replicas: 3
53+
platform:
54+
external:
55+
platformName: oci <4>
56+
cloudControllerManager: External
57+
sshKey: <public_ssh_key> <5>
58+
pullSecret: '<pull_secret>' <6>
59+
# ...
60+
----
61+
<1> The base domain of your cloud provider.
62+
<2> The IP address from the VCN that the CIDR allocates to resources and components that operate on your network.
63+
<3> Depending on your infrastructure, you can select either `x86_64`, or `amd64`.
64+
<4> Set `OCI` as the external platform, so that {product-title} can integrate with {oci}.
65+
<5> Specify your SSH public key.
66+
<6> The pull secret that you need for authenticate purposes when downloading container images for {product-title} components and services, such as Quay.io. See link:https://console.redhat.com/openshift/install/pull-secret[Install {product-title} 4] from the Red Hat Hybrid Cloud Console.
67+
68+
. Create a directory on your local system named `openshift`.
69+
+
70+
[IMPORTANT]
71+
====
72+
Do not move the `install-config.yaml` and `agent-config.yaml` configuration files to the `openshift` directory.
73+
====
74+
75+
. From the link:https://github.com/oracle-quickstart/oci-openshift[`oracle-quickstart / oci-openshift`] GitHub web page, select the **<> Code** button and click **Download ZIP**. Save the archive file to your `openshift` directory, so that all the {oci-ccm-full} and {oci-csi-full} manifests exist in the same directory. The downloaded archive file includes files for creating cluster resources and custom manifests.
76+
77+
. Go to the link:https://github.com/oracle-quickstart/oci-openshift/tree/main/custom_manifests[custom_manifests] web page on GitHub to access the custom manifest files.
78+
+
79+
The {oci-ccm} manifest are required for deploying the {oci-ccm} during cluster installation so that {product-title} can connect to the external {oci} platform. The {oci-csi} custom manifests are required for deploying the {oci-csi} driver during cluster installation so that {product-title} can claim required objects from {oci}.
80+
+
81+
[IMPORTANT]
82+
====
83+
You must modify the secret `oci-cloud-controller-manager` defined in the link:https://github.com/oracle-quickstart/oci-openshift/blob/main/custom_manifests/manifests/oci-ccm.yml[`oci-ccm.yml`] configuration file to match your organization's region, compartment {ocid}, VCN {ocid}, and the subnet {ocid} from the load balancer.
84+
====
85+
86+
. Use the Agent-based Installer to generate a minimal ISO image, which excludes the `rootfs` image, by entering the following command in your {product-title} CLI. You can use this image later in the process to boot all your cluster’s nodes.
87+
+
88+
[source,terminal]
89+
----
90+
$ ./openshift-install agent create image --log-level debug
91+
----
92+
+
93+
The previous command also completes the following actions:
94+
+
95+
* Creates a subdirectory, `./<installation_directory>/auth directory:`, and places `kubeadmin-password` and `kubeconfig` files in the subdirectory.
96+
* Creates a `rendezvousIP` file based on the IP address that you specified in the `agent-config.yaml` configuration file.
97+
* Optional: Any modifications you made to `agent-config.yaml` and `install-config.yaml` configuration files get imported to the Zero Touch Provisioning (ZTP) custom resources.
98+
+
99+
[IMPORTANT]
100+
====
101+
The Agent-based Installer uses {op-system-first}. The `rootfs` image, which is mentioned in a subsequent listed item, is required for booting, recovering, and repairing your operating system.
102+
====
103+
104+
. Configure the `agent-config.yaml` configuration file to meet your organization’s requirements.
105+
+
106+
.Example `agent-config.yaml` configuration file that sets values for an IPv4 formatted network.
107+
[source,yaml]
108+
----
109+
apiVersion: v1alpha1
110+
metadata:
111+
name: <cluster_name> <1>
112+
namespace: <cluster_namespace> <2>
113+
rendezvousIP:<ip_address_from_CIDR> <3>
114+
bootArtifactsBaseURL:<server_URL> <4>
115+
# …
116+
----
117+
<1> The cluster name that you specified in your DNS record.
118+
<2> The name of your cluster on {product-title}.
119+
<3> If you are using IPv4 as the network IP address format, ensure that you set the `rendezvousIP` parameter to an IPv4 address that the VCN’s Classless Inter-Domain Routing (CIDR) method allocates on your network. Also ensure that at least one instance from the pool of instances that you booted with the ISO matches the IP address value you set for `rendezvousIP`.
120+
<4> The URL of the server where you want to upload the `rootfs` image.
121+
122+
. Apply one of the following two updates to your `agent-config.yaml` configuration file:
123+
+
124+
* For a disconnected network: After you run the command to generate a minimal ISO Image, the Agent-based installer saves the `rootfs` image into the `./<installation_directory>/boot-artifacts` directory on your local system. Upload `rootfs` to the location stated in the `bootArtifactsBaseURL` parameter in the `agent-config.yaml` configuration file.
125+
+
126+
For example, if the URL states \http://192.168.122.20, you would upload the generated `rootfs` image to this location, so that the installer can access the image from \http://192.168.122.20/agent.x86_64-rootfs.img. After the installer boots the minimal ISO for the external platform, the Agent-based Installer downloads the `rootfs` image from the \http://192.168.122.20/agent.x86_64-rootfs.img location into the system memory.
127+
+
128+
[NOTE]
129+
====
130+
The Agent-based Installer also adds the value of the `bootArtifactsBaseURL` to the minimal ISO Image’s configuration, so that when the Operator boots a cluster’s node, the Agent-based Installer downloads the `rootfs` image into system memory.
131+
====
132+
+
133+
* For a connected network: You do not need to specify the `bootArtifactsBaseURL` parameter in the `agent-config.yaml` configuration file, because the Agent-based Installer, by default, reads the a `rootfs` URL location from \https://rhcos.mirror.openshift.com. After the Agent-based Installer boots the minimal ISO for the external platform, the Agent-based Installer then downloads the `rootfs` file into your system’s memory from the default {op-system} URL.
134+
+
135+
[IMPORTANT]
136+
====
137+
Consider that the full ISO image, which is in excess of `1` GB, includes the `rootfs` image and the image is considerably larger than the minimal ISO Image, which is typical less than `150` MB.
138+
====
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * installing/installing_oci/installing-oci-agent-based-installer.adoc [Using the Agent-based Installer to install a cluster on OCI]
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="creating-oci-infra-resources-services_{context}"]
7+
= Creating OCI infrastructure resources and services
8+
9+
// Removed "or bare-metal shape" as BM route is dev preview. Feature support progression is dependent on OSDOCS-8631 progress.
10+
Before you install {product-title} on {oci-first}, you must create an {oci} environment on your virtual machine (VM) shape. By creating this environment, you can install {product-title} and deploy a cluster on infrastructure that supports a wide range of cloud options and strong security policies.
11+
12+
.Prerequisites
13+
* You have prior knowledge of {oci} components. See link:https://docs.oracle.com/en-us/iaas/Content/GSG/Concepts/concepts.htm[Learn About Oracle Cloud Basics] in the Oracle documentation.
14+
* Your organization signed up for an Oracle account and Identity Domain. This step is required so that you can access an administrator account, which is the initial cloud-identity and access management (IAM) user for your organization. See link:https://docs.oracle.com/en-us/iaas/Content/Identity/Concepts/overview.htm#ariaid-title4[The administrators group and policy] section in the Oracle documentation.
15+
* You have logged into your organization’s {oci} account with administrator privileges.
16+
17+
.Procedure
18+
19+
. Create a compartment and ensure you defined your {ocid-first} in the compartment. A compartment is a component where you can organize and isolate your cloud resources. After you create a compartment, Oracle automatically assigns an {ocid} to your organization’s account. An administrator can access all compartments tagged to your organization’s {oci} account.
20+
21+
. Create a virtual cloud network (VCN). A compute instance, load balancer, and other resources need this network infrastructure to connect to each other over an internet connection. To establish an on-premise network you must manually create subnets, gateways, routing rules, and security policies. Ensure that you complete the following steps:
22+
.. In **Primary VNIC IP addresses > Primary network**, select a VCN, such as *oci-cluster-vcn*.
23+
.. From the **Subnet** section, select your subnet, such as *ici-cluster-private-subnet*.
24+
.. For public IPV4 subnets, ensure that you select the **Do not assign a public IPv4 address** checkbox.
25+
26+
. Create a network security group (NSG) in your VCN. You can use the NSG to establish advanced security rules for your network. You must locate the NSG in your compartment, so that certain groups can access network resources. Ensure that you complete the following steps:
27+
.. Click **Show advanced options**.
28+
.. Select the **Use network security groups** to control traffic checkbox.
29+
.. Set your NSG, such as *oci-cluster-controlplane-nsg*.
30+
31+
. Create a dynamic group that hosts compute instances. After you create the dynamic group, you can then create a policy statement that defines rules for your cluster environment. This statement sets the precedent for each compute instance to join your {product-title} cluster as a self-managed node.
32+
33+
. Create a policy statement. You must create a policy so that your administrator can grant access to your groups, users, or resources that operate in your network.
34+
35+
. Create a load balancer, so that you can provide automated traffic distribution on your VCN.
36+
37+
. Create three Domain Name System (DNS) records and then add the records to a DNS, so that Oracle’s edge-network can maintain your domain’s DNS queries.
38+
+
39+
[IMPORTANT]
40+
====
41+
To ensure compatibility with {product-title}, set `A` as the record type for each DNS record and name records as follows:
42+
43+
* `api.<cluster_name>.<base_domain>`, which targets the `apiVIP` parameter of the API load balancer.
44+
* `api-int.<cluster_name>.<base_domain>`, which targets the `apiVIP` parameter of the API load balancer.
45+
* `*.apps.<cluster_name>.<base_domain>`, which targets the `ingressVIP` parameter of the Ingress load balancer.
46+
47+
The `api.+*+` and `api-int.+*+` DNS records relate to control plane machines, so you must ensure that all nodes in your installed {product-title} cluster can access these DNS records.
48+
====

0 commit comments

Comments
 (0)