ODBC and Flight behind a Reverse proxy that handles TLS

Flight works now when I put Traefik in front of it. Specifically, I have Traefik listening on 32010/tcp, routing to a load balancer service that points to a server url of “h2c://127.0.0.1”. This results in a python flight client being able to connect and execute queries as expected.

I’ve not been able to get ODBC to work. At least with PowerBI, I’m getting this error when I point at a TLS-encrypted http endpoint and select “Enabled” for the Encryption field:

Details: "ODBC: ERROR [08S01] [Microsoft][Drill] (20) Failure occurred while trying to connect to local=my-dremio-server-dns:31010. (Details: [30004]Connection failed with error: Cannot decode handshake.)"

I have traefik listening on 31010 (I’ve tried both tcp and http) and forwarding to the dremio docker container, which is listening on the host port 31011 and forwarding to Dremio inside the container at 31010. If I point PowerBI directly at port 31011 and set the Encryption field to “Disabled”, then it connects just fine, so I know Dremio is operating correctly.

I suspect I’m missing something relatively simple here. I have it working fine with Flight connections, but when I try to do it the same way for ODBC the client is not happy.

I’ve seen a few discussions about putting a load balancer that offloads TLS in front of the ODBC port for Dremio, but they have seemed to reach the point of a solution:

This one concluded by going back to insecure ODBC: Issues with Power BI Connector

This one mentioned the same error I’m seeing, but it never commented on it: Connecting from Power BI - #3 by Joe