snowdrop / istio-java-api

A Java API to generate Istio descriptors, inspired by Fabric8's kubernetes-model.
Apache License 2.0
112 stars 33 forks source link

istioClient.gateway().createOrReplace(gateway) come out `Namespace parameter required` #74

Closed lianghuiyuan closed 4 years ago

lianghuiyuan commented 4 years ago

When I use istioClient.gateway().createOrReplace(gateway) to update gateway. Come out Namespace parameter required error, but there have Namespace in metadata.

{
    "apiVersion": "networking.istio.io/v1alpha3",
    "kind": "Gateway",
    "metadata": {
        "creationTimestamp": "2019-08-02T17:42:55Z",
        "generation": 1,
        "name": "aaaa1",
        "namespace": "istio-bookinfo",
        "resourceVersion": "663342228",
        "selfLink": "/apis/networking.istio.io/v1alpha3/namespaces/istio-bookinfo/gateways/aaaa1",
        "uid": "f5e4d9ce-b54c-11e9-91b0-aeb2e5e2ff0c"
    },
    "spec": {
        "selector": {
            "additionalProp1": "string",
            "additionalProp2": "string",
            "additionalProp3": "string"
        },
        "servers": [{
            "bind": "string",
            "defaultEndpoint": "string",
            "hosts": [
                "string"
            ],
            "port": {
                "name": "string",
                "number": 0,
                "protocol": "string"
            },
            "tls": {
                "caCertificates": "string",
                "cipherSuites": [
                    "string"
                ],
                "credentialName": "string",
                "httpsRedirect": true,
                "maxProtocolVersion": "Server_TLSOptions_TLS_AUTO",
                "minProtocolVersion": "Server_TLSOptions_TLS_AUTO",
                "mode": "PASSTHROUGH",
                "privateKey": "string",
                "serverCertificate": "string",
                "subjectAltNames": [
                    "string"
                ]
            }
        }]
    }
}

Error in Get method:

[2019-08-05 14:22:18,284][TRACE:http-nio-8080-exec-9][InvocableHandlerMethod.java:136] Arguments: [io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://47.122.216.138:6443/apis/networking.istio.io/v1alpha3/gateways/aaaa1. Message: Namespace parameter required.. Received status: Status(apiVersion=v1, code=400, details=null, kind=Status, message=Namespace parameter required., metadata=ListMeta(_continue=null, resourceVersion=null, selfLink=null, additionalProperties={}), reason=BadRequest, status=Failure, additionalProperties={}).]
[2019-08-05 14:22:18,285][INFO :http-nio-8080-exec-9][CustomControllerAdvice.java:59] Failure executing: GET at: https://47.122.216.138:6443/apis/networking.istio.io/v1alpha3/gateways/aaaa1. Message: Namespace parameter required.. Received status: Status(apiVersion=v1, code=400, details=null, kind=Status, message=Namespace parameter required., metadata=ListMeta(_continue=null, resourceVersion=null, selfLink=null, additionalProperties={}), reason=BadRequest, status=Failure, additionalProperties={}).
io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://47.122.216.138:6443/apis/networking.istio.io/v1alpha3/gateways/aaaa1. Message: Namespace parameter required.. Received status: Status(apiVersion=v1, code=400, details=null, kind=Status, message=Namespace parameter required., metadata=ListMeta(_continue=null, resourceVersion=null, selfLink=null, additionalProperties={}), reason=BadRequest, status=Failure, additionalProperties={}).
lianghuiyuan commented 4 years ago

Fixed!
result.setData(istioClient.gateway().inNamespace(namespace).withName(gatewayName).createOrReplace(gateway));