Skip to content

Commit 0fe44c6

Browse files
committed
OSDOCS-15427: Completed CQA for Deploying HCP on IBM Power
1 parent 16730b1 commit 0fe44c6

14 files changed

+99
-88
lines changed

hosted_control_planes/hcp-deploy/hcp-deploy-ibm-power.adoc

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,66 +6,73 @@ include::_attributes/common-attributes.adoc[]
66

77
toc::[]
88

9-
You can deploy {hcp} by configuring a cluster to function as a hosting cluster. The hosting cluster is an {product-title} cluster where the control planes are hosted. The hosting cluster is also known as the _management_ cluster.
9+
You can deploy {hcp} by configuring a cluster to function as a hosting cluster. This configuration provides an efficient and scalable solution for managing many clusters. The hosting cluster is an {product-title} cluster that hosts control planes. The hosting cluster is also known as the _management_ cluster.
1010

1111
[NOTE]
1212
====
1313
The _management_ cluster is not the _managed_ cluster. A managed cluster is a cluster that the hub cluster manages.
1414
====
1515

16-
The {mce-short} supports only the default `local-cluster`, which is a hub cluster that is managed, and the hub cluster as the hosting cluster.
16+
The {mce-short} supports only the default `local-cluster`, which is a managed hub cluster, and the hub cluster as the hosting cluster.
1717

18-
To provision {hcp} on bare metal, you can use the Agent platform. The Agent platform uses the central infrastructure management service to add worker nodes to a hosted cluster. For more information, see "Enabling the central infrastructure management service".
18+
To provision {hcp} on bare-metal infrastructure, you can use the Agent platform. The Agent platform uses the central infrastructure management service to add compute nodes to a hosted cluster. For more information, see "Enabling the central infrastructure management service".
1919

20-
Each {ibm-power-title} host must be started with a Discovery Image that the central infrastructure management provides. After each host starts, it runs an Agent process to discover the details of the host and completes the installation. An Agent custom resource represents each host.
20+
You must start each {ibm-power-title} host with a Discovery image that the central infrastructure management provides. After each host starts, it runs an Agent process to discover the details of the host and completes the installation. An Agent custom resource represents each host.
2121

2222
When you create a hosted cluster with the Agent platform, HyperShift installs the Agent Cluster API provider in the hosted control plane namespace.
2323

24+
// Prerequisites to configure HCP on IBM Power
2425
include::modules/hcp-ibm-power-prereqs.adoc[leveloffset=+1]
2526

2627
[role="_additional-resources"]
2728
.Additional resources
2829

2930
* link:https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/2.14/html/clusters/cluster_mce_overview#advanced-config-engine[Advanced configuration]
3031
* link:https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/2.14/html/clusters/cluster_mce_overview#enable-cim[Enabling the central infrastructure management service]
31-
* xref:../../hosted_control_planes/hcp-prepare/hcp-cli.adoc#hcp-cli-terminal_hcp-cli[Installing the {hcp} command-line interface]
32+
* xref:../../hosted_control_planes/hcp-prepare/hcp-cli.adoc#hcp-cli-terminal_hcp-cli[Installing the hosted control plane command-line interface]
3233
* xref:../../hosted_control_planes/hcp-prepare/hcp-enable-disable.adoc#hcp-enable-manual_hcp-enable-disable[Manually enabling the {hcp} feature]
3334
* xref:../../hosted_control_planes/hcp-prepare/hcp-enable-disable.adoc#hcp-disable_hcp-enable-disable[Disabling the {hcp} feature]
3435
36+
// IBM Power infrastructure requirements
3537
include::modules/hcp-ibm-power-infra-reqs.adoc[leveloffset=+1]
3638

39+
// DNS configuration for {hcp} on {ibm-power-title}
3740
include::modules/hcp-ibm-power-dns.adoc[leveloffset=+1]
38-
include::modules/hcp-custom-dns.adoc[leveloffset=+2]
39-
40-
[id="hcp-bm-create-hc-ibm-power"]
41-
== Creating a hosted cluster on bare metal
4241

