Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

conformance: HTTPRouteHeaderMatching test #57

Closed
1 task
Tracked by #53
mlavacca opened this issue Mar 26, 2024 · 3 comments · Fixed by #314
Closed
1 task
Tracked by #53

conformance: HTTPRouteHeaderMatching test #57

mlavacca opened this issue Mar 26, 2024 · 3 comments · Fixed by #314

Comments

@mlavacca
Copy link
Member

mlavacca commented Mar 26, 2024

Problem Statement

KIC ControlPlane is already HTTP core conformant; the test HTTPRouteHeaderMatching is part of it. We need to run such a core test successfully.

Acceptance Criteria

  • The core test HTTPRouteHeaderMatching is successfully run.
@pmalek
Copy link
Member

pmalek commented May 29, 2024

This is only supported on expressions Kong Gateway router flavor in KIC (ref: https://github.com/Kong/kubernetes-ingress-controller/blob/d8c30ad0bdf84b11f9f60bd2b164d7d9398f60b0/test/conformance/gateway_conformance_test.go#L24-L27)

In order to support this we'll need to

  • change the default router flavor and set it via envs in DataPlane
    var KongDefaults = map[string]string{
    "KONG_ADMIN_ACCESS_LOG": "/dev/stdout",
    "KONG_ADMIN_ERROR_LOG": "/dev/stderr",
    "KONG_ADMIN_GUI_ACCESS_LOG": "/dev/stdout",
    "KONG_ADMIN_GUI_ERROR_LOG": "/dev/stderr",
    "KONG_CLUSTER_LISTEN": "off",
    "KONG_DATABASE": "off",
    "KONG_NGINX_WORKER_PROCESSES": "2",
    "KONG_PLUGINS": "bundled",
    "KONG_PORTAL_API_ACCESS_LOG": "/dev/stdout",
    "KONG_PORTAL_API_ERROR_LOG": "/dev/stderr",
    "KONG_PORT_MAPS": "80:8000, 443:8443",
    "KONG_PROXY_ACCESS_LOG": "/dev/stdout",
    "KONG_PROXY_ERROR_LOG": "/dev/stderr",
    "KONG_PROXY_LISTEN": fmt.Sprintf("0.0.0.0:%d reuseport backlog=16384, 0.0.0.0:%d http2 ssl reuseport backlog=16384", consts.DataPlaneProxyPort, consts.DataPlaneProxySSLPort),
    "KONG_STATUS_LISTEN": fmt.Sprintf("0.0.0.0:%d", consts.DataPlaneStatusPort),
    "KONG_ADMIN_LISTEN": fmt.Sprintf("0.0.0.0:%d ssl reuseport backlog=16384", consts.DataPlaneAdminAPIPort),
    // MTLS
    "KONG_ADMIN_SSL_CERT": "/var/cluster-certificate/tls.crt",
    "KONG_ADMIN_SSL_CERT_KEY": "/var/cluster-certificate/tls.key",
    "KONG_NGINX_ADMIN_SSL_CLIENT_CERTIFICATE": "/var/cluster-certificate/ca.crt",
    "KONG_NGINX_ADMIN_SSL_VERIFY_CLIENT": "on",
    "KONG_NGINX_ADMIN_SSL_VERIFY_DEPTH": "3",
    }
  • or provide 2 conformance reports: for expressions and traditional_compatible (as it's done in KIC)

@mlavacca
Copy link
Member Author

Isn't expression the default router for KIC? In case we specify no router type, the expression one should be defaulted, or not?

@pmalek
Copy link
Member

pmalek commented May 31, 2024

As per: https://docs.konghq.com/gateway/latest/reference/configuration/#router_flavor

The default is traditional_compatible. It's a default in Kong Gateway not in KIC. KIC only reads what's set on the Gateway via the Admin API: https://github.com/Kong/kubernetes-ingress-controller/blob/9b863786b5abc262987f3129b046a878511daec7/internal/manager/run.go#L107-L112.

We'd have to start setting this config value.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants