Сделайте патч аннотации для входного объекта kubernetes - PullRequest
0 голосов
/ 11 апреля 2019

Я написал мутирующий webhook для kubernetes, чтобы добавить класс по умолчанию к новому входному объекту.

Основная часть это :

func patch( annotations map[string]string, name string) []byte {
        var patches []Patch
        if len(annotations) == 0 {
                klog.V(0).Infof("New annotation to %v.\n", name)
                patchNew := Patch{"add", "/metadata/annotations", map[string]string{}}
                patches = append(patches, patchNew)
        }
        if _, ok := annotations[key]; !ok {
                klog.V(0).Infof("Added class %v to %v.\n", Class, name)
                patchAdd := Patch{"add", "/metadata/annotations/" + strings.Replace(key, "/", "~1", -1), Class}
                patches = append(patches, patchAdd)
        } else {
                klog.V(0).Info("No need to add class.\n")
        }
        bytes, _ := json.Marshal(patches)
        return bytes
}

Это работает, но кажется довольно неуклюжим. Имеет ли это решение смысл или есть более простой способ достичь того же результата?

(Я мало занимаюсь программированием, любые улучшения приветствуются.)

...