Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade k8s 1.15 #26

Merged
merged 3 commits into from
Nov 12, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 31 additions & 38 deletions GOMODULES.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,61 +5,54 @@ brutal.

The section below is the base path that was used to move this to go modules.

1. Be sure to use go 1.13 or higher; it does a _much_ better job reporting dependency problems.
1. Create `go.mod` with the following contents

```go
module github.com/packethost/packet-ccm

go 1.12
go 1.13

require (
github.com/packethost/packngo v0.1.0
k8s.io/api kubernetes-1.14.1
k8s.io/apimachinery kubernetes-1.14.1
k8s.io/apiserver kubernetes-1.14.1
k8s.io/apiextensions-apiserver kubernetes-1.14.1
k8s.io/client-go kubernetes-1.14.1
k8s.io/cloud-provider kubernetes-1.14.1
k8s.io/component-base kubernetes-1.14.1
k8s.io/kubernetes v1.14.1
github.com/packethost/packngo v0.1.0
k8s.io/kubernetes v1.15.0
)

replace (
k8s.io/api => k8s.io/api kubernetes-1.14.1
k8s.io/apimachinery => k8s.io/apimachinery kubernetes-1.14.1
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver kubernetes-1.14.1
k8s.io/apiserver => k8s.io/apiserver kubernetes-1.14.1
k8s.io/cli-runtime => k8s.io/cli-runtime kubernetes-1.14.1
k8s.io/client-go => k8s.io/client-go kubernetes-1.14.1
k8s.io/cloud-provider => k8s.io/cloud-provider kubernetes-1.14.1
k8s.io/cli-runtime => k8s.io/cli-runtime kubernetes-1.14.1
k8s.io/component-base => k8s.io/component-base kubernetes-1.14.1
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager kubernetes-1.14.1
k8s.io/kubernetes => k8s.io/kubernetes v1.14.1
k8s.io/kube-aggregator => k8s.io/kube-aggregator kubernetes-1.15.0
k8s.io/api => k8s.io/api kubernetes-1.15.0
k8s.io/apimachinery => k8s.io/apimachinery kubernetes-1.15.0
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver kubernetes-1.15.0
k8s.io/apiserver => k8s.io/apiserver kubernetes-1.15.0
k8s.io/cli-runtime => k8s.io/cli-runtime kubernetes-1.15.0
k8s.io/client-go => k8s.io/client-go kubernetes-1.15.0
k8s.io/cloud-provider => k8s.io/cloud-provider kubernetes-1.15.0
k8s.io/cli-runtime => k8s.io/cli-runtime kubernetes-1.15.0
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap kubernetes-1.15.0
k8s.io/code-generator => k8s.io/code-generator kubernetes-1.15.0
k8s.io/component-base => k8s.io/component-base kubernetes-1.15.0
k8s.io/cri-api => k8s.io/cri-api kubernetes-1.15.0
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib kubernetes-1.15.0
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager kubernetes-1.15.0
k8s.io/kube-proxy => k8s.io/kube-proxy kubernetes-1.15.0
k8s.io/kube-scheduler => k8s.io/kube-scheduler kubernetes-1.15.0
k8s.io/kubelet => k8s.io/kubelet kubernetes-1.15.0
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers kubernetes-1.15.0
k8s.io/metrics => k8s.io/metrics kubernetes-1.15.0
k8s.io/sample-apiserver => k8s.io/sample-apiserver kubernetes-1.15.0
k8s.io/kubernetes => k8s.io/kubernetes v1.15.0
)
```

1. Look in github to see specific hashes of dependencies for the various k8s.io/ elements. Go to the individual projects, select the tag that matches the above release, and look in its dependency trees (`Godeps`, `Gopkg.toml`, etc.) to see what versions of packages it uses.
1. Run `GO111MODULE=on go get <dependency>@<hash>`

The specific packages that had dependencies that we discovered are:

* `k8s.io/apiserver`

The dependencies we installed were:

```sh
go get sigs.k8s.io/structured-merge-diff@e85c7b244fd2cc57bb829d73a061f93a441e63ce
go get k8s.io/kube-openapi@b3a7cee44a305be0a69e1b9ac03018307287e1b0
```
1. Run `go mod downlaod`

## Upgrading

When upgrading to a new version of kubernetes:

1. Generate a new go.mod to reference the new version
1. Look up the above dependencies
1. Run `make build`
1. Loop through for any errors on mismatched versions
1. Generate a new go.mod to reference the new version, changing anywhere in the above file from the current versio nto the new version
1. `rm go.sum`
1. Run `go mod download`
1. Loop through for any errors on mismatched versions, and add `replace` dependencies. These are almost entirely due to `k8s.io/kubernetes`
1. PRAY

98 changes: 28 additions & 70 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,80 +3,38 @@ module github.com/packethost/packet-ccm
go 1.12