43-
You can create a hosted cluster or import one. When the Assisted Installer is enabled as an add-on to {mce-short} and you create a hosted cluster with the Agent platform, the HyperShift Operator installs the Agent Cluster API provider in the hosted control plane namespace.
42+
// Defining a custom DNS name
43+
include::modules/hcp-custom-dns.adoc[leveloffset=+2]
4444

45-
include::modules/hcp-bm-hc.adoc[leveloffset=+2]
45+
// Creating a hosted cluster by using the CLI
46+
include::modules/hcp-bm-hc.adoc[leveloffset=+1]
4647

4748
[role="_additional-resources"]
4849
.Additional resources
49-
* xref:../../hosted_control_planes/hcp-import.adoc[Manually importing a hosted cluster]
50-
* xref:../../hosted_control_planes/hcp-disconnected/hcp-deploy-dc-bm.adoc#hcp-dc-extract_hcp-deploy-dc-bm[Extracting the release image digest]
51-
52-
[id="hcp-ibm-power-heterogeneous-nodepools_{context}"]
53-
== Creating heterogeneous node pools on agent hosted clusters
5450

55-
On the agent platform, you can create heterogeneous node pools so that your clusters can run diverse machine types, such as `x86_64` or `ppc64le`, within a single hosted cluster.
51+
* xref:../../hosted_control_planes/hcp-prepare/hcp-requirements.adoc#hcp-requirements[Requirements for hosted control planes]
52+
* xref:../../hosted_control_planes/hcp-deploy/hcp-deploy-bm.adoc#hcp-bm-dns_hcp-deploy-bm[DNS configurations on bare metal]
53+
* xref:../../hosted_control_planes/hcp-import.adoc#hcp-import[Manually importing a hosted cluster]
54+
* xref:../../hosted_control_planes/hcp-disconnected/hcp-deploy-dc-bm.adoc#hcp-dc-extract_hcp-deploy-dc-bm[Extracting the release image digest]
5655
57-
include::modules/hcp-ibm-power-create-heterogeneous-nodepools-agent-hc-con.adoc[leveloffset=+2]
56+
// About creating heterogeneous node pools on agent hosted clusters
57+
include::modules/hcp-ibm-power-create-heterogeneous-nodepools-agent-hc-con.adoc[leveloffset=+1]
5858

59+
// Creating the AgentServiceConfig custom resource
5960
include::modules/hcp-ibm-power-create-heterogeneous-nodepools-agent-hc.adoc[leveloffset=+2]
6061

62+
// Create an agent cluster
6163
include::modules/hcp-ibm-power-heterogeneous-nodepools-create-agent-cluster.adoc[leveloffset=+2]
6264

65+
// Creating heterogeneous node pools
6366
include::modules/hcp-create-heterogeneous-nodepools.adoc[leveloffset=+2]
6467

68+
// DNS configuration for hosted control planes
6569
include::modules/hcp-ibm-power-heterogeneous-nodepools-agent-hc-dns.adoc[leveloffset=+2]
6670

71+
// Creating infrastructure environment resources
6772
include::modules/hcp-create-infraenv.adoc[leveloffset=+2]
6873

74+
// Adding agents to the heterogeneous cluster
6975
include::modules/hcp-adding-agents.adoc[leveloffset=+2]
7076

77+
// Scaling the node pool
7178
include::modules/hcp-scale-the-nodepool.adoc[leveloffset=+2]

modules/hcp-adding-agents.adoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
[id="hcp-adding-agents_{context}"]
77
= Adding agents to the heterogeneous cluster
88

9-
You add agents by manually configuring the machine to boot with a live ISO. You can download the live ISO and use it to boot a bare-metal node or a virtual machine. On boot, the node communicates with the `assisted-service` and registers as an agent in the same namespace as the `InfraEnv` resource. When each agent is created, you can optionally set its `installation_disk_id` and `hostname` parameters in the specifications. When you are done, approve it to indicate that the agent is ready for use.
9+
You add agents by manually configuring the machine to boot with a live ISO. You can download the live ISO and use it to boot a bare-metal node or a virtual machine. On boot, the node communicates with the `assisted-service` and registers as an agent in the same namespace as the `InfraEnv` resource. After the creation of each agent, you can optionally set its `installation_disk_id` and `hostname` parameters in the specifications. You can then approve the agent to indicate the agent as ready for use.
1010

