Add calls to set annotation for kubectl apply

This commit is contained in:
jackgr
2015-09-10 14:32:57 -07:00
parent 703a3e19aa
commit ef3f64612e
8 changed files with 83 additions and 10 deletions

View File

@@ -34,6 +34,7 @@ import (
"k8s.io/kubernetes/pkg/api/unversioned"
client "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl/resource"
"k8s.io/kubernetes/pkg/runtime"
utilerrors "k8s.io/kubernetes/pkg/util/errors"
@@ -404,18 +405,23 @@ func DumpReaderToFile(reader io.Reader, filename string) error {
func UpdateObject(info *resource.Info, updateFn func(runtime.Object) error) (runtime.Object, error) {
helper := resource.NewHelper(info.Client, info.Mapping)
err := updateFn(info.Object)
if err != nil {
if err := updateFn(info.Object); err != nil {
return nil, err
}
// Update the annotation used by kubectl apply
if err := kubectl.UpdateApplyAnnotation(info); err != nil {
return nil, err
}
data, err := helper.Codec.Encode(info.Object)
if err != nil {
return nil, err
}
_, err = helper.Replace(info.Namespace, info.Name, true, data)
if err != nil {
if _, err := helper.Replace(info.Namespace, info.Name, true, data); err != nil {
return nil, err
}
return info.Object, nil
}