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

Ingress using single service backend with different paths and ports not create correctly f5 ingress object #3322

Closed
mbarbisan-upcnet opened this issue Mar 6, 2024 · 7 comments

Comments

@mbarbisan-upcnet
Copy link

Setup Details

CIS Version : 2.13.1
Build: f5networks/k8s-bigip-ctlr:2.13.1
BIGIP Version: Big IP i4800 (15.1.8 Build 0.0.7)
AS3 Version: 3.26.1
Agent Mode: AS3/CCCL
Orchestration: K8S/Rancher
Orchestration Version:
Pool Mode:
Additional Setup details:
Kubernetes version: v1.23.8
Calico v3.24.3

Description

When we create an ingress poiting to the same services using diffents endpoints path and ports. 

F5 controller create the ingress pool as "ingress_<namespace>_<svc_name>", and for some reason he can not create this kind of object replacing the firt with the lastone. 

¿This will be an common/expected results or its a bug?

Steps To Reproduce

1) Create an ingress pointing to same service but using differents endpoints path and ports
2) Creation results without any problem
3) Looking in F5 web ui, the last configuration applied its related to the last path configured in the ingress object. 

Expected Result

One ingress pointing to the same service using differents endpoints and ports, create two differents pools on F5. 

Examples: 
"ingress_<namespace>_<svc_name><port>"
"ingress_<namespace>_<svc_name><service-backend>"

Actual Result

The ingress on F5 web ui is using only the last endpoint configured on the ingress. 

Diagnostic Information

Observations (if any)

If we create one by one service pointing to certaing path, works fine. 

	example: 
	"https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/ingress/networkingV1/name-based-ingress.yaml"

Service created : 
	receive          ClusterIP   10.xx.xx.xx1    <none>        10902/TCP,10901/TCP,19291/TCP   49d

apiVersion: v1
kind: Service
metadata:
  annotations:
  labels:
    app.kubernetes.io/component: receive
  name: example
  namespace: example
spec:
  clusterIP: 
  clusterIPs:
  - 
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: http
    port: 10902
    protocol: TCP
    targetPort: http
  - name: grpc
    port: 10901
    protocol: TCP
    targetPort: grpc
  - name: remote
    port: 19291
    protocol: TCP
    targetPort: remote-write
  selector:
    app.kubernetes.io/component: receive
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

Example of ingress we want to create:

	apiVersion: networking.k8s.io/v1
	kind: Ingress
	metadata:
	  annotations:
	    ingress.kubernetes.io/allow-http: "false"
	    ingress.kubernetes.io/ssl-redirect: "true"
	    kubernetes.io/ingress.class: 
	    nginx.ingress.kubernetes.io/proxy-connect-timeout: "30"
	    nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
	    nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
	    nginx.ingress.kubernetes.io/ssl-redirect: "true"
	    virtual-server.f5.com/clientssl: '[ { "bigIpProfile": "/Common/ssl_WILDCARD"}]'
	    virtual-server.f5.com/health: '[{"path":"example.com/", "send":"GET
	      / HTTP/1.1", "interval":5, "timeout":10},{"path":"example.com/api/v1/receive",
	      "send":"GET / HTTP/1.1", "interval":5, "timeout":10}]'
	    virtual-server.f5.com/whitelist-source-range: 10.xx.xx.xxx
	  labels:
	  name: example
	  namespace: example
	spec:
	  rules:
	  - host: example.com
	    http:
	      paths:
	      - backend:
	          service:
	            name: receive
	            port:
	              name: remote
	        path: /api/v1/receive
	        pathType: ImplementationSpecific
	      - backend:
	          service:
	            name: receive
	            port:
	              name: http
	        path: /
	        pathType: ImplementationSpecific
@mbarbisan-upcnet mbarbisan-upcnet added bug untriaged no JIRA created labels Mar 6, 2024
@mbarbisan-upcnet mbarbisan-upcnet changed the title Ingress using single service backend with different paths and ports not work correctly Ingress using single service backend with different paths and ports not create correctly f5 ingress object Mar 7, 2024
@trinaths
Copy link
Contributor

Created [CONTCNTR-4640] for internal tracking.

@trinaths trinaths added JIRA and removed untriaged no JIRA created labels Mar 11, 2024
vidyasagar-m added a commit to vidyasagar-m/k8s-bigip-ctlr that referenced this issue Mar 25, 2024
vidyasagar-m added a commit to vidyasagar-m/k8s-bigip-ctlr that referenced this issue Mar 29, 2024
@mbarbisan-upcnet
Copy link
Author

Hi guys, how are you? Thanks to provide us a solution, Do you have any date to merge the fix? Thanks!

@vidyasagar-m
Copy link
Contributor

@mbarbisan-upcnet Currently, we are testing the fix. This will be available with 2.1.6.1, which is going to be released next week.

vidyasagar-m added a commit to vidyasagar-m/k8s-bigip-ctlr that referenced this issue Apr 4, 2024
vidyasagar-m added a commit to vidyasagar-m/k8s-bigip-ctlr that referenced this issue Apr 4, 2024
vidyasagar-m added a commit to vidyasagar-m/k8s-bigip-ctlr that referenced this issue Apr 4, 2024
@mbarbisan-upcnet
Copy link
Author

mbarbisan-upcnet commented Apr 12, 2024

Hi @vidyasagar-m! how are you?. Do you have any clue if this release will be confirmed to the next week? thanks

@vidyasagar-m
Copy link
Contributor

Hi @mbarbisan-upcnet, After discussion with the team, we're planning to release 2.16.1 probably next week.

@mbarbisan-upcnet
Copy link
Author

Hi guys, how are you? Do you any update about the release date, please? thanks.

@trinaths
Copy link
Contributor

Fixed in 2.16.1

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

No branches or pull requests

3 participants