Merge pull request #59970 from anubhakushwaha/Update_deployment_example

Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Updated the "create-update-delete-deployment" example to use apps/v1 and removed rollback example

**What this PR does / why we need it**:

*Waiting for migration to apps/v1*
> The current example at [create-update-delete-deployment/main.go](https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/main.go) was using `RollbackTo` of `v1beta1.DeploymentSpec` which is deprecated.

The current implementation upgrades `create-update-delete-deployment` main.go to use **apps/v1** instead of **extensions/v1beta1** and removed rollback example for now.

**Which issue(s) this PR fixes**
Helps kubernetes/client-go#346

**Special notes for your reviewer**:
Since it's my first PR dealing with codebase and not a typo fix :xD please let me know my mistakes.
I would love to resolve them.

@nikhita @sttts @jekohk Please review. The other PR #59663  got closed accidentally while changing branch.

Kubernetes-commit: 6dfcaabe849938a475bcacf5c29f43d4e350e751
This commit is contained in:
Kubernetes Publisher 2018-04-05 18:45:27 -07:00
commit 47c485781f
2 changed files with 62 additions and 78 deletions

106
Godeps/Godeps.json generated
View File

@ -360,215 +360,215 @@
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/fields",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/labels",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/selection",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/types",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/version",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/watch",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
"Rev": "d65938ce76da251a09c2fe861fb066c468571c47"
"Rev": "cd2cae2b39fa57e8063fa1f5f13cfe9862db3d41"
},
{
"ImportPath": "k8s.io/kube-openapi/pkg/util/proto",

View File

@ -24,7 +24,7 @@ import (
"os"
"path/filepath"
appsv1beta1 "k8s.io/api/apps/v1beta1"
appsv1 "k8s.io/api/apps/v1"
apiv1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
@ -53,14 +53,19 @@ func main() {
panic(err)
}
deploymentsClient := clientset.AppsV1beta1().Deployments(apiv1.NamespaceDefault)
deploymentsClient := clientset.AppsV1().Deployments(apiv1.NamespaceDefault)
deployment := &appsv1beta1.Deployment{
deployment := &appsv1.Deployment{
ObjectMeta: metav1.ObjectMeta{
Name: "demo-deployment",
},
Spec: appsv1beta1.DeploymentSpec{
Spec: appsv1.DeploymentSpec{
Replicas: int32Ptr(2),
Selector: &metav1.LabelSelector{
MatchLabels: map[string]string{
"app": "demo",
},
},
Template: apiv1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Labels: map[string]string{
@ -128,27 +133,6 @@ func main() {
}
fmt.Println("Updated deployment...")
// Rollback Deployment
prompt()
fmt.Println("Rolling back deployment...")
// Once again use RetryOnConflict to avoid update conflicts
retryErr = retry.RetryOnConflict(retry.DefaultRetry, func() error {
result, getErr := deploymentsClient.Get("demo-deployment", metav1.GetOptions{})
if getErr != nil {
panic(fmt.Errorf("Failed to get latest version of Deployment: %v", getErr))
}
result.Spec.RollbackTo = &appsv1beta1.RollbackConfig{
Revision: 0, // can be specific revision number, or 0 for last revision
}
_, updateErr := deploymentsClient.Update(result)
return updateErr
})
if retryErr != nil {
panic(fmt.Errorf("Rollback failed: %v", retryErr))
}
fmt.Println("Rolled back deployment...")
// List Deployments
prompt()
fmt.Printf("Listing deployments in namespace %q:\n", apiv1.NamespaceDefault)