Managing yaml files?

Kubernetes version: 1.17 → 1.20
Cloud being used: azure

I built a set of k8s clusters on azure back around 1.17 to run an internal workload at work. Wrote a script to generate a set of yamls for a dev, test, and prod cluster, currently around 1200 lines of yaml per environment, so 3600 lines total.

The cluster has been updated a few times and it’s currently on 1.19 and I’m almost ready to move it to 1.20, which is the latest I can upgrade to on my azure instance.

When I attempt to apply my yaml files from 1.17, a number of them are rejected by the new cluster, so now I need to figure out how to best update them to new syntax. Pretty sure I used “kubectl convert” on 1.19 and they appear to convert to 1.20,but that’s a bit of a concern because how long will convert understand 1.17 formatted yaml files?

Couple things - I installed a new version kubectl on my linux box via:
curl -LO https://dl.k8s.io/release/v1.20.13/bin/linux/amd64/kubectl
curl -LO https://dl.k8s.io/release/v1.20.13/bin/linux/amd64/kubectl.sha256
echo “$(<kubectl.sha256) kubectl” | sha256sum --check
install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

I notice that there is no kubectl-convert download in 1.20.13 so I grabbed it from 1.21.8:
curl -LO https://dl.k8s.io/release/v1.21.8/bin/linux/amd64/kubectl-convert
curl -LO https://dl.k8s.io/release/v1.21.8/bin/linux/amd64/kubectl-convert.sha256
echo “$(<kubectl-convert.sha256) kubectl-convert” | sha256sum --check
install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert

Any issue with kubectl server at 1.20.13, kubectl client at 1.20.13 but kubectl-convert at 1.21.8?

What’s the most efficient way to figure out how to change from an older version of yaml, like 1.17, to a newer version, like 1.20, and what’s the best way to do this on a continuing basis?