Skip to content

Conversation

@jhuttana
Copy link

@jhuttana jhuttana commented Jul 9, 2025

This is a demo PR and is still WIP
/cc @rioliu-rh
/cc @ming1013
/cc @LuboTerifaj

At present facing errors while executing the test-suite due to unavailable test-data which requires proper bindata.go file to be generated.

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 9, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jul 9, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign frobware for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jhuttana
Copy link
Author

jhuttana commented Jul 9, 2025

I need to figure out how I can generate bindata.go. I'll share the output of each option I try with integrated binary.

@jhuttana
Copy link
Author

jhuttana commented Jul 10, 2025

Build OTE binary

$ make build
mkdir -p "bin"
# GO_COMPLIANCE_POLICY="exempt_all" must only be used for test related binaries.
# It prevents various FIPS compliance policies from being applied to this compilation.
# Do not set globally.
GO_COMPLIANCE_POLICY="exempt_all" GO111MODULE="on" GOWORK=off go build -ldflags="-X 'github.com/openshift/router/ginkgo-test/pkg/version.CommitFromGit=f96b8ad6' -X 'github.com/openshift/router/ginkgo-test/pkg/version.BuildDate=2025-07-10T08:40:43Z' -X 'github.com/openshift/router/ginkgo-test/pkg/version.GitTreeState=clean' -s -w" -mod=mod -o ""bin"" "./cmd/openshift-router-test-extension"

Options available with the binary

$ ./bin/openshift-router-test-extension 
OpenShift Tests Extension - Router

Usage:
   [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  info        Display extension metadata
  list        List items
  run-suite   Run a group of tests by suite
  run-test    Runs tests by name
  update      Update test metadata

Flags:
  -h, --help                     help for this command
      --version version[=true]   --version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version

Use " [command] --help" for more information about a command.

Display extension metadata

$ ./bin/openshift-router-test-extension info
{
    "apiVersion": "v1.0",
    "source": {
        "commit": "f96b8ad6",
        "build_date": "2025-07-10T08:40:43Z",
        "git_tree_state": "clean"
    },
    "component": {
        "product": "openshift",
        "type": "payload",
        "name": "router-tests"
    },
    "suites": [
        {
            "name": "router/smoke-test",
            "qualifiers": [
                "(source == \"openshift:payload:router-tests\") \u0026\u0026 (name.contains(\"health check\"))"
            ]
        },
        {
            "name": "router/level0",
            "parents": [
                "openshift/disruptive"
            ],
            "qualifiers": [
                "(source == \"openshift:payload:router-tests\") \u0026\u0026 (name.contains(\"LEVEL0\"))"
            ]
        },
        {
            "name": "router/critical",
            "parents": [
                "openshift/disruptive"
            ],
            "qualifiers": [
                "(source == \"openshift:payload:router-tests\") \u0026\u0026 (name.contains(\"-Critical-\"))"
            ]
        },
        {
            "name": "router/full",
            "parents": [
                "openshift/disruptive"
            ],
            "qualifiers": [
                "(source == \"openshift:payload:router-tests\") \u0026\u0026 (name.contains(\"sig-router\"))"
            ]
        }
    ]
}

List test cases

$ ./bin/openshift-router-test-extension list tests --suite router/smoke-test
[
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:mjoseph-ROSA-OSD_CCS-ARO-Critical-15044-The backend health check interval of unsecure/edge/passthrough/reencrypt route can be set by annotation",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  },
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:shudili-ROSA-OSD_CCS-ARO-High-16870-No health check when there is only one endpoint for a route",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  },
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:asood-NonHyperShiftHOST-ConnectedOnly-ROSA-OSD_CCS-Medium-63832-Cluster ingress health checks and routes fail on swapping application router between public and private",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  }
]

$ ./bin/openshift-router-test-extension list tests --suite router/level0
[
  {
    "name": "[sig-network-edge] Network_Edge Component_ALBO Author:hongli-ROSA-OSD_CCS-ConnectedOnly-LEVEL0-High-51189-Install aws-load-balancer-operator and controller [Serial]",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  },
  {
    "name": "[sig-network-edge] Network_Edge Component_ExtDNS Author:hongli-ConnectedOnly-ROSA-OSD_CCS-LEVEL0-High-48138-Support External DNS on AWS platform",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  },
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:aiyengar-ROSA-OSD_CCS-ARO-LEVEL0-High-41042-The Power-of-two balancing features defaults to random LB algorithm instead of leastconn for REEN/Edge/insecure routes",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  },
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:hongli-LEVEL0-Critical-47344-check haproxy router v4v6 mode",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  },
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:mjoseph-LEVEL0-Critical-51255-cluster-ingress-operator can set AWS ELB idle Timeout on per controller basis",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  },
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:mjoseph-LEVEL0-Critical-55223-Configuring list of IP address ranges using allowedSourceRanges in LoadBalancerService",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  },
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:hongli-WRS-LEVEL0-Critical-43300-V-ACS.05-enable client certificate with optional policy",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  },
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:shudili-LEVEL0-Critical-41110-The threadCount ingresscontroller parameter controls the nbthread option for the haproxy router",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  },
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:aiyengar-LEVEL0-Critical-43112-timeout tunnel parameter for the haproxy pods an be modified with TuningOptions option in the ingresscontroller",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  },
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:shudili-LEVEL0-High-55367-Default HAProxy maxconn value to 50000 for OCP 4.12 and later",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:router-tests",
    "lifecycle": "blocking"
  }
]

Run test-suites

export KUBECONFIG=$your_config_file_path

