Skip to content

WIP: Kubernetes 1.9 and general dependency updates

Lorenz Brun requested to merge lorenz/gitlab-ci-multi-runner:k8s-fixes into master

What does this MR do?

It upgrades the K8s executor from the ancient 1.3.5 to the latest stable (1.9 series) while at the same time upgrading all the dependencies necessary to still compile. This is a follow-up to !822 (closed) without the dep switchover which is part of master now and newer versions (Kubernetes 1.9 instead of 1.6) and doesn't break the Docker executor to the point where it won't build.

OT: With the amount of hours it took to clean the dependency mess up I'm not sure if we should still use a single runner for all executors or if it would be simpler for everybody to split the runner into separate executables for every executor. Currently everything is VERY tightly coupled from a dependency POV.

Why was this MR needed?

A lot of features are blocked on the old Kubernetes version. This MR for example contains #2742 (closed), but a lot more is possible with the new dependencies.

Are there points in the code the reviewer needs to double check?

I only tested that it compiles and runs on my Kubernetes cluster which runs vanilla 1.9.6 in a multi-master configuration. I anticipate breakage in a lot of places because of the fact that basically all dependencies were updated. The vendor folder sync is not included because it is so large that it breaks gitlab.com, all requests to it time out.

Does this MR meet the acceptance criteria?

Not at all, this still needs a lot of work

  • Documentation created/updated
  • Tests
    • Added for this feature/bug
    • All builds are passing
  • Branch has no merge conflicts with master -> Rebasing this will be VERY time-consuming, just FYI.

What are the relevant issue numbers?

#2742 (closed), #2718 (closed) and probably a lot more

/cc @nolith

Merge request reports