Chapter 6. Preparing an Agent-based installed cluster for the multicluster engine for Kubernetes Operator
You can install the multicluster engine Operator and deploy a hub cluster with the Agent-based OpenShift Container Platform Installer. The following procedure is partially automated and requires manual steps after the initial cluster is deployed.
6.1. Prerequisites Copy linkLink copied to clipboard!
You have read the following documentation:
- You have access to the internet to obtain the necessary container images.
-
You have installed the OpenShift CLI (
oc). - If you are installing in a disconnected environment, you must have a configured local mirror registry for disconnected installation mirroring.
6.2. Preparing an Agent-based cluster deployment for the multicluster engine for Kubernetes Operator while disconnected Copy linkLink copied to clipboard!
You can mirror the required OpenShift Container Platform container images, the multicluster engine Operator, and the Local Storage Operator (LSO) into your local mirror registry in a disconnected environment. Ensure that you note the local DNS hostname and port of your mirror registry.
To mirror your OpenShift Container Platform image repository to your mirror registry, you can use either the oc adm release image or oc mirror command. In this procedure, the oc mirror command is used as an example.
Procedure
-
Create an
<assets_directory>folder to contain validinstall-config.yamlandagent-config.yamlfiles. This directory is used to store all the assets. To mirror an OpenShift Container Platform image repository, the multicluster engine, and the LSO, create a
ImageSetConfiguration.yamlfile with the following settings:Example
ImageSetConfiguration.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Specify the maximum size, in GiB, of each file within the image set.
- 2
- Set the back-end location to receive the image set metadata. This location can be a registry or local directory. It is required to specify
storageConfigvalues. - 3
- Set the registry URL for the storage backend.
- 4
- Set the channel that contains the OpenShift Container Platform images for the version you are installing.
- 5
- Set the Operator catalog that contains the OpenShift Container Platform images that you are installing.
- 6
- Specify only certain Operator packages and channels to include in the image set. Remove this field to retrieve all packages in the catalog.
- 7
- The multicluster engine packages and channels.
- 8
- The LSO packages and channels.
NoteThis file is required by the
oc mirrorcommand when mirroring content.To mirror a specific OpenShift Container Platform image repository, the multicluster engine, and the LSO, run the following command:
oc mirror --dest-skip-tls --config ocp-mce-imageset.yaml docker://<your-local-registry-dns-name>:<your-local-registry-port>
$ oc mirror --dest-skip-tls --config ocp-mce-imageset.yaml docker://<your-local-registry-dns-name>:<your-local-registry-port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Update the registry and certificate in the
install-config.yamlfile:Example
imageContentSources.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Additionally, ensure your certificate is present in the
additionalTrustBundlefield of theinstall-config.yaml.Example
install-config.yamladditionalTrustBundle: | -----BEGIN CERTIFICATE----- zzzzzzzzzzz -----END CERTIFICATE-------
additionalTrustBundle: | -----BEGIN CERTIFICATE----- zzzzzzzzzzz -----END CERTIFICATE-------Copy to Clipboard Copied! Toggle word wrap Toggle overflow ImportantThe
oc mirrorcommand creates a folder calledoc-mirror-workspacewith several outputs. This includes theimageContentSourcePolicy.yamlfile that identifies all the mirrors you need for OpenShift Container Platform and your selected Operators.Generate the cluster manifests by running the following command:
openshift-install agent create cluster-manifests
$ openshift-install agent create cluster-manifestsCopy to Clipboard Copied! Toggle word wrap Toggle overflow This command updates the cluster manifests folder to include a
mirrorfolder that contains your mirror configuration.
6.3. Preparing an Agent-based cluster deployment for the multicluster engine for Kubernetes Operator while connected Copy linkLink copied to clipboard!
Create the required manifests for the multicluster engine Operator, the Local Storage Operator (LSO), and to deploy an agent-based OpenShift Container Platform cluster as a hub cluster.
Procedure
Create a sub-folder named
openshiftin the<assets_directory>folder. This sub-folder is used to store the extra manifests that will be applied during the installation to further customize the deployed cluster. The<assets_directory>folder contains all the assets including theinstall-config.yamlandagent-config.yamlfiles.NoteThe installer does not validate extra manifests.
For the multicluster engine, create the following manifests and save them in the
<assets_directory>/openshiftfolder:Example
mce_namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example
mce_operatorgroup.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example
mce_subscription.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow NoteYou can install a distributed unit (DU) at scale with the Red Hat Advanced Cluster Management (RHACM) using the assisted installer (AI). These distributed units must be enabled in the hub cluster. The AI service requires persistent volumes (PVs), which are manually created.
For the AI service, create the following manifests and save them in the
<assets_directory>/openshiftfolder:Example
lso_namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example
lso_operatorgroup.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example
lso_subscription.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow NoteAfter creating all the manifests, your filesystem must display as follows:
Example Filesystem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the agent ISO image by running the following command:
openshift-install agent create image --dir <assets_directory>
$ openshift-install agent create image --dir <assets_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - When the image is ready, boot the target machine and wait for the installation to complete.
To monitor the installation, run the following command:
openshift-install agent wait-for install-complete --dir <assets_directory>
$ openshift-install agent wait-for install-complete --dir <assets_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteTo configure a fully functional hub cluster, you must create the following manifests and manually apply them by running the command
$ oc apply -f <manifest-name>. The order of the manifest creation is important and where required, the waiting condition is displayed.For the PVs that are required by the AI service, create the following manifests:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Use the following command to wait for the availability of the PVs, before applying the subsequent manifests:
oc wait localvolume -n openshift-local-storage assisted-service --for condition=Available --timeout 10m
$ oc wait localvolume -n openshift-local-storage assisted-service --for condition=Available --timeout 10mCopy to Clipboard Copied! Toggle word wrap Toggle overflow NoteThe `devicePath` is an example and may vary depending on the actual hardware configuration used.
The `devicePath` is an example and may vary depending on the actual hardware configuration used.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a manifest for a multicluster engine instance.
Example
MultiClusterEngine.yamlapiVersion: multicluster.openshift.io/v1 kind: MultiClusterEngine metadata: name: multiclusterengine spec: {}apiVersion: multicluster.openshift.io/v1 kind: MultiClusterEngine metadata: name: multiclusterengine spec: {}Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create a manifest to enable the AI service.
Example
agentserviceconfig.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create a manifest to deploy subsequently spoke clusters.
Example
clusterimageset.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create a manifest to import the agent installed cluster (that hosts the multicluster engine and the Assisted Service) as the hub cluster.
Example
autoimport.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Wait for the managed cluster to be created.
oc wait -n multicluster-engine managedclusters local-cluster --for condition=ManagedClusterJoined=True --timeout 10m
$ oc wait -n multicluster-engine managedclusters local-cluster --for condition=ManagedClusterJoined=True --timeout 10mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
To confirm that the managed cluster installation is successful, run the following command:
oc get managedcluster
$ oc get managedcluster NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE local-cluster true https://<your cluster url>:6443 True True 77mCopy to Clipboard Copied! Toggle word wrap Toggle overflow