Fare riferimento a questo esempio per eseguire il provisioning di un cluster v1beta1 con la CNI di Calico anziché la CNI predefinita di Antrea. È inoltre possibile fare riferimento a questo esempio per istruzioni sulla personalizzazione di uno o più pacchetti TKR per un cluster.

Esempio v1beta1: cluster con CNI personalizzata

Il file YAML di esempio seguente illustra come utilizzare l'API v1beta1 per eseguire il provisioning di un cluster con una CNI personalizzata. Questo esempio si basa su Esempio v1beta1: cluster predefinito.

In base a quanto definito in tanzukubernetescluster ClusterClass, la CNI predefinita è Antrea. L'altra CNI supportata è Calico. Per modificare la CNI da Antrea a Calico sostituire la CNI predefinita creando una risorsa personalizzata ClusterBootstrap che faccia riferimento a una risorsa personalizzata CalicoConfig.

La risorsa personalizzata ClusterBootstrap include il blocco spec.cni.refName con il valore che proviene dalla TKR. (Vedere Pacchetti TKr per istruzioni su come ottenere il valore per questo campo.) Il valore ClusterBootstrap sovrascrive il valore predefinito in ClusterClass e viene prelevato dall'API cluster (CAPI) quando viene creato il cluster. Il nome della risorsa personalizzata ClusterBootstrap deve essere uguale a quello della risorsa Cluster.
Nota: L'esempio viene fornito come singolo file YAML, ma può essere separato in singoli file. Se si esegue questa operazione, è necessario crearle in ordine: prima la risorsa personalizzata CalicoConfig, quindi il cluster ClusterBootstrap e infine il 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