palantir / k8s-spark-scheduler

A Kubernetes Scheduler Extender to provide gang scheduling support for Spark on Kubernetes
Apache License 2.0
175 stars 43 forks source link

Update K8S Version to 1.25 #241

Open nshores opened 1 year ago

nshores commented 1 year ago

Before this PR

https://github.com/palantir/k8s-spark-scheduler/issues/242

After this PR

Updated all K8s Deps in go.mod to v0.25.7 and vendor/modules.txt to v0.25.7. Updated k8s.io/api => k8s.io/api v0.26.2 Updated k8s.io/kubernetes to v.1.25.7 Ran a go mod vendor to pull in updates dependencies.

Possible downsides?

Unknown breaking changes from updating the client dependence.

palantirtech commented 1 year ago

Thanks for your interest in palantir/k8s-spark-scheduler, @nshores! Before we can accept your pull request, you need to sign our contributor license agreement - just visit https://cla.palantir.com/ and follow the instructions. Once you sign, I'll automatically update this pull request.

nshores commented 1 year ago

Even after getting this to run, which requires bumping the hyperkube version to 1.25 or above - There's a new error --


│ E0314 21:06:41.648582       1 run.go:74] "command failed" err="strict decoding error: unknown field \"algorithmSource\", unknown field \"leaderElection.lockObjec │

The full information is here, but a rewrite is needed to use this in 1.25

https://github.com/openshift/cluster-kube-scheduler-operator/issues/197#issuecomment-622122553

The KubeSchedulerConfiguration and associated policy need to be updated to use the v1 api spec which is defined here

https://kubernetes.io/docs/reference/scheduling/config/

What this means is converting the policy configuration defined in the policy.cfg file to use the new profile config spec outlined above in the v1 API.