Consulte este exemplo para provisionar um cluster v1beta1 com o Calico CNI em vez do padrão Antrea CNI. Você também pode consultar este exemplo para obter orientação sobre como personalizar um ou mais pacotes TKR para um cluster.

Exemplo de v1beta1: cluster com CNI personalizada

O exemplo de YAML a seguir demonstra como usar a API v1beta1 para provisionar um cluster com uma CNI personalizada. Este exemplo se baseia no Exemplo de v1beta1: cluster padrão.

Conforme definido no tanzukubernetescluster ClusterClass, o CNI padrão é Antrea. A outra CNI compatível é Calico. Para alterar a CNI de Antrea para Calico, você sobrecarrega a CNI padrão criando um recurso personalizado ClusterBootstrap que faz referência a um recurso personalizado CalicoConfig.

O recurso personalizado ClusterBootstrap inclui o bloco spec.cni.refName com o valor que vem do TKR. (Consulte Pacotes TKR para obter orientação sobre como obter o valor para esse campo.) O valor ClusterBootstrap substitui o valor padrão no ClusterClass e é selecionado pela API de cluster (CAPI) quando o cluster é criado. O nome do recurso personalizado ClusterBootstrap deve ser o mesmo que o Cluster.
Observação: O exemplo é fornecido como um único arquivo YAML, mas pode ser separado em arquivos individuais. Se você fizer isso, deverá criá-los na ordem: primeiro o recurso personalizado CalicoConfig, depois o ClusterBootstrap e, em seguida, o cluster 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