Skip to content

Commit

Permalink
docs: addressed suggestions
Browse files Browse the repository at this point in the history
  • Loading branch information
caroldelwing committed Dec 20, 2023
1 parent a69d724 commit 6c57131
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 23 deletions.
3 changes: 3 additions & 0 deletions docs/docs-content/clusters/data-center/data-center.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,6 @@ The following pages provide detailed instructions for setting up new workload cl

- [VMware](vmware.md)


- [Nutanix](nutanix/nutanix.md)

Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,5 @@ Below are key architectural highlights of Nutanix clusters provisioned through P

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)

![Network flow from an architectural perspective of how Nutanix works with Palette.](/clusters_data-center_nutanix_architecture.png)
21 changes: 14 additions & 7 deletions docs/docs-content/clusters/data-center/nutanix/install-pcg.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ A Private Cloud Gateway (PCG) is required to connect your Nutanix cloud with Pal

- A Nutanix subnet created in Nutanix Prism Central.

- A Kubernetes cluster.
- A Kubernetes cluster. A suggested configuration is provided in the [Setup](#setup) section of this page.

- A Nutanix cloud registered with Palette. For information about registering your cloud, review [Register Nutanix Cloud](register-nutanix-cloud.md).

Expand Down Expand Up @@ -58,8 +58,8 @@ Use the following steps to prepare for deploying the PCG.
| `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 workload cluster name.|
| `NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME` | ?? |
| `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. |
Expand Down Expand Up @@ -99,7 +99,7 @@ Use the following steps to prepare for deploying the PCG.
4. Instantiate Nutanix Cluster API.

```bash
clusterctl init -infrastructure nutanix
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.
Expand Down Expand Up @@ -133,19 +133,26 @@ Use the following steps to prepare for deploying the PCG.

### Install CNI on Workload Cluster

6. Deploy a Container Network Interface (CNI) pod network 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.
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. To verify the CNI pod network, issue the following command.

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
```

Output
The output should display your nodes with a **Ready** status.

```bash hideClipBoard
NAME STATUS ROLES AGE VERSION
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,15 +118,21 @@ Use the steps below to confirm you have the required files and verify the requir
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
During the registration process, the template files and logo file must be located in the same directory where you execute the curl commands in the steps below. The logo file must not exceed 100KB in size.

The Nutanix logo file must not exceed 100KB in size.

:::

1. Export the URL of your self-hosted Palette or VerteX instance and the cloud type as environment variables.
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 to the 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
Expand Down Expand Up @@ -164,7 +170,7 @@ During the registration process, the template files and logo file must be locate
```bash
curl --location --request POST "${ENDPOINT}/v1/clouds/cloudTypes/register" \
--header "Content-Type: application/json" \
--header "Cookie: Authorization=${TOKEN}" \
--header "Authorization: ${TOKEN}" \
--data "{
"metadata": {
"annotations": {},
Expand All @@ -182,44 +188,44 @@ During the registration process, the template files and logo file must be locate

```bash
curl --location --request PUT "${ENDPOINT}/v1/clouds/cloudTypes/${CLOUD_TYPE}/logo" \
--header "Cookie: Authorization=${TOKEN}" \
--form "fileName=@${cloud-logo.png}"
--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 "Cookie: Authorization=${TOKEN}" \
--form "fileName=@${infrastructure-components.yaml}"
--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 "Cookie: Authorization=${TOKEN}" \
--form "fileName=@${cloudClusterTemplate.yaml}"
--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 "Cookie: Authorization=${TOKEN}" \
--form "fileName=@${controlPlanePoolTemplate.yaml}"
--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 "Cookie: Authorization=${TOKEN}" \
--form "fileName=@${workerPoolTemplate.yaml}"
--header "Authorization: ${TOKEN}" \
--form "fileName=@${workerPoolTemplate}"
```

## Validate
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 6c57131

Please sign in to comment.