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

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

    Details

    • Type: Task
    • Status: Done (View Workflow)
    • Priority: Minor
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: maistra-rc1
    • Component/s: None
    • Labels:
      None
    • Sprint:
      RC1
    • SFDC Cases Counter:
    • SFDC Cases Links:

      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

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  jonh.wendell Jonh Wendell Santana
                  Reporter:
                  yuaxu Yuanlin Xu
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  7 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: