From d2d3f21dc2a7fbf6c8abe3aa8fc26a7bdf83d20b Mon Sep 17 00:00:00 2001 From: Oleksii Kliukin Date: Wed, 1 Aug 2018 11:08:01 +0200 Subject: [PATCH] Client go upgrade v6 (#352) There are shortcuts in this code, i.e. we created the deepcopy function by using the deepcopy package instead of the generated code, that will be addressed once migrated to client-go v8. Also, some objects, particularly statefulsets, are still taken from v1beta, this will also be addressed in further commits once the changes are stabilized. --- glide.lock | 185 +++++++++++++++++++--------------- glide.yaml | 38 ++----- pkg/cluster/cluster.go | 8 +- pkg/cluster/cluster_test.go | 2 +- pkg/cluster/exec.go | 7 +- pkg/cluster/k8sres.go | 6 +- pkg/cluster/pod.go | 2 +- pkg/cluster/resources.go | 6 +- pkg/cluster/sync.go | 2 +- pkg/cluster/util.go | 6 +- pkg/cluster/volumes.go | 2 +- pkg/controller/controller.go | 4 +- pkg/controller/node.go | 2 +- pkg/controller/node_test.go | 2 +- pkg/controller/pod.go | 2 +- pkg/controller/postgresql.go | 2 +- pkg/controller/util.go | 2 +- pkg/controller/util_test.go | 2 +- pkg/spec/postgresql.go | 52 +++++++++- pkg/spec/types.go | 6 +- pkg/util/config/crd_config.go | 45 +++++++++ pkg/util/k8sutil/k8sutil.go | 9 +- pkg/util/patroni/patroni.go | 2 +- pkg/util/volumes/ebs.go | 2 +- pkg/util/volumes/volumes.go | 2 +- 25 files changed, 244 insertions(+), 154 deletions(-) diff --git a/glide.lock b/glide.lock index 27ee9beba..2b51833d5 100644 --- a/glide.lock +++ b/glide.lock @@ -1,8 +1,8 @@ -hash: 688e15147f1217da635b83ee33f20a3741a400a493787d79992d1650f6e4c514 -updated: 2018-05-17T10:46:49.090929+02:00 +hash: f2f7f9d5d3c6f0f370fcec00e6c4a7c8fe84c0e75579d9bf7e40f19fe837b7c2 +updated: 2018-07-25T15:45:34.017577+02:00 imports: - name: github.com/aws/aws-sdk-go - version: ee7b4b1162937cba700de23bd90acb742982e626 + version: 468b9714c11f10b22e533253b35eb9c28f4be691 subpackages: - aws - aws/awserr @@ -14,6 +14,7 @@ imports: - aws/credentials/ec2rolecreds - aws/credentials/endpointcreds - aws/credentials/stscreds + - aws/csm - aws/defaults - aws/ec2metadata - aws/endpoints @@ -22,6 +23,7 @@ imports: - aws/signer/v4 - internal/sdkio - internal/sdkrand + - internal/sdkuri - internal/shareddefaults - private/protocol - private/protocol/ec2query @@ -32,14 +34,9 @@ imports: - service/ec2 - service/sts - name: github.com/davecgh/go-spew - version: 5215b55f46b2b919f50a1df0eaa5886afe4e3b3d + version: 782f4967f2dc4564575ca782fe2d04090b5faca8 subpackages: - spew -- name: github.com/docker/distribution - version: cd27f179f2c10c5d300e6d09025b538c475b0d51 - subpackages: - - digest - - reference - name: github.com/docker/spdystream version: 449fdfce4d962303d702fec724ef0ad181c92528 subpackages: @@ -48,24 +45,18 @@ imports: version: ff4f55a206334ef123e4f79bbf348980da81ca46 subpackages: - log -- name: github.com/emicklei/go-restful-swagger12 - version: dcef7f55730566d41eae5db10e7d6981829720f6 - name: github.com/ghodss/yaml version: 73d445a93680fa1a78ae23a5839bad48f32ba1ee - name: github.com/go-ini/ini - version: c787282c39ac1fc618827141a1f762240def08a3 -- name: github.com/go-openapi/analysis - version: b44dc874b601d9e4e2f6e19140e794ba24bead3b + version: d58d458bec3cb5adec4b7ddb41131855eac0b33f - name: github.com/go-openapi/jsonpointer version: 46af16f9f7b149af66e5d1bd010e3574dc06de98 - name: github.com/go-openapi/jsonreference version: 13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272 -- name: github.com/go-openapi/loads - version: 18441dfa706d924a39a030ee2c3b1d8d81917b38 - name: github.com/go-openapi/spec - version: 6aced65f8501fe1217321abf0749d354824ba2ff + version: 7abd5745472fff5eb3685386d5fb8bf38683154d - name: github.com/go-openapi/swag - version: 1d0bd113de87027671077d3c71eb3ac5d7dbba72 + version: f3f9494671f93fcff853e3c6e9e948b3eb71e590 - name: github.com/gogo/protobuf version: c0656edd0d9eab7c66d1eb0c568f9039345796f7 subpackages: @@ -73,8 +64,28 @@ imports: - sortkeys - name: github.com/golang/glog version: 44145f04b68cf362d9c4df2182967c2275eaefed +- name: github.com/golang/protobuf + version: 1643683e1b54a9e88ad26d98f81400c8c9d9f4f9 + subpackages: + - proto + - ptypes + - ptypes/any + - ptypes/duration + - ptypes/timestamp +- name: github.com/google/btree + version: 7d79101e329e5a3adf994758c578dab82b90c017 - name: github.com/google/gofuzz version: 44d81051d367757e1c7c6a5a86423ece9afcf63c +- name: github.com/googleapis/gnostic + version: 0c5108395e2debce0d731cf0287ddf7242066aba + subpackages: + - OpenAPIv2 + - compiler + - extensions +- name: github.com/gregjones/httpcache + version: 787624de3eb7bd915c329cba748687a3b22666a6 + subpackages: + - diskcache - name: github.com/hashicorp/golang-lru version: a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4 subpackages: @@ -84,57 +95,63 @@ imports: - name: github.com/imdario/mergo version: 6633656539c1639d9d78127b7d47c622b5d7b6dc - name: github.com/jmespath/go-jmespath - version: bd40a432e4c76585ef6b72d3fd96fb9b6dc7b68d + version: c2b33e8439af944379acbdd9c3a5fe0bc44bd8a5 +- name: github.com/json-iterator/go + version: f2b4162afba35581b6d4a50d3b8f34e33c144682 - name: github.com/juju/ratelimit version: 5b9ff866471762aa2ab2dced63c9fb6f53921342 - name: github.com/kr/text - version: 7cafcd837844e784b526369c9bce262804aebc60 + version: e2ffdb16a802fe2bb95e2e35ff34f0e53aeef34f - name: github.com/lib/pq - version: b77235e3890a962fe8a6f8c4c7198679ca7814e7 + version: 90697d60dd844d5ef6ff15135d0203f65d2f53b8 subpackages: - oid - name: github.com/mailru/easyjson - version: d5b7844b561a7bc640052f1b935f7b800330d7e0 + version: 2f5df55504ebc322e4d52d34df6a1f5b503bf26d subpackages: - buffer - jlexer - jwriter +- name: github.com/modern-go/concurrent + version: bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94 +- name: github.com/modern-go/reflect2 + version: 05fbef0ca5da472bbf96c9322b84a53edc03c9fd - name: github.com/mohae/deepcopy version: c48cc78d482608239f6c4c92a4abd87eb8761c90 - name: github.com/motomux/pretty version: b2aad2c9a95d14eb978f29baa6e3a5c3c20eef30 +- name: github.com/peterbourgon/diskv + version: 5f041e8faa004a95c88a202771f4cc3e991971e6 - name: github.com/PuerkitoBio/purell version: 8a290539e2e8629dbc4e6bad948158f790ec31f4 - name: github.com/PuerkitoBio/urlesc version: 5bd2802263f21d8788851d5305584c82a5c75d7e - name: github.com/Sirupsen/logrus - version: c155da19408a8799da419ed3eeb0cb5db0ad5dbc + version: 3e01752db0189b9157070a0e1668a620f9a85da2 - name: github.com/spf13/pflag version: 9ff6c6923cfffbcd502984b8e0c80539a94968b7 -- name: github.com/ugorji/go - version: ded73eae5db7e7a0ef6f55aace87a2873c5d2b74 - subpackages: - - codec - name: golang.org/x/crypto - version: 9419663f5a44be8b34ca85f08abc5fe1be11f8a3 + version: c126467f60eb25f8f27e5a981f32a87e3965053f subpackages: - ssh/terminal - name: golang.org/x/net - version: f2499483f923065a842d38eb4c7f1927e6fc6e6d + version: 1c05540f6879653db88113bc4a2b70aec4bd491f subpackages: + - context - http2 - http2/hpack - idna - lex/httplex - name: golang.org/x/sys - version: 8f0908ab3b2457e2e15403d3697c9ef5cb4b57a9 + version: 95c6576299259db960f6c5b9b69ea52422860fce subpackages: - unix - windows - name: golang.org/x/text - version: 2910a502d2bf9e43193af9d68ca516529614eed3 + version: b19bf474d317b857955b12035d2c5acb57ce8b01 subpackages: - cases + - internal - internal/tag - language - runes @@ -147,9 +164,40 @@ imports: - name: gopkg.in/inf.v0 version: 3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4 - name: gopkg.in/yaml.v2 - version: 53feefa2559fb8dfa8d81baad31be332c97d6c77 + version: 5420a8b6744d3b0345ab293f6fcba19c978f1183 +- name: k8s.io/api + version: 11147472b7c934c474a2c484af3c0c5210b7a3af + subpackages: + - admissionregistration/v1alpha1 + - admissionregistration/v1beta1 + - apps/v1 + - apps/v1beta1 + - apps/v1beta2 + - authentication/v1 + - authentication/v1beta1 + - authorization/v1 + - authorization/v1beta1 + - autoscaling/v1 + - autoscaling/v2beta1 + - batch/v1 + - batch/v1beta1 + - batch/v2alpha1 + - certificates/v1beta1 + - core/v1 + - events/v1beta1 + - extensions/v1beta1 + - networking/v1 + - policy/v1beta1 + - rbac/v1 + - rbac/v1alpha1 + - rbac/v1beta1 + - scheduling/v1alpha1 + - settings/v1alpha1 + - storage/v1 + - storage/v1alpha1 + - storage/v1beta1 - name: k8s.io/apiextensions-apiserver - version: fcd622fe88a4a6efcb5aea9e94ee87324ac1b036 + version: 913221cf6cd1c328ae50ba5f25027268f6be38cf subpackages: - pkg/apis/apiextensions - pkg/apis/apiextensions/v1beta1 @@ -157,24 +205,19 @@ imports: - pkg/client/clientset/clientset/scheme - pkg/client/clientset/clientset/typed/apiextensions/v1beta1 - name: k8s.io/apimachinery - version: 1cb2cdd78d38df243e686d1b572b76e190469842 + version: fb40df2b502912cbe3a93aa61c2b2487f39cb42f subpackages: - - pkg/api/equality - pkg/api/errors - pkg/api/meta - pkg/api/resource - - pkg/apimachinery - - pkg/apimachinery/announced - - pkg/apimachinery/registered + - pkg/apis/meta/internalversion - pkg/apis/meta/v1 - pkg/apis/meta/v1/unstructured - pkg/apis/meta/v1alpha1 - pkg/conversion - pkg/conversion/queryparams - - pkg/conversion/unstructured - pkg/fields - pkg/labels - - pkg/openapi - pkg/runtime - pkg/runtime/schema - pkg/runtime/serializer @@ -195,7 +238,6 @@ imports: - pkg/util/intstr - pkg/util/json - pkg/util/net - - pkg/util/rand - pkg/util/remotecommand - pkg/util/runtime - pkg/util/sets @@ -208,68 +250,39 @@ imports: - third_party/forked/golang/netutil - third_party/forked/golang/reflect - name: k8s.io/client-go - version: d92e8497f71b7b4e0494e5bd204b48d34bd6f254 + version: 78700dec6369ba22221b72770783300f143df150 subpackages: - discovery - kubernetes - kubernetes/scheme - kubernetes/typed/admissionregistration/v1alpha1 + - kubernetes/typed/admissionregistration/v1beta1 + - kubernetes/typed/apps/v1 - kubernetes/typed/apps/v1beta1 + - kubernetes/typed/apps/v1beta2 - kubernetes/typed/authentication/v1 - kubernetes/typed/authentication/v1beta1 - kubernetes/typed/authorization/v1 - kubernetes/typed/authorization/v1beta1 - kubernetes/typed/autoscaling/v1 - - kubernetes/typed/autoscaling/v2alpha1 + - kubernetes/typed/autoscaling/v2beta1 - kubernetes/typed/batch/v1 + - kubernetes/typed/batch/v1beta1 - kubernetes/typed/batch/v2alpha1 - kubernetes/typed/certificates/v1beta1 - kubernetes/typed/core/v1 + - kubernetes/typed/events/v1beta1 - kubernetes/typed/extensions/v1beta1 - kubernetes/typed/networking/v1 - kubernetes/typed/policy/v1beta1 + - kubernetes/typed/rbac/v1 - kubernetes/typed/rbac/v1alpha1 - kubernetes/typed/rbac/v1beta1 + - kubernetes/typed/scheduling/v1alpha1 - kubernetes/typed/settings/v1alpha1 - kubernetes/typed/storage/v1 + - kubernetes/typed/storage/v1alpha1 - kubernetes/typed/storage/v1beta1 - - pkg/api - - pkg/api/v1 - - pkg/api/v1/ref - - pkg/apis/admissionregistration - - pkg/apis/admissionregistration/v1alpha1 - - pkg/apis/apps - - pkg/apis/apps/v1beta1 - - pkg/apis/authentication - - pkg/apis/authentication/v1 - - pkg/apis/authentication/v1beta1 - - pkg/apis/authorization - - pkg/apis/authorization/v1 - - pkg/apis/authorization/v1beta1 - - pkg/apis/autoscaling - - pkg/apis/autoscaling/v1 - - pkg/apis/autoscaling/v2alpha1 - - pkg/apis/batch - - pkg/apis/batch/v1 - - pkg/apis/batch/v2alpha1 - - pkg/apis/certificates - - pkg/apis/certificates/v1beta1 - - pkg/apis/extensions - - pkg/apis/extensions/v1beta1 - - pkg/apis/networking - - pkg/apis/networking/v1 - - pkg/apis/policy - - pkg/apis/policy/v1beta1 - - pkg/apis/rbac - - pkg/apis/rbac/v1alpha1 - - pkg/apis/rbac/v1beta1 - - pkg/apis/settings - - pkg/apis/settings/v1alpha1 - - pkg/apis/storage - - pkg/apis/storage/v1 - - pkg/apis/storage/v1beta1 - - pkg/util - - pkg/util/parsers - pkg/version - rest - rest/watch @@ -280,11 +293,23 @@ imports: - tools/clientcmd/api/latest - tools/clientcmd/api/v1 - tools/metrics + - tools/pager + - tools/reference - tools/remotecommand - transport + - transport/spdy + - util/buffer - util/cert - util/exec - util/flowcontrol - util/homedir - util/integer +- name: k8s.io/code-generator + version: 0ab89e584187c20cc7c1a3f30db69f3b4ab64196 +- name: k8s.io/gengo + version: 906d99f89cd644eecf75ab547b29bf9f876f0b59 +- name: k8s.io/kube-openapi + version: 39a7bf85c140f972372c2a0d1ee40adbf0c8bfe1 + subpackages: + - pkg/common testImports: [] diff --git a/glide.yaml b/glide.yaml index 3d79d8f68..1b7b5b827 100644 --- a/glide.yaml +++ b/glide.yaml @@ -10,38 +10,14 @@ import: - service/ec2 - package: github.com/lib/pq - package: github.com/motomux/pretty -- package: k8s.io/apiextensions-apiserver - subpackages: - - pkg/client/clientset/clientset - package: k8s.io/apimachinery - version: release-1.7 - subpackages: - - pkg/api/errors - - pkg/api/resource - - pkg/apis/meta/v1 - - pkg/labels - - pkg/runtime - - pkg/runtime/schema - - pkg/runtime/serializer - - pkg/types - - pkg/util/intstr - - pkg/util/remotecommand - - pkg/watch + version: kubernetes-1.9.9 +- package: k8s.io/apiextensions-apiserver + version: kubernetes-1.9.9 - package: k8s.io/client-go - version: ^4.0.0 - subpackages: - - kubernetes - - kubernetes/scheme - - kubernetes/typed/apps/v1beta1 - - kubernetes/typed/core/v1 - - kubernetes/typed/extensions/v1beta1 - - pkg/api - - pkg/api/v1 - - pkg/apis/apps/v1beta1 - - pkg/apis/extensions/v1beta1 - - rest - - tools/cache - - tools/clientcmd - - tools/remotecommand + version: ^6.0.0 +- package: k8s.io/code-generator + version: kubernetes-1.9.9 +- package: k8s.io/gengo - package: gopkg.in/yaml.v2 - package: github.com/mohae/deepcopy diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index 2548ebc22..e15f5a63f 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -14,9 +14,9 @@ import ( "github.com/Sirupsen/logrus" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/client-go/pkg/api/v1" - "k8s.io/client-go/pkg/apis/apps/v1beta1" - policybeta1 "k8s.io/client-go/pkg/apis/policy/v1beta1" + "k8s.io/api/core/v1" + "k8s.io/api/apps/v1beta1" + policybeta1 "k8s.io/api/policy/v1beta1" "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" @@ -28,7 +28,7 @@ import ( "github.com/zalando-incubator/postgres-operator/pkg/util/patroni" "github.com/zalando-incubator/postgres-operator/pkg/util/teams" "github.com/zalando-incubator/postgres-operator/pkg/util/users" - rbacv1beta1 "k8s.io/client-go/pkg/apis/rbac/v1beta1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" ) var ( diff --git a/pkg/cluster/cluster_test.go b/pkg/cluster/cluster_test.go index 34f64e655..7786e4563 100644 --- a/pkg/cluster/cluster_test.go +++ b/pkg/cluster/cluster_test.go @@ -7,7 +7,7 @@ import ( "github.com/zalando-incubator/postgres-operator/pkg/util/config" "github.com/zalando-incubator/postgres-operator/pkg/util/k8sutil" "github.com/zalando-incubator/postgres-operator/pkg/util/teams" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" "reflect" "testing" ) diff --git a/pkg/cluster/exec.go b/pkg/cluster/exec.go index 81843aca6..36d8a884c 100644 --- a/pkg/cluster/exec.go +++ b/pkg/cluster/exec.go @@ -6,9 +6,8 @@ import ( "strings" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" "k8s.io/client-go/kubernetes/scheme" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" "k8s.io/client-go/tools/remotecommand" "github.com/zalando-incubator/postgres-operator/pkg/spec" @@ -54,15 +53,15 @@ func (c *Cluster) ExecCommand(podName *spec.NamespacedName, command ...string) ( Stderr: true, }, scheme.ParameterCodec) - exec, err := remotecommand.NewExecutor(c.RestConfig, "POST", req.URL()) + exec, err := remotecommand.NewSPDYExecutor(c.RestConfig, "POST", req.URL()) if err != nil { return "", fmt.Errorf("failed to init executor: %v", err) } err = exec.Stream(remotecommand.StreamOptions{ - SupportedProtocols: remotecommandconsts.SupportedStreamingProtocols, Stdout: &execOut, Stderr: &execErr, + Tty: false, }) if err != nil { diff --git a/pkg/cluster/k8sres.go b/pkg/cluster/k8sres.go index 35b6d471e..26308cd30 100644 --- a/pkg/cluster/k8sres.go +++ b/pkg/cluster/k8sres.go @@ -10,9 +10,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/client-go/pkg/api/v1" - "k8s.io/client-go/pkg/apis/apps/v1beta1" - policybeta1 "k8s.io/client-go/pkg/apis/policy/v1beta1" + "k8s.io/api/core/v1" + "k8s.io/api/apps/v1beta1" + policybeta1 "k8s.io/api/policy/v1beta1" "github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/util/constants" diff --git a/pkg/cluster/pod.go b/pkg/cluster/pod.go index 66c2950bc..b0b73315d 100644 --- a/pkg/cluster/pod.go +++ b/pkg/cluster/pod.go @@ -5,7 +5,7 @@ import ( "math/rand" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" "github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/util" diff --git a/pkg/cluster/resources.go b/pkg/cluster/resources.go index cc3c4e6f9..c965d65d5 100644 --- a/pkg/cluster/resources.go +++ b/pkg/cluster/resources.go @@ -7,9 +7,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/client-go/pkg/api/v1" - "k8s.io/client-go/pkg/apis/apps/v1beta1" - policybeta1 "k8s.io/client-go/pkg/apis/policy/v1beta1" + "k8s.io/api/core/v1" + "k8s.io/api/apps/v1beta1" + policybeta1 "k8s.io/api/policy/v1beta1" "github.com/zalando-incubator/postgres-operator/pkg/util" "github.com/zalando-incubator/postgres-operator/pkg/util/constants" diff --git a/pkg/cluster/sync.go b/pkg/cluster/sync.go index bd2823b5b..d56dd9a9a 100644 --- a/pkg/cluster/sync.go +++ b/pkg/cluster/sync.go @@ -5,7 +5,7 @@ import ( "reflect" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - policybeta1 "k8s.io/client-go/pkg/apis/policy/v1beta1" + policybeta1 "k8s.io/api/policy/v1beta1" "github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/util" diff --git a/pkg/cluster/util.go b/pkg/cluster/util.go index ab8189d96..8f2c6c389 100644 --- a/pkg/cluster/util.go +++ b/pkg/cluster/util.go @@ -13,9 +13,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/pkg/api/v1" - "k8s.io/client-go/pkg/apis/apps/v1beta1" - policybeta1 "k8s.io/client-go/pkg/apis/policy/v1beta1" + "k8s.io/api/core/v1" + "k8s.io/api/apps/v1beta1" + policybeta1 "k8s.io/api/policy/v1beta1" "github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/util" diff --git a/pkg/cluster/volumes.go b/pkg/cluster/volumes.go index 2b7537071..71f35cf05 100644 --- a/pkg/cluster/volumes.go +++ b/pkg/cluster/volumes.go @@ -7,7 +7,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" "github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/util" diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go index 96f1d2087..df2fa9d04 100644 --- a/pkg/controller/controller.go +++ b/pkg/controller/controller.go @@ -9,8 +9,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/kubernetes/scheme" - "k8s.io/client-go/pkg/api/v1" - rbacv1beta1 "k8s.io/client-go/pkg/apis/rbac/v1beta1" + "k8s.io/api/core/v1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" "k8s.io/client-go/tools/cache" "github.com/zalando-incubator/postgres-operator/pkg/apiserver" diff --git a/pkg/controller/node.go b/pkg/controller/node.go index a4a558a2c..c18f6f0ad 100644 --- a/pkg/controller/node.go +++ b/pkg/controller/node.go @@ -5,7 +5,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" "github.com/zalando-incubator/postgres-operator/pkg/cluster" "github.com/zalando-incubator/postgres-operator/pkg/util" diff --git a/pkg/controller/node_test.go b/pkg/controller/node_test.go index 0f86628bd..6cb4d2b0d 100644 --- a/pkg/controller/node_test.go +++ b/pkg/controller/node_test.go @@ -5,7 +5,7 @@ import ( "github.com/zalando-incubator/postgres-operator/pkg/spec" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" ) const ( diff --git a/pkg/controller/pod.go b/pkg/controller/pod.go index 070e6da2d..0d16523fc 100644 --- a/pkg/controller/pod.go +++ b/pkg/controller/pod.go @@ -4,7 +4,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" "github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/util" diff --git a/pkg/controller/postgresql.go b/pkg/controller/postgresql.go index c037260ab..f4d56ad6d 100644 --- a/pkg/controller/postgresql.go +++ b/pkg/controller/postgresql.go @@ -147,12 +147,12 @@ func (d *crdDecoder) Decode() (action watch.EventType, object runtime.Object, er func (c *Controller) clusterWatchFunc(options metav1.ListOptions) (watch.Interface, error) { options.Watch = true + // MIGRATION: FieldsSelectorParam(nil) r, err := c.KubeClient.CRDREST. Get(). Namespace(c.opConfig.WatchedNamespace). Resource(constants.PostgresCRDResource). VersionedParams(&options, metav1.ParameterCodec). - FieldsSelectorParam(nil). Stream() if err != nil { diff --git a/pkg/controller/util.go b/pkg/controller/util.go index ef1472a2a..fceea3ba8 100644 --- a/pkg/controller/util.go +++ b/pkg/controller/util.go @@ -6,7 +6,7 @@ import ( apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" "github.com/zalando-incubator/postgres-operator/pkg/cluster" "github.com/zalando-incubator/postgres-operator/pkg/spec" diff --git a/pkg/controller/util_test.go b/pkg/controller/util_test.go index 693383143..c29240566 100644 --- a/pkg/controller/util_test.go +++ b/pkg/controller/util_test.go @@ -8,7 +8,7 @@ import ( b64 "encoding/base64" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" v1core "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" "github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/util/k8sutil" diff --git a/pkg/spec/postgresql.go b/pkg/spec/postgresql.go index 4b973e503..a164da75a 100644 --- a/pkg/spec/postgresql.go +++ b/pkg/spec/postgresql.go @@ -9,7 +9,8 @@ import ( "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime" ) // MaintenanceWindow describes the time window when the operator is allowed to do maintenance on a cluster. @@ -154,14 +155,34 @@ var ( // will not contain any private fields not-reachable to deepcopy. This should be ok, // since Error is never read from a Kubernetes object. func (p *Postgresql) Clone() *Postgresql { - if p == nil { - return nil - } + if p == nil {return nil} c := deepcopy.Copy(p).(*Postgresql) c.Error = nil return c } +func (in *Postgresql) DeepCopyInto(out *Postgresql) { + if in != nil { + out = deepcopy.Copy(in).(*Postgresql) + } + return +} + +func (in *Postgresql) DeepCopy() *Postgresql { + if in == nil { return nil } + out := new(Postgresql) + in.DeepCopyInto(out) + return out +} + +func (in *Postgresql) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + + func parseTime(s string) (time.Time, error) { parts := strings.Split(s, ":") if len(parts) != 2 { @@ -287,6 +308,29 @@ func validateCloneClusterDescription(clone *CloneDescription) error { type postgresqlListCopy PostgresqlList type postgresqlCopy Postgresql + +func (in *PostgresqlList) DeepCopy() *PostgresqlList { + if in == nil { return nil } + out := new(PostgresqlList) + in.DeepCopyInto(out) + return out +} + +func (in *PostgresqlList) DeepCopyInto(out *PostgresqlList) { + if in != nil { + out = deepcopy.Copy(in).(*PostgresqlList) + } + return +} + +func (in *PostgresqlList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + + // UnmarshalJSON converts a JSON into the PostgreSQL object. func (p *Postgresql) UnmarshalJSON(data []byte) error { var tmp postgresqlCopy diff --git a/pkg/spec/types.go b/pkg/spec/types.go index 98490e1b0..37d01fc9a 100644 --- a/pkg/spec/types.go +++ b/pkg/spec/types.go @@ -12,9 +12,9 @@ import ( "github.com/Sirupsen/logrus" "k8s.io/apimachinery/pkg/types" - "k8s.io/client-go/pkg/api/v1" - "k8s.io/client-go/pkg/apis/apps/v1beta1" - policyv1beta1 "k8s.io/client-go/pkg/apis/policy/v1beta1" + "k8s.io/api/core/v1" + "k8s.io/api/apps/v1beta1" + policyv1beta1 "k8s.io/api/policy/v1beta1" "k8s.io/client-go/rest" ) diff --git a/pkg/util/config/crd_config.go b/pkg/util/config/crd_config.go index cd08ea14e..465c27637 100644 --- a/pkg/util/config/crd_config.go +++ b/pkg/util/config/crd_config.go @@ -6,6 +6,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/zalando-incubator/postgres-operator/pkg/spec" + "github.com/mohae/deepcopy" + "k8s.io/apimachinery/pkg/runtime" ) type OperatorConfiguration struct { @@ -160,3 +162,46 @@ func (opcl *OperatorConfigurationList) UnmarshalJSON(data []byte) error { *opcl = OperatorConfigurationList(ref) return nil } + +func (in *OperatorConfiguration) DeepCopyInto(out *OperatorConfiguration) { + if in != nil { + out = deepcopy.Copy(in).(*OperatorConfiguration) + } + return +} + +func (in *OperatorConfiguration) DeepCopy() *OperatorConfiguration { + if in == nil { return nil } + out := new(OperatorConfiguration) + in.DeepCopyInto(out) + return out +} + +func (in *OperatorConfiguration) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +func (in *OperatorConfigurationList) DeepCopyInto(out *OperatorConfigurationList) { + if in != nil { + out = deepcopy.Copy(in).(*OperatorConfigurationList) + } + return +} + +func (in *OperatorConfigurationList) DeepCopy() *OperatorConfigurationList { + if in == nil { return nil } + out := new(OperatorConfigurationList) + in.DeepCopyInto(out) + return out +} + +func (in *OperatorConfigurationList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + diff --git a/pkg/util/k8sutil/k8sutil.go b/pkg/util/k8sutil/k8sutil.go index dd96aa5a7..f4af5fea1 100644 --- a/pkg/util/k8sutil/k8sutil.go +++ b/pkg/util/k8sutil/k8sutil.go @@ -4,19 +4,19 @@ import ( "fmt" "reflect" + "k8s.io/api/core/v1" + policybeta1 "k8s.io/api/policy/v1beta1" apiextclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" apiextbeta1 "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/client-go/kubernetes" + "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/kubernetes/typed/apps/v1beta1" v1core "k8s.io/client-go/kubernetes/typed/core/v1" policyv1beta1 "k8s.io/client-go/kubernetes/typed/policy/v1beta1" rbacv1beta1 "k8s.io/client-go/kubernetes/typed/rbac/v1beta1" - "k8s.io/client-go/pkg/api" - "k8s.io/client-go/pkg/api/v1" - policybeta1 "k8s.io/client-go/pkg/apis/policy/v1beta1" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" @@ -93,7 +93,8 @@ func NewFromConfig(cfg *rest.Config) (KubernetesClient, error) { Version: constants.CRDApiVersion, } cfg2.APIPath = constants.K8sAPIPath - cfg2.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: api.Codecs} + // MIGRATION: api.codecs -> scheme.Codecs? + cfg2.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs} crd, err := rest.RESTClientFor(&cfg2) if err != nil { diff --git a/pkg/util/patroni/patroni.go b/pkg/util/patroni/patroni.go index 5e5dc4aeb..28011c858 100644 --- a/pkg/util/patroni/patroni.go +++ b/pkg/util/patroni/patroni.go @@ -9,7 +9,7 @@ import ( "time" "github.com/Sirupsen/logrus" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" ) const ( diff --git a/pkg/util/volumes/ebs.go b/pkg/util/volumes/ebs.go index 57a334258..00801fa9c 100644 --- a/pkg/util/volumes/ebs.go +++ b/pkg/util/volumes/ebs.go @@ -7,7 +7,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ec2" - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" "github.com/zalando-incubator/postgres-operator/pkg/util/constants" "github.com/zalando-incubator/postgres-operator/pkg/util/retryutil" diff --git a/pkg/util/volumes/volumes.go b/pkg/util/volumes/volumes.go index 3680733d9..94c0fffc8 100644 --- a/pkg/util/volumes/volumes.go +++ b/pkg/util/volumes/volumes.go @@ -1,7 +1,7 @@ package volumes import ( - "k8s.io/client-go/pkg/api/v1" + "k8s.io/api/core/v1" ) // VolumeResizer defines the set of methods used to implememnt provider-specific resizing of persistent volumes.