Uploaded image for project: 'Maistra'
  1. Maistra
  2. MAISTRA-348

OCP4 AWS tcp-traffic-shifting failed when using ingress-gateway route host name

    XMLWordPrintable

Details

    • Task
    • Resolution: Done
    • Minor
    • maistra-rc1
    • None
    • None
    • None
    • RC1

    Description

      Our test scripts failed in Tasks
      https://istio.io/docs/tasks/traffic-management/tcp-traffic-shifting/
      on OCP4 AWS.

      After user configure an ingress gateway with port number other than 80 or 443 to handle TCP traffic , OpenShift 4 Beta on AWS does not support ingress gateway traffic by routing to istio-ingressgateway route hostname.

      The istio-ingressgateway route hostname, for example, “istio-ingressgateway-istio-system.apps.[cluster name].openshift.com” works fine with port 80 or 443 traffic. However, that route hostname doesn’t support other port traffic.

      In order to access service(s) running on ingress gateway TCP port(s), user can retrieve the istio-ingressgateway external IP hostname, for example,
      [uuid].[aws region].elb.amazonaws.com” and then check traffic by using that external IP hostname value.

      Tip: the following command can retrieve the external IP hostname value:
      $ oc -n istio-system get service istio-ingressgateway -o jsonpath='

      {.status.loadBalancer.ingress[0].hostname}

      '

      If that command does not return the external IP hostname value, issue this command to retrieve it:
      $ oc -n istio-system get service istio-ingressgateway -o jsonpath='

      {.status.loadBalancer.ingress[0].ip}

      '

      Build: istio maistra-0.9.0
      Environment: OCP 4 AWS
      Test steps:
      https://istio.io/docs/tasks/traffic-management/tcp-traffic-shifting/
      on OCP4 AWS.

      Issues:
      The command for testing tcp-echo hangs in OCP4 AWS:
      INGRESS_HOST=$(oc get routes -l app=istio-ingressgateway -n istio-system -o jsonpath='

      {.items[0].spec.host}

      ')
      INGRESS_PORT=$(oc -n istio-system get service istio-ingressgateway -o jsonpath='

      {.spec.ports[?(@.name=="tcp")].port}

      ')
      docker run -e INGRESS_HOST=$INGRESS_HOST -e INGRESS_PORT=$INGRESS_PORT -it --rm busybox sh -c "(date; sleep 1) | nc $INGRESS_HOST $INGRESS_PORT";

      Fix and workaround:
      See comment 1

      Attachments

        Issue Links

          Activity

            People

              jsantana@redhat.com Jonh Wendell
              yuaxu@redhat.com Yuanlin Xu
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: