// Module included in the following assemblies: // // *scalability_and_performance/cnf-numa-aware-scheduling.adoc :_mod-docs-content-type: PROCEDURE [id="cnf-creating-nrop-cr-hosted-control-plane_{context}"] = Creating the NUMAResourcesOperator custom resource for {hcp} After you install the NUMA Resources Operator, create the `NUMAResourcesOperator` custom resource (CR). The CR instructs the NUMA Resources Operator to install all the cluster infrastructure that is needed to support the NUMA-aware scheduler on {hcp}, including daemon sets and APIs. -- :FeatureName: Creating the NUMAResourcesOperator custom resource for {hcp} include::snippets/technology-preview.adoc[] -- .Prerequisites * Install the OpenShift CLI (`oc`). * Log in as a user with `cluster-admin` privileges. * Install the NUMA Resources Operator. .Procedure . Export the management cluster kubeconfig file by running the following command: + [source,terminal] ---- $ export KUBECONFIG= ---- . Find the `node-pool-name` for your cluster by running the following command: + [source,terminal] ---- $ oc --kubeconfig="$MGMT_KUBECONFIG" get np -A ---- + .Example output [source,terminal] ---- NAMESPACE NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE clusters democluster-us-east-1a democluster 1 1 False False 4.21.0 False False ---- + The `node-pool-name` is the `NAME` field in the output. In this example, the `node-pool-name` is `democluster-us-east-1a`. . Create a YAML file named `nrop-hcp.yaml` with at least the following content: + [source,yaml] ---- apiVersion: nodetopology.openshift.io/v1 kind: NUMAResourcesOperator metadata: name: numaresourcesoperator spec: nodeGroups: - poolName: democluster-us-east-1a <1> ---- + <1> The `poolName` is the `node-pool-name` retrieved in step 2. . On the management cluster, run the following command to list the available secrets: + [source,terminal] ---- $ oc get secrets -n clusters ---- + .Example output [source,terminal] ---- NAME TYPE DATA AGE builder-dockercfg-25qpp kubernetes.io/dockercfg 1 128m default-dockercfg-mkvlz kubernetes.io/dockercfg 1 128m democluster-admin-kubeconfig Opaque 1 127m democluster-etcd-encryption-key Opaque 1 128m democluster-kubeadmin-password Opaque 1 126m democluster-pull-secret Opaque 1 128m deployer-dockercfg-8lfpd kubernetes.io/dockercfg 1 128m ---- . Extract the `kubeconfig` file for the hosted cluster by running the following command: + [source,terminal] ---- $ oc get secret -n clusters -o jsonpath='{.data.kubeconfig}' | base64 -d > hosted-cluster-kubeconfig ---- + .Example [source,terminal] ---- $ oc get secret democluster-admin-kubeconfig -n clusters -o jsonpath='{.data.kubeconfig}' | base64 -d > hosted-cluster-kubeconfig ---- . Export the hosted cluster `kubeconfig` file by running the following command: + [source,terminal] ---- $ export HC_KUBECONFIG= ---- . Create the `NUMAResourcesOperator` CR by running the following command on the hosted cluster: + [source,terminal] ---- $ oc create -f nrop-hcp.yaml ---- .Verification . Verify that the NUMA Resources Operator deployed successfully by running the following command: + [source,terminal] ---- $ oc get numaresourcesoperators.nodetopology.openshift.io ---- + .Example output [source,terminal] ---- NAME AGE numaresourcesoperator 27s ---- . After a few minutes, run the following command to verify that the required resources deployed successfully: + [source,terminal] ---- $ oc get all -n openshift-numaresources ---- + .Example output [source,terminal] ---- NAME READY STATUS RESTARTS AGE pod/numaresources-controller-manager-7d9d84c58d-qk2mr 1/1 Running 0 12m pod/numaresourcesoperator-democluster-7d96r 2/2 Running 0 97s pod/numaresourcesoperator-democluster-crsht 2/2 Running 0 97s pod/numaresourcesoperator-democluster-jp9mw 2/2 Running 0 97s ----