This KB outlines how to make changes in the Control Plane components' extra arguments for TKGm workload clusters.
The procedure will depend on whether the clusters are of legacy (plan-based) or classy (ClusterClass-based) type.
A list of available arguments for each Control Plane component can be found in:
".spec.kubeadmConfigSpec.clusterConfiguration.<component-name>".spec: kubeadmConfigSpec: clusterConfiguration: controllerManager: extraArgs: cloud-provider: external tls-cipher-suites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 bind-address: 0.0.0.0 etcd: local: dataDir: /var/lib/etcd extraArgs: cipher-suites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 experimental-initial-corrupt-check: "true" listen-metrics-urls: "http://0.0.0.0:2381" imageRepository: projects.registry.vmware.com/tkg imageTag: v3.5.6_vmware.14 scheduler: extraArgs: tls-cipher-suites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 bind-address: 0.0.0.0".spec.kubeadmConfigSpec.clusterConfiguration.<component-name>".# kubectl edit kcp <kcp-object-name> -n <namespace>The recommended way to configure legacy clusters with variables that are not settable by default in the configuration file used to create the clusters, is through ytt overlays:
Legacy Cluster Configuration with ytt
To add extraArgs in ".spec.kubeadmConfigSpec.clusterConfiguration.<component-name>" you can do as follows:
".config/tanzu/tkg/providers/infrastructure-vsphere/ytt/extraargs-overlay-test.yaml" file with the target configuration.#@ load("@ytt:overlay", "overlay")#@ load("@ytt:data", "data")
#@overlay/match by=overlay.subset({"kind":"KubeadmControlPlane"})---spec: kubeadmConfigSpec: clusterConfiguration: controllerManager: extraArgs: #@overlay/match missing_ok=True bind-address: 0.0.0.0 scheduler: extraArgs: #@overlay/match missing_ok=True bind-address: 0.0.0.0 etcd: local: extraArgs: #@overlay/match missing_ok=True listen-metrics-urls: "http://0.0.0.0:2381"
Please, make sure you don't include any "tab" in the indentation, as ytt only accepts single spaces.
# tanzu cluster create -f .config/tanzu/tkg/clusterconfigs/<config-file>.yaml"Expected number of matched nodes to be 1, but was 0", review the overlay file and look for "tab spaces" and errors in the indentation.".spec.kubeadmConfigSpec.clusterConfiguration.<component-name>".# kubectl edit kcp <kcp-object-name> -n <namespace>