1111
.Procedure
1212

1313
. Obtain a list of agents by running the following command:
1414
+
1515
[source,terminal]
1616
----
17-
oc -n <hosted_control_plane_namespace> get agents
17+
$ oc -n <hosted_control_plane_namespace> get agents
1818
----
1919
+
2020
.Example output
@@ -28,21 +28,21 @@ e57a637f-745b-496e-971d-1abbf03341ba auto-assign
2828
+
2929
[source,terminal]
3030
----
31-
oc -n <hosted_control_plane_namespace> patch agent 86f7ac75-4fc4-4b36-8130-40fa12602218 -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-0.example.krnl.es"}}' --type merge
31+
$ oc -n <hosted_control_plane_namespace> patch agent 86f7ac75-4fc4-4b36-8130-40fa12602218 -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-0.example.krnl.es"}}' --type merge
3232
----
3333

3434
. Patch the second agent by running the following command:
3535
+
3636
[source,terminal]
3737
----
38-
oc -n <hosted_control_plane_namespace> patch agent 23d0c614-2caa-43f5-b7d3-0b3564688baa -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-1.example.krnl.es"}}' --type merge
38+
$ oc -n <hosted_control_plane_namespace> patch agent 23d0c614-2caa-43f5-b7d3-0b3564688baa -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-1.example.krnl.es"}}' --type merge
3939
----
4040

4141
. Check the agent approval status by running the following command:
4242
+
4343
[source,terminal]
4444
----
45-
oc -n <hosted_control_plane_namespace> get agents
45+
$ oc -n <hosted_control_plane_namespace> get agents
4646
----
4747
+
4848
.Example output

modules/hcp-bm-hc.adoc

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,23 @@
88
[id="hcp-bm-hc_{context}"]
99
= Creating a hosted cluster by using the CLI
1010

11-
To create a hosted cluster by using the command-line interface (CLI), complete the following steps.
11+
You can create a hosted cluster or import one. After you enable the Assisted Installer as an add-on to {mce-short} and you create a hosted cluster with the Agent platform, the HyperShift Operator installs the Agent Cluster API provider in the hosted control plane namespace. The Agent Cluster API provider connects a management cluster that hosts the control plane and a hosted cluster that consists of only the compute nodes.
12+
13+
You can create a hosted cluster on bare metal or import one.
1214

1315
.Prerequisites
1416

15-
- Each hosted cluster must have a cluster-wide unique name. A hosted cluster name cannot be the same as any existing managed cluster in order for the {mce-short} to manage it.
17+
- Each hosted cluster must have a cluster-wide unique name. A hosted cluster name cannot be the same as any existing managed cluster. Otherwise, the {mce-short} cannot manage the hosted cluster.
1618
17-
- Do not use `clusters` as a hosted cluster name.
19+
- Do not use the word `clusters` as a hosted cluster name.
1820
19-
- A hosted cluster cannot be created in the namespace of a {mce-short} managed cluster.
21+
- You cannot create a hosted cluster in the namespace of a {mce-short} managed cluster.
2022
2123
- Verify that you have a default storage class configured for your cluster. Otherwise, you might see pending persistent volume claims (PVCs).
2224
23-
- By default when you use the `hcp create cluster agent` command, the hosted cluster is created with node ports. However, the preferred publishing strategy for hosted clusters on bare metal is to expose services through a load balancer. If you create a hosted cluster by using the web console or by using {rh-rhacm-title}, to set a publishing strategy for a service besides the Kubernetes API server, you must manually specify the `servicePublishingStrategy` information in the `HostedCluster` custom resource. For more information, see step 4 in this procedure.
25+
- By default when you use the `hcp create cluster agent` command, the command creates a hosted cluster with configured node ports. The preferred publishing strategy for hosted clusters on bare metal exposes services through a load balancer. If you create a hosted cluster by using the web console or by using {rh-rhacm-title}, to set a publishing strategy for a service besides the Kubernetes API server, you must manually specify the `servicePublishingStrategy` information in the `HostedCluster` custom resource.
2426
25-
- Ensure that you meet the requirements described in "Preparing to deploy {hcp} on bare metal", which includes requirements related to infrastructure, firewalls, ports, and services. For example, those requirements describe how to add the appropriate zone labels to the bare-metal hosts in your management cluster, as shown in the following example commands:
27+
- Ensure that you meet the requirements described in "Requirements for {hcp} on bare metal", which includes requirements related to infrastructure, firewalls, ports, and services. For example, those requirements describe how to add the appropriate zone labels to the bare-metal hosts in your management cluster, as shown in the following example commands:
2628
+
2729
[source,terminal]
2830
----
@@ -50,7 +52,7 @@ $ oc label node [compute-node-3] topology.kubernetes.io/zone=zone3
5052
$ oc create ns <hosted_cluster_namespace>
5153
----
5254
+
53-
Replace `<hosted_cluster_namespace>` with an identifier for your hosted cluster namespace. Typically, the namespace is created by the HyperShift Operator, but during the hosted cluster creation process on bare metal, a Cluster API provider role is generated that needs the namespace to already exist.
55+
Replace `<hosted_cluster_namespace>` with an identifier for your hosted cluster namespace. The HyperShift Operator creates the namespace. During the hosted cluster creation process on bare-metal infrastructure, a generated Cluster API provider role requires that the namespace already exists.
5456

