diff --git a/glide.lock b/glide.lock
index f9a3aa4b1dda30241bc1226f0b181201dbb89fec..22fa4c504eb588e4f2a4d1620004c10f263a69e0 100644
--- a/glide.lock
+++ b/glide.lock
@@ -1,8 +1,8 @@
-hash: 140e0c8a606d18ca405e9c50359cc673e4aa0cc88bcae5d7f83791e7002bd6a1
-updated: 2017-07-24T19:24:17.604824235+02:00
+hash: eb2d752e63f1fd8e028765df2ff0c6ac454ceb55786002434d468215312ec5f9
+updated: 2017-07-28T11:03:19.599558496+02:00
 imports:
 - name: github.com/aws/aws-sdk-go
-  version: afd601335e2a72d43caa3af6bd2abe512fcc3bfd
+  version: 5e436e55ac5eddc739f26a2a209b3f4248ee8e0e
   subpackages:
   - aws
   - aws/awserr
@@ -33,11 +33,6 @@ imports:
   version: 782f4967f2dc4564575ca782fe2d04090b5faca8
   subpackages:
   - spew
-- name: github.com/docker/distribution
-  version: cd27f179f2c10c5d300e6d09025b538c475b0d51
-  subpackages:
-  - digest
-  - reference
 - name: github.com/docker/spdystream
   version: 449fdfce4d962303d702fec724ef0ad181c92528
   subpackages:
@@ -52,14 +47,10 @@ imports:
   version: 73d445a93680fa1a78ae23a5839bad48f32ba1ee
 - name: github.com/go-ini/ini
   version: 3d73f4b845efdf9989fffd4b4e562727744a34ba
-- name: github.com/go-openapi/analysis
-  version: b44dc874b601d9e4e2f6e19140e794ba24bead3b
 - 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
 - name: github.com/go-openapi/swag
@@ -71,8 +62,22 @@ imports:
   - sortkeys
 - name: github.com/golang/glog
   version: 44145f04b68cf362d9c4df2182967c2275eaefed
+- name: github.com/golang/protobuf
+  version: 4bd1920723d7b7c925de087aa32e2187708897f7
+  subpackages:
+  - proto
+  - ptypes
+  - ptypes/any
+  - ptypes/duration
+  - ptypes/timestamp
 - name: github.com/google/gofuzz
   version: 44d81051d367757e1c7c6a5a86423ece9afcf63c
+- name: github.com/googleapis/gnostic
+  version: 68f4ded48ba9414dab2ae69b3f0d69971da73aa5
+  subpackages:
+  - OpenAPIv2
+  - compiler
+  - extensions
 - name: github.com/hashicorp/golang-lru
   version: a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4
   subpackages:
@@ -118,15 +123,12 @@ imports:
 - name: golang.org/x/net
   version: f2499483f923065a842d38eb4c7f1927e6fc6e6d
   subpackages:
-  - html
-  - html/atom
   - http2
   - http2/hpack
   - idna
   - lex/httplex
-  - websocket
 - name: golang.org/x/sys
-  version: c4489faa6e5ab84c0ef40d6ee878f7a030281f0f
+  version: 35ef4487ce0a1ea5d4b616ffe71e34febe723695
   subpackages:
   - unix
 - name: golang.org/x/text
@@ -146,16 +148,36 @@ imports:
   version: 3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4
 - name: gopkg.in/yaml.v2
   version: 53feefa2559fb8dfa8d81baad31be332c97d6c77
+- name: k8s.io/api
+  version: 4d5cc6efc5e84aa19fb1bd3f911c16a6723c1bb7
+  subpackages:
+  - admissionregistration/v1alpha1
+  - apps/v1beta1
+  - authentication/v1
+  - authentication/v1beta1
+  - authorization/v1
+  - authorization/v1beta1
+  - autoscaling/v1
+  - autoscaling/v2alpha1
+  - batch/v1
+  - batch/v2alpha1
+  - certificates/v1beta1
+  - core/v1
+  - extensions/v1beta1
+  - networking/v1
+  - policy/v1beta1
+  - rbac/v1alpha1
+  - rbac/v1beta1
+  - settings/v1alpha1
+  - storage/v1
+  - storage/v1beta1
 - name: k8s.io/apimachinery
-  version: abe34e4f5b4413c282a83011892cbeea5b32223b
+  version: 6134cb2da6d90597b0434e349f90f94fafc9ae51
   subpackages:
   - pkg/api/equality
   - pkg/api/errors
   - pkg/api/meta
   - pkg/api/resource
-  - pkg/apimachinery
-  - pkg/apimachinery/announced
-  - pkg/apimachinery/registered
   - pkg/apis/meta/v1
   - pkg/apis/meta/v1/unstructured
   - pkg/apis/meta/v1alpha1
@@ -185,7 +207,6 @@ imports:
   - pkg/util/intstr
   - pkg/util/json
   - pkg/util/net
-  - pkg/util/rand
   - pkg/util/remotecommand
   - pkg/util/runtime
   - pkg/util/sets
