Es gibt zwei Möglichkeiten, dies zu tun. Mit einem json patch oder mit einem Merge-Patch. Hier ist, wie Sie das letztere tun:
[[email protected] ~]$ cat patch.json
{
"status": {
"loadBalancer": {
"ingress": [
{"ip": "8.3.2.1"}
]
}
}
}
Nun, hier können Sie die für merge Patches sehen, müssen Sie ein Wörterbuch machen, das alle Objektbaum (beginnt bei Status), die einige Änderungen zusammengeführt werden müssen. Wenn Sie etwas ersetzen möchten, müssen Sie die JSON-Patch-Strategie verwenden.
Sobald wir diese Datei senden wir die Anfrage und wenn alles gut geht, werden wir eine Antwort erhalten mit der Zusammenführung auf das Objekt aus bereits angewandt:
[[email protected] ~]$ curl --request PATCH --data "$(cat patch.json)" -H "Content-Type:application/merge-patch+json" http://localhost:8080/api/v1/namespaces/default/services/kubernetes/status{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "kubernetes",
"namespace": "default",
"selfLink": "/api/v1/namespaces/default/services/kubernetes/status",
"uid": "b8ece320-76c1-11e7-b468-fa163ea3fb09",
"resourceVersion": "2142242",
"creationTimestamp": "2017-08-01T14:00:06Z",
"labels": {
"component": "apiserver",
"provider": "kubernetes"
}
},
"spec": {
"ports": [
{
"name": "https",
"protocol": "TCP",
"port": 443,
"targetPort": 6443
}
],
"clusterIP": "10.0.0.129",
"type": "ClusterIP",
"sessionAffinity": "ClientIP"
},
"status": {
"loadBalancer": {
"ingress": [
{
"ip": "8.3.2.1"
}
]
}
}