require (
github.com/NYTimes/gziphandler v1.1.1 // indirect
github.com/coreos/etcd v3.3.17+incompatible // indirect
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f // indirect
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect
github.com/docker/distribution v2.7.1+incompatible // indirect
github.com/docker/docker v1.13.1 // indirect
github.com/emicklei/go-restful v2.11.1+incompatible // indirect
github.com/evanphx/json-patch v4.5.0+incompatible // indirect
github.com/go-openapi/spec v0.19.4 // indirect
github.com/gogo/protobuf v1.3.1 // indirect
github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 // indirect
github.com/google/gofuzz v1.0.0 // indirect
github.com/googleapis/gnostic v0.3.1 // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
github.com/hashicorp/golang-lru v0.5.3 // indirect
github.com/imdario/mergo v0.3.8 // indirect
github.com/json-iterator/go v1.1.6 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.1 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/opencontainers/go-digest v1.0.0-rc1 // indirect
github.com/packethost/packet-api-server v0.0.0-20191111173258-323bdfe6671d
github.com/packethost/packngo v0.2.0
github.com/pallinder/go-randomdata v1.2.0
github.com/pborman/uuid v1.2.0 // indirect
github.com/pkg/errors v0.8.1
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829 // indirect
github.com/spf13/cobra v0.0.5 // indirect
github.com/spf13/pflag v1.0.5
github.com/stretchr/testify v1.4.0 // indirect
go.uber.org/atomic v1.4.0 // indirect
go.uber.org/multierr v1.2.0 // indirect
go.uber.org/zap v1.11.0 // indirect
golang.org/x/crypto v0.0.0-20191108234033-bd318be0434a // indirect
golang.org/x/net v0.0.0-20191109021931-daa7c04131f5 // indirect
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 // indirect
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e // indirect
golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4 // indirect
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 // indirect
golang.org/x/tools v0.0.0-20191111154804-8cb0d02132ec // indirect
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 // indirect
google.golang.org/grpc v1.24.0 // indirect
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
gopkg.in/square/go-jose.v2 v2.4.0 // indirect
gopkg.in/yaml.v2 v2.2.5 // indirect
k8s.io/api v0.0.0-20190409021203-6e4e0e4f393b
k8s.io/apiextensions-apiserver v0.0.0-20190409022649-727a075fdec8
k8s.io/apimachinery v0.0.0-20190404173353-6a84e37a896d
k8s.io/apiserver v0.0.0-20190409021813-1ec86e4da56c
k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible
k8s.io/cloud-provider v0.0.0-20190409023720-1bc0c81fa51d
k8s.io/component-base v0.0.0-20190409021516-bd2732e5c3f7
k8s.io/klog v1.0.0 // indirect
k8s.io/kube-controller-manager v0.0.0-00010101000000-000000000000 // indirect
k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30
k8s.io/kubernetes v1.14.1
k8s.io/utils v0.0.0-20191010214722-8d271d903fe4 // indirect
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e
sigs.k8s.io/yaml v1.1.0 // indirect
github.com/pkg/errors v0.8.0
github.com/spf13/pflag v1.0.1
k8s.io/api v0.0.0
k8s.io/apimachinery v0.0.0
k8s.io/cloud-provider v0.0.0
k8s.io/component-base v0.0.0
k8s.io/kubernetes v1.15.0
)

replace (
k8s.io/api => k8s.io/api v0.0.0-20190409021203-6e4e0e4f393b
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.0.0-20190409022649-727a075fdec8
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190404173353-6a84e37a896d
k8s.io/apiserver => k8s.io/apiserver v0.0.0-20190409021813-1ec86e4da56c
k8s.io/cli-runtime => k8s.io/cli-runtime v0.0.0-20190409023024-d644b00f3b79
k8s.io/client-go => k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible
k8s.io/cloud-provider => k8s.io/cloud-provider v0.0.0-20190409023720-1bc0c81fa51d
k8s.io/component-base => k8s.io/component-base v0.0.0-20190409021516-bd2732e5c3f7
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.0.0-20190409023523-97e4e67125a6
k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30
k8s.io/kubernetes => k8s.io/kubernetes v1.14.1
sigs.k8s.io/structured-merge-diff => sigs.k8s.io/structured-merge-diff v0.0.0-20190302045857-e85c7b244fd2
k8s.io/api => k8s.io/api v0.0.0-20190620084959-7cf5895f2711
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.0.0-20190620085554-14e95df34f1f
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190612205821-1799e75a0719
k8s.io/apiserver => k8s.io/apiserver v0.0.0-20190620085212-47dc9a115b18
k8s.io/cli-runtime => k8s.io/cli-runtime v0.0.0-20190620085706-2090e6d8f84c
k8s.io/client-go => k8s.io/client-go v0.0.0-20190620085101-78d2af792bab
k8s.io/cloud-provider => k8s.io/cloud-provider v0.0.0-20190620090043-8301c0bda1f0
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.0.0-20190620090013-c9a0fc045dc1
k8s.io/code-generator => k8s.io/code-generator v0.0.0-20190612205613-18da4a14b22b
k8s.io/component-base => k8s.io/component-base v0.0.0-20190620085130-185d68e6e6ea
k8s.io/cri-api => k8s.io/cri-api v0.0.0-20190531030430-6117653b35f1
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.0.0-20190620090116-299a7b270edc
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.0.0-20190620085325-f29e2b4a4f84
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.0.0-20190620085942-b7f18460b210
k8s.io/kube-proxy => k8s.io/kube-proxy v0.0.0-20190620085809-589f994ddf7f
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.0.0-20190620085912-4acac5405ec6
k8s.io/kubelet => k8s.io/kubelet v0.0.0-20190620085838-f1cb295a73c9
k8s.io/kubernetes => k8s.io/kubernetes v1.15.0
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.0.0-20190620090156-2138f2c9de18
k8s.io/metrics => k8s.io/metrics v0.0.0-20190620085625-3b22d835f165
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.0.0-20190620085408-1aef9010884e
)
Loading