$ ./bin/openshift-router-test-extension run-suite router/smoke-test
  I0710 13:55:51.987917 353624 test.go:169] Found authentication type used: 
  I0710 13:55:51.987977 353624 openshift-tests.go:195] Is kubernetes cluster: no, is external OIDC cluster: no
  I0710 13:55:51.987995 353624 test_context.go:563] The --provider flag is not set. Continuing as if --provider=skeleton had been used.
  Running Suite:  - /home/xxx/workarea/openShift_qe/cloned_repos/router/ginkgo-test
  ======================================================================================
  Random Seed: 1752135947 - will randomize all specs
 
  Will run 1 of 1 specs
  ------------------------------
  [sig-network-edge] Network_Edge Component_Router Author:mjoseph-ROSA-OSD_CCS-ARO-Critical-15044-The backend health check interval of unsecure/edge/passthrough/reencrypt route can be set by annotation
  /home/xxx/workarea/openShift_qe/cloned_repos/router/ginkgo-test/test/extended/router/haproxy-router.go:29
    STEP: Creating a kubernetes client @ 07/10/25 13:55:51.988
  I0710 13:55:51.989176 353624 client.go:353] it is not external oidc cluster
  I0710 13:55:53.817455 353624 client.go:215] configPath is now "/tmp/configfile3609210197"
  I0710 13:55:53.817509 353624 client.go:370] The user is now "e2e-test-router-env-ptzxb-user"
  I0710 13:55:53.817525 353624 client.go:373] Creating project "e2e-test-router-env-ptzxb"
  I0710 13:55:54.105398 353624 client.go:382] Waiting on permissions in project "e2e-test-router-env-ptzxb" ...
  I0710 13:55:54.967242 353624 client.go:443] Waiting for ServiceAccount "default" to be provisioned...
  I0710 13:55:55.290484 353624 client.go:443] Waiting for ServiceAccount "builder" to be provisioned...
  I0710 13:55:55.641360 353624 client.go:443] Waiting for ServiceAccount "deployer" to be provisioned...
  I0710 13:55:55.965260 353624 client.go:453] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0710 13:55:56.563284 353624 client.go:453] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0710 13:55:57.177919 353624 client.go:453] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0710 13:55:57.706852 353624 client.go:484] Project "e2e-test-router-env-ptzxb" has been fully provisioned.
  STEP: 1. Create a server pod and its service 07/10/25 13:55:57.709
    STEP: 1. Create a server pod and its service @ 07/10/25 13:55:57.709
  I0710 13:55:57.709458 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig get pods -l ingresscontroller.operator.openshift.io/deployment-ingresscontroller=default -o=jsonpath={.items[0].metadata.name} -n openshift-ingress'
  I0710 13:55:59.381161 353624 util.go:531] the result of router pod name: router-default-648cfb7f8-psql4
  I0710 13:55:59.383267 353624 client.go:835] Running 'oc --kubeconfig=/tmp/configfile3609210197 create -f /tmp/fixture-testdata-dir20092338/test/extended/testdata/router/web-server-signed-deploy.yaml -n e2e-test-router-env-ptzxb'
  configmap/nginx-config created
  deployment.apps/web-server-deploy created
  service/service-secure created
  service/service-unsecure created
  I0710 13:56:05.871392 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig get pod -n e2e-test-router-env-ptzxb -l name=web-server-deploy -ojsonpath={.items[*].status.conditions[?(@.type=="Ready")].status}'
  I0710 13:56:07.120424 353624 util.go:338] the Ready status of pod is True True
  I0710 13:56:07.120546 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig get -n e2e-test-router-env-ptzxb pod -l name=web-server-deploy -ojsonpath={.items..metadata.name}'
  I0710 13:56:08.059187 353624 util.go:828] The pod list is [web-server-deploy-78495fb55f-sp6q8 web-server-deploy-78495fb55f-tzrdz]
  STEP: 2.0: Create an unsecure, edge, reencrypt and passthrough route 07/10/25 13:56:08.059
    STEP: 2.0: Create an unsecure, edge, reencrypt and passthrough route @ 07/10/25 13:56:08.059
  I0710 13:56:08.059303 353624 client.go:835] Running 'oc --namespace=e2e-test-router-env-ptzxb --kubeconfig=/tmp/configfile3609210197 expose -n e2e-test-router-env-ptzxb service service-unsecure --name=route-http'
  I0710 13:56:09.398235 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig get -n e2e-test-router-env-ptzxb route/route-http -o=jsonpath={.status.ingress[?(@.routerName=="default")].conditions[?(@.type=="Admitted")].status}'
  I0710 13:56:10.190787 353624 util.go:498] the output filtered by jsonpath is: True
  I0710 13:56:10.190955 353624 client.go:835] Running 'oc --kubeconfig=/tmp/configfile3609210197 create -n e2e-test-router-env-ptzxb route edge route-edge --service=service-unsecure'
  I0710 13:56:11.336148 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig get -n e2e-test-router-env-ptzxb route/route-edge -o=jsonpath={.status.ingress[?(@.routerName=="default")].conditions[?(@.type=="Admitted")].status}'
  I0710 13:56:12.059993 353624 util.go:498] the output filtered by jsonpath is: True
  I0710 13:56:12.060135 353624 client.go:835] Running 'oc --kubeconfig=/tmp/configfile3609210197 create -n e2e-test-router-env-ptzxb route passthrough route-pass --service=service-secure'
  I0710 13:56:13.012192 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig get -n e2e-test-router-env-ptzxb route/route-pass -o=jsonpath={.status.ingress[?(@.routerName=="default")].conditions[?(@.type=="Admitted")].status}'
  I0710 13:56:13.737538 353624 util.go:498] the output filtered by jsonpath is: True
  I0710 13:56:13.737675 353624 client.go:835] Running 'oc --kubeconfig=/tmp/configfile3609210197 create -n e2e-test-router-env-ptzxb route reencrypt route-reen --service=service-secure'
  I0710 13:56:14.669180 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig get -n e2e-test-router-env-ptzxb route/route-reen -o=jsonpath={.status.ingress[?(@.routerName=="default")].conditions[?(@.type=="Admitted")].status}'
  I0710 13:56:15.413030 353624 util.go:498] the output filtered by jsonpath is: True
  STEP: 3.0: Annotate unsecure, edge, reencrypt and passthrough route 07/10/25 13:56:15.413
    STEP: 3.0: Annotate unsecure, edge, reencrypt and passthrough route @ 07/10/25 13:56:15.413
  I0710 13:56:15.413255 353624 client.go:835] Running 'oc --namespace=e2e-test-router-env-ptzxb --kubeconfig=/tmp/configfile3609210197 annotate -n e2e-test-router-env-ptzxb route/route-http router.openshift.io/haproxy.health.check.interval=200ms --overwrite'
  route.route.openshift.io/route-http annotated
  I0710 13:56:16.355836 353624 client.go:835] Running 'oc --namespace=e2e-test-router-env-ptzxb --kubeconfig=/tmp/configfile3609210197 annotate -n e2e-test-router-env-ptzxb route/route-edge router.openshift.io/haproxy.health.check.interval=300ms --overwrite'
  route.route.openshift.io/route-edge annotated
  I0710 13:56:17.459071 353624 client.go:835] Running 'oc --namespace=e2e-test-router-env-ptzxb --kubeconfig=/tmp/configfile3609210197 annotate -n e2e-test-router-env-ptzxb route/route-pass router.openshift.io/haproxy.health.check.interval=400ms --overwrite'
  route.route.openshift.io/route-pass annotated
  I0710 13:56:18.609913 353624 client.go:835] Running 'oc --namespace=e2e-test-router-env-ptzxb --kubeconfig=/tmp/configfile3609210197 annotate -n e2e-test-router-env-ptzxb route/route-reen router.openshift.io/haproxy.health.check.interval=500ms --overwrite'
  route.route.openshift.io/route-reen annotated
  STEP: 4. Check the router pod and ensure the routes are loaded in haproxy.config of default controller 07/10/25 13:56:19.577
    STEP: 4. Check the router pod and ensure the routes are loaded in haproxy.config of default controller @ 07/10/25 13:56:19.577
  I0710 13:56:19.577935 353624 util.go:560] Polling and search haproxy config file
  I0710 13:56:24.579247 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig exec -n openshift-ingress router-default-648cfb7f8-psql4 -- bash -c grep "e2e-test-router-env-ptzxb:route-http" haproxy.config -A15 | grep "e2e-test-router-env-ptzxb"'
  I0710 13:56:27.699526 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig exec -n openshift-ingress router-default-648cfb7f8-psql4 -- bash -c grep "e2e-test-router-env-ptzxb:route-http" haproxy.config -A15'
  I0710 13:56:32.207616 353624 util.go:574] the part of haproxy.config that matching "e2e-test-router-env-ptzxb:route-http" is:
  backend be_http:e2e-test-router-env-ptzxb:route-http
    mode http
    option redispatch
    option forwardfor
    balance random
 
    timeout check 5000ms
    http-request add-header X-Forwarded-Host %[req.hdr(host)]
    http-request add-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto http if !{ ssl_fc }
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    http-request add-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 }
    http-request add-header Forwarded for=%[src];host=%[req.hdr(host)];proto=%[req.hdr(X-Forwarded-Proto)]
    cookie 3961d3c9d302a3435c7554715fece0cc insert indirect nocache httponly
    server pod:web-server-deploy-78495fb55f-sp6q8:service-unsecure:http:10.128.2.18:8080 10.128.2.18:8080 cookie a36923b701fafce38827b31fd8b7a663 weight 1 check inter 200ms
    server pod:web-server-deploy-78495fb55f-tzrdz:service-unsecure:http:10.131.0.26:8080 10.131.0.26:8080 cookie 8f0ee7863cd0656b82662989a783fa3b weight 1 check inter 200ms
  I0710 13:56:32.207694 353624 util.go:560] Polling and search haproxy config file
  I0710 13:56:37.211763 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig exec -n openshift-ingress router-default-648cfb7f8-psql4 -- bash -c grep "e2e-test-router-env-ptzxb:route-edge" haproxy.config -A15 | grep "e2e-test-router-env-ptzxb"'
  I0710 13:56:40.315246 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig exec -n openshift-ingress router-default-648cfb7f8-psql4 -- bash -c grep "e2e-test-router-env-ptzxb:route-edge" haproxy.config -A15'
  I0710 13:56:43.512534 353624 util.go:574] the part of haproxy.config that matching "e2e-test-router-env-ptzxb:route-edge" is:
  backend be_edge_http:e2e-test-router-env-ptzxb:route-edge
    mode http
    option redispatch
    option forwardfor
    balance random
 
    timeout check 5000ms
    http-request add-header X-Forwarded-Host %[req.hdr(host)]
    http-request add-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto http if !{ ssl_fc }
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    http-request add-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 }
    http-request add-header Forwarded for=%[src];host=%[req.hdr(host)];proto=%[req.hdr(X-Forwarded-Proto)]
    cookie a34a87d3cd677a3191fa7de7a10c0634 insert indirect nocache httponly secure attr SameSite=None
    server pod:web-server-deploy-78495fb55f-sp6q8:service-unsecure:http:10.128.2.18:8080 10.128.2.18:8080 cookie a36923b701fafce38827b31fd8b7a663 weight 1 check inter 300ms
    server pod:web-server-deploy-78495fb55f-tzrdz:service-unsecure:http:10.131.0.26:8080 10.131.0.26:8080 cookie 8f0ee7863cd0656b82662989a783fa3b weight 1 check inter 300ms
  I0710 13:56:43.512737 353624 util.go:560] Polling and search haproxy config file
  I0710 13:56:48.513087 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig exec -n openshift-ingress router-default-648cfb7f8-psql4 -- bash -c grep "e2e-test-router-env-ptzxb:route-pass" haproxy.config -A10 | grep "e2e-test-router-env-ptzxb"'
  I0710 13:56:51.584693 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig exec -n openshift-ingress router-default-648cfb7f8-psql4 -- bash -c grep "e2e-test-router-env-ptzxb:route-pass" haproxy.config -A10'
  I0710 13:56:55.042275 353624 util.go:574] the part of haproxy.config that matching "e2e-test-router-env-ptzxb:route-pass" is:
  backend be_tcp:e2e-test-router-env-ptzxb:route-pass
    balance source
 
    hash-type consistent
    timeout check 5000ms
    server pod:web-server-deploy-78495fb55f-sp6q8:service-secure:https:10.128.2.18:8443 10.128.2.18:8443 weight 1 check inter 400ms
    server pod:web-server-deploy-78495fb55f-tzrdz:service-secure:https:10.131.0.26:8443 10.131.0.26:8443 weight 1 check inter 400ms
 
  # Plain http backend or backend with TLS terminated at the edge or a
  # secure backend with re-encryption.
  backend be_secure:e2e-test-router-env-ptzxb:route-reen
  I0710 13:56:55.042417 353624 util.go:560] Polling and search haproxy config file
  I0710 13:57:00.044134 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig exec -n openshift-ingress router-default-648cfb7f8-psql4 -- bash -c grep "e2e-test-router-env-ptzxb:route-reen" haproxy.config -A15 | grep "e2e-test-router-env-ptzxb"'
  I0710 13:57:03.334355 353624 client.go:835] Running 'oc --kubeconfig=/home/xxx/Downloads/cluster-bot-2025-07-10-071952.kubeconfig exec -n openshift-ingress router-default-648cfb7f8-psql4 -- bash -c grep "e2e-test-router-env-ptzxb:route-reen" haproxy.config -A15'
  I0710 13:57:06.919438 353624 util.go:574] the part of haproxy.config that matching "e2e-test-router-env-ptzxb:route-reen" is:
  backend be_secure:e2e-test-router-env-ptzxb:route-reen
    mode http
    option redispatch
    option forwardfor
    balance random
 
    timeout check 5000ms
    http-request add-header X-Forwarded-Host %[req.hdr(host)]
    http-request add-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto http if !{ ssl_fc }
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    http-request add-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 }
    http-request add-header Forwarded for=%[src];host=%[req.hdr(host)];proto=%[req.hdr(X-Forwarded-Proto)]
    cookie c9ce2d57b576ebe95d52b9d7b2c953c7 insert indirect nocache httponly secure attr SameSite=None
    server pod:web-server-deploy-78495fb55f-sp6q8:service-secure:https:10.128.2.18:8443 10.128.2.18:8443 cookie 027f3aeec40fb40066793b24c0dde45c weight 1 ssl verifyhost service-secure.e2e-test-router-env-ptzxb.svc verify required ca-file /var/run/configmaps/service-ca/service-ca.crt check inter 500ms
    server pod:web-server-deploy-78495fb55f-tzrdz:service-secure:https:10.131.0.26:8443 10.131.0.26:8443 cookie 92fa9756ddbcded5a069791219926ce3 weight 1 ssl verifyhost service-secure.e2e-test-router-env-ptzxb.svc verify required ca-file /var/run/configmaps/service-ca/service-ca.crt check inter 500ms
  I0710 13:57:07.219048 353624 client.go:529] Deleted {user.openshift.io/v1, Resource=users  e2e-test-router-env-ptzxb-user}, err: <nil>
  I0710 13:57:07.527114 353624 client.go:529] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-router-env-ptzxb}, err: <nil>
  I0710 13:57:07.834132 353624 client.go:529] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~WUtv1U8OS8MP3Tw70I_KfXIF5NIAwiDb_bDTkBxSCYM}, err: <nil>
    STEP: Destroying namespace "e2e-test-router-env-ptzxb" for this suite. @ 07/10/25 13:57:07.834
  • [76.092 seconds]
  ------------------------------
 
  Ran 1 of 1 Specs in 76.092 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
  Running Suite:  - /home/xxx/workarea/openShift_qe/cloned_repos/router/ginkgo-test
  ======================================================================================
  Random Seed: 1752135947 - will randomize all specs
 
  Will run 1 of 1 specs
  ------------------------------
  [sig-network-edge] Network_Edge Component_Router Author:shudili-ROSA-OSD_CCS-ARO-High-16870-No health check when there is only one endpoint for a route
