Skip to content

Commit 73ffe57

Browse files
committed
[OSDOCS-15316]: Creating a hosted cluster on bare metal
1 parent a144257 commit 73ffe57

File tree

3 files changed

+77
-22
lines changed

3 files changed

+77
-22
lines changed

hosted_control_planes/hcp-deploy/hcp-deploy-bm.adoc

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,32 @@ include::modules/hcp-bm-infra-reqs.adoc[leveloffset=+2]
4848
include::modules/hcp-bm-dns.adoc[leveloffset=+1]
4949
include::modules/hcp-custom-dns.adoc[leveloffset=+2]
5050

51-
include::modules/hcp-bm-hc.adoc[leveloffset=+1]
51+
[id="hcp-bm-create-hc"]
52+
== Creating a hosted cluster on bare metal
53+
54+
When you create a hosted cluster with the Agent platform, the HyperShift Operator installs the Agent Cluster API provider in the hosted control plane namespace. You can create a hosted cluster on bare metal or you can import one.
55+
56+
As you create a hosted cluster, remember these requirements:
57+
58+
- 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 {mce-short} to manage it.
59+
60+
- Do not use `clusters` as a hosted cluster name.
61+
62+
- A hosted cluster cannot be created in the namespace of a {mce-short} managed cluster.
63+
64+
- The most common service publishing strategy is to expose services through a load balancer. That strategy is the preferred method for exposing the Kubernetes API server. 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.
65+
66+
[id="hcp-bm-create-hc-prereqs_{context}"]
67+
=== Prerequisites
68+
69+
- 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.
70+
71+
include::modules/hcp-bm-hc.adoc[leveloffset=+2]
5272

5373
[role="_additional-resources"]
5474
.Additional resources
5575
* xref:../../hosted_control_planes/hcp-import.adoc[Manually importing a hosted cluster]
76+
* link:https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/2.13/html/clusters/cluster_mce_overview#configure-hosted-disconnected-digest-image[Extracting the {product-title} release image digest]
5677

5778
include::modules/hcp-bm-hc-console.adoc[leveloffset=+2]
5879

@@ -65,6 +86,7 @@ include::modules/hcp-bm-hc-mirror.adoc[leveloffset=+2]
6586
* To create credentials that you can reuse when you create a hosted cluster with the console, see link:https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/2.13/html/clusters/cluster_mce_overview#creating-a-credential-for-an-on-premises-environment[Creating a credential for an on-premises environment].
6687
* To access a hosted cluster, see xref:../../hosted_control_planes/hcp-manage/hcp-manage-bm.adoc#hcp-bm-access_hcp-manage-bm[Accessing the hosted cluster].
6788
* To add hosts to the host inventory by using the Discovery Image, see link:https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/2.13/html/clusters/cluster_mce_overview#add-host-host-inventory[Adding hosts to the host inventory by using the Discovery Image].
68-
* To extract the {product-title} release image digest, see link:https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/2.13/html/clusters/cluster_mce_overview#configure-hosted-disconnected-digest-image[Extracting the {product-title} release image digest].
6989

70-
include::modules/hcp-bm-verify.adoc[leveloffset=+1]
90+
include::modules/hcp-bm-infraenv.adoc[leveloffset=+1]
91+
92+
include::modules/hcp-bm-verify.adoc[leveloffset=+1]

modules/hcp-bm-hc.adoc

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,9 @@
66

77
:_mod-docs-content-type: PROCEDURE
88
[id="hcp-bm-hc_{context}"]
9-
= Creating a hosted cluster on bare metal
9+
= Creating a hosted cluster by using the CLI
1010

11-
When you create a hosted cluster with the Agent platform, HyperShift installs the Agent Cluster API provider in the hosted control plane namespace. You can create a hosted cluster on bare metal or import one.
12-
13-
As you create a hosted cluster, keep the following guidelines in mind:
14-
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 {mce-short} to manage it.
16-
17-
- Do not use `clusters` as a hosted cluster name.
18-
19-
- A hosted cluster cannot be created in the namespace of a {mce-short} managed cluster.
20-
21-
- The most common service publishing strategy is to expose services through a load balancer. That strategy is the preferred method for exposing the Kubernetes API server. 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.
11+
To create a hosted cluster by using the command-line interface (CLI), complete the following steps.
2212

2313
.Procedure
2414

