-
Notifications
You must be signed in to change notification settings - Fork 591
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
Constant e2e failures against unreleased Kong with Kuma #5498
Comments
ref: #5496 |
Copy-pasting @rainest's investigation notes from Slack for posterity:
|
Reproduction steps: # Install Kuma.
helm install kuma kuma/kuma
# Create `kong` namespace
kubectl create ns kong
# Enable Mesh in `kong` and `default` namespace.
kubectl label ns kong kuma.io/sidecar-injection=enabled
kubectl label ns default kuma.io/sidecar-injection=enabled
# Install KIC+Kong 3.6 (with OpenResty bumped) using the all-in-one manifests.
curl https://raw.githubusercontent.com/Kong/kubernetes-ingress-controller/v3.0.2/test/e2e/manifests/all-in-one-dbless.yaml | \
sed -r 's/kong:3.4/kong\/kong-gateway-dev:dc683d70ced4795471a5416773b14e9771ae8a6c/g' | \
kubectl apply -f -
# Deploy an echo server Deployment with 3 replicas and expose it via Ingress.
echo 'apiVersion: apps/v1
kind: Deployment
metadata:
name: echo
labels:
app: echo
spec:
replicas: 3
selector:
matchLabels:
app: echo
template:
metadata:
labels:
app: echo
spec:
containers:
- name: echo
image: kong/go-echo:0.3.0
ports:
- containerPort: 1027
env:
- valueFrom:
fieldRef:
fieldPath: status.podIP
name: POD_IP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: echo
name: echo
spec:
type: ClusterIP
selector:
app: echo
ports:
- port: 1027
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: echo-ingress
annotations:
konghq.com/strip-path: "true"
konghq.com/methods: "GET"
spec:
ingressClassName: kong
rules:
- http:
paths:
- path: /echo
pathType: Prefix
backend:
service:
name: echo
port:
number: 1027' | kubectl apply -f -
# Get Kong proxy IP.
PROXY_IP=$(kubectl get svc --namespace kong kong-proxy -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo "$PROXY_IP"
# Send 100 requests to /echo endpoint and count unique responses (there will be Pod IPs in the response).
for i in `seq 100`; do curl -s "$PROXY_IP"/echo >> /tmp/hit_ips_with_bump; done
cat /tmp/hit_ips_with_bump | sort | uniq -c
# Get output only with 2 Pod IPs while 3 were expected:
# cat /tmp/hit_ips_with_bump | sort | uniq -c
# 100
# 40 With IP address 10.80.1.8.
# 60 With IP address 10.80.2.15.
# Change Kong version to 3.6 (one commit before OpenResty bump)
curl https://raw.githubusercontent.com/Kong/kubernetes-ingress-controller/v3.0.2/test/e2e/manifests/all-in-one-dbless.yaml | \
sed -r 's/kong:3.4/kong\/kong-gateway-dev:eabdfbcedcd744546ee758275110a8790e038891/g' | \
kubectl apply -f -
# Send 100 requests to /echo endpoint and count unique responses (there will be Pod IPs in the response).
for i in `seq 100`; do curl -s "$PROXY_IP"/echo >> /tmp/hit_ips_before_bump; done
cat /tmp/hit_ips_before_bump | sort | uniq -c
# Get output with 3 Pod IPs as expected:
# cat /tmp/hit_ips_before_bump | sort | uniq -c
# 100
# 44 With IP address 10.80.0.8.
# 27 With IP address 10.80.1.8.
# 29 With IP address 10.80.2.15. The issue was narrowed down to Kong OpenResty bump in this commit and is handled by the Gateway team in https://konghq.atlassian.net/browse/KAG-3633. I think we can keep this issue open on our side and close it once a fixed nightly Gateway build passes our E2E tests. |
Is there an existing issue for this?
Current Behavior
Recently the daily e2e run against unreleased Kong fails on the 2 cases running with kuma:
https://github.com/Kong/kubernetes-ingress-controller/actions/runs/7683416231/job/20938806328#logs
TestDeployAllInOnePostgresKuma
TestDeployAllInOneDBLessKuma
Also the validate Kong image tests against
kong/kong-gateway-dev:3.6.0.0-rc1
fails in the same cases:https://github.com/Kong/kubernetes-ingress-controller/actions/runs/7675532503
The behaviors in the tests are the same: requests are only sent to 2 backend pods but expected all 3 pods:
Expected Behavior
e2e test passes.
Steps To Reproduce
Kong Ingress Controller version
`latest` image 3.0.2.
Kubernetes version
All supported k8s versions in this run:
https://github.com/Kong/kubernetes-ingress-controller/actions/runs/7675532503
Anything else?
No response
The text was updated successfully, but these errors were encountered: