Попытка обновить объект istio envoyfilter с помощью локона, но возникает ошибка - PullRequest
0 голосов
/ 17 апреля 2020

Это json данные для меня, чтобы создать объект envoyfilter

  al8-1@al8-1:~/kuber_test/pod_nginx$ cat park.json
{
  "apiVersion": "networking.istio.io/v1alpha3",
  "kind": "EnvoyFilter",
  "metadata": {
    "name": "myapp-pod",
    "namespace": "default"
  },
  "spec": {
    "workloadSelector": {
     "labels": {
        "app": "myapp"
      }
    },
    "configPatches": [{
      "applyTo": "HTTP_FILTER",
      "match": {
        "context": "SIDECAR_OUTBOUND",
        "listener": {
          "filterChain": {
            "filter": {
              "name": "envoy.http_connection_manager"
            }
          }
        }
      },
      "patch": {
        "operation": "ADD",
        "value": {
            "name" : "envoy.http_connection_manager",
            "config": {
             "id_1": "key_1"
            }
           }
        }
    }]
  }
}

И используя созданный json, мы создали envoyfilter с помощью команды curl.

На рисунке ниже показывает, что envoyfilter был создан с помощью команды POST, а соответствующий envoyfilter был создан с помощью команды GET.

al8-1@al8-1:~/kuber_test/pod_nginx$ curl POST -H "Content-Type: application/json" -H "Authorization: 
Bearer $token" --insecure 
'https://192.xxx.xx.xx:6443/apis/networking.istio.io/v1alpha3/namespaces/default/envoyfilters' - 
d@park.json
 curl: (6) Could not resolve host: POST
{"apiVersion":"networking.istio.io/v1alpha3","kind":"EnvoyFilter","metadata": 
{"creationTimestamp":"2020-04-17T06:38:54Z","generation":1,"name":"myapp-pod","namespace":"default","resourceVersion":"4304352","selfLink":"/apis/networking.istio.io/v1alpha3/namespaces/default/envoyfilters/myapp-pod","uid":"549cc0ea-45e5-4bc8-af2f-80aa56e15eef"},"spec":{"configPatches":[{"applyTo":"HTTP_FILTER","match":{"context":"SIDECAR_OUTBOUND","listener":{"filterChain":{"filter":{"name":"envoy.http_connection_manager"}}}},"patch":{"operation":"ADD","value":{"config":{"id_1":"key_1"},"name":"envoy.http_connection_manager"}}}],"workloadSelector":{"labels":{"app":"myapp"}}}}al8-1@al8-1:~/kuber_test/pod_nginx$

al8-1@al8-1:~/kuber_test/pod_nginx$ curl -X GET -H "Content-Type: application/json" -H 
"Authorization: Bearer $token" --insecure 
'https://192.xxx.xx.xx:6443/apis/networking.istio.io/v1alpha3/namespaces/default/envoyfilters'
{"apiVersion":"networking.istio.io/v1alpha3","items":[{"apiVersion":"networking.istio.io/v1alpha3","kind":"EnvoyFilter","metadata":{"creationTimestamp":"2020-04-17T06:38:54Z","generation":1,"name":"myapp-pod","namespace":"default","resourceVersion":"4304352","selfLink":"/apis/networking.istio.io/v1alpha3/namespaces/default/envoyfilters/myapp-pod","uid":"549cc0ea-45e5-4bc8-af2f-80aa56e15eef"},"spec":{"configPatches":[{"applyTo":"HTTP_FILTER","match":{"context":"SIDECAR_OUTBOUND","listener":{"filterChain":{"filter":{"name":"envoy.http_connection_manager"}}}},"patch":{"operation":"ADD","value":{"config":{"id_1":"key_1"},"name":"envoy.http_connection_manager"}}}],"workloadSelector":{"labels":{"app":"myapp"}}}}],"kind":"EnvoyFilterList","metadata":{"continue":"","resourceVersion":"4304378","selfLink":"/apis/networking.istio.io/v1alpha3/namespaces/default/envoyfilters"}}al8-1@al8-1:~/kuber_test/pod_nginx$

Теперь, чтобы изменить некоторые объекты envoyfilter, созданные с помощью команды PATCH, мы создали следующий патч . json

al8-1@al8-1:~/kuber_test/pod_nginx$ cat patch.json
[{"op":"replace","path":"/spec/configPatches/0/patch/operation/-","value":"MERGE"}]

Но команда исправления выдает ошибку, и я не знаю, где эта ошибка неправильная

al8-1@al8-1:~/kuber_test/pod_nginx$ curl PATCH -H "Content-Type: application/json-patch+json" -H 
"Authorization: Bearer $token" --insecure 
'https://192.xxx.xx.xx:6443/apis/networking.istio.io/v1alpha3/namespaces/default/envoyfilters/myapp-pod' -d@patch.json
curl: (6) Could not resolve host: PATCH
{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "the body of the request was in an unknown format - accepted media types include: 
application/json, application/yaml, application/vnd.kubernetes.protobuf",
  "reason": "UnsupportedMediaType",
  "code": 415

Я пытался применить ее к нескольким полям, а также поле операции, но произошла та же ошибка. Если вы знаете причину этой ошибки, сообщите мне ответ.

...