Défi :
Étendez un programme Kubernetes pour ajouter des étiquettes aux pods existants à l'aide le client go.
Solution :
Pour ajouter des étiquettes aux pods à l'aide du client go, suivez les étapes suivantes :
Importer les modules nécessaires :
<code class="go">import ( "encoding/json" "fmt" "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" )</code>
Définir une structure de charge utile de correctif :
Pour construire la charge utile du correctif, définissez une structure personnalisée pour représenter les mises à jour de la valeur de l'étiquette :
<code class="go">type patchStringValue struct { Op string `json:"op"` Path string `json:"path"` Value string `json:"value"` }</code>
Remplissez la charge utile du correctif :
Créez une tranche d'objets patchStringValue pour représenter l'étiquette spécifique ajoutée :
<code class="go">payload := []patchStringValue{{ Op: "replace", Path: "/metadata/labels/sent_alert_emailed", Value: time.Now().Format("2006-01-02_15.04.05"), }}</code>
Marshall la charge utile du patch :
Convertissez la tranche de charge utile au format JSON :
<code class="go">payloadBytes, _ := json.Marshal(payload)</code>
Exécutez l'opération de correctif :
À l'aide du client Kubernetes, exécutez l'opération de correctif sur le pod cible :
<code class="go">_, updateErr = api.Pods(pod.GetNamespace()).Patch( pod.GetName(), types.JSONPatchType, payloadBytes, )</code>
Vérifiez la valeur de updateErr pour vous assurer que l'opération a réussi. En cas de succès, affichez un message de réussite.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!