konpyutaika / nifikop

The NiFiKop NiFi Kubernetes operator makes it easy to run Apache NiFi on Kubernetes. Apache NiFI is a free, open-source solution that support powerful and scalable directed graphs of data routing, transformation, and system mediation logic.
https://konpyutaika.github.io/nifikop/
Apache License 2.0
122 stars 39 forks source link

Ability to set Health check paths within one service #408

Open TimMilton opened 3 months ago

TimMilton commented 3 months ago

Type of question

Best Practices

Support question

Hello! We are using AWS ALB and have some difficulties with setting health check paths for multiple services - they are always creating with / root path.

Our ingress yaml example:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: name
  namespace: nifi
  annotations:
    alb.ingress.kubernetes.io/group.name: groupname
    alb.ingress.kubernetes.io/inbound-cidrs: 10.0.0.0/8
    alb.ingress.kubernetes.io/ip-address-type: ipv4
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":1111},{"HTTPS":2222},{"HTTPS":3333}]'
    alb.ingress.kubernetes.io/certificate-arn: certificate-arn
    alb.ingress.kubernetes.io/load-balancer-name: load-balancer-name
    alb.ingress.kubernetes.io/scheme: internal
    alb.ingress.kubernetes.io/subnets: subnets
    alb.ingress.kubernetes.io/tags: tags
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/healthcheck-protocol: HTTPS
    alb.ingress.kubernetes.io/backend-protocol: HTTPS
    kubernetes.io/ingress.class: alb
spec:
  rules:
    - host: host
      http:
        paths:
          - path: /app1
            pathType: Prefix
            backend:
              service:
                name: alb
                port:
                  number: 1111
          - path: /app2
            pathType: Prefix
            backend:
              service:
                name: alb
                port:
                  number: 2222
          - path: /app3
            pathType: Prefix
            backend:
              service:
                name: alb
                port:
                  number: 3333

Our NiFi yaml service example:

...externalServices:
    - name: "alb"
      spec:
        type: ClusterIP
        portConfigs:
          - port: 1111
            internalListenerName: "app1"
          - port: 2222
            internalListenerName: "app2"
          - port: 3333
            internalListenerName: "app3"

Could you, please, explain is there any possibility to set Health check paths for multiple ports within one service? Or all ports should be separated by different services to set multiple Health check paths in their annotations?

NiFiKop version

v1.7.0-release

Golang version

No response

Kubernetes version

Client Version: v1.28.1 Kustomize Version: v5.0.4 Server Version: v1.28.5-eks

NiFi version

1.25.0

Carverook commented 2 months ago

up

mh013370 commented 2 months ago

I don't know what you mean by health check paths? Are you referring to ingress path URIs?