From 81e184deebcdb7312cf7b9535fa08eef64866d90 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Mon, 10 Apr 2017 15:01:40 +0100 Subject: [PATCH] provider/kubernetes: Use PATCH to update namespace (#13114) --- .../kubernetes/resource_kubernetes_namespace.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/builtin/providers/kubernetes/resource_kubernetes_namespace.go b/builtin/providers/kubernetes/resource_kubernetes_namespace.go index 9e6160e51b..a26ca5751d 100644 --- a/builtin/providers/kubernetes/resource_kubernetes_namespace.go +++ b/builtin/providers/kubernetes/resource_kubernetes_namespace.go @@ -7,6 +7,7 @@ import ( "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" + pkgApi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/errors" api "k8s.io/kubernetes/pkg/api/v1" kubernetes "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5" @@ -69,15 +70,14 @@ func resourceKubernetesNamespaceRead(d *schema.ResourceData, meta interface{}) e func resourceKubernetesNamespaceUpdate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*kubernetes.Clientset) - metadata := expandMetadata(d.Get("metadata").([]interface{})) - // This is necessary in case the name is generated - metadata.Name = d.Id() - - namespace := api.Namespace{ - ObjectMeta: metadata, + ops := patchMetadata("metadata.0.", "/metadata/", d) + data, err := ops.MarshalJSON() + if err != nil { + return fmt.Errorf("Failed to marshal update operations: %s", err) } - log.Printf("[INFO] Updating namespace: %#v", namespace) - out, err := conn.CoreV1().Namespaces().Update(&namespace) + + log.Printf("[INFO] Updating namespace: %s", ops) + out, err := conn.CoreV1().Namespaces().Patch(d.Id(), pkgApi.JSONPatchType, data) if err != nil { return err }