.
.
.
.
  {
    "name": "[sig-network-edge] Network_Edge Component_Router Author:mjoseph-ROSA-OSD_CCS-ARO-Critical-15044-The backend health check interval of unsecure/edge/passthrough/reencrypt route can be set by annotation",
    "lifecycle": "blocking",
    "duration": 76092,
    "startTime": "2025-07-10 08:25:51.988033 UTC",
    "endTime": "2025-07-10 08:27:08.080234 UTC",
    "result": "passed",
    "output": "  STEP: Creating a kubernetes client @ 07/10/25 13:55:51.988\nI0710 13:55:51.989176 353624 client.go:353]
.
.
.
    }
]

@ming1013
Copy link

  1. This looks like a same PR with Migrate ginkgo test code from repo openshift-tests-private machine-config-operator#4665
  2. Whatever, let's talk about directory structure at first, all component repos as a golang project should have similar structure like following (not full but at least):
    .
    ├── cmd
    ├── go.mod
    ├── go.sum
    ├── hack
    ├── LICENSE
    ├── Makefile
    ├── pkg
    ├── test
    └── vendor

2.1 After OTE migration, the main.go for OTE should be under cmd directory like https://github.com/openshift/machine-api-operator/tree/main/cmd/machine-api-tests-ext or https://github.com/openshift/machine-config-operator/tree/main/cmd/machine-config-tests-ext

