use kubernetes client-go from master branch o_O

This commit is contained in:
Murat Kabilov 2017-05-22 11:34:20 +02:00
parent d9b0ee9198
commit 614c270c55
17 changed files with 155 additions and 297 deletions

View File

@ -8,6 +8,8 @@ import (
"sync" "sync"
"syscall" "syscall"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/zalando-incubator/postgres-operator/pkg/controller" "github.com/zalando-incubator/postgres-operator/pkg/controller"
"github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/spec"
"github.com/zalando-incubator/postgres-operator/pkg/util/config" "github.com/zalando-incubator/postgres-operator/pkg/util/config"
@ -79,7 +81,7 @@ func main() {
controllerConfig := ControllerConfig() controllerConfig := ControllerConfig()
if configMapName != (spec.NamespacedName{}) { if configMapName != (spec.NamespacedName{}) {
configMap, err := controllerConfig.KubeClient.ConfigMaps(configMapName.Namespace).Get(configMapName.Name) configMap, err := controllerConfig.KubeClient.ConfigMaps(configMapName.Namespace).Get(configMapName.Name, meta_v1.GetOptions{})
if err != nil { if err != nil {
panic(err) panic(err)
} }

225
glide.lock generated
View File

@ -1,62 +1,6 @@
hash: 427db08c70ab32596f9230f0111e24996f73b1b66ddd7365dd0b1b38c0ae367f hash: 7e79ff2d1611bc4c9d074487a94941a21f4bb7a9834e7d2aa2a549a6fd509936
updated: 2017-05-19T17:11:37.120200516+02:00 updated: 2017-05-22T11:21:50.408474064+02:00
imports: imports:
- name: cloud.google.com/go
version: 3b1ae45394a234c385be014e9a488f2bb6eef821
subpackages:
- compute/metadata
- internal
- name: github.com/aws/aws-sdk-go
version: 63ce630574a5ec05ecd8e8de5cea16332a5a684d
subpackages:
- aws
- aws/awserr
- aws/awsutil
- aws/client
- aws/client/metadata
- aws/corehandlers
- aws/credentials
- aws/credentials/ec2rolecreds
- aws/credentials/endpointcreds
- aws/credentials/stscreds
- aws/defaults
- aws/ec2metadata
- aws/endpoints
- aws/request
- aws/session
- aws/signer/v4
- private/protocol
- private/protocol/ec2query
- private/protocol/json/jsonutil
- private/protocol/jsonrpc
- private/protocol/query
- private/protocol/query/queryutil
- private/protocol/rest
- private/protocol/restxml
- private/protocol/xml/xmlutil
- private/waiter
- service/autoscaling
- service/ec2
- service/ecr
- service/elb
- service/route53
- service/sts
- name: github.com/blang/semver
version: 31b736133b98f26d5e078ec9eb591666edfd091f
- name: github.com/coreos/go-oidc
version: 5644a2f50e2d2d5ba0b474bc5bc55fea1925936d
subpackages:
- http
- jose
- key
- oauth2
- oidc
- name: github.com/coreos/pkg
version: fa29b1d70f0beaddd4c7021607cc3c3be8ce94b8
subpackages:
- health
- httputil
- timeutil
- name: github.com/davecgh/go-spew - name: github.com/davecgh/go-spew
version: 5215b55f46b2b919f50a1df0eaa5886afe4e3b3d version: 5215b55f46b2b919f50a1df0eaa5886afe4e3b3d
subpackages: subpackages:
@ -71,43 +15,42 @@ imports:
subpackages: subpackages:
- spdy - spdy
- name: github.com/emicklei/go-restful - name: github.com/emicklei/go-restful
version: 89ef8af493ab468a45a42bb0d89a06fccdd2fb22 version: ff4f55a206334ef123e4f79bbf348980da81ca46
subpackages: subpackages:
- log - log
- swagger - name: github.com/emicklei/go-restful-swagger12
version: dcef7f55730566d41eae5db10e7d6981829720f6
- name: github.com/ghodss/yaml - name: github.com/ghodss/yaml
version: 73d445a93680fa1a78ae23a5839bad48f32ba1ee version: 73d445a93680fa1a78ae23a5839bad48f32ba1ee
- name: github.com/go-ini/ini - name: github.com/go-openapi/analysis
version: 2e44421e256d82ebbf3d4d4fcabe8930b905eff3 version: b44dc874b601d9e4e2f6e19140e794ba24bead3b
- name: github.com/go-openapi/jsonpointer - name: github.com/go-openapi/jsonpointer
version: 46af16f9f7b149af66e5d1bd010e3574dc06de98 version: 46af16f9f7b149af66e5d1bd010e3574dc06de98
- name: github.com/go-openapi/jsonreference - name: github.com/go-openapi/jsonreference
version: 13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272 version: 13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272
- name: github.com/go-openapi/loads
version: 18441dfa706d924a39a030ee2c3b1d8d81917b38
- name: github.com/go-openapi/spec - name: github.com/go-openapi/spec
version: 6aced65f8501fe1217321abf0749d354824ba2ff version: 6aced65f8501fe1217321abf0749d354824ba2ff
- name: github.com/go-openapi/swag - name: github.com/go-openapi/swag
version: 1d0bd113de87027671077d3c71eb3ac5d7dbba72 version: 1d0bd113de87027671077d3c71eb3ac5d7dbba72
- name: github.com/gogo/protobuf - name: github.com/gogo/protobuf
version: 100ba4e885062801d56799d78530b73b178a78f3 version: c0656edd0d9eab7c66d1eb0c568f9039345796f7
subpackages: subpackages:
- proto - proto
- sortkeys - sortkeys
- name: github.com/golang/glog - name: github.com/golang/glog
version: 44145f04b68cf362d9c4df2182967c2275eaefed version: 44145f04b68cf362d9c4df2182967c2275eaefed
- name: github.com/golang/protobuf
version: 8616e8ee5e20a1704615e6c8d7afcdac06087a67
subpackages:
- proto
- name: github.com/google/gofuzz - name: github.com/google/gofuzz
version: bbcb9da2d746f8bdbd6a936686a0a6067ada0ec5 version: 44d81051d367757e1c7c6a5a86423ece9afcf63c
- name: github.com/hashicorp/golang-lru
version: a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4
subpackages:
- simplelru
- name: github.com/howeyc/gopass - name: github.com/howeyc/gopass
version: 3ca23474a7c7203e0a0a070fd33508f6efdb9b3d version: 3ca23474a7c7203e0a0a070fd33508f6efdb9b3d
- name: github.com/imdario/mergo - name: github.com/imdario/mergo
version: 6633656539c1639d9d78127b7d47c622b5d7b6dc version: 6633656539c1639d9d78127b7d47c622b5d7b6dc
- name: github.com/jmespath/go-jmespath
version: 3433f3ea46d9f8019119e7dd41274e112a2359a9
- name: github.com/jonboulle/clockwork
version: 72f9bd7c4e0c2a40055ab3d0f09654f730cce982
- name: github.com/juju/ratelimit - name: github.com/juju/ratelimit
version: 77ed1c8a01217656d2080ad51981f6e99adaa177 version: 77ed1c8a01217656d2080ad51981f6e99adaa177
- name: github.com/kr/text - name: github.com/kr/text
@ -124,42 +67,29 @@ imports:
- jwriter - jwriter
- name: github.com/motomux/pretty - name: github.com/motomux/pretty
version: b2aad2c9a95d14eb978f29baa6e3a5c3c20eef30 version: b2aad2c9a95d14eb978f29baa6e3a5c3c20eef30
- name: github.com/pborman/uuid
version: ca53cad383cad2479bbba7f7a1a05797ec1386e4
- name: github.com/PuerkitoBio/purell - name: github.com/PuerkitoBio/purell
version: 8a290539e2e8629dbc4e6bad948158f790ec31f4 version: 8a290539e2e8629dbc4e6bad948158f790ec31f4
- name: github.com/PuerkitoBio/urlesc - name: github.com/PuerkitoBio/urlesc
version: 5bd2802263f21d8788851d5305584c82a5c75d7e version: 5bd2802263f21d8788851d5305584c82a5c75d7e
- name: github.com/Sirupsen/logrus - name: github.com/Sirupsen/logrus
version: ba1b36c82c5e05c4f912a88eab0dcd91a171688f version: ba1b36c82c5e05c4f912a88eab0dcd91a171688f
subpackages:
- client
- name: github.com/spf13/pflag - name: github.com/spf13/pflag
version: 5ccb023bc27df288a957c5e994cd44fd19619465 version: 9ff6c6923cfffbcd502984b8e0c80539a94968b7
- name: github.com/ugorji/go - name: github.com/ugorji/go
version: f1f1a805ed361a0e078bb537e4ea78cd37dcf065 version: ded73eae5db7e7a0ef6f55aace87a2873c5d2b74
subpackages: subpackages:
- codec - codec
- name: golang.org/x/crypto - name: golang.org/x/crypto
version: 1f22c0103821b9390939b6776727195525381532 version: d172538b2cfce0c13cee31e647d0367aa8cd2486
subpackages: subpackages:
- ssh/terminal - ssh/terminal
- name: golang.org/x/net - name: golang.org/x/net
version: e90d6d0afc4c315a0d87a568ae68577cc15149a0 version: f2499483f923065a842d38eb4c7f1927e6fc6e6d
subpackages: subpackages:
- context
- context/ctxhttp
- http2 - http2
- http2/hpack - http2/hpack
- idna - idna
- lex/httplex - lex/httplex
- name: golang.org/x/oauth2
version: 3c3a985cb79f52a3190fbc056984415ca6763d01
subpackages:
- google
- internal
- jws
- jwt
- name: golang.org/x/sys - name: golang.org/x/sys
version: 8f0908ab3b2457e2e15403d3697c9ef5cb4b57a9 version: 8f0908ab3b2457e2e15403d3697c9ef5cb4b57a9
subpackages: subpackages:
@ -177,24 +107,12 @@ imports:
- unicode/bidi - unicode/bidi
- unicode/norm - unicode/norm
- width - width
- name: google.golang.org/appengine
version: 4f7eeb5305a4ba1966344836ba4af9996b7b4e05
subpackages:
- internal
- internal/app_identity
- internal/base
- internal/datastore
- internal/log
- internal/modules
- internal/remote_api
- internal/urlfetch
- urlfetch
- name: gopkg.in/inf.v0 - name: gopkg.in/inf.v0
version: 3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4 version: 3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4
- name: gopkg.in/yaml.v2 - name: gopkg.in/yaml.v2
version: 53feefa2559fb8dfa8d81baad31be332c97d6c77 version: 53feefa2559fb8dfa8d81baad31be332c97d6c77
- name: k8s.io/apimachinery - name: k8s.io/apimachinery
version: 84c15da65eb86243c295d566203d7689cc6ac04b version: 2de00c78cb6d6127fb51b9531c1b3def1cbcac8c
subpackages: subpackages:
- pkg/api/errors - pkg/api/errors
- pkg/api/meta - pkg/api/meta
@ -215,9 +133,13 @@ imports:
- pkg/runtime/serializer/json - pkg/runtime/serializer/json
- pkg/runtime/serializer/protobuf - pkg/runtime/serializer/protobuf
- pkg/runtime/serializer/recognizer - pkg/runtime/serializer/recognizer
- pkg/runtime/serializer/streaming
- pkg/runtime/serializer/versioning - pkg/runtime/serializer/versioning
- pkg/selection - pkg/selection
- pkg/types - pkg/types
- pkg/util/cache
- pkg/util/clock
- pkg/util/diff
- pkg/util/errors - pkg/util/errors
- pkg/util/framer - pkg/util/framer
- pkg/util/httpstream - pkg/util/httpstream
@ -225,6 +147,7 @@ imports:
- pkg/util/intstr - pkg/util/intstr
- pkg/util/json - pkg/util/json
- pkg/util/net - pkg/util/net
- pkg/util/rand
- pkg/util/remotecommand - pkg/util/remotecommand
- pkg/util/runtime - pkg/util/runtime
- pkg/util/sets - pkg/util/sets
@ -232,116 +155,70 @@ imports:
- pkg/util/validation/field - pkg/util/validation/field
- pkg/util/wait - pkg/util/wait
- pkg/util/yaml - pkg/util/yaml
- pkg/version
- pkg/watch - pkg/watch
- third_party/forked/golang/netutil - third_party/forked/golang/netutil
- third_party/forked/golang/reflect - third_party/forked/golang/reflect
- name: k8s.io/client-go - name: k8s.io/client-go
version: e121606b0d09b2e1c467183ee46217fa85a6b672 version: 450baa5d60f8d6a251c7682cb6f86e939b750b2d
subpackages: subpackages:
- discovery - discovery
- kubernetes - kubernetes
- kubernetes/scheme
- kubernetes/typed/apps/v1beta1 - kubernetes/typed/apps/v1beta1
- kubernetes/typed/authentication/v1
- kubernetes/typed/authentication/v1beta1 - kubernetes/typed/authentication/v1beta1
- kubernetes/typed/authorization/v1
- kubernetes/typed/authorization/v1beta1 - kubernetes/typed/authorization/v1beta1
- kubernetes/typed/autoscaling/v1 - kubernetes/typed/autoscaling/v1
- kubernetes/typed/autoscaling/v2alpha1
- kubernetes/typed/batch/v1 - kubernetes/typed/batch/v1
- kubernetes/typed/batch/v2alpha1 - kubernetes/typed/batch/v2alpha1
- kubernetes/typed/certificates/v1alpha1 - kubernetes/typed/certificates/v1beta1
- kubernetes/typed/core/v1 - kubernetes/typed/core/v1
- kubernetes/typed/extensions/v1beta1 - kubernetes/typed/extensions/v1beta1
- kubernetes/typed/policy/v1beta1 - kubernetes/typed/policy/v1beta1
- kubernetes/typed/rbac/v1alpha1 - kubernetes/typed/rbac/v1alpha1
- kubernetes/typed/rbac/v1beta1
- kubernetes/typed/settings/v1alpha1
- kubernetes/typed/storage/v1
- kubernetes/typed/storage/v1beta1 - kubernetes/typed/storage/v1beta1
- pkg/api - pkg/api
- pkg/api/errors
- pkg/api/install
- pkg/api/meta
- pkg/api/meta/metatypes
- pkg/api/resource
- pkg/api/unversioned
- pkg/api/v1 - pkg/api/v1
- pkg/api/validation/path - pkg/api/v1/ref
- pkg/apimachinery
- pkg/apimachinery/announced
- pkg/apimachinery/registered
- pkg/apis/apps - pkg/apis/apps
- pkg/apis/apps/install
- pkg/apis/apps/v1beta1 - pkg/apis/apps/v1beta1
- pkg/apis/authentication - pkg/apis/authentication
- pkg/apis/authentication/install - pkg/apis/authentication/v1
- pkg/apis/authentication/v1beta1 - pkg/apis/authentication/v1beta1
- pkg/apis/authorization - pkg/apis/authorization
- pkg/apis/authorization/install - pkg/apis/authorization/v1
- pkg/apis/authorization/v1beta1 - pkg/apis/authorization/v1beta1
- pkg/apis/autoscaling - pkg/apis/autoscaling
- pkg/apis/autoscaling/install
- pkg/apis/autoscaling/v1 - pkg/apis/autoscaling/v1
- pkg/apis/autoscaling/v2alpha1
- pkg/apis/batch - pkg/apis/batch
- pkg/apis/batch/install
- pkg/apis/batch/v1 - pkg/apis/batch/v1
- pkg/apis/batch/v2alpha1 - pkg/apis/batch/v2alpha1
- pkg/apis/certificates - pkg/apis/certificates
- pkg/apis/certificates/install - pkg/apis/certificates/v1beta1
- pkg/apis/certificates/v1alpha1
- pkg/apis/extensions - pkg/apis/extensions
- pkg/apis/extensions/install
- pkg/apis/extensions/v1beta1 - pkg/apis/extensions/v1beta1
- pkg/apis/policy - pkg/apis/policy
- pkg/apis/policy/install
- pkg/apis/policy/v1beta1 - pkg/apis/policy/v1beta1
- pkg/apis/rbac - pkg/apis/rbac
- pkg/apis/rbac/install
- pkg/apis/rbac/v1alpha1 - pkg/apis/rbac/v1alpha1
- pkg/apis/rbac/v1beta1
- pkg/apis/settings
- pkg/apis/settings/v1alpha1
- pkg/apis/storage - pkg/apis/storage
- pkg/apis/storage/install - pkg/apis/storage/v1
- pkg/apis/storage/v1beta1 - pkg/apis/storage/v1beta1
- pkg/auth/user
- pkg/conversion
- pkg/conversion/queryparams
- pkg/fields
- pkg/genericapiserver/openapi/common
- pkg/labels
- pkg/runtime
- pkg/runtime/serializer
- pkg/runtime/serializer/json
- pkg/runtime/serializer/protobuf
- pkg/runtime/serializer/recognizer
- pkg/runtime/serializer/streaming
- pkg/runtime/serializer/versioning
- pkg/selection
- pkg/third_party/forked/golang/reflect
- pkg/third_party/forked/golang/template
- pkg/types
- pkg/util - pkg/util
- pkg/util/cert
- pkg/util/clock
- pkg/util/diff
- pkg/util/errors
- pkg/util/flowcontrol
- pkg/util/framer
- pkg/util/homedir
- pkg/util/integer
- pkg/util/intstr
- pkg/util/json
- pkg/util/jsonpath
- pkg/util/labels
- pkg/util/net
- pkg/util/parsers - pkg/util/parsers
- pkg/util/rand
- pkg/util/runtime
- pkg/util/sets
- pkg/util/uuid
- pkg/util/validation
- pkg/util/validation/field
- pkg/util/wait
- pkg/util/yaml
- pkg/version - pkg/version
- pkg/watch
- pkg/watch/versioned
- plugin/pkg/client/auth
- plugin/pkg/client/auth/gcp
- plugin/pkg/client/auth/oidc
- rest - rest
- rest/watch
- tools/auth - tools/auth
- tools/cache - tools/cache
- tools/clientcmd - tools/clientcmd
@ -349,11 +226,11 @@ imports:
- tools/clientcmd/api/latest - tools/clientcmd/api/latest
- tools/clientcmd/api/v1 - tools/clientcmd/api/v1
- tools/metrics - tools/metrics
- tools/remotecommand
- transport - transport
- name: k8s.io/kubernetes - util/cert
version: ee39d359dd0896c4c0eccf23f033f158ad3d3bd7 - util/exec
subpackages: - util/flowcontrol
- pkg/api - util/homedir
- pkg/client/unversioned/remotecommand - util/integer
- pkg/util/exec
testImports: [] testImports: []

View File

@ -1,24 +1,33 @@
package: github.com/zalando-incubator/postgres-operator package: github.com/zalando-incubator/postgres-operator
import: import:
- package: github.com/gogo/protobuf
version: ^0.3.0
- package: github.com/Sirupsen/logrus - package: github.com/Sirupsen/logrus
version: ^0.11.5 version: ^0.11.5
subpackages:
- client
- package: github.com/lib/pq - package: github.com/lib/pq
- package: github.com/motomux/pretty - package: github.com/motomux/pretty
- package: golang.org/x/net
subpackages:
- context
- package: k8s.io/apimachinery - package: k8s.io/apimachinery
version: 84c15da65eb86243c295d566203d7689cc6ac04b
subpackages: subpackages:
- pkg/util/json - pkg/api/errors
- pkg/api/meta
- pkg/api/resource
- pkg/apis/meta/v1
- pkg/fields
- pkg/labels
- pkg/runtime
- pkg/runtime/schema
- pkg/runtime/serializer
- pkg/types
- pkg/util/intstr
- pkg/util/remotecommand - pkg/util/remotecommand
- pkg/watch
- package: k8s.io/client-go - package: k8s.io/client-go
version: ^2.0.0 version: master
- package: k8s.io/kubernetes
version: ee39d359dd0896c4c0eccf23f033f158ad3d3bd7
subpackages: subpackages:
- pkg/client/unversioned/remotecommand - kubernetes
- pkg/api
- pkg/api/v1
- pkg/apis/apps/v1beta1
- pkg/apis/extensions/v1beta1
- rest
- tools/cache
- tools/clientcmd
- tools/remotecommand

View File

@ -11,11 +11,11 @@ import (
"sync" "sync"
"github.com/Sirupsen/logrus" "github.com/Sirupsen/logrus"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes"
"k8s.io/client-go/pkg/api"
"k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/pkg/apis/apps/v1beta1" "k8s.io/client-go/pkg/apis/apps/v1beta1"
"k8s.io/client-go/pkg/types"
"k8s.io/client-go/rest" "k8s.io/client-go/rest"
"github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/spec"
@ -65,7 +65,7 @@ type Cluster struct {
masterLess bool masterLess bool
podDispatcherRunning bool podDispatcherRunning bool
userSyncStrategy spec.UserSyncer userSyncStrategy spec.UserSyncer
deleteOptions *v1.DeleteOptions deleteOptions *meta_v1.DeleteOptions
} }
func New(cfg Config, pgSpec spec.Postgresql, logger *logrus.Entry) *Cluster { func New(cfg Config, pgSpec spec.Postgresql, logger *logrus.Entry) *Cluster {
@ -85,7 +85,7 @@ func New(cfg Config, pgSpec spec.Postgresql, logger *logrus.Entry) *Cluster {
masterLess: false, masterLess: false,
podDispatcherRunning: false, podDispatcherRunning: false,
userSyncStrategy: users.DefaultUserSyncStrategy{}, userSyncStrategy: users.DefaultUserSyncStrategy{},
deleteOptions: &v1.DeleteOptions{OrphanDependents: &orphanDependents}, deleteOptions: &meta_v1.DeleteOptions{OrphanDependents: &orphanDependents},
} }
return cluster return cluster
@ -108,7 +108,7 @@ func (c *Cluster) setStatus(status spec.PostgresStatus) {
} }
request := []byte(fmt.Sprintf(`{"status": %s}`, string(b))) //TODO: Look into/wait for k8s go client methods request := []byte(fmt.Sprintf(`{"status": %s}`, string(b))) //TODO: Look into/wait for k8s go client methods
_, err = c.RestClient.Patch(api.MergePatchType). _, err = c.RestClient.Patch(types.MergePatchType).
RequestURI(c.Metadata.GetSelfLink()). RequestURI(c.Metadata.GetSelfLink()).
Body(request). Body(request).
DoRaw() DoRaw()

View File

@ -5,10 +5,11 @@ import (
"sort" "sort"
"encoding/json" "encoding/json"
"k8s.io/client-go/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/pkg/apis/apps/v1beta1" "k8s.io/client-go/pkg/apis/apps/v1beta1"
"k8s.io/client-go/pkg/util/intstr"
"github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/spec"
"github.com/zalando-incubator/postgres-operator/pkg/util/constants" "github.com/zalando-incubator/postgres-operator/pkg/util/constants"
@ -310,7 +311,7 @@ func (c *Cluster) genPodTemplate(resourceRequirements *v1.ResourceRequirements,
} }
template := v1.PodTemplateSpec{ template := v1.PodTemplateSpec{
ObjectMeta: v1.ObjectMeta{ ObjectMeta: meta_v1.ObjectMeta{
Labels: c.labelsSet(), Labels: c.labelsSet(),
Namespace: c.Metadata.Name, Namespace: c.Metadata.Name,
}, },
@ -336,7 +337,7 @@ func (c *Cluster) genStatefulSet(spec spec.PostgresSpec) (*v1beta1.StatefulSet,
} }
statefulSet := &v1beta1.StatefulSet{ statefulSet := &v1beta1.StatefulSet{
ObjectMeta: v1.ObjectMeta{ ObjectMeta: meta_v1.ObjectMeta{
Name: c.Metadata.Name, Name: c.Metadata.Name,
Namespace: c.Metadata.Namespace, Namespace: c.Metadata.Namespace,
Labels: c.labelsSet(), Labels: c.labelsSet(),
@ -353,7 +354,7 @@ func (c *Cluster) genStatefulSet(spec spec.PostgresSpec) (*v1beta1.StatefulSet,
} }
func persistentVolumeClaimTemplate(volumeSize, volumeStorageClass string) (*v1.PersistentVolumeClaim, error) { func persistentVolumeClaimTemplate(volumeSize, volumeStorageClass string) (*v1.PersistentVolumeClaim, error) {
metadata := v1.ObjectMeta{ metadata := meta_v1.ObjectMeta{
Name: constants.DataVolumeName, Name: constants.DataVolumeName,
} }
if volumeStorageClass != "" { if volumeStorageClass != "" {
@ -411,7 +412,7 @@ func (c *Cluster) genSingleUserSecret(namespace string, pgUser spec.PgUser) *v1.
} }
username := pgUser.Name username := pgUser.Name
secret := v1.Secret{ secret := v1.Secret{
ObjectMeta: v1.ObjectMeta{ ObjectMeta: meta_v1.ObjectMeta{
Name: c.credentialSecretName(username), Name: c.credentialSecretName(username),
Namespace: namespace, Namespace: namespace,
Labels: c.labelsSet(), Labels: c.labelsSet(),
@ -427,7 +428,7 @@ func (c *Cluster) genSingleUserSecret(namespace string, pgUser spec.PgUser) *v1.
func (c *Cluster) genService(allowedSourceRanges []string) *v1.Service { func (c *Cluster) genService(allowedSourceRanges []string) *v1.Service {
service := &v1.Service{ service := &v1.Service{
ObjectMeta: v1.ObjectMeta{ ObjectMeta: meta_v1.ObjectMeta{
Name: c.Metadata.Name, Name: c.Metadata.Name,
Namespace: c.Metadata.Namespace, Namespace: c.Metadata.Namespace,
Labels: c.labelsSet(), Labels: c.labelsSet(),
@ -448,7 +449,7 @@ func (c *Cluster) genService(allowedSourceRanges []string) *v1.Service {
func (c *Cluster) genEndpoints() *v1.Endpoints { func (c *Cluster) genEndpoints() *v1.Endpoints {
endpoints := &v1.Endpoints{ endpoints := &v1.Endpoints{
ObjectMeta: v1.ObjectMeta{ ObjectMeta: meta_v1.ObjectMeta{
Name: c.Metadata.Name, Name: c.Metadata.Name,
Namespace: c.Metadata.Namespace, Namespace: c.Metadata.Namespace,
Labels: c.labelsSet(), Labels: c.labelsSet(),

View File

@ -3,6 +3,7 @@ package cluster
import ( import (
"fmt" "fmt"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/api/v1"
"github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/spec"
@ -12,7 +13,7 @@ import (
func (c *Cluster) listPods() ([]v1.Pod, error) { func (c *Cluster) listPods() ([]v1.Pod, error) {
ns := c.Metadata.Namespace ns := c.Metadata.Namespace
listOptions := v1.ListOptions{ listOptions := meta_v1.ListOptions{
LabelSelector: c.labelsSet().String(), LabelSelector: c.labelsSet().String(),
} }
@ -26,7 +27,7 @@ func (c *Cluster) listPods() ([]v1.Pod, error) {
func (c *Cluster) listPersistentVolumeClaims() ([]v1.PersistentVolumeClaim, error) { func (c *Cluster) listPersistentVolumeClaims() ([]v1.PersistentVolumeClaim, error) {
ns := c.Metadata.Namespace ns := c.Metadata.Namespace
listOptions := v1.ListOptions{ listOptions := meta_v1.ListOptions{
LabelSelector: c.labelsSet().String(), LabelSelector: c.labelsSet().String(),
} }
@ -167,7 +168,7 @@ func (c *Cluster) recreatePods() error {
ls := c.labelsSet() ls := c.labelsSet()
namespace := c.Metadata.Namespace namespace := c.Metadata.Namespace
listOptions := v1.ListOptions{ listOptions := meta_v1.ListOptions{
LabelSelector: ls.String(), LabelSelector: ls.String(),
} }

View File

@ -3,7 +3,8 @@ package cluster
import ( import (
"fmt" "fmt"
"k8s.io/client-go/pkg/api" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/pkg/apis/apps/v1beta1" "k8s.io/client-go/pkg/apis/apps/v1beta1"
@ -16,7 +17,7 @@ import (
func (c *Cluster) loadResources() error { func (c *Cluster) loadResources() error {
ns := c.Metadata.Namespace ns := c.Metadata.Namespace
listOptions := v1.ListOptions{ listOptions := meta_v1.ListOptions{
LabelSelector: c.labelsSet().String(), LabelSelector: c.labelsSet().String(),
} }
@ -139,7 +140,7 @@ func (c *Cluster) updateStatefulSet(newStatefulSet *v1beta1.StatefulSet) error {
statefulSet, err := c.KubeClient.StatefulSets(c.Statefulset.Namespace).Patch( statefulSet, err := c.KubeClient.StatefulSets(c.Statefulset.Namespace).Patch(
c.Statefulset.Name, c.Statefulset.Name,
api.MergePatchType, types.MergePatchType,
patchData, "") patchData, "")
if err != nil { if err != nil {
return fmt.Errorf("Can't patch StatefulSet '%s': %s", statefulSetName, err) return fmt.Errorf("Can't patch StatefulSet '%s': %s", statefulSetName, err)
@ -162,7 +163,7 @@ func (c *Cluster) replaceStatefulSet(newStatefulSet *v1beta1.StatefulSet) error
orphanDepencies := true orphanDepencies := true
oldStatefulset := c.Statefulset oldStatefulset := c.Statefulset
options := v1.DeleteOptions{OrphanDependents: &orphanDepencies} options := meta_v1.DeleteOptions{OrphanDependents: &orphanDepencies}
if err := c.KubeClient.StatefulSets(oldStatefulset.Namespace).Delete(oldStatefulset.Name, &options); err != nil { if err := c.KubeClient.StatefulSets(oldStatefulset.Namespace).Delete(oldStatefulset.Name, &options); err != nil {
return fmt.Errorf("Can't delete statefulset '%s': %s", statefulSetName, err) return fmt.Errorf("Can't delete statefulset '%s': %s", statefulSetName, err)
} }
@ -173,7 +174,7 @@ func (c *Cluster) replaceStatefulSet(newStatefulSet *v1beta1.StatefulSet) error
err := retryutil.Retry(constants.StatefulsetDeletionInterval, constants.StatefulsetDeletionTimeout, err := retryutil.Retry(constants.StatefulsetDeletionInterval, constants.StatefulsetDeletionTimeout,
func() (bool, error) { func() (bool, error) {
_, err := c.KubeClient.StatefulSets(oldStatefulset.Namespace).Get(oldStatefulset.Name) _, err := c.KubeClient.StatefulSets(oldStatefulset.Namespace).Get(oldStatefulset.Name, meta_v1.GetOptions{})
return err != nil, nil return err != nil, nil
}) })
@ -251,7 +252,7 @@ func (c *Cluster) updateService(newService *v1.Service) error {
svc, err := c.KubeClient.Services(c.Service.Namespace).Patch( svc, err := c.KubeClient.Services(c.Service.Namespace).Patch(
c.Service.Name, c.Service.Name,
api.MergePatchType, types.MergePatchType,
patchData, "") patchData, "")
if err != nil { if err != nil {
return fmt.Errorf("Can't patch Service '%s': %s", serviceName, err) return fmt.Errorf("Can't patch Service '%s': %s", serviceName, err)
@ -317,7 +318,7 @@ func (c *Cluster) applySecrets() error {
secret, err := c.KubeClient.Secrets(secretSpec.Namespace).Create(secretSpec) secret, err := c.KubeClient.Secrets(secretSpec.Namespace).Create(secretSpec)
if k8sutil.ResourceAlreadyExists(err) { if k8sutil.ResourceAlreadyExists(err) {
var userMap map[string]spec.PgUser var userMap map[string]spec.PgUser
curSecret, err := c.KubeClient.Secrets(secretSpec.Namespace).Get(secretSpec.Name) curSecret, err := c.KubeClient.Secrets(secretSpec.Namespace).Get(secretSpec.Name, meta_v1.GetOptions{})
if err != nil { if err != nil {
return fmt.Errorf("Can't get current Secret: %s", err) return fmt.Errorf("Can't get current Secret: %s", err)
} }

View File

@ -6,9 +6,10 @@ import (
"strings" "strings"
"time" "time"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/pkg/apis/apps/v1beta1" "k8s.io/client-go/pkg/apis/apps/v1beta1"
"k8s.io/client-go/pkg/labels"
"github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/spec"
"github.com/zalando-incubator/postgres-operator/pkg/util" "github.com/zalando-incubator/postgres-operator/pkg/util"
@ -151,7 +152,7 @@ func (c *Cluster) waitForPodDeletion(podEvents chan spec.PodEvent) error {
func (c *Cluster) waitStatefulsetReady() error { func (c *Cluster) waitStatefulsetReady() error {
return retryutil.Retry(c.OpConfig.ResourceCheckInterval, c.OpConfig.ResourceCheckTimeout, return retryutil.Retry(c.OpConfig.ResourceCheckInterval, c.OpConfig.ResourceCheckTimeout,
func() (bool, error) { func() (bool, error) {
listOptions := v1.ListOptions{ listOptions := meta_v1.ListOptions{
LabelSelector: c.labelsSet().String(), LabelSelector: c.labelsSet().String(),
} }
ss, err := c.KubeClient.StatefulSets(c.Metadata.Namespace).List(listOptions) ss, err := c.KubeClient.StatefulSets(c.Metadata.Namespace).List(listOptions)
@ -171,15 +172,15 @@ func (c *Cluster) waitPodLabelsReady() error {
ls := c.labelsSet() ls := c.labelsSet()
namespace := c.Metadata.Namespace namespace := c.Metadata.Namespace
listOptions := v1.ListOptions{ listOptions := meta_v1.ListOptions{
LabelSelector: ls.String(), LabelSelector: ls.String(),
} }
masterListOption := v1.ListOptions{ masterListOption := meta_v1.ListOptions{
LabelSelector: labels.Merge(ls, labels.Set{ LabelSelector: labels.Merge(ls, labels.Set{
c.OpConfig.PodRoleLabel: constants.PodRoleMaster, c.OpConfig.PodRoleLabel: constants.PodRoleMaster,
}).String(), }).String(),
} }
replicaListOption := v1.ListOptions{ replicaListOption := meta_v1.ListOptions{
LabelSelector: labels.Merge(ls, labels.Set{ LabelSelector: labels.Merge(ls, labels.Set{
c.OpConfig.PodRoleLabel: constants.PodRoleReplica, c.OpConfig.PodRoleLabel: constants.PodRoleReplica,
}).String(), }).String(),

View File

@ -26,8 +26,8 @@ type Config struct {
type Controller struct { type Controller struct {
Config Config
opConfig *config.Config opConfig *config.Config
logger *logrus.Entry logger *logrus.Entry
clustersMu sync.RWMutex clustersMu sync.RWMutex
clusters map[spec.NamespacedName]*cluster.Cluster clusters map[spec.NamespacedName]*cluster.Cluster

View File

@ -4,9 +4,10 @@ import (
"bytes" "bytes"
"fmt" "fmt"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand"
"k8s.io/client-go/pkg/api" "k8s.io/client-go/pkg/api"
"k8s.io/kubernetes/pkg/client/unversioned/remotecommand" "k8s.io/client-go/tools/remotecommand"
"github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/spec"
) )
@ -16,8 +17,7 @@ func (c *Controller) ExecCommand(podName spec.NamespacedName, command []string)
execOut bytes.Buffer execOut bytes.Buffer
execErr bytes.Buffer execErr bytes.Buffer
) )
pod, err := c.KubeClient.Pods(podName.Namespace).Get(podName.Name, meta_v1.GetOptions{})
pod, err := c.KubeClient.Pods(podName.Namespace).Get(podName.Name)
if err != nil { if err != nil {
return "", fmt.Errorf("Can't get Pod info: %s", err) return "", fmt.Errorf("Can't get Pod info: %s", err)
} }

View File

@ -1,58 +1,21 @@
package controller package controller
import ( import (
"k8s.io/client-go/pkg/api" meta_v1 "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/client-go/pkg/api/v1"
"k8s.io/client-go/pkg/runtime"
"k8s.io/client-go/pkg/watch"
"github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/spec"
"github.com/zalando-incubator/postgres-operator/pkg/util" "github.com/zalando-incubator/postgres-operator/pkg/util"
) )
func (c *Controller) podListFunc(options api.ListOptions) (runtime.Object, error) { func (c *Controller) podListFunc(options meta_v1.ListOptions) (runtime.Object, error) {
var labelSelector string return c.KubeClient.CoreV1().Pods(c.opConfig.Namespace).List(options)
var fieldSelector string
if options.LabelSelector != nil {
labelSelector = options.LabelSelector.String()
}
if options.FieldSelector != nil {
fieldSelector = options.FieldSelector.String()
}
opts := v1.ListOptions{
LabelSelector: labelSelector,
FieldSelector: fieldSelector,
Watch: options.Watch,
ResourceVersion: options.ResourceVersion,
TimeoutSeconds: options.TimeoutSeconds,
}
return c.KubeClient.CoreV1().Pods(c.opConfig.Namespace).List(opts)
} }
func (c *Controller) podWatchFunc(options api.ListOptions) (watch.Interface, error) { func (c *Controller) podWatchFunc(options meta_v1.ListOptions) (watch.Interface, error) {
var labelSelector string return c.KubeClient.CoreV1().Pods(c.opConfig.Namespace).Watch(options)
var fieldSelector string
if options.LabelSelector != nil {
labelSelector = options.LabelSelector.String()
}
if options.FieldSelector != nil {
fieldSelector = options.FieldSelector.String()
}
opts := v1.ListOptions{
LabelSelector: labelSelector,
FieldSelector: fieldSelector,
Watch: options.Watch,
ResourceVersion: options.ResourceVersion,
TimeoutSeconds: options.TimeoutSeconds,
}
return c.KubeClient.CoreV1Client.Pods(c.opConfig.Namespace).Watch(opts)
} }
func (c *Controller) podAdd(obj interface{}) { func (c *Controller) podAdd(obj interface{}) {

View File

@ -4,12 +4,13 @@ import (
"fmt" "fmt"
"reflect" "reflect"
"k8s.io/apimachinery/pkg/api/meta"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/pkg/api" "k8s.io/client-go/pkg/api"
"k8s.io/client-go/pkg/api/meta"
"k8s.io/client-go/pkg/fields"
"k8s.io/client-go/pkg/runtime"
"k8s.io/client-go/pkg/types"
"k8s.io/client-go/pkg/watch"
"k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/cache"
"github.com/zalando-incubator/postgres-operator/pkg/cluster" "github.com/zalando-incubator/postgres-operator/pkg/cluster"
@ -18,7 +19,7 @@ import (
"github.com/zalando-incubator/postgres-operator/pkg/util/constants" "github.com/zalando-incubator/postgres-operator/pkg/util/constants"
) )
func (c *Controller) clusterListFunc(options api.ListOptions) (runtime.Object, error) { func (c *Controller) clusterListFunc(options meta_v1.ListOptions) (runtime.Object, error) {
c.logger.Info("Getting list of currently running clusters") c.logger.Info("Getting list of currently running clusters")
req := c.RestClient.Get(). req := c.RestClient.Get().
@ -68,7 +69,7 @@ func (c *Controller) clusterListFunc(options api.ListOptions) (runtime.Object, e
return object, err return object, err
} }
func (c *Controller) clusterWatchFunc(options api.ListOptions) (watch.Interface, error) { func (c *Controller) clusterWatchFunc(options meta_v1.ListOptions) (watch.Interface, error) {
req := c.RestClient.Get(). req := c.RestClient.Get().
RequestURI(fmt.Sprintf(constants.WatchClustersURITemplate, c.opConfig.Namespace)). RequestURI(fmt.Sprintf(constants.WatchClustersURITemplate, c.opConfig.Namespace)).
VersionedParams(&options, api.ParameterCodec). VersionedParams(&options, api.ParameterCodec).

View File

@ -4,6 +4,7 @@ import (
"fmt" "fmt"
"hash/crc32" "hash/crc32"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/api/v1"
extv1beta "k8s.io/client-go/pkg/apis/extensions/v1beta1" extv1beta "k8s.io/client-go/pkg/apis/extensions/v1beta1"
@ -33,7 +34,7 @@ func (c *Controller) getOAuthToken() (string, error) {
// Temporary getting postgresql-operator secret from the NamespaceDefault // Temporary getting postgresql-operator secret from the NamespaceDefault
credentialsSecret, err := c.KubeClient. credentialsSecret, err := c.KubeClient.
Secrets(c.opConfig.OAuthTokenSecretName.Namespace). Secrets(c.opConfig.OAuthTokenSecretName.Namespace).
Get(c.opConfig.OAuthTokenSecretName.Name) Get(c.opConfig.OAuthTokenSecretName.Name, meta_v1.GetOptions{})
if err != nil { if err != nil {
c.logger.Debugf("Oauth token secret name: %s", c.opConfig.OAuthTokenSecretName) c.logger.Debugf("Oauth token secret name: %s", c.opConfig.OAuthTokenSecretName)
@ -50,7 +51,7 @@ func (c *Controller) getOAuthToken() (string, error) {
func thirdPartyResource(TPRName string) *extv1beta.ThirdPartyResource { func thirdPartyResource(TPRName string) *extv1beta.ThirdPartyResource {
return &extv1beta.ThirdPartyResource{ return &extv1beta.ThirdPartyResource{
ObjectMeta: v1.ObjectMeta{ ObjectMeta: meta_v1.ObjectMeta{
//ThirdPartyResources are cluster-wide //ThirdPartyResources are cluster-wide
Name: TPRName, Name: TPRName,
}, },
@ -90,7 +91,7 @@ func (c *Controller) getInfrastructureRoles() (result map[string]spec.PgUser, er
infraRolesSecret, err := c.KubeClient. infraRolesSecret, err := c.KubeClient.
Secrets(c.opConfig.InfrastructureRolesSecretName.Namespace). Secrets(c.opConfig.InfrastructureRolesSecretName.Namespace).
Get(c.opConfig.InfrastructureRolesSecretName.Name) Get(c.opConfig.InfrastructureRolesSecretName.Name, meta_v1.GetOptions{})
if err != nil { if err != nil {
c.logger.Debugf("Infrastructure roles secret name: %s", c.opConfig.InfrastructureRolesSecretName) c.logger.Debugf("Infrastructure roles secret name: %s", c.opConfig.InfrastructureRolesSecretName)
return nil, fmt.Errorf("Can't get infrastructure roles Secret: %s", err) return nil, fmt.Errorf("Can't get infrastructure roles Secret: %s", err)

View File

@ -7,9 +7,9 @@ import (
"strings" "strings"
"time" "time"
"k8s.io/client-go/pkg/api/meta" "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/pkg/api/unversioned" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/pkg/api/v1" "k8s.io/apimachinery/pkg/runtime/schema"
) )
var alphaRegexp = regexp.MustCompile("^[a-zA-Z]*$") var alphaRegexp = regexp.MustCompile("^[a-zA-Z]*$")
@ -67,8 +67,8 @@ const (
// PostgreSQL Third Party (resource) Object // PostgreSQL Third Party (resource) Object
type Postgresql struct { type Postgresql struct {
unversioned.TypeMeta `json:",inline"` v1.TypeMeta `json:",inline"`
Metadata v1.ObjectMeta `json:"metadata"` Metadata meta_v1.ObjectMeta `json:"metadata"`
Spec PostgresSpec `json:"spec"` Spec PostgresSpec `json:"spec"`
Status PostgresStatus `json:"status"` Status PostgresStatus `json:"status"`
@ -90,8 +90,8 @@ type PostgresSpec struct {
} }
type PostgresqlList struct { type PostgresqlList struct {
unversioned.TypeMeta `json:",inline"` v1.TypeMeta `json:",inline"`
Metadata unversioned.ListMeta `json:"metadata"` Metadata v1.ListMeta `json:"metadata"`
Items []Postgresql `json:"items"` Items []Postgresql `json:"items"`
} }
@ -175,19 +175,19 @@ func (m *MaintenanceWindow) UnmarshalJSON(data []byte) error {
return nil return nil
} }
func (p *Postgresql) GetObjectKind() unversioned.ObjectKind { func (p *Postgresql) GetObjectKind() schema.ObjectKind {
return &p.TypeMeta return &p.TypeMeta
} }
func (p *Postgresql) GetObjectMeta() meta.Object { func (p *Postgresql) GetObjectMeta() v1.Object {
return &p.Metadata return &p.Metadata
} }
func (pl *PostgresqlList) GetObjectKind() unversioned.ObjectKind { func (pl *PostgresqlList) GetObjectKind() schema.ObjectKind {
return &pl.TypeMeta return &pl.TypeMeta
} }
func (pl *PostgresqlList) GetListMeta() unversioned.List { func (pl *PostgresqlList) GetListMeta() v1.List {
return &pl.Metadata return &pl.Metadata
} }

View File

@ -3,8 +3,8 @@ package spec
import ( import (
"database/sql" "database/sql"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/pkg/types"
) )
type EventType string type EventType string

View File

@ -4,12 +4,13 @@ import (
"fmt" "fmt"
"time" "time"
apierrors "k8s.io/apimachinery/pkg/api/errors"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes"
"k8s.io/client-go/pkg/api" "k8s.io/client-go/pkg/api"
apierrors "k8s.io/client-go/pkg/api/errors"
"k8s.io/client-go/pkg/api/unversioned"
"k8s.io/client-go/pkg/runtime"
"k8s.io/client-go/pkg/runtime/serializer"
"k8s.io/client-go/rest" "k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/clientcmd"
@ -38,21 +39,21 @@ func ResourceNotFound(err error) bool {
} }
func KubernetesRestClient(c *rest.Config) (*rest.RESTClient, error) { func KubernetesRestClient(c *rest.Config) (*rest.RESTClient, error) {
c.GroupVersion = &unversioned.GroupVersion{Version: constants.K8sVersion} c.GroupVersion = &schema.GroupVersion{Version: constants.K8sVersion}
c.APIPath = constants.K8sAPIPath c.APIPath = constants.K8sAPIPath
c.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: api.Codecs} c.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: api.Codecs}
schemeBuilder := runtime.NewSchemeBuilder( schemeBuilder := runtime.NewSchemeBuilder(
func(scheme *runtime.Scheme) error { func(scheme *runtime.Scheme) error {
scheme.AddKnownTypes( scheme.AddKnownTypes(
unversioned.GroupVersion{ schema.GroupVersion{
Group: constants.TPRVendor, Group: constants.TPRVendor,
Version: constants.TPRApiVersion, Version: constants.TPRApiVersion,
}, },
&spec.Postgresql{}, &spec.Postgresql{},
&spec.PostgresqlList{}, &spec.PostgresqlList{},
&api.ListOptions{}, &meta_v1.ListOptions{},
&api.DeleteOptions{}, &meta_v1.DeleteOptions{},
) )
return nil return nil
}) })

View File

@ -9,7 +9,7 @@ import (
"time" "time"
"github.com/motomux/pretty" "github.com/motomux/pretty"
"k8s.io/client-go/pkg/api/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/spec"
) )
@ -33,7 +33,7 @@ func RandomPassword(n int) string {
return string(b) return string(b)
} }
func NameFromMeta(meta v1.ObjectMeta) spec.NamespacedName { func NameFromMeta(meta meta_v1.ObjectMeta) spec.NamespacedName {
return spec.NamespacedName{ return spec.NamespacedName{
Namespace: meta.Namespace, Namespace: meta.Namespace,
Name: meta.Name, Name: meta.Name,