diff --git a/docs/docs-content/clusters/data-center/data-center.md b/docs/docs-content/clusters/data-center/data-center.md index 2781b4ddad4..a7b5ccc9168 100644 --- a/docs/docs-content/clusters/data-center/data-center.md +++ b/docs/docs-content/clusters/data-center/data-center.md @@ -25,9 +25,10 @@ The following pages provide detailed instructions for setting up new workload cl - [Canonical MAAS](maas/maas.md) +- [Nutanix](nutanix/nutanix.md) - [OpenStack](openstack.md) - - [VMware](vmware.md) + diff --git a/docs/docs-content/clusters/data-center/nutanix/add-nutanix-cloud-account.md b/docs/docs-content/clusters/data-center/nutanix/add-nutanix-cloud-account.md new file mode 100644 index 00000000000..15d9a1a45ba --- /dev/null +++ b/docs/docs-content/clusters/data-center/nutanix/add-nutanix-cloud-account.md @@ -0,0 +1,56 @@ +--- +sidebar_label: "Add Nutanix Cloud Account" +title: "Add Nutanix Cloud Account" +description: "Learn how to add a Nutanix cloud account in Palette." +hide_table_of_contents: false +sidebar_position: 20 +tags: ["data center", "nutanix"] +--- + + Once the Private Cloud Gateway (PCG) is installed, the Nutanix cloud account must be added to Palette. + +## Prerequisites + +- A Nutanix cloud registered with Palette. For more information, refer to [Register Nutanix Cloud](register-nutanix-cloud.md). + +- A PCG installed that connects the Nutanix cloud with Palette. For guidance, refer to [Install Private Cloud Gateway](./install-pcg/install-pcg.md). + + +## Add Cloud Account + +1. Log in to [Palette](https://console.spectrocloud.com/) as a tenant administrator. + +2. Ensure you are in the correct project scope. + +3. From the **left Main Menu**, select **Tenant Settings**. + +4. Next, select **Cloud Accounts** in the **Tenant Setting Menu**. + +5. Locate Nutanix and click **Add Nutanix Cloud**. + +6. Fill out the following input values and click **Confirm** to continue. + + | **Field** | **Description** | + |-----------|-----------------| + | **Name**| A custom name for the account. | + | **Private Cloud Gateway**| Select the PCG from the list of deployed PCGs in your setup.| + | **NUTANIX_USER**| The Prism Central user name.| + | **NUTANIX_PASSWORD** | The Prism Central user password.| + | **NUTANIX_ENDPOINT** | The Prism Central IP address or the fully qualified domain name (FQDN) assigned to Prism.| + | **NUTANIX_PORT** | Specify the default port you assigned in the ``cloudClusterTemplate.yaml`` file. The default value is `9440`. | + | **NUTANIX_INSECURE** | Specify the SSL behavior you used in the ``cloudClusterTemplate.yaml`` file. The default behavior is `false`. | + +## Validate + +1. Log in to [Palette](https://console.spectrocloud.com/) as a tenant admin. + +2. From the **left Main Menu**, select **Tenant Settings**. + +3. Next, select **Cloud Accounts** in the **Tenant Settings Menu**. + +4. Verify the account you added is listed and available. + + +## Next Steps + +Now that you have added a Nutanix account to Palette, you can start deploying Kubernetes clusters to your Nutanix infrastructure. To learn how to get started deploying Kubernetes clusters to Nutanix, review the [Create and Manage Nutanix Cluster](/clusters/data-center/nutanix/create-manage-nutanix-cluster.md) guide. \ No newline at end of file diff --git a/docs/docs-content/clusters/data-center/nutanix/architecture.md b/docs/docs-content/clusters/data-center/nutanix/architecture.md new file mode 100644 index 00000000000..de4d12c14e7 --- /dev/null +++ b/docs/docs-content/clusters/data-center/nutanix/architecture.md @@ -0,0 +1,30 @@ +--- +sidebar_label: "Architecture" +title: "Architecture" +description: "Learn about the architecture used to support Nutanix in Palette." +hide_table_of_contents: false +sidebar_position: 0 +tags: ["data center", "nutanix", "architecture"] +--- + + +[Nutanix](https://www.nutanix.com) is a private data center-based cloud that can be registered to Palette using Palette's generic framework built upon the open-source Cluster API (CAPI) initiative. Nutanix offers a hyper-converged infrastructure (HCI) that combines storage, compute, and networking into a single integrated system. + +Below are key architectural highlights of Nutanix clusters provisioned through Palette. + +- Palette integrates with Nutanix through the Cloud Native Computing Foundation (CNCF) [Nutanix Cluster API Infrastructure Provider](https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix). + +- Nutanix Prism is a resource management platform that centralizes the monitoring and management of objects across Nutanix environments, whether hosted in your data center or a public cloud provider environment. Nutanix Prism has two main components: Prism Central (PC) and Prism Element (PE). + + - Prism Central is a workspace in which you can register and manage Nutanix workload clusters. The Cluster API Provider Nutanix Cloud Infrastructure (CAPX) relies on Prism Central APIs to manage the Kubernetes cluster infrastructure resources. + + - Prism Element is a localized cluster manager available for every deployed Nutanix cluster. Within Prism Element, you can configure a cluster, specifying its components such as the number of control plane and worker nodes, networking settings, and more. + +- The Kubernetes API Server endpoint is accessible through [kube-vip](https://kube-vip.io/), which is a load balancing solution for the cluster’s control plane. Kube-vip distributes API requests across control plane nodes and also has failover capabilities. + +- A Self-hosted Private Cloud Gateway (PCG) is required to enable Palette to securely communicate with the Nutanix cloud. The direct communication channel allows Palette to create and monitor clusters within the Nutanix cloud. A self-hosted cluster is needed for the PCG deployment. The [Deploy a Kubernetes Cluster to Host the PCG](./install-pcg/deploy-kubernetes-cluster-pcg.md) page provides the steps to deploy a self-hosted cluster within the Nutanix infrastructure. + +The following diagram illustrates the Nutanix architecture. + + +![Network flow from an architectural perspective of how Nutanix works with Palette.](/clusters_data-center_nutanix_architecture.png) \ No newline at end of file diff --git a/docs/docs-content/clusters/data-center/nutanix/create-manage-nutanix-cluster.md b/docs/docs-content/clusters/data-center/nutanix/create-manage-nutanix-cluster.md new file mode 100644 index 00000000000..cfdfc0790bc --- /dev/null +++ b/docs/docs-content/clusters/data-center/nutanix/create-manage-nutanix-cluster.md @@ -0,0 +1,128 @@ +--- +sidebar_label: "Create and Manage Nutanix Cluster" +title: "Create and Manage Nutanix Cluster" +description: "Learn how to create and manage Nutanix clusters in Palette." +hide_table_of_contents: false +sidebar_position: 25 +tags: ["data center", "nutanix"] +--- + +Palette supports creating and managing Kubernetes clusters deployed to a Nutanix infrastructure environment. This section guides you in creating a Kubernetes cluster in a Nutanix cloud managed by Palette. + +## Prerequisites + +- A Nutanix cloud account added to Palette. Refer to [Add Nutanix Cloud Account](add-nutanix-cloud-account.md). + + + +- A Nutanix Private Cloud Gateway (PCG) deployed. For guidance, review [Install Private Cloud Gateway](./install-pcg/install-pcg.md). + +- An infrastructure cluster profile created for the Nutanix cloud. For guidance on creating a profile, refer to [Create an Infrastructure Profile](../../../profiles/cluster-profiles/create-cluster-profiles/create-infrastructure-profile.md). At the **Cloud Type** step of profile creation, select **Nutanix** listed under the **Tech Preview**. Select the custom packs provided at the OS and Kubernetes layers. Palette provides out-of-the-box packs for the network and storage profile layers, including the [**Nutanix CSI**](../../../integrations/nutanix-csi.md) storage pack. + +- A Nutanix Prism Central account with *Prism Admin* role. + +- A Nutanix Prism Element cluster created. + +- A Nutanix subnet created in Nutanix Prism Central that will be assigned to the virtual machines (VMs) that will make up the Kubernetes cluster. + +- A Nutanix Cluster API (CAPI) OS image. For guidance on creating the image, refer to [Building CAPI Images for Nutanix Cloud Platform](https://image-builder.sigs.k8s.io/capi/providers/nutanix.html#building-capi-images-for-nutanix-cloud-platform-ncp). + + +## Deploy a Nutanix Cluster + +Use the following steps to deploy a Kubernetes cluster in Nutanix. + +1. Log in to [Palette](https://console.spectrocloud.com/). + +2. From the left **Main Menu** select **Clusters**. + +3. Click on **Add New Cluster** and select **Deploy New Cluster** on the next page that Palette displays. + +4. Select **Nutanix** and click the **Start Nutanix Configuration** button. + +5. Fill out the following basic information, and click **Next** to continue. + + | **Field** | **Description** | + |-----------|-----------------| + | **Cluster Name**| A custom name for the cluster. Use this cluster name for the `${CLUSTER_NAME}` variable in the YAML configuration files. | + | **Description**| Use the description to provide context about the cluster.| + | **Tags**| Assign any desired cluster tags. | + | **Cloud Account** | Select your Nutanix account from the **drop-down Menu**. | + +6. Select the Nutanix cluster profile you created and click **Next**. Palette displays the profile layers. + +7. Review profile layers, leaving the OS and Kubernetes packs empty, and customize parameters as desired in the YAML files that display when you select the network and storage layers. Click **Next** when you are done. + +8. In the Cluster configuration YAML file that Palette displays, edit the file to replace variables within curly braces listed in the table below with values that apply to your Nutanix cloud environment, and make any adjustments to configure your cluster. Click **Next** when you are done. + + | **Variable** | **Description** | + |--------------|-----------------| + | `${CLUSTER_NAME}`| The name of the Nutanix workload cluster. Use the same cluster name you specified in step 5. | + | `${CONTROL_PLANE_ENDPOINT_IP}`| The Kubernetes API IP endpoint for the cluster you are creating. | + | `${NUTANIX_ENDPOINT}`| The Nutanix Prism Central IP address. | + + :::caution + + The following applies when replacing variables within curly braces in the YAML configuration files. + + - All the variables must be resolved or have a default value. + + - Verify default values such as the port. + + - Names you provide must match. Any names in the YAML files that do not match your Nutanix cluster configuration will result in unsuccessful cluster deployment. + + - Values that are passed as a string, such as names and keys, must be enclosed in quotes, for example `" "`. + + - When replacing values, remove the dollar sign and curly braces. + + + ::: + +9. In the Node pool configuration YAML files for the master and worker pools, edit the files to replace each occurrence of the variables within curly braces listed in the tables below with values that apply to your Nutanix cloud environment. You can configure scaling in the Palette UI by specifying the number of nodes in the pool. This corresponds to `replicas` in the YAML file. + + #### Master Pool + + | **Variable** | **Description** | + |--------------|-----------------| + | `${CLUSTER_NAME}`| The name of the Nutanix workload cluster. Use the same cluster name you specified in step 5. | + | `${CONTROL_PLANE_ENDPOINT_IP}`| The Kubernetes API IP endpoint for the cluster you are creating. | + | `${NUTANIX_SSH_AUTHORIZED_KEY}`| Provide your public SSH key. | + | `${KUBERNETES_VERSION}`| Specify the Kubernetes version for your cluster, and precede the version number with `v`. For example `v1.26.3` | + | `${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}`| The name of your Nutanix AHV cluster as defined in Prism. | + | `${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}` | The name of your OS image as defined in Prism Central. To locate images, navigate in the Nutanix Prism dashboard to **Compute & Storage** and select **Images**.| + | `${NUTANIX_SUBNET_NAME}` | The name of the subnet as defined in Prism Central that will be assigned to the virtual machines (VMs) deployed in this cluster. | + + #### Worker-Pool + + | **Variable** | **Description** | + |--------------|-----------------| + | `${NUTANIX_SSH_AUTHORIZED_KEY}`| Provide your public SSH key. | + | `${KUBERNETES_VERSION}`| Specify the Kubernetes version for your cluster, and precede the version number with `v`. For example `v1.26.3` | + | `${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}`| The name of your Nutanix AHV cluster as defined in Prism. | + | `${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}` | The name of your OS image as defined in Prism Central. To locate images, navigate in the Nutanix Prism dashboard to **Compute & Storage** and select **Images**. | + | `${NUTANIX_SUBNET_NAME}` | The name of the subnet as defined in Prism Central that will be assigned to the VMs deployed in this cluster. | + + +10. Click **Next** when you are done. + +11. Review the options for OS patching schedule, scanning, backups, and RBAC. + +12. Click **Validate** and review the cluster configuration and settings summary. + +13. Click **Finish Configuration** to deploy the cluster. The cluster details page contains the status and details of the deployment. Use this page to track deployment progress. Provisioning clusters can take several minutes to complete. + +14. To edit node pool configurations, navigate to the cluster details page, click the **Nodes** tab, and select the node pool you want to edit. Click the **Edit** button and edit the YAML file that Palette displays. + +15. To edit cluster settings, from the cluster details page, click the **Settings** button and select **Cluster Configuration**. Edit the YAML file that Palette displays. + + +## Validate + +1. Log in to [Palette](https://console.spectrocloud.com/). + +2. Navigate to the **left Main Menu** and select **Clusters**. The Clusters page displays a list of all available clusters that Palette manages. + +3. Click on the Nutanix cluster you created to view its details page. + +4. Ensure the **Cluster Status** field displays **Running**. + diff --git a/docs/docs-content/clusters/data-center/nutanix/install-pcg/deploy-kubernetes-cluster-pcg.md b/docs/docs-content/clusters/data-center/nutanix/install-pcg/deploy-kubernetes-cluster-pcg.md new file mode 100644 index 00000000000..ad7b388d253 --- /dev/null +++ b/docs/docs-content/clusters/data-center/nutanix/install-pcg/deploy-kubernetes-cluster-pcg.md @@ -0,0 +1,167 @@ +--- +sidebar_label: "Deploy a Kubernetes Cluster to Host the PCG" +title: "Deploy a Kubernetes Cluster to Host the PCG" +description: "Learn how to deploy a Kubernetes cluster to host the PCG" +hide_table_of_contents: false +sidebar_position: 15 +tags: ["data center", "nutanix"] +--- + +This section describes one possible method for creating a Kubernetes cluster that will be used to deploy your PCG following the process described in the [Nutanix Getting Started](https://opendocs.nutanix.com/capx/v1.1.x/getting_started/) resource and the [Common Prerequisites](https://cluster-api.sigs.k8s.io/user/quick-start#common-prerequisites) specified in the guide. + +## Prerequisites + +- A Nutanix Prism Central account with *Prism Admin* role. + +- A Nutanix Prism Element cluster created. + +- A Nutanix subnet created in Nutanix Prism Central that will be assigned to the virtual machines (VMs) deployed in the Kubernetes cluster. + +- A Nutanix Cluster API (CAPI) OS image. For guidance on creating the image, refer to [Building CAPI Images for Nutanix Cloud Platform](https://image-builder.sigs.k8s.io/capi/providers/nutanix.html#building-capi-images-for-nutanix-cloud-platform-ncp). + +- The following software installed on the machine that will be used to create the clusters: + + - [Docker](https://docs.docker.com/engine/install/) + - [kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) + - [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/) + - [clusterctl](https://cluster-api.sigs.k8s.io/user/quick-start#install-clusterctl) + +## Create Bootstrap Cluster + +1. Log in to your Nutanix Prism account. + +2. Create a local kind cluster. This cluster will bootstrap Cluster API and provision the target workload cluster in the Nutanix account. The workload cluster is then used to deploy the PCG. + + ```bash + kind create cluster --name pcg-pilot + ``` + +## Deploy Workload Cluster + +3. Copy the required variables shown in the examples below to your terminal, add your environment-specific information, and export the variables. The table describes the environment variables. For more information, review the [Nutanix Getting Started](https://opendocs.nutanix.com/capx/v1.1.x/getting_started/) guide. + + | **Variable** | **Description** | + |--------------|-----------------| + | `NUTANIX_ENDPOINT`| The Prism Central IP address or FQDN. | + | `NUTANIX_USER`| The Prism Central user name. | + | `NUTANIX_PASSWORD`| The Prism Central user password. | + | `NUTANIX_INSECURE`| The SSL behavior you used in the ``cloudClusterTemplate.yaml`` file. The default behavior is `false`. | + | `NUTANIX_SSH_AUTHORIZED_KEY`| Provide your public SSH key. | + | `NUTANIX_PRISM_ELEMENT_CLUSTER_NAME`| The Nutanix Prism Element cluster name.| + | `NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME` | The Nutanix CAPI OS Image | + | `NUTANIX_SUBNET_NAME` | The subnet of the Nutanix workload cluster. | + | `KUBERNETES_VERSION` | The Kubernetes version the workload cluster uses. Precede the version with `v`. | + | `WORKER_MACHINE_COUNT` | The number of nodes in the workload cluster. | + + Copy the following Nutanix environment variables to your terminal, provide values, and export the variables. + + ```bash + export NUTANIX_ENDPOINT="" + export NUTANIX_USER="" + export NUTANIX_PASSWORD="" + export NUTANIX_INSECURE=false + export NUTANIX_SSH_AUTHORIZED_KEY="" + export NUTANIX_PRISM_ELEMENT_CLUSTER_NAME="" + export NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME="" + export NUTANIX_SUBNET_NAME="" + ``` + + You can ensure the Nutanix variables were successfully exported by issuing the following command in your terminal. + + ```bash + env | grep "NUTANIX" + ``` + + Copy the following environment variables to your terminal, provide values, and export the variables. + + ```bash + export KUBERNETES_VERSION="v1.22.9" + export WORKER_MACHINE_COUNT=1 + ``` + + To verify the KUBERNETES_VERSION and WORKER_MACHINE_COUNT variables were successfully exported, you can issue the following command for each variable. + + ```bash + echo $variable_name + ``` + +4. Instantiate Nutanix Cluster API. + + ```bash + clusterctl init --infrastructure nutanix + ``` + +5. Deploy a workload cluster in Nutanix by issuing the following command. Replace `mytestcluster` with the cluster name that you assigned to your workload cluster and `mytestnamespace` and with your namespace name. Provide the Nutanix Prism Central IP address for CONTROL_PLANE_ENDPOINT_IP. + + ```bash + export TEST_CLUSTER_NAME=mytestcluster + export TEST_NAMESPACE=mytestnamespace + CONTROL_PLANE_ENDPOINT_IP=x.x.x.x clusterctl generate cluster ${TEST_CLUSTER_NAME} \ + -i nutanix \ + --target-namespace ${TEST_NAMESPACE} \ + > ./cluster.yaml + kubectl create namespace ${TEST_NAMESPACE} + kubectl apply -filename ./cluster.yaml -namespace ${TEST_NAMESPACE} + ``` + + The snippet below displays the output of the command. + + ```bash hideClipBoard + namespace/mytestnamespace created + configmap/user-ca-bundle created + secret/mytestcluster created + kubeadmconfigtemplate.bootstrap.cluster.x-k8s.io/mytestcluster-kcfg-0 created + cluster.cluster.x-k8s.io/mytestcluster created + machinedeployment.cluster.x-k8s.io/mytestcluster-wmd created + machinehealthcheck.cluster.x-k8s.io/mytestcluster-mhc created + kubeadmcontrolplane.controlplane.cluster.x-k8s.io/mytestcluster-kcp created + nutanixcluster.infrastructure.cluster.x-k8s.io/mytestcluster created + nutanixmachinetemplate.infrastructure.cluster.x-k8s.io/mytestcluster-mt-0 created + ``` + + +## Install CNI on Workload Cluster + +6. After your Nutanix workload cluster is deployed, retrieve its kubeconfig file with the command described below. + + ```bash + clusterctl get kubeconfig $TEST_CLUSTER_NAME > $TEST_CLUSTER_NAME.kubeconfig -namespace $TEST_NAMESPACE + ``` + + +7. Deploy a Container Network Interface (CNI) pod in the workload cluster to enable pod-to-pod communication. For more information, refer to [Deploy a CNI solution](https://cluster-api.sigs.k8s.io/user/quick-start.html#deploy-a-cni-solution) in the [Nutanix Quick Start](https://cluster-api.sigs.k8s.io/user/quick-start.htm) reference. [Calico](https://docs.tigera.io/calico/latest/about/) is used as the CNI solution in this example. + + ```bash + kubectl apply --filename https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml + ``` + +8. To verify that the CNI was deployed successfully, issue the following command. + + ```bash + kubectl --kubeconfig=./$TEST_CLUSTER_NAME.kubeconfig get nodes + ``` + + The output should display your nodes with a **Ready** status. + + ```bash hideClipBoard + NAME STATUS ROLES AGE VERSION + test-cluster-kcp-qhb5h Ready control-plane 26h v1.26.7 + test-cluster-wmd-gdjps-gx267 Ready 26h v1.26.7 + ``` + +## Validate + +Use the steps below to verify your virtual machines (VMs) are created. + +1. In the Nutanix Prism Element web console, navigate to **VM**. + +2. Next, in the **Table** tab, verify the VMs you created are listed. + + +## Cleanup + +With the PCG successfully installed in your Kubernetes workload cluster, you can delete the kind cluster that was used to bootstrap the workload cluster. + +```bash +kind delete cluster --name pcg-pilot +``` \ No newline at end of file diff --git a/docs/docs-content/clusters/data-center/nutanix/install-pcg/install-pcg.md b/docs/docs-content/clusters/data-center/nutanix/install-pcg/install-pcg.md new file mode 100644 index 00000000000..8c87757f10c --- /dev/null +++ b/docs/docs-content/clusters/data-center/nutanix/install-pcg/install-pcg.md @@ -0,0 +1,59 @@ +--- +sidebar_label: "Install Private Cloud Gateway" +title: "Install Private Cloud Gateway" +description: "Learn how to install a Nutanix Private Cloud Gateway in Palette." +hide_table_of_contents: false +sidebar_position: 10 +toc_min_heading_level: 2 +toc_max_heading_level: 3 +tags: ["data center", "nutanix"] +--- + + +A Private Cloud Gateway (PCG) is required to connect your Nutanix environment with Palette. The PCG enables Palette to create and monitor Nutanix clusters in the deployed cloud environment. This section guides you on how to install the PCG. + +## Prerequisites + +- An existing Kubernetes cluster created that has network connectivity with Nutanix Prism Central. This cluster will connect the Nutanix infrastructure with Palette via the PCG. Various types of Kubernetes clusters can be used to deploy the PCG. If you need guidance in creating a Kubernetes cluster to deploy your PCG, check out the [Deploy a Kubernetes Cluster to Host the PCG](deploy-kubernetes-cluster-pcg.md) page. This section provides one possible option and explains how to deploy a Kubernetes cluster within the Nutanix environment. + +- A Nutanix cloud registered with Palette. For more information, review [Register Nutanix Cloud](/docs/docs-content/clusters/data-center/nutanix/register-nutanix-cloud.md). + + +## Install PCG + +Use the following steps to install the PCG in your self-hosted Kubernetes cluster. + +1. Log in to [Palette](https://console.spectrocloud.com/). + +2. From the left **Main Menu**, select **Tenant Settings**. + +3. Next, on the **Tenant Settings Menu**, select **Private Cloud Gateways** and click on **Add New Private Cloud Gateway**. + +4. Select **Self Hosted** in the next window that Palette displays. + +5. Provide a name for the PCG and use the **drop-down Menu** to select Nutanix as the cloud type. Click **Confirm** to continue. You will be redirected to the Private Cloud Gateway Overview page. + +6. To install the Palette agent, copy the kubectl commands from the slide-out panel and execute them against your self-hosted cluster. + +7. Close the slide-out panel when you have copied both commands. The PCG Overview page **Cluster Status** field will display **Pending** while the PCG is deploying. The deployment is complete when the **Cluster Status** field displays the status **Running**. + + +## Validate + +When deployed, the PCG registers itself with Palette. Use the steps below to verify if the PCG registration is successful. + +1. Log in to [Palette](https://console.spectrocloud.com/). + + +2. Navigate to the **left Main Menu** and select **Tenant Settings**. + + +3. Next, on the **Tenant Settings Menu**, select **Private Cloud Gateways**. + + +4. Locate the PCG and verify it is installed and in the **Running** state. + + +## Next Steps + +When the PCG is in the **Running** state, you can create the Nutanix cloud account. For guidance, review the [Add Nutanix Cloud Account](/docs/docs-content/clusters/data-center/nutanix/add-nutanix-cloud-account.md) guide. diff --git a/docs/docs-content/clusters/data-center/nutanix/nutanix.md b/docs/docs-content/clusters/data-center/nutanix/nutanix.md new file mode 100644 index 00000000000..f349cf263da --- /dev/null +++ b/docs/docs-content/clusters/data-center/nutanix/nutanix.md @@ -0,0 +1,61 @@ +--- +sidebar_label: "Nutanix" +title: "Nutanix" +description: "Learn how to configure Nutanix and create Nutanix clusters in Palette." +hide_table_of_contents: false +sidebar_position: 10 +tags: ["data center", "nutanix"] +--- + + +[Nutanix](https://www.nutanix.com/what-we-do) is a hyper-converged infrastructure platform that combines storage, compute, and networking into a single integrated system. Palette provides a generic framework built upon the open-source [Cluster API (CAPI)](https://cluster-api.sigs.k8s.io) initiative to support adding cloud providers. As a Tech Preview of implementing this framework, you can deploy Kubernetes clusters on Nutanix using Palette. Integration with Nutanix is achieved through a Self-hosted Private Cloud Gateway (PCG), which establishes a secure connection with Nutanix Prism Central and allows Palette to monitor Nutanix clusters. + +:::caution +Nutanix is a Tech Preview feature and is subject to change. Do not use this feature in production workloads. +::: + + +## Get Started + +Learn how to deploy a cluster to Nutanix by using Palette. Check out the [Deploy a Cluster with Palette](../../public-cloud/deploy-k8s-cluster.md) tutorial to get started. + +The section below describes the workflow to register Nutanix with Palette and deploy a cluster. + +## Workflow + +The following summary steps outline the Nutanix cloud workflow illustrated in the diagram. Since only self-hosted instances of Palette and Palette VerteX have access to the system console by a [system administrator](../../../glossary-all.md#system-administrator), the registration step is performed at the system level, making the Nutanix cloud available to all the tenants. Regular Palette or VerteX users perform the remaining steps in Palette and their local environment. + +![Diagram showing the overall Nutanix workflow for users to construct self-hosted cloud solutions tailored to their environment.](/clusters_data-center_nutanix_workflow.png) + +1. A [system administrator](../../../glossary-all.md#system-administrator) registers Nutanix with Palette by preparing YAML templates to configure the cluster and node pools and invokes APIs to define the logo, required cloud account information and key-value pairs to create the Nutanix cloud account. Palette renders a default logo if no logo is specified. + +2. Create a Nutanix self-hosted PCG by installing Palette agents in your existing Kubernetes cluster using kubectl commands provided in the Palette UI. For guidance, review [Install Private Cloud Gateway](./install-pcg/install-pcg.md). + + When the PCG status displays the state **Running**, the PCG cluster is integrated with Palette. + + :::info + + Nutanix cloud requires the deployment of a PCG, which enables Palette to monitor clusters in the infrastructure provider environment. The PCG instance is installed on an existing Kubernetes cluster that must remain operational. + + ::: + +3. Next, add the Nutanix cloud account to Palette. Use the **drop-down Menu** to select the PCG name you provided when you configured it in the previous step. You must fill out the account name and account details. + +4. Create a cluster profile by selecting Nutanix as the cloud type. + + When creating a Nutanix profile, you do not have to specify anything for the OS or Kubernetes layers. Palette provides out-of-the-box packs for the network and storage profile layers, including the [**Nutanix CSI**](../../../integrations/nutanix-csi.md) storage pack. The **Nutanix CSI** pack is available when the cloud is registered using the name `nutanix`. If you have custom packs, you can add them to Palette by adding your registry. To learn how to add a pack registry, review [Add a Custom Registry](/docs/docs-content/registries-and-packs/adding-a-custom-registry.md). + +5. Deploy a cluster by specifying Nutanix, listed under **Tech Preview**, as the cluster type. Select the cloud account you added and make any needed changes to the profile layers by using the YAML editor. At the **Cluster Config** step, customize the Cluster configuration and Node configuration YAML files by replacing any undefined variables in curly braces, such as `${CLUSTER_NAME}`, with values for your environment. Make any other adjustments in the files to customize the cluster for your environment. Provide an OS image created by a Nutanix user with the *Prism Admin* role. For guidance on creating the image, refer to [Building CAPI Images for Nutanix Cloud Platform](https://image-builder.sigs.k8s.io/capi/providers/nutanix.html#building-capi-images-for-nutanix-cloud-platform-ncp). + + +## Resources + +- [Nutanix Architecture](architecture.md) + +- [Register Nutanix Cloud](register-nutanix-cloud.md) + +- [Install Private Cloud Gateway](./install-pcg/install-pcg.md) + +- [Add Nutanix Cloud Account](add-nutanix-cloud-account.md) + +- [Create and Manage Nutanix Cluster](create-manage-nutanix-cluster.md) diff --git a/docs/docs-content/clusters/data-center/nutanix/register-nutanix-cloud.md b/docs/docs-content/clusters/data-center/nutanix/register-nutanix-cloud.md new file mode 100644 index 00000000000..fbf0b9ac18c --- /dev/null +++ b/docs/docs-content/clusters/data-center/nutanix/register-nutanix-cloud.md @@ -0,0 +1,318 @@ +--- +sidebar_label: "Register Nutanix Cloud" +title: "Register Nutanix Cloud" +description: "Learn how to register a Nutanix cloud in Palette." +hide_table_of_contents: false +sidebar_position: 5 +tags: ["data center", "nutanix"] +--- + + +A [system administrator](../../../glossary-all.md#system-administrator) registers the Nutanix cloud in Palette by invoking system-level APIs. These APIs provide specific cloud information, the cloud logo, and the key-value pairs required to add the cloud to Palette. They also enable uploading the YAML templates used to create the cluster, control plane, and worker nodes. This section provides instructions on how to download and modify the YAML templates, as well as how to use the APIs to register a Nutanix cloud to Palette. + + +## Prerequisites + + +- Nutanix Prism Central with a supported version for CAPI version 1.2.x. Refer to the Nutanix [Validated Integrations](https://opendocs.nutanix.com/capx/v1.2.x/validated_integrations/#validated-versions) compatibility matrix. + +- The Nutanix CAPI version must be v1.2.x. + +- A Palette account with system console access. The user with this privilege is the [*system administrator*](../../../glossary-all.md#system-administrator) user of the self-hosted [Palette](https://docs.spectrocloud.com/enterprise-version/system-management/#system-console) or [VerteX](https://docs.spectrocloud.com/vertex/system-management/#system-console) instance. + +- A Nutanix logo downloaded. Review logo requirements in [Register the Cloud](#register-the-cloud). + +- [`curl`](https://curl.se/docs/install.html) command installed or the method of your choice to make API calls for standard Palette and Palette VerteX. + + + + +## Setup + +Use the following steps to prepare to register your cloud with Palette. + +### Customize YAML Configuration Files + +1. Access the [Nutanix CAPI Provider Releases](https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases) GitHub page and execute the commands below to download the following YAML files from a specific version of the Nutanix Cluster API Provider (CAPX) that is compatible with your environment. + + - **infrastructure-components.yaml** + - **cluster-template.yaml** + +
+ + :::caution + Review the [Nutanix compatibility matrix](https://opendocs.nutanix.com/capx/v1.2.x/validated_integrations/#validated-versions) to ensure you download a compatible CAPX version of the files. + ::: + + Export the CAPX version as an environment variable. For example, if you want to download version **v1.2.4**, issue the following command. + + ```bash + export CAPX_VERSION="v1.2.4" + ``` + + Next, issue the commands below to download the files. + + ```bash + curl -LO https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/download/$CAPX_VERSION/cluster-template.yaml + curl -LO https://github.com/nutanix-cloud-native/cluster-api-provider-nutanix/releases/download/$CAPX_VERSION/infrastructure-components.yaml + ``` + +2. Create two copies of `cluster-template.yaml` and rename them so you have the following files in addition to the `infrastructure-components.yaml`: + - **cloudClusterTemplate.yaml** + - **controlPlanePoolTemplate.yaml** + - **workerPoolTemplate.yaml** + + Use the following commands to copy and rename the files. + + ```bash + cp cluster-template.yaml cloudClusterTemplate.yaml + cp cluster-template.yaml controlPlanePoolTemplate.yaml + mv cluster-template.yaml workerPoolTemplate.yaml + ``` + +3. Open the **cloudClusterTemplate.yaml**, **controlPlanePoolTemplate.yaml**, and **workerPoolTemplate.yaml** files in the editor of your choice. + +4. Modify the YAML files to remove sections so that only those sections listed in the table below remain in each file. + + :::tip + + When editing the YAMLs, it is helpful to collapse the `spec` section to help you identify the sections to remove. + + ::: + + | **Templates** | **Objects** | + |--------------------------------|------------------------| + | **cloudClusterTemplate.yaml** | ConfigMap
Secret
Cluster
NutanixCluster
MachineHealthCheck | + | **controlPlanePoolTemplate.yaml**| KubeadmControlPlane
NutanixMachineTemplate | + | **workerPoolTemplate.yaml** | KubeadmConfigTemplate
MachineDeployment
NutanixMachineTemplate | + + +5. In all three templates, remove all occurrences of `${NAMESPACE}`, as Palette provides its own namespace. + +6. In **controlPlanePoolTemplate.yaml**, edit the KubeadmControlPlane object. Rename `machineTemplate.name: ${CLUSTER_NAME}-mt-0` as `${CLUSTER_NAME}-cp-0`. + +7. In **controlPlanePoolTemplate.yaml**, edit the NutanixMachineTemplate object. Rename `name: ${CLUSTER_NAME}-mt-0` as `${CLUSTER_NAME}-cp-0`, and change `providerID` to `nutanix://${CLUSTER_NAME}-m1-cp-0`. + + :::caution + The `${CLUSTER_NAME}-cp-0` parameters for the KubeadmControlPlane and NutanixMachineTemplate objects must have the same name. + ::: + +8. In **controlPlanePoolTemplate.yaml**, edit the KubeadmControlPlane object to enable the [**Nutanix CSI**](../../../integrations/nutanix-csi.md) pack. Include a new line with the `- systemctl enable --now iscsid` command below the `preKubeadmCommands:` line, keeping proper indentation as illustrated below. + + ```bash + preKubeadmCommands: + - systemctl enable --now iscsid + ``` + +9. In **workerPoolTemplate.yaml**, change `providerID` to `providerID: nutanix://${CLUSTER_NAME}-m1-mt-0` within the `NutanixMachineTemplate` object. + +10. In **workerPoolTemplate.yaml**, edit the KubeadmConfigTemplate object to enable the [**Nutanix CSI**](../../../integrations/nutanix-csi.md) pack. Include a new line with the `- systemctl enable --now iscsid` command below the `preKubeadmCommands:` line, keeping proper indentation as illustrated below. + + ```bash + preKubeadmCommands: + - systemctl enable --now iscsid + ``` + + :::caution + The following modifications in steps 11 and 12 are only applicable to VerteX instances. + ::: + +10. In **controlPlanePoolTemplate.yaml**, edit the KubeadmControlPlane object. Include a new line with `rotate-server-certificates: "true"` below the two occurrences of the `kubeletExtraArgs:` line, keeping proper indentation as illustrated below. + + ```bash + kubeletExtraArgs: + rotate-server-certificates: "true" + ``` + +11. In **workerPoolTemplate.yaml**, edit the KubeadmConfigTemplate object. Include a new line with `rotate-server-certificates: "true"` below the `kubeletExtraArgs:` line, keeping proper indentation as illustrated below. + + ```bash + kubeletExtraArgs: + rotate-server-certificates: "true" + ``` + + +## Validate + +Use the steps below to confirm you have the required files and verify the required sections are removed and modified. + +1. From your terminal, issue a command such as `ls -l` to list the files and confirm you have the following YAML templates: + + - infrastructure-components.yaml + - cloudClusterTemplate.yaml + - controlPlanePoolTemplate.yaml + - workerPoolTemplate.yaml + + +2. Ensure each template contains objects as listed in the table. + + | **Templates** | **Objects** | + |--------------------------------|------------------------| + | **cloudClusterTemplate.yaml** | ConfigMap
Secret
Cluster
NutanixCluster
MachineHealthCheck | + | **controlPlanePoolTemplate.yaml**| KubeadmControlPlane
NutanixMachineTemplate | + | **workerPoolTemplate.yaml** | KubeadmConfigTemplate
MachineDeployment
NutanixMachineTemplate | + +3. Open each file and verify that all occurrences of `${NAMESPACE}` are removed. + +4. In the **controlPlanePoolTemplate.yaml** file, ensure `${CLUSTER_NAME}-cp-0` for the KubeadmControlPlane and NutanixMachineTemplate objects have the same name. + +5. Verify parameters are modified as described for each template in steps 6 and 7 of [Customize YAML Configuration Files](#customize-yaml-configuration-files). + +## Register the Cloud + +Follow the steps below from your terminal to set the environment variables and invoke the APIs required to register a Nutanix cloud to Palette. Alternatively, you can use an API platform such as [Postman](https://www.postman.com/). + +:::caution + +The logo file must not exceed 100KB in size. To ensure image quality ensure at least one dimension in either width or height is 40 pixels. It is preferable that the image be transparent. + +::: + +1. Export the URL of your self-hosted Palette or VerteX instance and the cloud type as environment variables. Additionally, export the path to the YAML templates and logo file. + + ```bash + export ENDPOINT="https://palette.example.com" + export CLOUD_TYPE="nutanix" + export cloudLogo="/path/to/the/file/cloud-logo.png" + export infraComponents="/path/to/the/file/infrastructure-components.yaml" + export cloudClusterTemplate="/path/to/the/file/cloudClusterTemplate.yaml" + export controlPlanePoolTemplate="/path/to/the/file/controlPlanePoolTemplate.yaml" + export workerPoolTemplate="/path/to/the/file/workerPoolTemplate.yaml" + ``` + + :::caution + The CLOUD_TYPE variable value must be set as `nutanix`, as this value will be used in the following steps. + + Moreover, in the cloud registration API, set `name` as `nutanix`. Setting `name` as `nutanix` will make the out-of-the-box [**Nutanix CSI**](../../../integrations/nutanix-csi.md) pack available to users when they create a cluster profile in Palette. + ::: + +2. To acquire system administrator credentials, use the `/v1/auth/syslogin` endpoint. Issue the `curl` command below and ensure you replace the credentials with your system console credentials. + + ```bash + curl --location "${ENDPOINT}/v1/auth/syslogin" \ + --header 'Content-Type: application/json' \ + --data '{ + "password": "**********", + "username": "**********" + }' + ``` + + The output contains your authorization token. The token is valid for 15 minutes. + + ```bash hideClipBoard + { + "Authorization": "**********", + "IsPasswordReset": true + } + ``` + +3. Copy the authorization token, assign it to a `TOKEN` shell variable, and export it. Replace the authorization value below with the value from the output. + + ```bash + export TOKEN="**********" + ``` + +4. Register the Nutanix cloud type in Palette using the `/v1/clouds/cloudTypes/register` endpoint. + + ```bash + curl --location --request POST "${ENDPOINT}/v1/clouds/cloudTypes/register" \ + --header "Content-Type: application/json" \ + --header "Authorization: ${TOKEN}" \ + --data '{ + "metadata": { + "annotations": {}, + "labels": {}, + "name": "nutanix" + }, + "spec": { + "displayName": "Nutanix", + "isControlPlaneManaged": false + } + }' + ``` + +5. Upload the Nutanix cloud logo. + + ```bash + curl --location --request PUT "${ENDPOINT}/v1/clouds/cloudTypes/${CLOUD_TYPE}/logo" \ + --header "Authorization: ${TOKEN}" \ + --form "fileName=@${cloudLogo}" + ``` + +6. Register the cloud provider. + + ```bash + curl --location --request PUT "${ENDPOINT}/v1/clouds/cloudTypes/${CLOUD_TYPE}/content/cloudProvider" \ + --header "Content-Type: multipart/form-data" \ + --header "Authorization: ${TOKEN}" \ + --form "fileName=@${infraComponents}" + ``` + +7. Register the cluster template. + + ```bash + curl --location --request PUT "${ENDPOINT}/v1/clouds/cloudTypes/${CLOUD_TYPE}/content/templates/clusterTemplate" \ + --header "Content-Type: multipart/form-data" \ + --header "Authorization: ${TOKEN}" \ + --form "fileName=@${cloudClusterTemplate}" + ``` + +8. Register the control plane pool template. + + ```bash + curl --location --request PUT "${ENDPOINT}/v1/clouds/cloudTypes/${CLOUD_TYPE}/content/templates/controlPlanePoolTemplate" \ + --header "Content-Type: multipart/form-data" \ + --header "Authorization: ${TOKEN}" \ + --form "fileName=@${controlPlanePoolTemplate}" + ``` + +9. Register the worker pool template. + + ```bash + curl --location --request PUT "${ENDPOINT}/v1/clouds/cloudTypes/${CLOUD_TYPE}/content/templates/workerPoolTemplate" \ + --header "Content-Type: multipart/form-data" \ + --header "Authorization: ${TOKEN}" \ + --form "fileName=@${workerPoolTemplate}" + ``` + +10. Register the cloud account keys. + + ```bash + curl --location --request PUT "${ENDPOINT}/v1/clouds/cloudTypes/${CLOUD_TYPE}/cloudAccountKeys" \ + --header "Content-Type: application/json" \ + --header "Authorization: ${TOKEN}" \ + --data '{ + "keys": [ + "NUTANIX_USER", + "NUTANIX_PASSWORD", + "NUTANIX_ENDPOINT", + "NUTANIX_PORT", + "NUTANIX_INSECURE" + ] + }' + ``` + +## Validate + +Use the steps below to confirm that the Nutanix cloud is successfully registered in Palette. + +1. Log in to [Palette](https://console.spectrocloud.com/) as a tenant admin. + +2. Navigate to the **left Main Menu** and select **Tenant Settings**. + +3. Next, on the **Tenant Settings Menu**, select **Cloud Accounts**. + +4. Verify that the added Nutanix account section is listed. You may need to scroll to view the account. + + +## Next Steps + +Now that your cloud is successfully registered with Palette, you are ready to deploy a self-hosted Private Cloud Gateway (PCG). For guidance, review [Install Private Cloud Gateway](./install-pcg/install-pcg.md). + + + + + + + + diff --git a/docs/docs-content/glossary-all.md b/docs/docs-content/glossary-all.md index 48f953b7bd9..1b46522ac64 100644 --- a/docs/docs-content/glossary-all.md +++ b/docs/docs-content/glossary-all.md @@ -170,6 +170,9 @@ TUI is initially used as an interface to site operator to provide site-specific ## Spectro Agent Spectro Agent bridges the information transfer between Palette SaaS and Palette Orchestrator. The Spectro Agent collects information such as metrics, workloads, and heartbeats and constantly updates to the SaaS platform for user access. In addition to this, the Spectro Agent is responsible for initiating and controlling Backup, OS-Patch, and Compliance Scan on the running cluster. +## System Administrator +The self-hosted Palette or Palette VerteX user with access to the [system console](#system-console-on-prem-system-console). + ## System Console (On-prem System Console) The console is used to scale up the Enterprise cluster and manage it. The System console supports creating and activating a new tenant in a new instance. It Initiates the installation of a Palette Enterprise Cluster. The On-Prem System Console provides various administrative setup tasks. Most of these are optional and can be performed at any time. To quickly start using the platform's functionality, all that is needed is to create the first tenant and activate it.Initial login:admin/admin. diff --git a/docs/docs-content/integrations/nutanix-csi.md b/docs/docs-content/integrations/nutanix-csi.md new file mode 100644 index 00000000000..e7014b05eae --- /dev/null +++ b/docs/docs-content/integrations/nutanix-csi.md @@ -0,0 +1,93 @@ +--- +sidebar_label: "Nutanix CSI" +title: "Nutanix CSI" +description: "Learn how to use the Nutanix CSI pack to provide persistent storage for your applications." +hide_table_of_contents: true +type: "integration" +category: ["storage", "amd64"] +sidebar_class_name: "hide-from-sidebar" +logoUrl: "https://registry.dev.spectrocloud.com/v1/nutanix-csi/blobs/sha256:7944cb5fecaaac0b5d5bf47a311ab80573147a34ac438954a70f97c69d65d733?type=image/png" +tags: ["packs", "Nutanix", "Storage"] +--- + +The Nutanix Container Storage Interface (CSI) pack provides persistent storage for stateful applications. The pack consists of two Helm charts - **nutanix-csi-storage** and **nutanix-cloud-provider**. + +The Nutanix Container Storage Interface (CSI) Volume Driver chart leverages Nutanix Volumes and Nutanix Files to provide scalable and persistent storage for applications. + +The Nutanix Cloud Provider chart is a plugin that allows the integration of the Nutanix Acropolis Hypervisor (AHV) platform with Kubernetes by implementing a node controller function. + + +## Versions Supported + +- 2.6.6 + + +## Prerequisites + +- A Nutanix Prism Central account. + +- A Nutanix Prism Element cluster created. + +- A Nutanix cloud registered with Palette with the name `nutanix`. For more information, refer to [Register Nutanix Cloud](../clusters/data-center/nutanix/register-nutanix-cloud.md). + +- The cluster must use Kubernetes version 1.20 or higher. + + +## Parameters + +The table below lists commonly used parameters you can configure when adding the Nutanix CSI pack. Review the [Nutanix CSI Pack](https://github.com/spectrocloud/pax/edit/master/stable/storage/nutanix-csi-2.6.6/README.md) GitHub page for a complete parameters list. + +|**Parameter**|**Description**|**Default**| +|-------------|---------------|-----------| +|`nutanix-cloud-provider.createConfig`| Creates a config for the Nutanix Cloud Provider. The existing config will be used if this parameter is set as `false`. |`true`| +|`nutanix-cloud-provider.configName`| Name of the ConfigMap for the Nutanix Cloud Provider config. |`nutanix-config`| +|`nutanix-cloud-provider.createSecret`| Creates a secret for the Nutanix Cloud Provider. The existing secret will be used if this parameter is set as `false`. |`true`| +|`nutanix-cloud-provider.enableCustomLabeling`| Adds additional and custom Nutanix labels to nodes. |`false`| +|`nutanix-cloud-provider.topologyDiscovery.type`| Defines how topology will be discovered (Prism or Categories). |`Prism`| +|`nutanix-cloud-provider.podAnnotations`| Adds annotations to the Cloud Provider Pod. |`{}`| +|`nutanix-csi-storage.volumeClass`| Activates the Nutanix Volumes Storage Class. |`false`| +|`nutanix-csi-storage.volumeClassName`| Name of the Nutanix Volumes Storage Class. |`nutanix-volume`| +|`nutanix-csi-storage.volumeClassRetention`| Retention policy for the Volumes Storage Class (Delete or Retain). |`Delete`| +|`nutanix-csi-storage.fileClass`| Activates Nutanix Files Storage Class. |`false`| + + +## Usage + +Palette provides a default Volume storage class called `spectro-storage-class` to allow applications requiring volumes to access persistent volumes. This storage class is created by the Nutanix CSI pack. + +A storage container must be configured in the Prism Element UI to enable the pack to create the storage class. Once the storage container is configured, specify its name during the cluster profile creation. The container name must be included in the values of the `nutanix-csi-storage` chart, under the `storageContainer:` line. The code snippet below showcases an example configuration with a storage container named **test-container**. + +```bash +storageContainer: "test-container" +``` + +Nutanix Volumes utilize an Internet Small Computer System Interface (iSCSI) data service IP address to provide access to cluster storage. In the Prism Element UI, go to the **Cluster Details** page and configure the iSCSI Data services IP address as described in the [Adding an ISCSI Data Services IP Address](https://portal.nutanix.com/page/documents/details?targetId=Volumes-Guide:vol-cluster-details-modify-wc-t.html) guide. + +:::caution +The iSCSI daemon needs to be enabled during the Nutanix cloud registration step. Refer to the [Register Nutanix Cloud](../clusters/data-center/nutanix/register-nutanix-cloud.md) to learn more about the Nutanix registration process. +::: + + +## Terraform + +You can reference the Nutanix CSI pack in Terraform with the following data resource. + +```hcl +data "spectrocloud_registry" "public_registry" { + name = "Public Repo" +} +data "spectrocloud_pack_simple" "nutanix-csi" { + name = "nutanix-csi" + version = "2.6.6" + type = "helm" + registry_uid = data.spectrocloud_registry.public_registry.id +} +``` + + +## References + +- [Nutanix Documentation](https://www.nutanixbible.com) +- [Nutanix Cloud Controller Manager on GitHub](https://github.com/nutanix-cloud-native/cloud-provider-nutanix) +- [Nutanix CSI Volume Driver Documentation](https://portal.nutanix.com/page/documents/details?targetId=CSI-Volume-Driver-v2_6:CSI-Volume-Driver-v2_6) +- [Nutanix CSI Pack on GitHub](https://github.com/spectrocloud/pax/tree/master/stable/storage/nutanix-csi-2.6.6) \ No newline at end of file diff --git a/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-cluster-profiles.md b/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-cluster-profiles.md index beb4e0f042e..010d2091859 100644 --- a/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-cluster-profiles.md +++ b/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-cluster-profiles.md @@ -25,6 +25,7 @@ Palette provides three types of cluster profiles: - *Full* - contains both infrastructure and add-on layers. + For a detailed description of each profile type and the layers they contain, review [Cluster Profiles](../cluster-profiles.md). The next sections provide guidance in creating each type of profile. diff --git a/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-full-profile.md b/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-full-profile.md index 8904c9497e1..8d3c75fb3d2 100644 --- a/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-full-profile.md +++ b/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-full-profile.md @@ -34,7 +34,13 @@ Create a full profile by first adding infrastructure layers composed of an Opera To learn how to create multiple profile versions that use the same name, check out [Version a Cluster Profile](../modify-cluster-profiles/version-cluster-profile.md). -5. Select the infrastructure provider or managed Kubernetes for your environment and click **Next**. +5. Select the Infrastructure Provider, Managed Kubernetes, or Tech Preview cloud type for your environment and click **Next**. + + :::info + Cluster profiles created from a Tech Preview cloud type are intended for clusters that a cloud provider deploys using Palette's generic framework built upon the open-source Cluster API (CAPI) initiative. + + When creating a profile using a Tech Preview cloud type, you do not have to specify anything for the OS or Kubernetes layers. Out-of-the-box packs are provided for the network and storage profile layers. + ::: 6. Configure the infrastructure layers by selecting the registry, pack name, and pack version for each layer. Click **Next Layer** to configure each infrastructure layer. diff --git a/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-infrastructure-profile.md b/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-infrastructure-profile.md index a2af266d632..271c6842636 100644 --- a/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-infrastructure-profile.md +++ b/docs/docs-content/profiles/cluster-profiles/create-cluster-profiles/create-infrastructure-profile.md @@ -34,7 +34,13 @@ Create an infrastructure profile by adding layers composed of an Operating Syste To learn more about creating multiple profile versions, check out [Version a Cluster Profile](../modify-cluster-profiles/version-cluster-profile.md). -5. Select the infrastructure provider or managed Kubernetes for your environment and click **Next**. +5. Select the Infrastructure Provider, Managed Kubernetes, or Tech Preview cloud type for your environment and click **Next**. + + :::info + Cluster profiles created from a Tech Preview cloud type are intended for clusters that a cloud provider deploys using Palette's generic framework built upon the open-source Cluster API (CAPI) initiative. + + When creating a profile using a Tech Preview cloud type, you do not have to specify anything for the OS or Kubernetes layers. Out-of-the-box packs are provided for the network and storage profile layers. + ::: 6. Configure the infrastructure layers by selecting the registry, pack name, and pack version for each layer. Click **Next Layer** to configure each infrastructure layer. diff --git a/static/assets/docs/images/clusters_data-center_nutanix_architecture.png b/static/assets/docs/images/clusters_data-center_nutanix_architecture.png new file mode 100644 index 00000000000..219d0a42807 Binary files /dev/null and b/static/assets/docs/images/clusters_data-center_nutanix_architecture.png differ diff --git a/static/assets/docs/images/clusters_data-center_nutanix_workflow.png b/static/assets/docs/images/clusters_data-center_nutanix_workflow.png new file mode 100644 index 00000000000..8ac54954366 Binary files /dev/null and b/static/assets/docs/images/clusters_data-center_nutanix_workflow.png differ diff --git a/vale/styles/Vocab/Internal/accept.txt b/vale/styles/Vocab/Internal/accept.txt index 37bd674dd74..2a8540e847a 100644 --- a/vale/styles/Vocab/Internal/accept.txt +++ b/vale/styles/Vocab/Internal/accept.txt @@ -167,6 +167,7 @@ Okta Keycloak Simple Mail Transfer Protocol NIC +Nutanix autoscale initContainer ethernet