5557
. Create the configuration file for your hosted cluster by entering the following command:
5658
+
@@ -73,28 +75,28 @@ $ hcp create cluster agent \
7375
--ssh-key <home_directory>/<path_to_ssh_key>/<ssh_key> > hosted-cluster-config.yaml <12>
7476
----
7577
+
76-
<1> Specify the name of your hosted cluster.
77-
<2> Specify the path to your pull secret, for example, `/user/name/pullsecret`.
78-
<3> Specify your hosted control plane namespace. To ensure that agents are available in this namespace, enter the `oc get agent -n <hosted_control_plane_namespace>` command.
79-
<4> Specify your base domain, for example, `krnl.es`.
80-
<5> The `--api-server-address` flag defines the IP address that is used for the Kubernetes API communication in the hosted cluster. If you do not set the `--api-server-address` flag, you must log in to connect to the management cluster.
81-
<6> Specify the etcd storage class name, for example, `lvm-storageclass`.
78+
<1> Specify the name of your hosted cluster, such as `example`.
79+
<2> Specify the path to your pull secret, such as `/user/name/pullsecret`.
80+
<3> Specify your hosted control plane namespace, such as `clusters-example`. Ensure that agents are available in this namespace by using the `oc get agent -n <hosted_control_plane_namespace>` command.
81+
<4> Specify your base domain, such as `krnl.es`.
82+
<5> The `--api-server-address` flag defines the IP address that gets used for the Kubernetes API communication in the hosted cluster. If you do not set the `--api-server-address` flag, you must log in to connect to the management cluster.
83+
<6> Specify the etcd storage class name, such as `lvm-storageclass`.
8284
<7> Specify the path to your SSH public key. The default file path is `~/.ssh/id_rsa.pub`.
8385
<8> Specify your hosted cluster namespace.
8486
<9> Specify the availability policy for the hosted control plane components. Supported options are `SingleReplica` and `HighlyAvailable`. The default value is `HighlyAvailable`.
85-
<10> Specify the supported {product-title} version that you want to use, for example, `4.19.0-multi`. If you are using a disconnected environment, replace `<ocp_release_image>` with the digest image. To extract the {product-title} release image digest, see "Extracting the release image digest".
86-
<11> Specify the node pool replica count, for example, `3`. You must specify the replica count as `0` or greater to create the same number of replicas. Otherwise, no node pools are created.
87-
<12> After the `--ssh-key` flag, specify the path to the SSH key; for example, `user/.ssh/id_rsa`.
87+
<10> Specify the supported {product-title} version that you want to use, such as `4.19.0-multi`. If you are using a disconnected environment, replace `<ocp_release_image>` with the digest image. To extract the {product-title} release image digest, see _Extracting the {product-title} release image digest_.
88+
<11> Specify the node pool replica count, such as `3`. You must specify the replica count as `0` or greater to create the same number of replicas. Otherwise, you do not created node pools.
89+
<12> After the `--ssh-key` flag, specify the path to the SSH key, such as `user/.ssh/id_rsa`.
8890

