haproxytech / kubernetes-ingress

HAProxy Kubernetes Ingress Controller
https://www.haproxy.com/documentation/kubernetes/
Apache License 2.0
684 stars 195 forks source link

Question: Support of CRD for tcp services #295

Open alexandrst88 opened 3 years ago

alexandrst88 commented 3 years ago

Hi! Is there is any plan to manage TCP services via CRDS object or Service annotations instead of putting into the ConfigMap?

I think it would very manageable if for example, each application could define it's own object for tcp load-balancing instead of sharing one Configmap, which could break other services due to human mistake.

oktalz commented 3 years ago

Hi, yes there is a plan to add CRDs (includinf tcp services), next release 1.6.0 will not use them (most likely), but version after it will have it if everything goes to plan

almson commented 3 years ago

Using CRDs to replace ConfigMap for exposing TCP ports would be nice, but perhaps a bit overkill. I hacked together a simpler solution which exposes any annotated NodePorts.

298

Sample Service:

  apiVersion: v1
  kind: Service
  metadata:
    name: myapp
    annotations:
      haproxy.org/expose: 'true'
      haproxy.org/ssl-offloading: 'true'
      haproxy.org/check: 'false'
      haproxy.org/send-proxy-protocol: 'proxy-v2'
      haproxy.org/whitelist: '1.2.3.4/32, 5.6.7.8/28'
  spec:
    selector:
      app: myapp
    type: NodePort
    ports:
    - name: port1
      protocol: TCP
      port: 8023
      nodePort: 30000
    - name: health
      protocol: TCP
      port: 8000
      nodePort: 30001

One of the big issues (upstream as well) is that deleted services don't delete their backends.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

PKizzle commented 11 months ago

Is this also planned for UDP services? It would be nice if a custom CRD would directly take into account TCP and UDP services.