A extensions/v1betax and apps/v1betax for Deployment objects are now obsolete:
kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:36:53Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:27:17Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
If you use one of the files used for testing, and try a simple kubectl apply, it is rejected
cd ~/src/github.com/replicatedhq/ship/integration$
kubectl apply -f init/jaeger/expected/base/Deployment-jaeger-collector.yaml
error: unable to recognize "init/jaeger/expected/base/Deployment-jaeger-collector.yaml": no matches for kind "Deployment" in version "extensions/v1beta1"
The Deployment/StatefulSet/DaemonSet apps/v1 are supposed to be used since Kubernetes 1.9. Ingress extensions/v1beta1 was rendered obsolete in kubernetes 1.14.
There is quite a lot of work/tasks associated with that fix:
- Find fixed versions of the upstream charts.
- Change all the extensions/v1betaX in the apiVersion, the roles.yaml, the kustomization.yaml (variable declarations..)
- Add selectors in the deployment, statefulset and daemonset.
Since one of the primary feature of ship is to maintain the charts and the "k8s/kustomize" files in sync, only task 1 is supposed to be necessary. Ship will be able to update the corresponding k8s/kustomize files automatically.