Dremio software arrow jdbc url with https

Hi Team,

We have installed Dremio using helm chart and trying to access it using ingress domain name but it’s not working but with container name it’s work so what configuration we will be missing?

Working URL(container name): jdbc:arrow-flight-sql://dremio-client.dremio:32010//?useEncryption=false&user=user&password=password123

Not working URL (Ingress Domain name): jdbc:arrow-flight-sql://dremio.ai.app.com:32010//?useEncryption=true&user=user&password=password123

We can access UI using URL: https://dremio.ai.app.com/

So how to make it working with JDBC URL?

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dremio-cluster-pod ClusterIP None 9999/TCP 143m
zk-hs ClusterIP None 2181/TCP,2888/TCP,3888/TCP 143m
zk-cs ClusterIP 10.43.96.232 2181/TCP 143m
dremio-client LoadBalancer 10.43.58.146 192.168.1.10,192.168.1.16,192.168.1.17 31010:31358/TCP,9047:32472/TCP,32010:30506/TCP 143m

Please help.

@parth Sorry forthe dumb question, why is the encryptios setting diffrent, is that where the issue is

Hi @balaji.ramaswamy , Yes because first url is working with container/pod name so it’s not https and it’s working, but when trying with domain name we need to add encryption as true as it’s https if I am not wrong, but I think even if I kept it false it’s still not working with domain name.

@parth Can you check Ingres logs and Dremio logs to see til where the connection is established, this will help use narrow down the issue

Hi @balaji.ramaswamy , In logs we are not able to find below is the ingress file which we deployed.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: dremio
  name: dremio
  labels:
    app: dremio
  annotations:
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
    acme.cert-manager.io/http01-edit-in-place: "true"
spec:
  ingressClassName: traefik
  rules:
  - host: dremio.ai.mydocubank.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: dremio-client
            port:
              number: 9047
  - host: flightdremio.ai.mydocubank.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: dremio-client
            port:
              number: 32010
  tls:
  - hosts:
    - 'dremio.ai.mydocubank.com'
    - 'flightdremio.ai.mydocubank.com'
    secretName: dremio-tls

When we are doing Telnet on flightdremio.ai.mydocubank.com with 443 or 80 port it’s get connected, but when we are using it in JDBC Arrow flight URL it shwoing Internal Server Error.
Checked all the Pods logs nothing is their related to this Error.
With Domain name only 443 or 80 will work. 32010 is already mapped in Ingress

Internal Server Error is very hard to debug as that could mean several things. I assume the Ingres server is able to hit the coordinator on 32010

Looks like tike the issue is in the below part of the config

  - host: flightdremio.ai.mydocubank.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: dremio-client
            port:
              number: 32010

From the Dremio side, turn on root logger and com.dremio at debug level and see if you can find anything, both loggers should in your logback.xml under the conf folder. then if that also does not tell anything, maybe it is not even hitting Dremio, then we can see if there are any debug logs on the Ingres side