@@ -29,9 +19,9 @@ As you create a hosted cluster, keep the following guidelines in mind:
2919
$ oc create ns <hosted_cluster_namespace>-<hosted_cluster_name>
3020
----
3121
+
32-
Replace `<hosted_cluster_namespace>` with your hosted cluster namespace name, for example, `clusters`. Replace `<hosted_cluster_name>` with your hosted cluster name.
22+
Replace `<hosted_cluster_namespace>` with your hosted cluster namespace name, for example, `my-hosted-ns`. Replace `<hosted_cluster_name>` with your hosted cluster name, for example, `my-hosted-cluster`. 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.
3323

34-
. Verify that you have a default storage class configured for your cluster. Otherwise, you might see pending PVCs. Run the following command:
24+
. Verify that you have a default storage class configured for your cluster by running the following command. Otherwise, you might see pending PVCs.
3525
+
3626
[source,terminal]
3727
----
@@ -45,20 +35,20 @@ $ hcp create cluster agent \
4535
--ssh-key <path_to_ssh_public_key> \// <7>
4636
--namespace <hosted_cluster_namespace> \// <8>
4737
--control-plane-availability-policy HighlyAvailable \// <9>
48-
--release-image=quay.io/openshift-release-dev/ocp-release:<ocp_release_image> \// <10>
38+
--release-image=quay.io/openshift-release-dev/ocp-release:<ocp_release_image>-multi \// <10>
4939
--node-pool-replicas <node_pool_replica_count> <11>
5040
----
5141
+
52-
<1> Specify the name of your hosted cluster, for instance, `example`.
42+
<1> Specify the name of your hosted cluster, for instance, `my-hosted-cluster`.
5343
<2> Specify the path to your pull secret, for example, `/user/name/pullsecret`.
54-
<3> Specify your hosted control plane namespace, for example, `clusters-example`. Ensure that agents are available in this namespace by using the `oc get agent -n <hosted_control_plane_namespace>` command.
44+
<3> Specify your hosted control plane namespace, for example, `my-hcp-ns`. Ensure that agents are available in this namespace by using the `oc get agent -n <hosted_control_plane_namespace>` command.
5545
<4> Specify your base domain, for example, `krnl.es`.
5646
<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.
5747
<6> Specify the etcd storage class name, for example, `lvm-storageclass`.
5848
<7> Specify the path to your SSH public key. The default file path is `~/.ssh/id_rsa.pub`.
59-
<8> Specify your hosted cluster namespace.
49+
<8> Specify your hosted cluster namespace, for example, `my-hosted-ns`.
6050
<9> Specify the availability policy for the hosted control plane components. Supported options are `SingleReplica` and `HighlyAvailable`. The default value is `HighlyAvailable`.
61-
<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 {product-title} release image digest_.
51+
<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 {product-title} release image digest".
6252
<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.
6353

6454
+

modules/hcp-bm-infraenv.adoc

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * hosted_control_planes/hcp-deploy/hcp-deploy-bm.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="hcp-bm-infraenv_{context}"]
7+
= Creating an InfraEnv resource for a hosted cluster on bare metal
8+
9+
An `InfraEnv` is an environment where hosts that are booted with PXE images can join as agents. In this case, the agents are created in the same namespace as your hosted control plane.
10+
11+
.Procedure
12+
13+
. Create a YAML file to contain the configuration. See the following example:
14+
+
15+
[source,yaml]
16+
----
17+
apiVersion: agent-install.openshift.io/v1beta1
18+
kind: InfraEnv
19+
metadata:
20+
name: <hosted_cluster_name>
21+
namespace: <hosted_control_plane_namespace>
22+
spec:
23+
cpuArchitecture: s390x
24+
pullSecretRef:
25+
name: pull-secret
26+
sshAuthorizedKey: <ssh_public_key>
27+
----
28+
29+
. Save the file as `infraenv-config.yaml`.
30+
31+
. Apply the configuration by entering the following command:
32+
+
33+
[source,terminal]
34+
----
35+
$ oc apply -f infraenv-config.yaml
36+
----
37+
38+
. To fetch the URL to download the PXE images, such as, `initrd.img`, `kernel.img`, or `rootfs.img`, which allows {ibm-z-title} machines to join as agents, enter the following command:
39+
+
40+
[source,terminal]
41+
----
42+
$ oc -n <hosted_control_plane_namespace> get InfraEnv <hosted_cluster_name> -o json
43+
----

0 commit comments

Comments
 (0)