in pkg/providers/vsphere/vsphere.go [682:804]
func buildTemplateMapCP(clusterSpec *cluster.Spec, datacenterSpec v1alpha1.VSphereDatacenterConfigSpec, controlPlaneMachineSpec, etcdMachineSpec v1alpha1.VSphereMachineConfigSpec) map[string]interface{} {
bundle := clusterSpec.VersionsBundle
format := "cloud-config"
etcdExtraArgs := clusterapi.SecureEtcdTlsCipherSuitesExtraArgs()
sharedExtraArgs := clusterapi.SecureTlsCipherSuitesExtraArgs()
kubeletExtraArgs := clusterapi.SecureTlsCipherSuitesExtraArgs().
Append(clusterapi.ResolvConfExtraArgs(clusterSpec.Spec.ClusterNetwork.DNS.ResolvConf)).
Append(clusterapi.ControlPlaneNodeLabelsExtraArgs(clusterSpec.Spec.ControlPlaneConfiguration))
apiServerExtraArgs := clusterapi.OIDCToExtraArgs(clusterSpec.OIDCConfig).
Append(clusterapi.AwsIamAuthExtraArgs(clusterSpec.AWSIamConfig)).
Append(clusterapi.PodIAMAuthExtraArgs(clusterSpec.Spec.PodIAMConfig)).
Append(sharedExtraArgs)
values := map[string]interface{}{
"clusterName": clusterSpec.ObjectMeta.Name,
"controlPlaneEndpointIp": clusterSpec.Spec.ControlPlaneConfiguration.Endpoint.Host,
"controlPlaneReplicas": clusterSpec.Spec.ControlPlaneConfiguration.Count,
"kubernetesRepository": bundle.KubeDistro.Kubernetes.Repository,
"kubernetesVersion": bundle.KubeDistro.Kubernetes.Tag,
"etcdRepository": bundle.KubeDistro.Etcd.Repository,
"etcdImageTag": bundle.KubeDistro.Etcd.Tag,
"corednsRepository": bundle.KubeDistro.CoreDNS.Repository,
"corednsVersion": bundle.KubeDistro.CoreDNS.Tag,
"nodeDriverRegistrarImage": bundle.KubeDistro.NodeDriverRegistrar.VersionedImage(),
"livenessProbeImage": bundle.KubeDistro.LivenessProbe.VersionedImage(),
"externalAttacherImage": bundle.KubeDistro.ExternalAttacher.VersionedImage(),
"externalProvisionerImage": bundle.KubeDistro.ExternalProvisioner.VersionedImage(),
"thumbprint": datacenterSpec.Thumbprint,
"vsphereDatacenter": datacenterSpec.Datacenter,
"controlPlaneVsphereDatastore": controlPlaneMachineSpec.Datastore,
"controlPlaneVsphereFolder": controlPlaneMachineSpec.Folder,
"managerImage": bundle.VSphere.Manager.VersionedImage(),
"kubeVipImage": bundle.VSphere.KubeVip.VersionedImage(),
"driverImage": bundle.VSphere.Driver.VersionedImage(),
"syncerImage": bundle.VSphere.Syncer.VersionedImage(),
"insecure": datacenterSpec.Insecure,
"vsphereNetwork": datacenterSpec.Network,
"controlPlaneVsphereResourcePool": controlPlaneMachineSpec.ResourcePool,
"vsphereServer": datacenterSpec.Server,
"controlPlaneVsphereStoragePolicyName": controlPlaneMachineSpec.StoragePolicyName,
"vsphereTemplate": controlPlaneMachineSpec.Template,
"controlPlaneVMsMemoryMiB": controlPlaneMachineSpec.MemoryMiB,
"controlPlaneVMsNumCPUs": controlPlaneMachineSpec.NumCPUs,
"controlPlaneDiskGiB": controlPlaneMachineSpec.DiskGiB,
"controlPlaneSshUsername": controlPlaneMachineSpec.Users[0].Name,
"podCidrs": clusterSpec.Spec.ClusterNetwork.Pods.CidrBlocks,
"serviceCidrs": clusterSpec.Spec.ClusterNetwork.Services.CidrBlocks,
"etcdExtraArgs": etcdExtraArgs.ToPartialYaml(),
"etcdCipherSuites": crypto.SecureCipherSuitesString(),
"apiserverExtraArgs": apiServerExtraArgs.ToPartialYaml(),
"controllermanagerExtraArgs": sharedExtraArgs.ToPartialYaml(),
"schedulerExtraArgs": sharedExtraArgs.ToPartialYaml(),
"kubeletExtraArgs": kubeletExtraArgs.ToPartialYaml(),
"format": format,
"externalEtcdVersion": bundle.KubeDistro.EtcdVersion,
"etcdImage": bundle.KubeDistro.EtcdImage.VersionedImage(),
"eksaSystemNamespace": constants.EksaSystemNamespace,
"auditPolicy": common.GetAuditPolicy(),
"resourceSetName": resourceSetName(clusterSpec),
"eksaVsphereUsername": os.Getenv(EksavSphereUsernameKey),
"eksaVspherePassword": os.Getenv(EksavSpherePasswordKey),
}
if clusterSpec.Spec.RegistryMirrorConfiguration != nil {
values["registryMirrorConfiguration"] = net.JoinHostPort(clusterSpec.Spec.RegistryMirrorConfiguration.Endpoint, clusterSpec.Spec.RegistryMirrorConfiguration.Port)
if len(clusterSpec.Spec.RegistryMirrorConfiguration.CACertContent) > 0 {
values["registryCACert"] = clusterSpec.Spec.RegistryMirrorConfiguration.CACertContent
}
}
if clusterSpec.Spec.ProxyConfiguration != nil {
values["proxyConfig"] = true
capacity := len(clusterSpec.Spec.ClusterNetwork.Pods.CidrBlocks) +
len(clusterSpec.Spec.ClusterNetwork.Services.CidrBlocks) +
len(clusterSpec.Spec.ProxyConfiguration.NoProxy) + 4
noProxyList := make([]string, 0, capacity)
noProxyList = append(noProxyList, clusterSpec.Spec.ClusterNetwork.Pods.CidrBlocks...)
noProxyList = append(noProxyList, clusterSpec.Spec.ClusterNetwork.Services.CidrBlocks...)
noProxyList = append(noProxyList, clusterSpec.Spec.ProxyConfiguration.NoProxy...)
// Add no-proxy defaults
noProxyList = append(noProxyList, noProxyDefaults...)
noProxyList = append(noProxyList,
datacenterSpec.Server,
clusterSpec.Spec.ControlPlaneConfiguration.Endpoint.Host,
)
values["httpProxy"] = clusterSpec.Spec.ProxyConfiguration.HttpProxy
values["httpsProxy"] = clusterSpec.Spec.ProxyConfiguration.HttpsProxy
values["noProxy"] = noProxyList
}
if clusterSpec.Spec.ExternalEtcdConfiguration != nil {
values["externalEtcd"] = true
values["externalEtcdReplicas"] = clusterSpec.Spec.ExternalEtcdConfiguration.Count
values["etcdVsphereDatastore"] = etcdMachineSpec.Datastore
values["etcdVsphereFolder"] = etcdMachineSpec.Folder
values["etcdDiskGiB"] = etcdMachineSpec.DiskGiB
values["etcdVMsMemoryMiB"] = etcdMachineSpec.MemoryMiB
values["etcdVMsNumCPUs"] = etcdMachineSpec.NumCPUs
values["etcdVsphereResourcePool"] = etcdMachineSpec.ResourcePool
values["etcdVsphereStoragePolicyName"] = etcdMachineSpec.StoragePolicyName
values["etcdSshUsername"] = etcdMachineSpec.Users[0].Name
}
if controlPlaneMachineSpec.OSFamily == v1alpha1.Bottlerocket {
values["format"] = string(v1alpha1.Bottlerocket)
values["pauseRepository"] = bundle.KubeDistro.Pause.Image()
values["pauseVersion"] = bundle.KubeDistro.Pause.Tag()
values["bottlerocketBootstrapRepository"] = bundle.BottleRocketBootstrap.Bootstrap.Image()
values["bottlerocketBootstrapVersion"] = bundle.BottleRocketBootstrap.Bootstrap.Tag()
}
if len(clusterSpec.Spec.ControlPlaneConfiguration.Taints) > 0 {
values["controlPlaneTaints"] = clusterSpec.Spec.ControlPlaneConfiguration.Taints
}
if clusterSpec.AWSIamConfig != nil {
values["awsIamAuth"] = true
}
return values
}