2.2 And after moving e2e testing case, it should be under test directory like https://github.com/openshift/machine-api-operator/tree/main/test/e2e/vsphere or https://github.com/openshift/machine-config-operator/tree/main/test/extended

  1. So my question is, should we provide an example that is closer to real-world practice to show how to do OTE migration on an existing Go project, rather than offering a standalone ginkgo-tests test example? If we plan to provide ginkgo-tests example as standalone project, we already have it.

@jhuttana
Copy link
Author

  1. This looks like a same PR with Migrate ginkgo test code from repo openshift-tests-private machine-config-operator#4665

Yes, it is. As mentioned during the discussion, I experimented with all available approaches, and the one used in @rioliu-rh's PR appeared to be the most promising and straightforward for migrating test cases from openshift-tests-private. I applied the same approach to the router component, and it worked successfully. This suggests that the same method should be effective for other components as well.
If this approach is proving to be effective, I see no reason why it shouldn't be adopted across all component teams.

2. Whatever, let's talk about directory structure at first, all component repos as a golang project should have similar structure  like following (not full but at least):
   .
   ├── **cmd**
   ├── go.mod
   ├── go.sum
   ├── hack
   ├── LICENSE
   ├── Makefile
   ├── pkg
   ├── **test**
   └── vendor

That's right

