Defining traefik ingress over zeebe gatway service

In order to add multiple zeebe-gateway replicas in the cluster I defined an ingress (traefik) with the below configuration file. The ingress gets created but when I update the helm chart values file as below I get an error on installation

Error: INSTALLATION FAILED: Ingress.extensions "dev-camunda-platform" is invalid: [spec.rules[0].host: Invalid value: "192.168.1.7": must be a DNS name, not an IP address, spec.rules[0].http.paths: Required value]

I am trying this on my laptop so I don’t have a DNS name. How can I specify an ip address in the helm chart for the ingress?

Thanks.
helm values file snippet

global:
  ingress:
    enabled: true
    className: traefik
    host: 192.168.1.7
  identity:
    auth:
      # Disable the Identity authentication for local development
      # it will fall back to basic-auth: demo/demo as default user
      enabled: false
  elasticsearch:
    disableExporter: true

zeebe-gateway:
  ingress:
    enabled: true
    className: traefik
    host: 192.168.1.7
  replicas: 1

k8s-ingress configuration

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: c8-ingress
  namespace: default
spec:
  rules:
    - http:
        paths:
          - pathType: Prefix
            path: /
            backend:
              service:
                name: dev-zeebe-gateway
                port:
                  number: 9600

Will your laptop definitively have access to DNS?
Will your laptop consistently have that IP address?

If the answer to both of those questions is yes, then use one of the following options:

  1. Host file on laptop (/etc/hosts for Linux, c:\Windows\System32\Drivers\etc\hosts for windows) to map the name to an IP

  2. Use a hostname that the DNS can map directly and consistently to that IP (there was a recommended FQDN on the forum a while back, but I can’t find it now)

Thanks for the inputs. I resolved the error I posted earlier by removing the ingress config on the global attribute. I also realised that ingress is also created by helm charts too once we mention zeebe-gateway.ingress.enabled: true. Hence the above k8s-ingress configuration isn’t required.

I tried to get away with the ip-address problem by mentioning the zeebe-gateway.ingress.host as localhost. I understand that we would need changes when we deploy in other environments where the tips you mentioned would help.

Another challenge I am facing is enabling grpc on traefik. On defining the ingress configuration as below I cannot connect to the gateway with zbctl - I get connection refused error.

I see the below error in the traefik pod

time=“2023-02-08T10:09:16Z” level=error msg=“Skipping service: no endpoints found” serviceName=dev-zeebe-gateway servicePort=“&ServiceBackendPort{Name:,Number:26500,}” namespace=default providerName=kubernetes ingress=dev-zeebe-gateway

Any inputs on enabling grpc on traefik?

Thanks.

helm values configuration

zeebe-gateway:
  ingress:
    enabled: true
    host: localhost
    className: traefik
    annotations:
      ingress.kubernetes.io/protocol: h2c
  replicas: 2

No… you’re still a few months ahead of me :frowning:

Looking at the pod logs, it looks like the servicePort in the Ingress annotation wasn’t set correctly, so it didn’t get a service name to map the 26500 (outside) to. Since it couldn’t find a service map, it didn’t open up the outside 26500 port.

Looking at the pod logs, it looks like the servicePort in the Ingress annotation wasn’t set correctly, so it didn’t get a service name to map the 26500 (outside) to.

Right. Looks like an issue in the helm chart.

Found the service I was meaning…

you could point to 192-168-1-7.nip.io as the hostname, and it would resolve back to 192.168.1.7

1 Like