kubernetes/hack
Kubernetes Submit Queue a8899b314b
Merge pull request #61241 from jpbetz/go-migrate-if-needed
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Reimplement migrate-if-needed.sh in go

The `migrate-if-needed.sh` script was already partially implemented in go (see the attachlease and rollback sub-dirs), but was still unnecessarily difficult to understand and test.  This closely reimplements the original logic but with improved code structure, error handling and testing.

Where possible, go code that was previously executed as separate binaries is now statically linked into a single 'migrate' go cobra CLI app, which is then thinly wrapped by`migrate-if-needed.sh`.

There are numerous additional improvements that need to be made, but will be submitted in future PRs.  This PR is focused on achieving parity with the pre-existing functionality and introducing some much needed test coverage, in particular HA cluster upgrade test coverage.

It appears that the `attachlease` and `rollback` go binaries are no longer needed as standalones and so I have consolidated them into the new `migrate` go binary. Other than that, this change aims to be 100% backward compatible.

```release-note
NONE
```
2018-04-11 02:37:09 -07:00
..
boilerplate Merge pull request #59172 from fisherxu/removeyear 2018-03-21 12:44:37 -07:00
cmd/teststale Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
e2e-internal
gen-swagger-doc Switch to k8s.gcr.io vanity domain 2018-02-07 21:14:19 -08:00
jenkins Only install etcd for verify tests that need it. 2018-02-28 22:05:52 -08:00
lib Merge pull request #62037 from cblecker/godep-bump 2018-04-04 02:45:08 -07:00
make-rules Merge pull request #62196 from liggitt/create-dry-run 2018-04-06 21:30:12 -07:00
testdata Merge pull request #59056 from mkumatag/pause_manifest 2018-04-06 13:14:13 -07:00
verify-flags Add multi-vc configuration for e2e tests 2018-01-18 15:29:27 -08:00
.golint_failures make kube-apiserver ServerRunOptions setdefault and Validate before use 2018-04-04 11:19:55 +08:00
.spelling_failures add spelling checking script 2018-02-23 09:33:14 +08:00
autogenerated_placeholder.txt
benchmark-go.sh
BUILD Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
build-cross.sh
build-go.sh
build-ui.sh Merge pull request #61098 from ipuustin/shell-bugfix6 2018-03-21 22:39:12 -07:00
cherry_pick_pull.sh Add parent PR title to cherry-picked PR title 2017-11-25 13:36:13 +08:00
dev-build-and-push.sh
dev-build-and-up.sh
dev-push-hyperkube.sh
e2e-node-test.sh
e2e.go translate hack/e2e.go -v to --verbose-commands 2018-03-07 11:27:56 -08:00
e2e_test.go translate hack/e2e.go -v to --verbose-commands 2018-03-07 11:27:56 -08:00
generate-bindata.sh cluster: move logging library to hack/ 2018-01-13 16:37:50 -08:00
generate-docs.sh
get-build.sh
ginkgo-e2e.sh cluster: remove unused functions 2018-02-01 07:23:50 -08:00
godep-restore.sh Remove unneeded code 2018-01-30 09:29:51 -08:00
godep-save.sh Vendor kazel 2018-03-29 17:01:32 -07:00
grab-profiles.sh remove deprecated /proxy paths 2018-02-20 14:42:19 -08:00
import-restrictions.yaml Expose single annotation/label via downward API 2017-11-21 19:21:10 -08:00
install-etcd.sh
list-feature-tests.sh
local-up-cluster.sh Merge pull request #61584 from AkihiroSuda/preserve-etcd 2018-04-10 22:53:26 -07:00
OWNERS add myself for sig-cli related stuff as reviewer 2018-04-09 10:26:11 -04:00
print-workspace-status.sh bazel: support using SOURCE_DATE_EPOCH to override date 2018-02-08 21:12:03 -08:00
run-in-gopath.sh
test-go.sh
test-integration.sh
test-update-storage-objects.sh Reimplement migrate-if-needed.sh in go 2018-04-10 09:19:30 -07:00
update-all.sh Force use of Makefile for update 2018-01-22 15:11:16 -08:00
update-api-reference-docs.sh
update-bazel.sh Vendor kazel 2018-03-29 17:01:32 -07:00
update-cloudprovider-gce.sh Fix lint and bazel 2018-01-09 23:09:08 -08:00
update-codegen.sh add boilerplate.generatego.txt and let all code-generators use it 2018-03-08 17:52:44 +08:00
update-generated-device-plugin-dockerized.sh Create pkg/kubelet/apis/deviceplugin/v1beta1 directory. 2018-02-08 17:04:43 -08:00
update-generated-device-plugin.sh
update-generated-docs.sh
update-generated-kms-dockerized.sh add boilerplate.generatego.txt and let all code-generators use it 2018-03-08 17:52:44 +08:00
update-generated-kms.sh Add generated script for kms api pb file 2018-02-08 01:00:38 +00:00
update-generated-protobuf-dockerized.sh add boilerplate.generatego.txt and let all code-generators use it 2018-03-08 17:52:44 +08:00
update-generated-protobuf.sh
update-generated-runtime-dockerized.sh add boilerplate.generatego.txt and let all code-generators use it 2018-03-08 17:52:44 +08:00
update-generated-runtime.sh
update-generated-swagger-docs.sh Promote v1alpha1 meta to v1beta1 2018-02-02 14:00:45 -05:00
update-godep-licenses.sh update-godep-licenses.sh: various fixes and cleanups. 2018-03-23 15:38:20 +02:00
update-gofmt.sh
update-openapi-spec.sh
update-staging-godeps-dockerized.sh
update-staging-godeps.sh
update-swagger-spec.sh Merge pull request #58303 from php-coder/fix_verify-swagger-spec_sript 2018-01-17 02:43:58 -08:00
update-translations.sh update-translations.sh: use kube::util::ensure-temp-dir instead of static path. 2018-03-16 10:11:48 +02:00
update_owners.py remove some not used imports from python codes 2018-03-07 17:43:47 +08:00
verify-all.sh
verify-api-groups.sh
verify-api-reference-docs.sh
verify-bazel.sh Fully resolve tmpdir in verify scripts, since it might be a symlink on macOS 2018-04-06 16:37:19 -07:00
verify-boilerplate.sh Route verify-boilerplate output to stderr 2018-02-07 21:41:31 -08:00
verify-cli-conventions.sh verify-cli-conventions.sh: use $(..) instead of ... 2018-03-23 15:37:03 +02:00
verify-cloudprovider-gce.sh Fix lint and bazel 2018-01-09 23:09:08 -08:00
verify-codegen.sh
verify-description.sh pkg/api/unversioned related cleanup 2018-03-13 17:20:16 +08:00
verify-flags-underscore.py remove some not used imports from python codes 2018-03-07 17:43:47 +08:00
verify-generated-device-plugin.sh Create pkg/kubelet/apis/deviceplugin/v1beta1 directory. 2018-02-08 17:04:43 -08:00
verify-generated-docs.sh
verify-generated-files-remake.sh
verify-generated-kms.sh Add verify script for kms generated file 2018-02-08 01:29:56 +00:00
verify-generated-protobuf.sh Treat staging repos as authoritative for all files 2018-01-09 15:18:27 -08:00
verify-generated-runtime.sh Increment CRI version from v1alpha1 to v1alpha2 2018-02-07 09:06:26 +01:00
verify-generated-swagger-docs.sh
verify-godep-licenses.sh Route verify-godep-licenses output to stderr 2018-02-07 21:45:02 -08:00
verify-godeps.sh Fully resolve tmpdir in verify scripts, since it might be a symlink on macOS 2018-04-06 16:37:19 -07:00
verify-gofmt.sh Route verify-gofmt output to stderr 2018-02-07 21:39:49 -08:00
verify-golint.sh
verify-govet.sh
verify-import-boss.sh
verify-imports.sh
verify-linkcheck.sh
verify-no-vendor-cycles.sh
verify-openapi-spec.sh Only install etcd for verify tests that need it. 2018-02-28 22:05:52 -08:00
verify-pkg-names.sh remove reference to v1alpha1 2017-11-21 13:00:40 -08:00
verify-readonly-packages.sh
verify-spelling.sh Vendor gazelle 2018-03-29 17:01:30 -07:00
verify-staging-godeps.sh Add in godeps verification for hack/lib/ and build/ 2018-01-26 13:29:35 -08:00
verify-swagger-spec.sh Only install etcd for verify tests that need it. 2018-02-28 22:05:52 -08:00
verify-symbols.sh
verify-test-images.sh
verify-test-owners.sh
verify-typecheck.sh Ensure generated files are present before typechecking. 2018-02-27 14:31:57 -08:00