2017-08-11 86 views
1

我想使用k8s的client-go庫將部署回滾到某個修訂版(轉出歷史記錄)。但到目前爲止,我還沒有找到解決方案。我能磺酰基獲取資源的修訂而不是「部署修訂」,我正在使用的代碼開始使用kebctl使用client-go api回滾部署

kubectl rollout history deployment/nginx_dep 

這裏的客戶去API:

config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig) 

clientset, err := kubernetes.NewForConfig(config) 

dp, err := clientset.ExtensionsV1beta1Client.Deployments("default").Get("nginx-deployment", metav1.GetOptions{}) 

使用客戶去API: 如何獲得給定部署的現有修訂版?我想回滾部署以使用此修訂。任何人都可以告訴我我應該怎麼做?

這是在我的項目依賴條件的列表:

[[constraint]] 
    name = "k8s.io/client-go" 
    version = "3.0.0" 

[[override]] 
    name = "k8s.io/apimachinery" 
    branch = "release-1.6" 

預先感謝您

回答

0

假設你已經有了一看update example

在任何情況下,這裏的dp變量包含所有你需要:

dp, err := clientset.ExtensionsV1beta1Client.Deployments("default").Get("nginx-deployment", metav1.GetOptions{}) 

所以dp是包含有ResourceVersionmetav1.ObjectMeta類型的變量v1beta1.Deployment型。

+0

謝謝!想通了 - > fmt.Println(dp.GetObjectMeta()。GetAnnotations()[「deployment.kubernetes.io/revision」])是我正在尋找。 – dkat

+0

不客氣。與其感謝我,請將答案標記爲正確,加滿答覆或用正確答案自己回答。這是它應該如何在這裏工作;) –

0

現在有了部署的最新版本,其想法是在觸發apply之前保存此部署修訂。 申請前是否可以保存?

+0

請不要這樣做。 SO不是論壇。如有必要,創建一個新問題... –