2.1 After OTE migration, the main.go for OTE should be under cmd directory like https://github.com/openshift/machine-api-operator/tree/main/cmd/machine-api-tests-ext or https://github.com/openshift/machine-config-operator/tree/main/cmd/machine-config-tests-ext

2.2 And after moving e2e testing case, it should be under test directory like https://github.com/openshift/machine-api-operator/tree/main/test/e2e/vsphere or https://github.com/openshift/machine-config-operator/tree/main/test/extended

As discussed multiple times during the OTE migration meetings, it is up to each component team to decide where to place the test cases, manage dependencies, and include the OTE binary. There are no strict guidelines—teams can choose what works best for them.

That said, if test dependencies migrated from openshift-tests-private are added to the go.mod file in the root of the target repository, there is a risk of version conflicts with existing dependencies. To avoid this, it's preferable to maintain a standalone subdirectory that contains the migrated test cases and their associated dependencies.

3. So my question is, should we provide an example that is closer to real-world practice to show how to do OTE migration on an existing Go project, rather than offering a standalone ginkgo-tests test example? If we plan to provide ginkgo-tests example as standalone project, we already have it.

The current goal is to assist component teams in migrating their test cases from openshift-tests-private to their respective source repositories and ensuring they function as expected. If any team has specific requirements that call for a different approach, we’re open to exploring alternatives. Feel free to share any such example, and we can work on it together.

@ming1013
Copy link

ming1013 commented Jul 11, 2025

if test dependencies migrated from openshift-tests-private are added to the go.mod file in the root of the target repository, there is a risk of version conflicts with existing dependencies.

Yes, this is what I want to figure out one common solution to fix the conflicts with existing dependencies even if we do not care about the directory structure, because whatever the directory structure is, they all need to add dependencies in the root go.mod. If this is not considered, things will more easy.

@jhuttana
Copy link
Author

if test dependencies migrated from openshift-tests-private are added to the go.mod file in the root of the target repository, there is a risk of version conflicts with existing dependencies.

Yes, this is what I want to figure out one common solution to fix the conflicts with existing dependencies even if we do not care about the directory structure, because whatever the directory structure is, they all need to add dependencies in the root go.mod. If this is not considered, things will more easy.

Yes, once we begin the actual work, we'll be able to address issues as they come up based on the specific needs.

@jhuttana jhuttana force-pushed the migrate-ginkgo-tests-router branch from 1d60a3f to e826238 Compare September 4, 2025 05:54
@jhuttana
Copy link
Author

jhuttana commented Sep 4, 2025

Tried smoke-tests

export KUBECONFIG=$your_config_file_path

