You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
= Deploying a managed {sno} cluster using the IBI Operator
8
8
9
+
[role="_abstract"]
9
10
Create the site-specific configuration resources in the hub cluster to initiate the image-based deployment of a preinstalled host.
10
11
11
12
When you create these configuration resources in the hub cluster, the Image Based Install (IBI) Operator generates a configuration ISO and attaches it to the target host to begin the site-specific configuration process. When the configuration process completes, the {sno} cluster is ready.
@@ -36,7 +37,8 @@ $ oc create namespace ibi-ns
36
37
37
38
.. Create a YAML file that defines the `Secret` resource for your image registry:
38
39
+
39
-
.Example `secret-image-registry.yaml` file
40
+
Example `secret-image-registry.yaml` file:
41
+
+
40
42
[source,yaml]
41
43
----
42
44
apiVersion: v1
@@ -45,10 +47,13 @@ metadata:
45
47
name: ibi-image-pull-secret
46
48
namespace: ibi-ns
47
49
stringData:
48
-
.dockerconfigjson: <base64-docker-auth-code> <1>
50
+
.dockerconfigjson: <base64_docker_auth_code>
49
51
type: kubernetes.io/dockerconfigjson
50
52
----
51
-
<1> You must provide base64-encoded credential details. See the "Additional resources" section for more information about using image pull secrets.
53
+
+
54
+
where:
55
+
+
56
+
`<base64_docker_auth_code>`:: Specifies base64-encoded credential details. See the "Additional resources" section for more information about using image pull secrets.
52
57
53
58
.. Create the `Secret` resource for your image registry by running the following command:
.. Create a `Secret` resource containing the static network configuration in `nmstate` format:
63
68
+
64
-
.Example `host-network-config-secret.yaml` file
69
+
Example `host-network-config-secret.yaml` file:
70
+
+
65
71
[source,yaml]
66
72
----
67
73
apiVersion: v1
68
74
kind: Secret
69
75
metadata:
70
-
name: host-network-config-secret <1>
76
+
name: <network_secret_name>
71
77
namespace: ibi-ns
72
78
type: Opaque
73
79
stringData:
74
-
nmstate: | <2>
80
+
nmstate: |
75
81
interfaces:
76
-
- name: ens1f0 <3>
82
+
- name: <interface_name>
77
83
type: ethernet
78
84
state: up
79
85
ipv4:
80
86
enabled: true
81
87
address:
82
88
- ip: 192.168.200.25
83
89
prefix-length: 24
84
-
dhcp: false <4>
90
+
dhcp: false
85
91
ipv6:
86
92
enabled: false
87
93
dns-resolver:
88
94
config:
89
95
server:
90
-
- 192.168.15.47 <5>
96
+
- <dns_server_1>
91
97
- 192.168.15.48
92
98
routes:
93
-
config: <6>
99
+
config:
94
100
- destination: 0.0.0.0/0
95
101
metric: 150
96
102
next-hop-address: 192.168.200.254
97
-
next-hop-interface: ens1f0
103
+
next-hop-interface: <interface_name>
98
104
table-id: 254
99
105
----
100
-
<1> Specify the name for the `Secret` resource.
101
-
<2> Define the static network configuration in `nmstate` format.
102
-
<3> Specify the name of the interface on the host. The name of the interface must match the actual NIC name as shown in the operating system. To use your MAC address for NIC matching, set the `identifier` field to `mac-address`.
103
-
<4> You must specify `dhcp: false` to ensure `nmstate` assigns the static IP address to the interface.
104
-
<5> Specify one or more DNS servers that the system will use to resolve domain names.
105
-
<6> In this example, the default route is configured through the `ens1f0` interface to the next hop IP address `192.168.200.254`.
106
+
+
107
+
where:
108
+
+
109
+
`<network_secret_name>`:: Specifies the name for the `Secret` resource, for example `host-network-config-secret`.
110
+
`nmstate`:: Specifies the static network configuration in `nmstate` format.
111
+
`<interface_name>`:: Specifies the name of the interface on the host, for example `ens1f0`. The name of the interface must match the actual NIC name as shown in the operating system. To use your MAC address for NIC matching, set the `identifier` field to `mac-address`.
112
+
`dhcp: false`:: Specifies that DHCP is disabled to ensure `nmstate` assigns the static IP address to the interface.
113
+
`<dns_server_1>`:: Specifies one or more DNS servers that the system will use to resolve domain names, for example `192.168.15.47`.
114
+
`config`:: Specifies the default route through the `ens1f0` interface to the next hop IP address `192.168.200.254`.
106
115
107
116
. Create the `BareMetalHost` and `Secret` resources:
108
117
109
118
.. Create a YAML file that defines the `BareMetalHost` and `Secret` resources:
<1> Specify the name for the `BareMetalHost` resource.
140
-
<2> Specify if the host should be online.
141
-
<3> Specify the host boot MAC address.
142
-
<4> Specify the BMC address. You can only use bare-metal host drivers that support virtual media networking booting, for example redfish-virtualmedia and idrac-virtualmedia.
143
-
<5> Specify the name of the bare-metal host `Secret` resource.
144
-
<6> Optional: If you require static network configuration for the host, specify the name of the `Secret` resource containing the configuration.
145
-
<7> You must specify `automatedCleaningMode:disabled` to prevent the provisioning service from deleting all preinstallation artifacts, such as the seed image, during disk inspection.
146
-
<8> You must specify `externallyProvisioned: true` to enable the host to boot from the preinstalled disk, instead of the configuration ISO.
147
-
<9> Specify the name for the `Secret` resource.
148
-
<10> Specify the username.
149
-
<11> Specify the password.
146
+
username: <username>
147
+
password: <password>
148
+
----
149
+
+
150
+
where:
151
+
+
152
+
`<baremetalhost_name>`:: Specifies the name for the `BareMetalHost` resource, for example `ibi-bmh`.
153
+
`<online_status>`:: Specifies if the host should be online, for example `false`.
154
+
`<boot_mac_address>`:: Specifies the host boot MAC address, for example `00:a5:12:55:62:64`.
155
+
`<bmc_address>`:: Specifies the BMC address, for example `redfish-virtualmedia+http://192.168.111.1:8000/redfish/v1/Systems/8a5babac-94d0-4c20-b282-50dc3a0a32b5`. You can only use bare-metal host drivers that support virtual media networking booting, for example redfish-virtualmedia and idrac-virtualmedia.
156
+
`<bmh_secret_name>`:: Specifies the name of the bare-metal host `Secret` resource, for example `ibi-bmh-bmc-secret`.
157
+
`<network_secret_name>`:: (Optional) Specifies the name of the `Secret` resource containing the static network configuration for the host, for example `host-network-config-secret`.
158
+
`automatedCleaningMode: disabled`:: Specifies that automated cleaning is disabled to prevent the provisioning service from deleting all preinstallation artifacts, such as the seed image, during disk inspection.
159
+
`externallyProvisioned: true`:: Specifies that the host is externally provisioned to enable it to boot from the preinstalled disk, instead of the configuration ISO.
160
+
`<username>`:: Specifies the username for BMC authentication.
161
+
`<password>`:: Specifies the password for BMC authentication.
150
162
151
163
.. Create the `BareMetalHost` and `Secret` resources by running the following command:
152
164
+
@@ -159,18 +171,22 @@ $ oc create -f ibi-bmh.yaml
159
171
160
172
.. Create a YAML file that defines the `ClusterImageSet` resource:
<1> Specify the name for the `ClusterImageSet` resource.
173
-
<2> Specify the address for the release image to use for the deployment. If you use a different image registry compared to the image registry used during seed image generation, ensure that the {product-title} version for the release image remains the same.
185
+
+
186
+
where:
187
+
+
188
+
`<clusterimageset_name>`:: Specifies the name for the `ClusterImageSet` resource, for example `ibi-img-version-arch`.
189
+
`<release_image>`:: Specifies the address for the release image to use for the deployment, for example `ibi.example.com:path/to/release/images:version-arch`. If you use a different image registry compared to the image registry used during seed image generation, ensure that the {product-title} version for the release image remains the same.
174
190
175
191
.. Create the `ClusterImageSet` resource by running the following command:
.. Create a YAML file that defines the `ImageClusterInstall` resource:
185
201
+
186
-
.Example `ibi-image-cluster-install.yaml` file
202
+
Example `ibi-image-cluster-install.yaml` file:
203
+
+
187
204
[source,yaml]
188
205
----
189
206
apiVersion: extensions.hive.openshift.io/v1alpha1
190
207
kind: ImageClusterInstall
191
208
metadata:
192
-
name: ibi-image-install <1>
209
+
name: <imageclusterinstall_name>
193
210
namespace: ibi-ns
194
211
spec:
195
212
bareMetalHostRef:
196
-
name: ibi-bmh <2>
213
+
name: <baremetalhost_name>
197
214
namespace: ibi-ns
198
215
clusterDeploymentRef:
199
-
name: ibi-cluster-deployment <3>
200
-
hostname: ibi-host <4>
216
+
name: <clusterdeployment_name>
217
+
hostname: <cluster_hostname>
201
218
imageSetRef:
202
-
name: ibi-img-version-arch <5>
203
-
machineNetworks: <6>
219
+
name: <clusterimageset_name>
220
+
machineNetworks:
204
221
- cidr: 10.0.0.0/24
205
222
#- cidr: fd01::/64
206
-
proxy: <7>
223
+
proxy:
207
224
httpProxy: "http://proxy.example.com:8080"
208
225
#httpsProxy: "http://proxy.example.com:8080"
209
226
#noProxy: "no_proxy.example.com"
210
227
----
211
-
<1> Specify the name for the `ImageClusterInstall` resource.
212
-
<2> Specify the `BareMetalHost` resource that you want to target for the image-based installation.
213
-
<3> Specify the name of the `ClusterDeployment` resource that you want to use for the image-based installation of the target host.
214
-
<4> Specify the hostname for the cluster.
215
-
<5> Specify the name of the `ClusterImageSet` resource you used to define the container release images to use for deployment.
216
-
<6> Specify the public Classless Inter-Domain Routing (CIDR) of the external network. For dual-stack networking, you can specify both IPv4 and IPv6 CIDRs using a list format. The first CIDR in the list is the primary address family and must match the primary address family of the seed cluster.
217
-
<7> Optional: Specify a proxy to use for the cluster deployment.
228
+
+
229
+
where:
230
+
+
231
+
`<imageclusterinstall_name>`:: Specifies the name for the `ImageClusterInstall` resource, for example `ibi-image-install`.
232
+
`<baremetalhost_name>`:: Specifies the `BareMetalHost` resource that you want to target for the image-based installation, for example `ibi-bmh`.
233
+
`<clusterdeployment_name>`:: Specifies the name of the `ClusterDeployment` resource that you want to use for the image-based installation of the target host, for example `ibi-cluster-deployment`.
234
+
`<cluster_hostname>`:: Specifies the hostname for the cluster, for example `ibi-host`.
235
+
`<clusterimageset_name>`:: Specifies the name of the `ClusterImageSet` resource you used to define the container release images to use for deployment, for example `ibi-img-version-arch`.
236
+
`machineNetworks`:: Specifies the public Classless Inter-Domain Routing (CIDR) of the external network. For dual-stack networking, you can specify both IPv4 and IPv6 CIDRs using a list format. The first CIDR in the list is the primary address family and must match the primary address family of the seed cluster.
237
+
`proxy`:: (Optional) Specifies a proxy to use for the cluster deployment.
.. Create a YAML file that defines the `ClusterDeployment` resource:
237
257
+
238
-
.Example `ibi-cluster-deployment.yaml` file
258
+
Example `ibi-cluster-deployment.yaml` file:
259
+
+
239
260
[source,yaml]
240
261
----
241
262
apiVersion: hive.openshift.io/v1
242
263
kind: ClusterDeployment
243
264
metadata:
244
-
name: ibi-cluster-deployment <1>
245
-
namespace: ibi-ns <2>
265
+
name: <clusterdeployment_name>
266
+
namespace: <namespace>
246
267
spec:
247
-
baseDomain: example.com <3>
268
+
baseDomain: <base_domain>
248
269
clusterInstallRef:
249
270
group: extensions.hive.openshift.io
250
271
kind: ImageClusterInstall
251
-
name: ibi-image-install <4>
272
+
name: <imageclusterinstall_name>
252
273
version: v1alpha1
253
-
clusterName: ibi-cluster <5>
274
+
clusterName: <cluster_name>
254
275
platform:
255
276
none: {}
256
277
pullSecretRef:
257
-
name: ibi-image-pull-secret <6>
278
+
name: <pull_secret_name>
258
279
----
259
-
<1> Specify the name for the `ClusterDeployment` resource.
260
-
<2> Specify the namespace for the `ClusterDeployment` resource.
261
-
<3> Specify the base domain that the cluster should belong to.
262
-
<4> Specify the name of the `ImageClusterInstall` in which you defined the container images to use for the image-based installation of the target host.
263
-
<5> Specify a name for the cluster.
264
-
<6> Specify the secret to use for pulling images from your image registry.
280
+
+
281
+
where:
282
+
+
283
+
`<clusterdeployment_name>`:: Specifies the name for the `ClusterDeployment` resource, for example `ibi-cluster-deployment`.
284
+
`<namespace>`:: Specifies the namespace for the `ClusterDeployment` resource, for example `ibi-ns`.
285
+
`<base_domain>`:: Specifies the base domain that the cluster should belong to, for example `example.com`.
286
+
`<imageclusterinstall_name>`:: Specifies the name of the `ImageClusterInstall` in which you defined the container images to use for the image-based installation of the target host, for example `ibi-image-install`.
287
+
`<cluster_name>`:: Specifies a name for the cluster, for example `ibi-cluster`.
288
+
`<pull_secret_name>`:: Specifies the secret to use for pulling images from your image registry, for example `ibi-image-pull-secret`.
265
289
266
290
.. Create the `ClusterDeployment` resource by running the following command:
0 commit comments