This was our only reliance on cloud-provider-openstack which depends on k8s.io/kubernetes.
With the logic in-lined, kops no longer has any indirect dependencies of k/k
Since the v1.19.0 release of kOps the OpenStack integration has been
broken because gophercloud made a change to start escaping all path
names for files stored in swift. kOps used a file with a slash in it
which was getting escaped and then not handled correctly. This has been
fixed in upstream gophercloud with gophercloud/gophercloud#2160 which
was included in gophercloud v0.18.0. Bump is for issue #9933.
This will unblock the remaining periodic e2e jobs that havent been migrated yet.
They run a test with the kops version from "latest-ci.txt" as published by the "postsubmit-push-to-staging" postsubmit job,
and if the tests succeed then they get published to "latest-ci-updown-green.txt" which is what all of the other periodic jobs rely on.
example job that uses this functionality: 37b80c5e3b/config/jobs/kubernetes/kops/kops-pipeline.yaml (L46-L48)
This way any spaces within a quoted value wont cause the value to be broken up into multiple arguments.
The CentOS image in AWS has spaces in its name which is what exposed this issue.
I'm updating the test-e2e make target as I go to make the presubmit job use it but soon I'll work on how we'll actually configure and invoke kubetest2 from our variety of jobs
This creates a new go module for the e2e code and the kubetest2 skeleton.
Most of the kubetest2 code was copied from sigs.k8s.io/kubetest2/kubetest2-gke.
Currently only building (`make gcs-publish-ci`) is in place.
I used test-infra/scenarios/kubernetes_e2e.py as reference, removing env and make variables that are no longer needed.
Instructions:
```
cd tests/e2e
go install sigs.k8s.io/kubetest2
go install ./kubetest2-kops
kubetest2 kops -v 9 --build --stage-location=gs://foobar/ --kops-root=../../ # runs make gcs-publish-ci and exits
```