Skip to content

Commit

Permalink
Document Nutanix (#1883)
Browse files Browse the repository at this point in the history
* Create Nutanix file structure

* Add steps to install PCG & add Nutanix cloud acct.

* Add content for create cluster, update profile docs

* Add Nutanix index pg & architecture doc and diagram

* Modify diagram metadata, add cloud acct doc, add tables

* Adjust sidebar placement

* chore: center images and round image corners

* Update register cloud

* Notes and updates based on eng. demo

* Remove a question to myself

* Add workflow

* Draft cluster creation, add varables that user provides values for

* Edits to pcg and add accnt, add workflow diagram

* Update cluster creation

* Move Register doc up in nav pane, edits to Create Cluster doc

* Add info block to profiles sections, and remove "custom".

* Add input from review comments

* Small updates to several files

* Add info to Register - some will move to PCG

* Add setup steps to PCG doc

* Add curl commands, edits to pcg

* Revise Register and infobox for profiles

* Revise workflow to be Nutanix-specific

* Minor changes

* Add next steps

* minor edit

* Optimised images with calibre/image-actions

* Modify label in diagram

* Optimised images with calibre/image-actions

* add diagram

* Optimised images with calibre/image-actions

* Incorporate review comments

* Apply more comments

* docs: addressed review suggestions and added Nutanix to Vale

* docs: fixed broken link

* Incorporate more changes

* docs: addressed suggestions

* Optimised images with calibre/image-actions

* Incorporate review comments

* Incorporate more changes

* Apply suggestions from code review

Co-authored-by: Romain Decker <deckerromain@gmail.com>

* Apply suggestions from code review

Co-authored-by: Romain Decker <deckerromain@gmail.com>

* Incorporated still more review comments

* docs: replace Nutanix architecture diagram

* Optimised images with calibre/image-actions

* Add proofing edits, add updated arch. diagram

* Optimised images with calibre/image-actions

* Fix variable description

* Apply  review comments

* Move Setup section for PCG

* docs: apply suggestions from code review

* docs: added cloud account keys API

* docs: update PCG sectiom, add NUTANIX_PORT

* docs: update arch diagram, add rotate-server-certificate:true

* docs: add new page for PCG cluster

* docs: add curl commands, add input from review

* docs: add sys admin to the glossary

* Optimised images with calibre/image-actions

* docs: fixed broken link

* docs: apply suggestions from code review

* docs: add nutanix-csi pack page

* docs: update arch diagram, review nutanix csi pack page

* Optimised images with calibre/image-actions

---------

Co-authored-by: Lenny Chen <lenny.chen@spectrocloud.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Karl Cardenas <karl@spectrocloud.com>
Co-authored-by: Carolina Delwing Rosa <carolina.delwing@spectrocloud.com>
Co-authored-by: Romain Decker <deckerromain@gmail.com>
  • Loading branch information
6 people authored Jan 5, 2024
1 parent 9cc7579 commit a91c234
Show file tree
Hide file tree
Showing 16 changed files with 933 additions and 3 deletions.
3 changes: 2 additions & 1 deletion docs/docs-content/clusters/data-center/data-center.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)


Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions docs/docs-content/clusters/data-center/nutanix/architecture.md
Original file line number Diff line number Diff line change
@@ -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)
Original file line number Diff line number Diff line change
@@ -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 Prism Central cloud account. For more information, review [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**.

Loading

0 comments on commit a91c234

Please sign in to comment.