Consulte este ejemplo para aprovisionar un clúster v1beta1 con la CNI de Calico en lugar de la CNI de Antrea predeterminada. También puede consultar este ejemplo para obtener instrucciones sobre cómo personalizar uno o varios paquetes de TKR para un clúster.

Ejemplo de v1beta1: clúster con CNI personalizada

El siguiente ejemplo de YAML demuestra cómo utilizar la API de v1beta1 para aprovisionar un clúster con una CNI personalizada. Este ejemplo se basa en Ejemplo de v1beta1: clúster predeterminado.

Como se define en tanzukubernetescluster ClusterClass, la CNI predeterminada es Antrea. La otra CNI admitida es Calico. Para cambiar la CNI de Antrea a Calico, sobrecargue la CNI predeterminada creando un recurso personalizado de ClusterBootstrap que haga referencia a un recurso personalizado de CalicoConfig.

El recurso personalizado de ClusterBootstrap incluye el bloque spec.cni.refName con el valor que proviene del TKR. (Consulte Paquetes de TKR para obtener instrucciones sobre cómo obtener el valor de este campo). El valor de ClusterBootstrap sobrescribe el valor predeterminado en ClusterClass y lo selecciona la API del clúster (CAPI) cuando se crea el clúster. El nombre del recurso personalizado ClusterBootstrap debe ser el mismo que el Cluster.
Nota: El ejemplo se proporciona como un único archivo YAML, pero se puede separar en archivos individuales. Si hace esto, debe crearlos en orden: primero el recurso personalizado de CalicoConfig y, a continuación, el ClusterBootstrap y el clúster de cluster-calico.
---
apiVersion: cni.tanzu.vmware.com/v1alpha1
kind: CalicoConfig
metadata:
  name: cluster-calico
spec:
  calico:
    config:
      vethMTU: 0
---
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
  annotations:
    tkg.tanzu.vmware.com/add-missing-fields-from-tkr: v1.23.8---vmware.2-tkg.2-zshippable
  name: cluster-calico
spec:
  cni:
    refName: calico.tanzu.vmware.com.3.22.1+vmware.1-tkg.2-zshippable
    valuesFrom:
      providerRef:
        apiGroup: cni.tanzu.vmware.com
        kind: CalicoConfig
        name: cluster-calico
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: cluster-calico
spec:
  clusterNetwork:
    services:
      cidrBlocks: ["198.51.100.0/12"]
    pods:
      cidrBlocks: ["192.0.2.0/16"]
    serviceDomain: "cluster.local"
  topology:
    class: tanzukubernetescluster
    version: v1.23.8---vmware.2-tkg.2-zshippable
    controlPlane:
      replicas: 3
    workers:
      machineDeployments:
        - class: node-pool
          name: node-pool-1
          replicas: 3
    variables:
      - name: vmClass
        value: guaranteed-medium
      - name: storageClass
        value: tkg2-storage-policy