replace update to patch in setupmaster.go
This commit is contained in:
		| @@ -22,6 +22,8 @@ go_library( | ||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/api/errors", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/types", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/strategicpatch", | ||||
|     ], | ||||
| ) | ||||
|  | ||||
|   | ||||
| @@ -23,6 +23,8 @@ import ( | ||||
|  | ||||
| 	apierrs "k8s.io/apimachinery/pkg/api/errors" | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	"k8s.io/apimachinery/pkg/types" | ||||
| 	"k8s.io/apimachinery/pkg/util/strategicpatch" | ||||
| 	"k8s.io/kubernetes/pkg/api/v1" | ||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||
| ) | ||||
| @@ -51,6 +53,11 @@ func attemptToUpdateMasterRoleLabelsAndTaints(client *clientset.Clientset) error | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	oldData, err := json.Marshal(n) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// TODO: Switch to the new master label defined in https://github.com/kubernetes/kubernetes/pull/39112 | ||||
| 	n.ObjectMeta.Labels[metav1.NodeLabelKubeadmAlphaRole] = metav1.NodeLabelRoleMaster | ||||
|  | ||||
| @@ -58,8 +65,17 @@ func attemptToUpdateMasterRoleLabelsAndTaints(client *clientset.Clientset) error | ||||
| 	taintsAnnotation, _ := json.Marshal([]v1.Taint{{Key: "dedicated", Value: "master", Effect: "NoSchedule"}}) | ||||
| 	n.ObjectMeta.Annotations[v1.TaintsAnnotationKey] = string(taintsAnnotation) | ||||
|  | ||||
| 	// TODO: Use a patch instead of an Update | ||||
| 	if _, err := client.Nodes().Update(n); err != nil { | ||||
| 	newData, err := json.Marshal(n) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	patchBytes, err := strategicpatch.CreateTwoWayMergePatch(oldData, newData, v1.Node{}) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	if _, err := client.Nodes().Patch(n.Name, types.StrategicMergePatchType, patchBytes); err != nil { | ||||
| 		if apierrs.IsConflict(err) { | ||||
| 			fmt.Println("[apiclient] Temporarily unable to update master node metadata due to conflict (will retry)") | ||||
| 			time.Sleep(apiCallRetryInterval) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 xilabao
					xilabao