@@ -198,7 +219,7 @@ imports:
   - third_party/forked/golang/netutil
   - third_party/forked/golang/reflect
 - name: k8s.io/client-go
-  version: df46f7f13b3da19b90b8b4f0d18b8adc6fbf28dc
+  version: 7c69e980210777a6292351ac6873de083526f08e
   subpackages:
   - discovery
   - kubernetes
@@ -223,43 +244,7 @@ imports:
   - kubernetes/typed/settings/v1alpha1
   - kubernetes/typed/storage/v1
   - 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
@@ -272,6 +257,7 @@ imports:
   - tools/metrics
   - tools/remotecommand
   - transport
+  - transport/spdy
   - util/cert
   - util/exec
   - util/flowcontrol
diff --git a/glide.yaml b/glide.yaml
index fead695873476449623588a4acb962eb43b9a32f..255bc5f6c09b447f132df0339a7869e7d96ad1b4 100644
--- a/glide.yaml
+++ b/glide.yaml
@@ -1,22 +1,26 @@
 package: github.com/zalando-incubator/postgres-operator
 import:
 - package: github.com/Sirupsen/logrus
-  version: ^1.0.1
+  version: ^1.0.2
 - package: github.com/aws/aws-sdk-go
-  version: ^1.8.24
+  version: ^1.10.18
   subpackages:
   - aws
   - aws/session
   - service/ec2
 - package: github.com/lib/pq
 - package: github.com/motomux/pretty
+
+# Kubernetes
+- package: k8s.io/api
+  subpackages:
+  - apps/v1beta1
+  - core/v1
 - package: k8s.io/apimachinery
   subpackages:
   - pkg/api/errors
-  - pkg/api/meta
   - pkg/api/resource
   - pkg/apis/meta/v1
-  - pkg/fields
   - pkg/labels
   - pkg/runtime
   - pkg/runtime/schema
@@ -26,13 +30,13 @@ import:
   - pkg/util/remotecommand
   - pkg/watch
 - package: k8s.io/client-go
-  version: ^4.0.0-beta.0
+  version: master
   subpackages:
   - kubernetes
-  - pkg/api
-  - pkg/api/v1
-  - pkg/apis/apps/v1beta1
-  - pkg/apis/extensions/v1beta1
+  - kubernetes/scheme
+  - kubernetes/typed/apps/v1beta1
+  - kubernetes/typed/core/v1
+  - kubernetes/typed/extensions/v1beta1
   - rest
   - tools/cache
   - tools/clientcmd
diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go
index 921284ede9f469d28d3d8304dfd26b3b65376819..c625753699ec5413e6b48287e7d021243afd52e6 100644
--- a/pkg/cluster/cluster.go
+++ b/pkg/cluster/cluster.go
@@ -13,8 +13,8 @@ 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"
+	"k8s.io/api/core/v1"
+	"k8s.io/api/apps/v1beta1"
 	"k8s.io/client-go/rest"
 	"k8s.io/client-go/tools/cache"
 
diff --git a/pkg/cluster/exec.go b/pkg/cluster/exec.go
index e00715a5df22977965c51228fb685cd26b8ed927..d26a9257f54cd414849207b82e5da9e5d3567a4d 100644
--- a/pkg/cluster/exec.go
+++ b/pkg/cluster/exec.go
@@ -5,9 +5,8 @@ import (
 	"fmt"
 
 	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"
@@ -40,13 +39,12 @@ 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,
 	})
