mirror of
https://github.com/kubernetes/client-go.git
synced 2025-06-23 21:57:30 +00:00
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:
commit
47c485781f
106
Godeps/Godeps.json
generated
106
Godeps/Godeps.json
generated
@ -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",
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user