$ ./bin/openshift-router-test-extension run-suite router/smoke-test
 
 Running Suite:  - /home/jhuttana/workarea/openShift_qe/cloned_repos/router/ginkgo-test
  ======================================================================================
  Random Seed: 1756967751 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [sig-network-edge] Network_Edge Component_Router Author:mjoseph-ROSA-OSD_CCS-ARO-Critical-15044-The backend health check interval of unsecure/edge/passthrough/reencrypt route can be set by annotation
  /home/jhuttana/workarea/openShift_qe/cloned_repos/router/ginkgo-test/test/extended/router/haproxy-router.go:30
    STEP: Creating a kubernetes client @ 09/04/25 12:06:31.092
  I0904 12:06:35.522101 1589691 client.go:287] configPath is now "/tmp/configfile2472236360"
  I0904 12:06:35.522173 1589691 client.go:362] The user is now "e2e-test-router-env-v6v77-user"
  I0904 12:06:35.522229 1589691 client.go:364] Creating project "e2e-test-router-env-v6v77"
  I0904 12:06:35.916817 1589691 client.go:372] Waiting on permissions in project "e2e-test-router-env-v6v77" ...
  I0904 12:06:37.247784 1589691 client.go:401] DeploymentConfig capability is enabled, adding 'deployer' SA to the list of default SAs
  I0904 12:06:37.560307 1589691 client.go:416] Waiting for ServiceAccount "default" to be provisioned...
  I0904 12:06:38.292730 1589691 client.go:416] Waiting for ServiceAccount "builder" to be provisioned...
  I0904 12:06:39.025209 1589691 client.go:416] Waiting for ServiceAccount "deployer" to be provisioned...
  I0904 12:06:39.763750 1589691 client.go:426] Waiting for RoleBinding "system:image-pullers" to be provisioned...
  I0904 12:06:40.398140 1589691 client.go:426] Waiting for RoleBinding "system:image-builders" to be provisioned...
  I0904 12:06:41.031730 1589691 client.go:426] Waiting for RoleBinding "system:deployers" to be provisioned...
  I0904 12:06:42.367088 1589691 client.go:459] Project "e2e-test-router-env-v6v77" has been fully provisioned.
  STEP: 1. Create a server pod and its service 09/04/25 12:06:42.373
    STEP: 1. Create a server pod and its service @ 09/04/25 12:06:42.373
  I0904 12:06:42.373297 1589691 client.go:1022] Running 'oc --kubeconfig=/home/jhuttana/Downloads/cluster-bot-2025-09-04-054402.kubeconfig get pods -l ingresscontroller.operator.openshift.io/deployment-ingresscontroller=default -o=jsonpath={.items[0].metadata.name} -n openshift-ingress'
  I0904 12:06:44.031078 1589691 util.go:537] the result of router pod name: router-default-55bdf7bd48-fbdqv
  I0904 12:06:44.033904 1589691 client.go:1022] Running 'oc --kubeconfig=/tmp/configfile2472236360 create -f /tmp/fixture-testdata-dir1639626294/test/extended/testdata/router/web-server-signed-deploy.yaml -n e2e-test-router-env-v6v77'
  configmap/nginx-config created
  deployment.apps/web-server-deploy created
  service/service-secure created
  service/service-unsecure created
  I0904 12:06:51.184239 1589691 client.go:1022] Running 'oc --kubeconfig=/home/jhuttana/Downloads/cluster-bot-2025-09-04-054402.kubeconfig get pod -n e2e-test-router-env-v6v77 -l name=web-server-deploy -ojsonpath={.items[*].status.conditions[?(@.type=="Ready")].status}'
  I0904 12:06:52.764794 1589691 util.go:344] the Ready status of pod is True True
  I0904 12:06:52.764898 1589691 client.go:1022] Running 'oc --kubeconfig=/home/jhuttana/Downloads/cluster-bot-2025-09-04-054402.kubeconfig get -n e2e-test-router-env-v6v77 pod -l name=web-server-deploy -ojsonpath={.items..metadata.name}'
  I0904 12:06:54.159879 1589691 util.go:936] The pod list is [web-server-deploy-78495fb55f-drgpf web-server-deploy-78495fb55f-r5xc8]
  STEP: 2.0: Create an unsecure, edge, reencrypt and passthrough route 09/04/25 12:06:54.16
    STEP: 2.0: Create an unsecure, edge, reencrypt and passthrough route @ 09/04/25 12:06:54.16
  I0904 12:06:54.160217 1589691 client.go:1022] Running 'oc --namespace=e2e-test-router-env-v6v77 --kubeconfig=/tmp/configfile2472236360 expose -n e2e-test-router-env-v6v77 service service-unsecure --name=route-http'
  I0904 12:06:56.200149 1589691 client.go:1022] Running 'oc --kubeconfig=/home/jhuttana/Downloads/cluster-bot-2025-09-04-054402.kubeconfig get -n e2e-test-router-env-v6v77 route/route-http -o=jsonpath={.status.ingress[?(@.routerName=="default")].conditions[?(@.type=="Admitted")].status}'
  I0904 12:06:57.326382 1589691 util.go:504] the output filtered by jsonpath is: True
  I0904 12:06:57.326577 1589691 client.go:1022] Running 'oc --kubeconfig=/tmp/configfile2472236360 create -n e2e-test-router-env-v6v77 route edge route-edge --service=service-unsecure'
  I0904 12:06:58.771614 1589691 client.go:1022] Running 'oc --kubeconfig=/home/jhuttana/Downloads/cluster-bot-2025-09-04-054402.kubeconfig get -n e2e-test-router-env-v6v77 route/route-edge -o=jsonpath={.status.ingress[?(@.routerName=="default")].conditions[?(@.type=="Admitted")].status}'
  I0904 12:06:59.912052 1589691 util.go:504] the output filtered by jsonpath is: True
  I0904 12:06:59.912178 1589691 client.go:1022] Running 'oc --kubeconfig=/tmp/configfile2472236360 create -n e2e-test-router-env-v6v77 route passthrough route-pass --service=service-secure'
  I0904 12:07:01.523601 1589691 client.go:1022] Running 'oc --kubeconfig=/home/jhuttana/Downloads/cluster-bot-2025-09-04-054402.kubeconfig get -n e2e-test-router-env-v6v77 route/route-pass -o=jsonpath={.status.ingress[?(@.routerName=="default")].conditions[?(@.type=="Admitted")].status}'
  I0904 12:07:02.549385 1589691 util.go:504] the output filtered by jsonpath is: True
  I0904 12:07:02.549522 1589691 client.go:1022] Running 'oc --kubeconfig=/tmp/configfile2472236360 create -n e2e-test-router-env-v6v77 route reencrypt route-reen --service=service-secure'
  I0904 12:07:03.981066 1589691 client.go:1022] Running 'oc --kubeconfig=/home/jhuttana/Downloads/cluster-bot-2025-09-04-054402.kubeconfig get -n e2e-test-router-env-v6v77 route/route-reen -o=jsonpath={.status.ingress[?(@.routerName=="default")].conditions[?(@.type=="Admitted")].status}'
  I0904 12:07:05.109184 1589691 util.go:504] the output filtered by jsonpath is: True
  STEP: 3.0: Annotate unsecure, edge, reencrypt and passthrough route 09/04/25 12:07:05.109
    STEP: 3.0: Annotate unsecure, edge, reencrypt and passthrough route @ 09/04/25 12:07:05.109
  I0904 12:07:05.109671 1589691 client.go:1022] Running 'oc --namespace=e2e-test-router-env-v6v77 --kubeconfig=/tmp/configfile2472236360 annotate -n e2e-test-router-env-v6v77 route/route-http router.openshift.io/haproxy.health.check.interval=200ms --overwrite'
  route.route.openshift.io/route-http annotated
  I0904 12:07:06.463556 1589691 client.go:1022] Running 'oc --namespace=e2e-test-router-env-v6v77 --kubeconfig=/tmp/configfile2472236360 annotate -n e2e-test-router-env-v6v77 route/route-edge router.openshift.io/haproxy.health.check.interval=300ms --overwrite'
  route.route.openshift.io/route-edge annotated
  I0904 12:07:07.989992 1589691 client.go:1022] Running 'oc --namespace=e2e-test-router-env-v6v77 --kubeconfig=/tmp/configfile2472236360 annotate -n e2e-test-router-env-v6v77 route/route-pass router.openshift.io/haproxy.health.check.interval=400ms --overwrite'
  route.route.openshift.io/route-pass annotated
  I0904 12:07:09.434178 1589691 client.go:1022] Running 'oc --namespace=e2e-test-router-env-v6v77 --kubeconfig=/tmp/configfile2472236360 annotate -n e2e-test-router-env-v6v77 route/route-reen router.openshift.io/haproxy.health.check.interval=500ms --overwrite'
  route.route.openshift.io/route-reen annotated
  STEP: 4. Check the router pod and ensure the routes are loaded in haproxy.config of default controller 09/04/25 12:07:11.06
    STEP: 4. Check the router pod and ensure the routes are loaded in haproxy.config of default controller @ 09/04/25 12:07:11.06
  I0904 12:07:11.060317 1589691 util.go:569] Polling and search haproxy config file
  I0904 12:07:16.063222 1589691 client.go:1022] Running 'oc --kubeconfig=/home/jhuttana/Downloads/cluster-bot-2025-09-04-054402.kubeconfig exec -n openshift-ingress router-default-55bdf7bd48-fbdqv -- bash -c cat haproxy.config'
  I0904 12:07:20.980821 1589691 util.go:719] The block configuration in haproxy that matching "e2e-test-router-env-v6v77:route-http" is:
  backend be_http:e2e-test-router-env-v6v77:route-http
    mode http
    option redispatch
    option forwardfor
    balance random

    timeout check 5000ms
    http-request add-header X-Forwarded-Host %[req.hdr(host)]
    http-request add-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto http if !{ ssl_fc }
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    http-request add-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 }
    http-request add-header Forwarded for=%[src];host=%[req.hdr(host)];proto=%[req.hdr(X-Forwarded-Proto)]
    cookie 3db248648d3549cf305c9cbc9ec03e1d insert indirect nocache httponly
    server pod:web-server-deploy-78495fb55f-r5xc8:service-unsecure:http:10.129.2.12:8080 10.129.2.12:8080 cookie 819d99732f60e0482545b3236c9c5726 weight 1 check inter 200ms
    server pod:web-server-deploy-78495fb55f-drgpf:service-unsecure:http:10.131.0.22:8080 10.131.0.22:8080 cookie a863cce96ba7ce8d4cd81acc406810d5 weight 1 check inter 200ms


  I0904 12:07:20.980953 1589691 util.go:574] Found the given string check inter 200ms in haproxy.config
  I0904 12:07:20.980964 1589691 util.go:577] All the given strings are found in haproxy.config
  I0904 12:07:20.980978 1589691 util.go:589] The part of haproxy.config that matching "e2e-test-router-env-v6v77:route-http" is:
  backend be_http:e2e-test-router-env-v6v77:route-http
    mode http
    option redispatch
    option forwardfor
    balance random

    timeout check 5000ms
    http-request add-header X-Forwarded-Host %[req.hdr(host)]
    http-request add-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto http if !{ ssl_fc }
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    http-request add-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 }
    http-request add-header Forwarded for=%[src];host=%[req.hdr(host)];proto=%[req.hdr(X-Forwarded-Proto)]
    cookie 3db248648d3549cf305c9cbc9ec03e1d insert indirect nocache httponly
    server pod:web-server-deploy-78495fb55f-r5xc8:service-unsecure:http:10.129.2.12:8080 10.129.2.12:8080 cookie 819d99732f60e0482545b3236c9c5726 weight 1 check inter 200ms
    server pod:web-server-deploy-78495fb55f-drgpf:service-unsecure:http:10.131.0.22:8080 10.131.0.22:8080 cookie a863cce96ba7ce8d4cd81acc406810d5 weight 1 check inter 200ms


  I0904 12:07:20.981058 1589691 util.go:569] Polling and search haproxy config file
  I0904 12:07:25.985193 1589691 client.go:1022] Running 'oc --kubeconfig=/home/jhuttana/Downloads/cluster-bot-2025-09-04-054402.kubeconfig exec -n openshift-ingress router-default-55bdf7bd48-fbdqv -- bash -c cat haproxy.config'
  I0904 12:07:31.015592 1589691 util.go:719] The block configuration in haproxy that matching "e2e-test-router-env-v6v77:route-edge" is:
  backend be_edge_http:e2e-test-router-env-v6v77:route-edge
    mode http
    option redispatch
    option forwardfor
    balance random

    timeout check 5000ms
    http-request add-header X-Forwarded-Host %[req.hdr(host)]
    http-request add-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto http if !{ ssl_fc }
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    http-request add-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 }
    http-request add-header Forwarded for=%[src];host=%[req.hdr(host)];proto=%[req.hdr(X-Forwarded-Proto)]
    cookie 58801fb7254c65e3097cee3848d5dbd8 insert indirect nocache httponly secure attr SameSite=None
    server pod:web-server-deploy-78495fb55f-r5xc8:service-unsecure:http:10.129.2.12:8080 10.129.2.12:8080 cookie 819d99732f60e0482545b3236c9c5726 weight 1 check inter 300ms
    server pod:web-server-deploy-78495fb55f-drgpf:service-unsecure:http:10.131.0.22:8080 10.131.0.22:8080 cookie a863cce96ba7ce8d4cd81acc406810d5 weight 1 check inter 300ms


  I0904 12:07:31.015768 1589691 util.go:574] Found the given string check inter 300ms in haproxy.config
  I0904 12:07:31.015785 1589691 util.go:577] All the given strings are found in haproxy.config
  I0904 12:07:31.015804 1589691 util.go:589] The part of haproxy.config that matching "e2e-test-router-env-v6v77:route-edge" is:
  backend be_edge_http:e2e-test-router-env-v6v77:route-edge
    mode http
    option redispatch
    option forwardfor
    balance random

    timeout check 5000ms
    http-request add-header X-Forwarded-Host %[req.hdr(host)]
    http-request add-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto http if !{ ssl_fc }
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    http-request add-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 }
    http-request add-header Forwarded for=%[src];host=%[req.hdr(host)];proto=%[req.hdr(X-Forwarded-Proto)]
    cookie 58801fb7254c65e3097cee3848d5dbd8 insert indirect nocache httponly secure attr SameSite=None
    server pod:web-server-deploy-78495fb55f-r5xc8:service-unsecure:http:10.129.2.12:8080 10.129.2.12:8080 cookie 819d99732f60e0482545b3236c9c5726 weight 1 check inter 300ms
    server pod:web-server-deploy-78495fb55f-drgpf:service-unsecure:http:10.131.0.22:8080 10.131.0.22:8080 cookie a863cce96ba7ce8d4cd81acc406810d5 weight 1 check inter 300ms


  I0904 12:07:31.015986 1589691 util.go:569] Polling and search haproxy config file
  I0904 12:07:36.016768 1589691 client.go:1022] Running 'oc --kubeconfig=/home/jhuttana/Downloads/cluster-bot-2025-09-04-054402.kubeconfig exec -n openshift-ingress router-default-55bdf7bd48-fbdqv -- bash -c cat haproxy.config'
  I0904 12:07:40.950735 1589691 util.go:719] The block configuration in haproxy that matching "e2e-test-router-env-v6v77:route-pass" is:
  backend be_tcp:e2e-test-router-env-v6v77:route-pass
    balance source

    hash-type consistent
    timeout check 5000ms
    server pod:web-server-deploy-78495fb55f-r5xc8:service-secure:https:10.129.2.12:8443 10.129.2.12:8443 weight 1 check inter 400ms
    server pod:web-server-deploy-78495fb55f-drgpf:service-secure:https:10.131.0.22:8443 10.131.0.22:8443 weight 1 check inter 400ms


  I0904 12:07:40.950972 1589691 util.go:574] Found the given string check inter 400ms in haproxy.config
  I0904 12:07:40.951000 1589691 util.go:577] All the given strings are found in haproxy.config
  I0904 12:07:40.951036 1589691 util.go:589] The part of haproxy.config that matching "e2e-test-router-env-v6v77:route-pass" is:
  backend be_tcp:e2e-test-router-env-v6v77:route-pass
    balance source

    hash-type consistent
    timeout check 5000ms
    server pod:web-server-deploy-78495fb55f-r5xc8:service-secure:https:10.129.2.12:8443 10.129.2.12:8443 weight 1 check inter 400ms
    server pod:web-server-deploy-78495fb55f-drgpf:service-secure:https:10.131.0.22:8443 10.131.0.22:8443 weight 1 check inter 400ms


  I0904 12:07:40.951164 1589691 util.go:569] Polling and search haproxy config file
  I0904 12:07:45.953170 1589691 client.go:1022] Running 'oc --kubeconfig=/home/jhuttana/Downloads/cluster-bot-2025-09-04-054402.kubeconfig exec -n openshift-ingress router-default-55bdf7bd48-fbdqv -- bash -c cat haproxy.config'
  I0904 12:07:50.952236 1589691 util.go:719] The block configuration in haproxy that matching "e2e-test-router-env-v6v77:route-reen" is:
  backend be_secure:e2e-test-router-env-v6v77:route-reen
    mode http
    option redispatch
    option forwardfor
    balance random

    timeout check 5000ms
    http-request add-header X-Forwarded-Host %[req.hdr(host)]
    http-request add-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto http if !{ ssl_fc }
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    http-request add-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 }
    http-request add-header Forwarded for=%[src];host=%[req.hdr(host)];proto=%[req.hdr(X-Forwarded-Proto)]
    cookie 1a183ef1070c47b344f3da4f2eaa6492 insert indirect nocache httponly secure attr SameSite=None
    server pod:web-server-deploy-78495fb55f-r5xc8:service-secure:https:10.129.2.12:8443 10.129.2.12:8443 cookie a420390a46ef6236af5f7e83f9fab45e weight 1 ssl verifyhost service-secure.e2e-test-router-env-v6v77.svc verify required ca-file /var/run/configmaps/service-ca/service-ca.crt check inter 500ms
    server pod:web-server-deploy-78495fb55f-drgpf:service-secure:https:10.131.0.22:8443 10.131.0.22:8443 cookie e54d234604efbfefe018a2ffc83be278 weight 1 ssl verifyhost service-secure.e2e-test-router-env-v6v77.svc verify required ca-file /var/run/configmaps/service-ca/service-ca.crt check inter 500ms


  I0904 12:07:50.952545 1589691 util.go:574] Found the given string check inter 500ms in haproxy.config
  I0904 12:07:50.952573 1589691 util.go:577] All the given strings are found in haproxy.config
  I0904 12:07:50.952615 1589691 util.go:589] The part of haproxy.config that matching "e2e-test-router-env-v6v77:route-reen" is:
  backend be_secure:e2e-test-router-env-v6v77:route-reen
    mode http
    option redispatch
    option forwardfor
    balance random

    timeout check 5000ms
    http-request add-header X-Forwarded-Host %[req.hdr(host)]
    http-request add-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto http if !{ ssl_fc }
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    http-request add-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 }
    http-request add-header Forwarded for=%[src];host=%[req.hdr(host)];proto=%[req.hdr(X-Forwarded-Proto)]
    cookie 1a183ef1070c47b344f3da4f2eaa6492 insert indirect nocache httponly secure attr SameSite=None
    server pod:web-server-deploy-78495fb55f-r5xc8:service-secure:https:10.129.2.12:8443 10.129.2.12:8443 cookie a420390a46ef6236af5f7e83f9fab45e weight 1 ssl verifyhost service-secure.e2e-test-router-env-v6v77.svc verify required ca-file /var/run/configmaps/service-ca/service-ca.crt check inter 500ms
    server pod:web-server-deploy-78495fb55f-drgpf:service-secure:https:10.131.0.22:8443 10.131.0.22:8443 cookie e54d234604efbfefe018a2ffc83be278 weight 1 ssl verifyhost service-secure.e2e-test-router-env-v6v77.svc verify required ca-file /var/run/configmaps/service-ca/service-ca.crt check inter 500ms


  I0904 12:07:51.268716 1589691 client.go:675] Deleted {user.openshift.io/v1, Resource=users  e2e-test-router-env-v6v77-user}, err: <nil>
  I0904 12:07:51.581289 1589691 client.go:675] Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-router-env-v6v77}, err: <nil>
  I0904 12:07:51.896156 1589691 client.go:675] Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~5QR7t3EQsaz_vQy3QzlO4gyiI3KKPYGemUVC6lWYjVk}, err: <nil>
    STEP: Destroying namespace "e2e-test-router-env-v6v77" for this suite. @ 09/04/25 12:07:51.896
  • [81.214 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 81.214 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 26, 2025

@jhuttana: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-aws-serial a302f21 link true /test e2e-aws-serial
ci/prow/e2e-agnostic a302f21 link true /test e2e-agnostic

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants