patch更新configmap

type Value struct {
		Data string `json:"data,omitempty"`
	}

	type CmPatch struct {
		Op    string `json:"op,omitempty"`
		Path  string `json:"path,omitempty"`
		Value Value  `json:"value,omitempty"`
	}

	patchList := make([]interface{}, 0)
	myPat1 := &CmPatch{
		Op:   "replace",
		Path: "/data",
		Value: Value{
			Data: string(newCanaryByte),
		},
	}

	opts := metav1.PatchOptions{
		TypeMeta: metav1.TypeMeta{
			Kind: "replace",
		},
	}

	patchList = append(patchList, myPat1)

	m, err := json.Marshal(patchList)
	if err != nil {
	}

	//_, err = kubeClient.CoreV1().ConfigMaps(newCanary.Namespace).Update(context.TODO(), cm, metav1.UpdateOptions{})
	_, err = kubeClient.CoreV1().ConfigMaps(newCanary.Namespace).Patch(context.TODO(), cm.Name, types.JSONPatchType, m, opts)
	if err != nil {
		logger.Errorf("***************updateFunc update configmap failed for (%s/%s): %s", newCanary.Namespace, newCanary.Name, err.Error())
		return
	}


版权声明:本文为javahuazaili原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。