1"use strict";(self.webpackChunkspectro_cloud_docs=self.webpackChunkspectro_cloud_docs||[]).push([["10137"],{159093:function(e,t,n){n.r(t),n.d(t,{frontMatter:()=>o,toc:()=>c,default:()=>d,metadata:()=>s,assets:()=>a,contentTitle:()=>l});var s=JSON.parse('{"id":"clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/create-openshift-workload-cluster","title":"Create OpenShift Workload Cluster with HyperShift Control Plane","description":"Learn how to create OpenShift workload clusters on MAAS using a HyperShift hosted control plane in Palette.","source":"@site/docs/docs-content/clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/create-openshift-workload-cluster.md","sourceDirName":"clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift","slug":"/clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/create-openshift-workload-cluster","permalink":"/clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/create-openshift-workload-cluster","draft":false,"unlisted":false,"editUrl":"https://github.com/spectrocloud/librarium/blob/master/docs/docs-content/clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/create-openshift-workload-cluster.md","tags":[{"inline":true,"label":"data center","permalink":"/tags/data-center"},{"inline":true,"label":"maas","permalink":"/tags/maas"},{"inline":true,"label":"openshift","permalink":"/tags/openshift"},{"inline":true,"label":"hypershift","permalink":"/tags/hypershift"}],"version":"current","lastUpdatedAt":1777826507000,"sidebarPosition":30,"frontMatter":{"sidebar_label":"Create OpenShift Workload Cluster","title":"Create OpenShift Workload Cluster with HyperShift Control Plane","description":"Learn how to create OpenShift workload clusters on MAAS using a HyperShift hosted control plane in Palette.","hide_table_of_contents":false,"tags":["data center","maas","openshift","hypershift"],"sidebar_position":30},"sidebar":"docSidebar","previous":{"title":"Create HyperShift Host Cluster","permalink":"/clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/create-hypershift-host-cluster"},"next":{"title":"Nutanix","permalink":"/clusters/data-center/nutanix/"}}'),r=n(474848),i=n(884429);let o={sidebar_label:"Create OpenShift Workload Cluster",title:"Create OpenShift Workload Cluster with HyperShift Control Plane",description:"Learn how to create OpenShift workload clusters on MAAS using a HyperShift hosted control plane in Palette.",hide_table_of_contents:!1,tags:["data center","maas","openshift","hypershift"],sidebar_position:30},l,a={},c=[{value:"Limitations",id:"limitations",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Enablement",id:"enablement",level:2},{value:"Cloud Configuration",id:"cloud-configuration",level:3},{value:"Validate",id:"validate",level:2},{value:"Next Steps",id:"next-steps",level:2}];function h(e){let t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components},{Details:n,PartialsComponent:s,VersionedLink:o}=t;return n||p("Details",!0),s||p("PartialsComponent",!0),o||p("VersionedLink",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.admonition,{type:"preview"}),"\n",(0,r.jsx)(t.p,{children:"OpenShift workload clusters use a hosted control plane model where their Kubernetes control plane components run as pods\nin the HyperShift host cluster. Worker nodes are then provisioned as bare-metal MAAS hosts."}),"\n",(0,r.jsx)(t.h2,{id:"limitations",children:"Limitations"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["It is not possible to install additional add-on layers on OpenShift workload clusters through Palette. If you need to\ninstall add-ons such as MetalLB and Piraeus, we recommend using the ",(0,r.jsx)(t.a,{href:"https://operatorhub.io/",children:"OperatorHub"}),". The\nOperatorHub is accessed through the OpenShift console of your workload cluster. Add-ons installed through the\nOperatorHub are managed directly through the OpenShift console and are not visible in Palette."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Only the Bring Your Own OS (BYOOS) pack is supported for the OS layer. The RHCOS image must be built specifically for\nMAAS using the process described
1in ",(0,r.jsx)(t.a,{href:"/clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/build-import-rhcos-image",children:"Build and Import MAAS-Compatible RHCOS Image"}),".\nStandard MAAS OS images are not compatible with OpenShift."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Open Virtual Networking (OVN)-Kubernetes is configured automatically by the OpenShift pack. A dedicated OVN-Kubernetes\nContainer Network Interface (CNI) pack is not supported. The CNI layer of the workload cluster profile must use the\nOVN-Kubernetes CNI pack as a passthrough as mentioned in the\n",(0,r.jsx)(t.a,{href:"/clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/create-openshift-workload-cluster#prerequisites",children:"prerequisites"})," for creating OpenShift workload clusters."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"Some Day 1 operations are not available through Palette, such as configuring an external OpenID Connect (OIDC)\nprovider or Network Time Protocol (NTP) servers."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"Some Day 2 operations are not available through Palette, such as OS patching, security and compliance scans, backup\nand restore, and maintenance mode."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["The MAAS-compatible RHCOS image imported in\n",(0,r.jsx)(t.a,{href:"/clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/build-import-rhcos-image",children:"Build and Import MAAS-Compatible RHCOS Image"})," must be available in your MAAS\nenvironment."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["The HyperShift host cluster created in ",(0,r.jsx)(t.a,{href:"/clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/create-hypershift-host-cluster",children:"Create HyperShift Host Cluster"})," must be\nin the ",(0,r.jsx)(t.strong,{children:"Running"})," state with the HyperShift Operator healthy."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.a,{href:"/user-management/palette-rbac/project-scope-roles-permissions#cluster",children:"Cluster Admin"})," role in\nPalette."]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["If you have not yet created a cluster profile for the HyperShift host cluster, you also need the\n",(0,r.jsx)(t.a,{href:"/user-management/palette-rbac/project-scope-roles-permissions#cluster-profile",children:"Cluster Profile Admin"}),"\nrole."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"A cluster profile for your OpenShift workload clusters configured with the following packs:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(o,{text:"Bring Your Own OS (BYOOS)",url:"/integrations/packs/?pack=generic-byoi"})," pack for the OS\nlayer. Set the following parameters in the pack values."]}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Parameter"}),(0,r.jsx)(t.th,{children:"Description"}),(0,r.jsx)(t.th,{children:"Example value"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"pack.osImageOverride"})}),(0,r.jsxs)(t.td,{children:["The name of the MAAS image imported when following the ",(0,r.jsx)(t.a,{href:"/clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/build-import-rhcos-image",children:"Build and Import MAAS-Compatible RHCOS Image"})," guide. This should match the ",(0,r.jsx)(t.code,{children:"<image-name>"})," parameter specified in the ",(0,r.jsx)(t.code,{children:"import-maas-image.sh"})," script."]}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"rhcos-4.20.13-with-ubuntu"})})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"pack.osName"})}),(0,r.jsxs)(t.td,{children:["The value of the ",(0,r.jsx)(t.code,{children:"<operating-system>"})," parameter specified during import."]}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"openshift"})})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"pack.osVersion"})}),(0,r.jsxs)(t.td,{children:["The value of the ",(0,r.jsx)(t.code,{children:"<release-version>"})," parameter specified during import."]}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"4.20.13"})})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(o,{text:"OpenShift",url:"/integrations/packs/?pack=openshift&tab=main"})," pack for the Kubernetes layer.\nEnsure the OpenShift version is compatible with the HyperShift Operator version installed on the host cluster. Refer\nto the ",(0,r.jsx)(t.a,{href:"https://hypershift-docs.netlify.app/reference/versioning-support/#ho",children:"HyperShift Operator (HO) Versioning\nSupport"})," documentation for guidance."]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Ensure to set the Red Hat OpenShift pull secret in the ",(0,r.jsx)(t.code,{children:"cluster.pullSecret"})," parameter of the OpenShift pack\nvalues. This is required for the OpenShift installer to pull necessary images from Red Hat's container registry.\nObtain your pull secret from the\n",(0,r.jsx)(t.a,{href:"https://console.redhat.com/openshift/install/pull-secret",children:"Red Hat OpenShift Cluster Manager"}),". The pull secret\nmust be Base64-encoded."]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:" Example command to encode the pull secret in Base64 "}),(0,r.jsxs)(t.p,{children:["In this example, the pull secret is stored in a file named ",(0,r.jsx)(t.code,{children:"pull-secret.txt"}),". The command reads the pull secret\nfrom the file, encodes it in Base64 format, and sets it as the ",(0,r.jsx)(t.code,{children:"OPENSHIFT_PULL_SECRET"})," environment variable. The\n",(0,r.jsx)(t.code,{children:"--wrap 0"})," option for ",(0,r.jsx)(t.code,{children:"base64"})," ensures that the output is a single line, which is necessary for proper formatting\nin the OpenShift pack values."]}),(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",metastring:'title="Base64 encode pull secret"',children:"export OPENSHIFT_PULL_SECRET=$(cat pull-secret.txt | base64 --wrap 0)\necho $OPENSHIFT_PULL_SECRET\n"})})]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["We recommend to add the ",(0,r.jsx)(t.code,{children:"cluster.controlPlaneHighAvailability"})," parameter to the OpenShift pack values and set it\nto ",(0,r.jsx)(t.code,{children:"true"}),". This parameter is not present by default and must be added manually."]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-yaml",metastring:'hideClipboard t
1itle="Example OpenShift pack values with control plane HA enabled" {4}',children:"pack:\n...\ncluster:\n controlPlaneHighAvailability: true\n ...\n"})}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["When ",(0,r.jsx)(t.code,{children:"cluster.controlPlaneHighAvailability"})," is ",(0,r.jsx)(t.code,{children:"true"}),", the hosted control plane runs in HA mode with multiple\nreplicas of API server, etcd, and other components. This allows PodDisruptionBudgets (PDBs) to maintain\navailability during node repave, and drain operations can proceed without issues."]}),"\n",(0,r.jsxs)(t.li,{children:["When ",(0,r.jsx)(t.code,{children:"cluster.controlPlaneHighAvailability"})," is ",(0,r.jsx)(t.code,{children:"false"})," or not set, the hosted control plane runs with a single\nreplica (non-HA). In this configuration, a node repave or any other operation that drains the node hosting that\ncontrol plane replica can remain blocked because the PDB prevents eviction of the control plane pod. The typical\nsymptom is that the repaving node remains in the ",(0,r.jsx)(t.code,{children:"Deleting"})," or ",(0,r.jsx)(t.code,{children:"Draining"})," state until the drain completes."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(o,{text:"OVN-Kubernetes CNI",url:"/integrations/packs/?pack=ovn-kubernetes"})," pack for the Network\nlayer. This is used as a passthrough CNI pack since the CNI is configured automatically by the ",(0,r.jsx)(t.strong,{children:"OpenShift"})," pack\nand a dedicated CNI pack is not supported for OpenShift workload clusters hosted on HyperShift."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(o,{text:"Local Path Provisioner",url:"/integrations/packs/?pack=csi-local-path-provisioner"})," pack\nis the only validated pack for the Storage layer. As mentioned in the ",(0,r.jsx)(t.a,{href:"#limitations",children:"Limitations"})," section, if you\nwish to use a different Container Storage Interface (CSI), you can install it through the OperatorHub in the\nOpenShift console after cluster deployment."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"enablement",children:"Enablement"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Log in to ",(0,r.jsx)(t.a,{href:"https://console.spectrocloud.com",children:"Palette"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"Ensure you are in the correct project scope."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["From the left main menu, select ",(0,r.jsx)(t.strong,{children:"Clusters"})," and click ",(0,r.jsx)(t.strong,{children:"Add New Cluster"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"Data Center"})," section, select ",(0,r.jsx)(t.strong,{children:"MAAS"}),", then click ",(0,r.jsx)(t.strong,{children:"Start MAAS Configuration"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Enter the basic information for your cluster, including the ",(0,r.jsx)(t.strong,{children:"Cluster Name"}),", ",(0,r.jsx)(t.strong,{children:"Description"}),", and ",(0,r.jsx)(t.strong,{children:"Tags"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["From the ",(0,r.jsx)(t.strong,{children:"Cloud Account"})," drop-down menu, select your MAAS cloud account."]}),"\n",(0,r.jsxs)(t.p,{children:["Click ",(0,r.jsx)(t.strong,{children:"Next"})," when done."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(s,{category:"cluster-templates",name:"profile-vs-template"}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(s,{category:"profiles",name:"cluster-profile-variables-deployment"}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["On the ",(0,r.jsx)(t.strong,{children:"Cluster Config"})," step, select a domain from the ",(0,r.jsx)(t.strong,{children:"Domains"})," drop-down menu. You can also specify ",(0,r.jsx)(t.strong,{children:"NTP\nServers"}),"."]}),"\n",(0,r.jsx)(t.admonition,{type:"warning",children:(0,r.jsx)(t.p,{children:"Although optional, we recommend specifying Network Time Protocol (NTP) servers to ensure the cluster nodes maintain\naccurate time. If no NTP servers are specified, it can lead to time drift."})}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Select a ",(0,r.jsx)(t.strong,{children:"HyperShift host cluster"})," from the drop-down menu. This should match the name of the HyperShift host\ncluster you created when following the ",(0,r.jsx)(t.a,{href:"/clusters/data-center/maas/create-manage-maas-openshift-clusters-hypershift/create-hypershift-host-cluster",children:"Create HyperShift Host Cluster"})," guide.\nThis associates the workload cluster with the selected host cluster."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["On the ",(0,r.jsx)(t.strong,{children:"Nodes Config"})," step, configure the worker node pools. As the OpenShift control plane is hosted in the\nHyperShift host cluster, you only configure worker nodes here."]}),"\n",(0,r.jsxs)(t.p,{children:["The following input fields apply to MAAS worker node pools. For a description of input fields common across target\nplatforms, refer to ",(0,r.jsx)(t.a,{href:"/clusters/cluster-management/node-pool",children:"Node Pools"}),". Click ",(0,r.jsx)(t.strong,{children:"Next"})," when done."]}),"\n",(0,r.jsx)(t.h3,{id:"cloud-configuration",children:"Cloud Configuration"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:(0,r.jsx)(t.strong,{children:"Parameter"})}),(0,r.jsx)(t.th,{children:(0,r.jsx)(t.strong,{children:"Description"})})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"Resource pool"})}),(0,r.jsxs)(t.td,{children:["The ",(0,r.jsx)(t.a,{href:"https://canonical.com/maas/docs/how-to-manage-machine-groups#p-19384-manage-resource-pools",children:"MAAS resource pool"})," from which to select available servers for deployment. Filter available servers to only those that have at least the amount of ",(0,r.jsx)(t.strong,{children:"Minimum CPU"})," and ",(0,r.jsx)(t.strong,{children:"Minimum Memory"})," selected."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"Minimum CPU"})}),(0,r.jsx)(t.td,{children:"The minimum number of CPU cores required for servers in this node pool."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"Minimum Memory"})}),(0,r.jsx)(t.td,{children:"The minimum amount of memory required for servers in this node pool."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"Availability zones"})}),(0,r.jsxs)(t.td,{children:["Specify the ",(0,r.jsx)(t.a,{href:"https://canonical.com/maas/docs/how-to-manage-machine-groups#p-19384-manage-availability-zones",children:"Availability Zones (AZs)"})," for the node pool."]}
1)]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"Tags"})}),(0,r.jsxs)(t.td,{children:["Specify the MAAS machine tags so Palette can deploy nodes to the MAAS machines that match them. To learn more about MAAS tags, refer to the ",(0,r.jsx)(t.a,{href:"https://canonical.com/maas/docs/about-machine-groups#p-22953-tags-flexible-labels",children:"MAAS Tags"})," documentation."]})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["On the ",(0,r.jsx)(t.strong,{children:"Cluster Settings"})," page, configure additional options as needed. If you are deploying your workload cluster\nusing ",(0,r.jsx)(t.a,{href:"/cluster-templates/",children:"cluster templates"}),", a ",(0,r.jsx)(t.strong,{children:"Cluster Timezone"})," is required."]}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:(0,r.jsx)(t.strong,{children:"Left Menu Item"})}),(0,r.jsx)(t.th,{children:(0,r.jsx)(t.strong,{children:"Additional Information"})})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"Cluster Timezone"})}),(0,r.jsxs)(t.td,{children:["Specify the time zone where you deploy your cluster. The time zone is used in ",(0,r.jsx)(t.a,{href:"/cluster-templates/create-cluster-template-policies/maintenance-policy",children:"maintenance policies"})," to determine when updates are rolled out to clusters deployed with ",(0,r.jsx)(t.a,{href:"/cluster-templates/",children:"cluster templates"}),"."]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"RBAC"})}),(0,r.jsxs)(t.td,{children:["Map a set of users or groups to a Kubernetes Role-Based Access Control (RBAC) role. This is required when custom OpenID Connect (OIDC) is configured. Refer to the following guides for more information: ",(0,r.jsx)("br",{}),"- ",(0,r.jsx)(t.a,{href:"/clusters/cluster-management/cluster-rbac#create-role-bindings",children:"Create Role Bindings"})," ",(0,r.jsx)("br",{})," - ",(0,r.jsx)(o,{text:"Palette eXtended Kubernetes (PXK)",url:"/integrations/packs/?pack=kubernetes&tab=custom"})]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.strong,{children:"Location"})}),(0,r.jsxs)(t.td,{children:["Specify the location of your cluster by entering the address in the search bar and selecting one of the options in the drop-down. For example, ",(0,r.jsx)(t.strong,{children:"London, Greater London, England, United Kingdom"}),". This is used for display purposes and does not impact cluster functionality."]})]})]})]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Select ",(0,r.jsx)(t.strong,{children:"Validate"})," to review your cluster configuration and settings."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["If no changes are needed, ",(0,r.jsx)(t.strong,{children:"Finish Configuration"})," to deploy the workload cluster."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"Palette communicates the cluster configuration to the HyperShift Operator on the host cluster, which provisions the\nOpenShift hosted control plane. Worker nodes are simultaneously provisioned on MAAS bare-metal hosts and joined to the\nworkload cluster. Provisioning may take several minutes."}),"\n",(0,r.jsx)(t.h2,{id:"validate",children:"Validate"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Log in to ",(0,r.jsx)(t.a,{href:"https://console.spectrocloud.com",children:"Palette"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"Ensure you are in the correct project scope."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["From the left main menu, select ",(0,r.jsx)(t.strong,{children:"Clusters"}),". The ",(0,r.jsx)(t.strong,{children:"Clusters"})," page lists all clusters that Palette manages."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Select the OpenShift workload cluster. On the ",(0,r.jsx)(t.strong,{children:"Overview"})," tab, confirm the ",(0,r.jsx)(t.strong,{children:"Cluster Status"})," is ",(0,r.jsx)(t.strong,{children:"Running"})," and the\n",(0,r.jsx)(t.strong,{children:"Health"})," status is ",(0,r.jsx)(t.strong,{children:"Healthy"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"next-steps",children:"Next Steps"}),"\n",(0,r.jsx)(t.p,{children:"Now that you have deployed a HyperShift host cluster and an OpenShift workload cluster, you can start deploying\napplications to your OpenShift cluster. Consider the following next steps:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"You can create multiple OpenShift workload clusters on the same HyperShift host cluster. Repeat the steps in this\nguide for each additional cluster, ensuring that the host cluster has sufficient capacity to run the additional\ncontrol plane pods."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Refer to ",(0,r.jsx)(t.a,{href:"/clusters/cluster-management/",children:"Manage Cluster
1s"})," for Day-2 cluster management tasks, but\nensure that you have reviewed the ",(0,r.jsx)(t.a,{href:"#limitations",children:"Limitations"})," as some management tasks are not supported for\nHyperShift-hosted OpenShift clusters."]}),"\n"]}),"\n"]})]})}function d(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}function p(e,t){throw Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},884429:function(e,t,n){n.d(t,{R:()=>o,x:()=>l});var s=n(296540);let r={},i=s.createContext(r);function o(e){let t=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.