8991
. Configure the service publishing strategy. By default, hosted clusters use the NodePort service publishing strategy because node ports are always available without additional infrastructure. However, you can configure the service publishing strategy to use a load balancer.
9092

9193
** If you are using the default NodePort strategy, configure the DNS to point to the hosted cluster compute nodes, not the management cluster nodes. For more information, see "DNS configurations on bare metal".
9294

93-
** For production environments, use the LoadBalancer strategy because it provides certificate handling and automatic DNS resolution. To change the service publishing strategy `LoadBalancer`, in your hosted cluster configuration file, edit the service publishing strategy details:
95+
** For production environments, use the LoadBalancer strategy because this strategy provides certificate handling and automatic DNS resolution. The following example demonstrates changing the service publishing `LoadBalancer` strategy in your hosted cluster configuration file:
9496
+
9597
[source,yaml]
9698
----
97-
...
99+
# ...
98100
spec:
99101
services:
100102
- service: APIServer
@@ -114,7 +116,7 @@ spec:
114116
type: Route
115117
sshKey:
116118
name: <ssh_key>
117-
...
119+
# ...
118120
----
119121
+
120122
<1> Specify `LoadBalancer` as the API Server type. For all other services, specify `Route` as the type.
@@ -126,7 +128,7 @@ spec:
126128
$ oc apply -f hosted_cluster_config.yaml
127129
----
128130

129-
. Monitor the creation of the hosted cluster, node pools, and pods by entering the following commands:
131+
. Check for the creation of the hosted cluster, node pools, and pods by entering the following commands:
130132
+
131133
[source,terminal]
132134
----
@@ -149,7 +151,7 @@ $ oc get nodepool \
149151
$ oc get pods -n <hosted_cluster_namespace>
150152
----
151153

152-
. Confirm that the hosted cluster is ready. The cluster is ready when its status is `Available: True`, the node pool status shows `AllMachinesReady: True`, and all cluster Operators are healthy.
154+
. Confirm that the hosted cluster is ready. The status of `Available: True` indicates the readiness of the cluster and the node pool status shows `AllMachinesReady: True`. These statuses indicate the healthiness of all cluster Operators.
153155

154156
. Install MetalLB in the hosted cluster:
155157
+
@@ -196,6 +198,7 @@ spec:
196198
source: redhat-operators
197199
sourceNamespace: openshift-marketplace
198200
installPlanApproval: Automatic
201+
# ...
199202
----
200203
+
201204
.. Apply the file by entering the following command:
@@ -227,6 +230,7 @@ metadata:
227230
spec:
228231
ipAddressPools:
229232
- metallb
233+
# ...
230234
----
231235
+
232236
.. Apply the configuration by entering the following command:
@@ -236,7 +240,7 @@ spec:
236240
$ oc apply -f deploy-metallb-ipaddresspool.yaml
237241
----
238242
+
239-
.. Verify that MetalLB is installed by checking the Operator status, the IP address pool, and the L2Advertisement. Enter the following commands:
243+
.. Verify the installation of MetalLB by checking the Operator status, the IP address pool, and the `L2Advertisement` resource by entering the following commands:
240244
+
241245
[source,terminal]
242246
----
@@ -279,6 +283,7 @@ spec:
279283
selector:
280284
ingresscontroller.operator.openshift.io/deployment-ingresscontroller: default
281285
type: LoadBalancer
286+
# ...
282287
----
283288
+
284289
.. Apply the configuration by entering the following command:
@@ -343,7 +348,7 @@ Ensure that all Operators show `AVAILABLE: True`, `PROGRESSING: False`, and `DEG
343348
$ oc get nodes
344349
----
345350
+
346-
Ensure that the status of all nodes is `READY`.
351+
Ensure that each node has the `READY` status.
347352

348353
. Test access to the console by entering the following URL in a web browser:
349354
+

0 commit comments

Comments
 (0)