diff --git a/pkg/cluster/k8sres.go b/pkg/cluster/k8sres.go
index 3ddefbb90504d2e15092c838b84b9d2dde6f0bc8..6b60fd4f2a48dcd17cb092ab01bc4bf22452ff15 100644
--- a/pkg/cluster/k8sres.go
+++ b/pkg/cluster/k8sres.go
@@ -8,8 +8,8 @@ import (
 	"k8s.io/apimachinery/pkg/api/resource"
 	metav1 "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/apis/apps/v1beta1"
+	"k8s.io/api/core/v1"
+	"k8s.io/api/apps/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 2b7ed438e71626f8526ded8578e7843c7bf662db..a62b7202cbaa5cb8c74dffdbfaa91e4b1a3d5668 100644
--- a/pkg/cluster/pod.go
+++ b/pkg/cluster/pod.go
@@ -4,7 +4,7 @@ import (
 	"fmt"
 
 	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 426890314ebc069e138bb102f6fbda1dcccc8eff..2723949fc1055edbcb97edf4447bfd3526320da4 100644
--- a/pkg/cluster/resources.go
+++ b/pkg/cluster/resources.go
@@ -5,8 +5,8 @@ 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"
+	"k8s.io/api/core/v1"
+	"k8s.io/api/apps/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 58f92fac1e910148ce969c9719611c065db55637..c09418fb26f2a21ebf35c9396afcf81fce57456a 100644
--- a/pkg/cluster/util.go
+++ b/pkg/cluster/util.go
@@ -8,8 +8,8 @@ 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"
+	"k8s.io/api/core/v1"
+	"k8s.io/api/apps/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 d2ed26f900717e12166c2e0cd9bb248ea12a8a61..482a2a5c0d80e5299c896947854c75839a33177c 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 8847bad2f32efd12366fd4f0622a1cfbe49c4c08..5c1b92166e72c5fd30fef6d78fe72bff24505cba 100644
--- a/pkg/controller/controller.go
+++ b/pkg/controller/controller.go
@@ -6,7 +6,7 @@ import (
 
 	"github.com/Sirupsen/logrus"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	"k8s.io/client-go/pkg/api/v1"
+	"k8s.io/api/core/v1"
 	"k8s.io/client-go/rest"
 	"k8s.io/client-go/tools/cache"
 
diff --git a/pkg/controller/pod.go b/pkg/controller/pod.go
index c24be3241d553b3dcfe7290c2488dac760cd9cb3..95de58d40278d85631764c3290ddffa56d027e59 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/util.go b/pkg/controller/util.go
index f02f27955172ded410e87dac4458c56cd138deac..9e64e9fbc6505bf14e7a1f772321d16bf93147b5 100644
--- a/pkg/controller/util.go
+++ b/pkg/controller/util.go
@@ -5,8 +5,8 @@ import (
 	"hash/crc32"
 
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	"k8s.io/client-go/pkg/api/v1"
-	extv1beta "k8s.io/client-go/pkg/apis/extensions/v1beta1"
+	"k8s.io/api/core/v1"
+	extv1beta "k8s.io/api/apps/v1beta1"
 
 	"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 88c51258eb297aaeb7a67c43f3377c131c0fbf13..6aff03b9e0d35fc930358331daba509c8465889a 100644
--- a/pkg/controller/util_test.go
+++ b/pkg/controller/util_test.go
@@ -7,7 +7,7 @@ import (
 
 	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/types.go b/pkg/spec/types.go
index aefb0350ddf848e82f22598ef1edc33bfbeb687c..199738bd694c07d7fba27de0f8ff5aefb3d71543 100644
--- a/pkg/spec/types.go
+++ b/pkg/spec/types.go
@@ -6,7 +6,7 @@ import (
 	"strings"
 
 	"k8s.io/apimachinery/pkg/types"
-	"k8s.io/client-go/pkg/api/v1"
+	"k8s.io/api/core/v1"
 )
 
 // EvenType contains type of the events for the TPRs and Pods received from Kubernetes
diff --git a/pkg/util/k8sutil/k8sutil.go b/pkg/util/k8sutil/k8sutil.go
index 09ad38444811c7e365bfb025a34d5af578198f4c..87ed47a0b1f4422156def3e3671614121df269e2 100644
--- a/pkg/util/k8sutil/k8sutil.go
+++ b/pkg/util/k8sutil/k8sutil.go
@@ -10,9 +10,9 @@ import (
 	v1beta1 "k8s.io/client-go/kubernetes/typed/apps/v1beta1"
 	v1core "k8s.io/client-go/kubernetes/typed/core/v1"
 	extensions "k8s.io/client-go/kubernetes/typed/extensions/v1beta1"
-	"k8s.io/client-go/pkg/api"
 	"k8s.io/client-go/rest"
 	"k8s.io/client-go/tools/clientcmd"
+	"k8s.io/client-go/kubernetes/scheme"
 
 	"github.com/zalando-incubator/postgres-operator/pkg/util/constants"
 	"github.com/zalando-incubator/postgres-operator/pkg/util/retryutil"
@@ -72,7 +72,7 @@ func KubernetesRestClient(cfg rest.Config) (rest.Interface, error) {
 		Version: constants.TPRApiVersion,
 	}
 	cfg.APIPath = constants.K8sAPIPath
-	cfg.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: api.Codecs}
+	cfg.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs}
 
 	return rest.RESTClientFor(&cfg)
 }
diff --git a/pkg/util/volumes/ebs.go b/pkg/util/volumes/ebs.go
index c213a112600fb7f950bd72defe31d24755dac176..b959bd018c7d6b6186875e00e5923ffc827a1d0b 100644
--- a/pkg/util/volumes/ebs.go
+++ b/pkg/util/volumes/ebs.go
@@ -10,7 +10,7 @@ import (
 
 	"github.com/zalando-incubator/postgres-operator/pkg/util/constants"
 	"github.com/zalando-incubator/postgres-operator/pkg/util/retryutil"
-	"k8s.io/client-go/pkg/api/v1"
+	"k8s.io/api/core/v1"
 )
 
 // EBSVolumeResizer implements volume resizing interface for AWS EBS volumes.
diff --git a/pkg/util/volumes/volumes.go b/pkg/util/volumes/volumes.go
index e592ed9c9eb3fca2fcdecfa4fda02fb197968334..35478c6fe7270e978afca77ef97fe4f9428b75cc 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.