---
# System prepended metadata

title: Vertically Scaling Controlplane Vsphere Templates in 2.2

---

# Vertically Scaling Controlplane Vsphere Templates in 2.2
First get the current vm template names
```
kubectl get VSphereMachineTemplate
NAME                    AGE
vsphere-control-plane   2d22h
vsphere-md-0            2d22h
```
Make a copy of the current templates 
```
kubectl get vspheremachinetemplates vsphere-control-plane -o yaml > vsphere-control-plane-large.yaml

kubectl get vspheremachinetemplates vsphere-md-0  -o yaml > vsphere-md-0-large.yaml
```
Edit the new files and adjust CPU, Memory or disk size and give the template a new name 

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: VSphereMachineTemplate
metadata:
  creationTimestamp: "2022-04-29T19:21:10Z"
  generation: 1
  name: vsphere-control-plane-large
  namespace: default
  ownerReferences:
  - apiVersion: cluster.x-k8s.io/v1beta1
    kind: Cluster
    name: vsphere
    uid: 15f5fa32-8f0d-405d-81a2-606d47cba308
  resourceVersion: "21690"
  uid: f1a41fb5-7b8c-4460-86eb-bf9c212f170c
spec:
  template:
    spec:
      cloneMode: linkedClone
      datacenter: kompton
      datastore: vsanDatastore
      diskGiB: 100
      folder: dkp
      memoryMiB: 16384
      network:
        devices:
        - dhcp4: true
          networkName: VM Network
      numCPUs: 4
      resourcePool: DKP
      server: 10.0.1.52
      template: konvoy-ova-vsphere-rhel-84-1.22.8-1650906429
      thumbprint: 2F:AA:AC:E2:8E:08:DE:51:AD:BB:67:5A:8E:F7:64:0F:F9:CC:28:E2
`
apply the new templates 
```
kubectl apply -f vsphere-control-plane-large.yaml
kubectl apply -f vsphere-md-0-large.yaml

```
List all KubeadmControlPlane
```
kubectl get KubeadmControlPlane
vsphere-control-plane
```
Now edit the KubeadmControlPlane for the cluster
```
kubectl edit KubeadmControlPlane vsphere-control-plane
```
Now change the template name in the file to the new name
```
machineTemplate:
    infrastructureRef:
      apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
      kind: VSphereMachineTemplate
      name: vsphere-control-plane-large
      namespace: default

```
You should now see the controlplanes doing a rolling upgrade
```
kubectl get nodes 
NAME                                           STATUS                     ROLES                  AGE     VERSION
vsphere-control-plane-9wggn.tommyracks.com     Ready,SchedulingDisabled   control-plane,master   2d23h   v1.22.8
vsphere-control-plane-mv4ws.tommyracks.com     Ready                      control-plane,master   104s    v1.22.8
vsphere-control-plane-wfccf.tommyracks.com     Ready                      control-plane,master   2d23h   v1.22.8
vsphere-control-plane-zdljj.tommyracks.com     Ready                      control-plane,master   2d23h   v1.22.8
vsphere-md-0-56b5fb9ccb-9jdvn.tommyracks.com   Ready                      <none>                 2d23h   v1.22.8
vsphere-md-0-56b5fb9ccb-c4m6k.tommyracks.com   Ready                      <none>                 2d23h   v1.22.8
vsphere-md-0-56b5fb9ccb-j5qg2.tommyracks.com   Ready                      <none>                 2d23h   v1.22.8
vsphere-md-0-56b5fb9ccb-th7rf.tommyracks.com   Ready                      <none>                 2d23h   v1.22.8
```