This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Nutanix

The customizations in this section are applicable only to Nutanix clusters. They will only be applied to clusters that use the Nutanix infrastructure provider, i.e. a CAPI Cluster that references an NutanixCluster.

1 - Control Plane Endpoint

Configure Control Plane Endpoint. Defines the host IP and port of the CAPX Kubernetes cluster.

Examples

Set Control Plane Endpoint

apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: <NAME>
spec:
  topology:
    variables:
      - name: clusterConfig
        value:
          nutanix:
            controlPlaneEndpoint:
              host: x.x.x.x
              port: 6443

Applying this configuration will result in the following value being set:

  • NutanixCluster:
spec:
  template:
    spec:
      controlPlaneEndpoint:
        host: x.x.x.x
        port: 6443

2 - Machine Details

Configure Machine Details of Control plane and Worker nodes

Examples

Set Machine details of Control Plane and Worker nodes

apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: <NAME>
spec:
  topology:
    variables:
      - name: clusterConfig
        value:
          controlPlane:
            nutanix:
              machineDetails:
                bootType: legacy
                cluster:
                  name: pe-cluster-name
                  type: name
                image:
                  name: os-image-name
                  type: name
                memorySize: 4Gi
                subnets:
                - name: subnet-name
                  type: name
                systemDiskSize: 40Gi
                vcpuSockets: 2
                vcpusPerSocket: 1
      - name: workerConfig
        value:
          nutanix:
            machineDetails:
              bootType: legacy
              cluster:
                name: pe-cluster-name
                type: name
              image:
                name: os-image-name
                type: name
              memorySize: 4Gi
              subnets:
              - name: subnet-name
                type: name
              systemDiskSize: 40Gi
              vcpuSockets: 2
              vcpusPerSocket: 1

Applying this configuration will result in the following value being set:

  • control-plane NutanixMachineTemplate:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: NutanixMachineTemplate
metadata:
  name: nutanix-quick-start-cp-nmt
spec:
  template:
    spec:
      bootType: legacy
      cluster:
        name: pe-cluster-name
        type: name
      image:
        name: os-image-name
        type: name
      memorySize: 4Gi
      providerID: nutanix://vm-uuid
      subnet:
      - name: subnet-name
        type: name
      systemDiskSize: 40Gi
      vcpuSockets: 2
      vcpusPerSocket: 1
  • worker NutanixMachineTemplate:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: NutanixMachineTemplate
metadata:
  name: nutanix-quick-start-md-nmt
spec:
  template:
    spec:
      bootType: legacy
      cluster:
        name: pe-cluster-name
        type: name
      image:
        name: os-image-name
        type: name
      memorySize: 4Gi
      providerID: nutanix://vm-uuid
      subnet:
      - name: subnet-name
        type: name
      systemDiskSize: 40Gi
      vcpuSockets: 2
      vcpusPerSocket: 1

3 - Prism Central Endpoint

Configure Prism Central Endpoint to create machines on.

Examples

Set Prism Central Endpoint

apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: <NAME>
spec:
  topology:
    variables:
      - name: clusterConfig
        value:
          nutanix:
            prismCentralEndpoint:
              credentials:
                name: secret-name
              url: https://x.x.x.x:9440
              insecure: false

Applying this configuration will result in the following value being set:

  • NutanixClusterTemplate:
spec:
  template:
    spec:
      prismCentral:
        address: x.x.x.x
        insecure: false
        port: 9440
        credentialRef:
          kind: Secret
          name: secret-name

Provide an Optional Trusted CA Bundle

If the Prism Central endpoint uses a self-signed certificate, you can provide an additional trust bundle to be used by the Nutanix provider. This is a base64 PEM encoded x509 cert for the RootCA that was used to create the certificate for a Prism Central

See Nutanix Security Guide for more information.

apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: <NAME>
spec:
  topology:
    variables:
      - name: clusterConfig
        value:
          nutanix:
            prismCentralEndpoint:
              # ...
              additionalTrustBundle: "LS0...="

Applying this configuration will result in the following value being set:

  • NutanixClusterTemplate:
spec:
  template:
    spec:
      prismCentral:
        # ...
        additionalTrustBundle:
          kind: String
          data: |-
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----