Librdkafka: The debian9 and alpine build artifacts have no GSSAPI support

Created on 15 Oct 2019  路  3Comments  路  Source: edenhill/librdkafka

Description

Is there a reason why debian and alpine build pipeline use option --disable-gssapi? See build scripts

Using this approach, the nuget package Confluent.Kafka contains debian9-librdkafka.so and alpine-librdkafka.so with no GSSAPI support.

In our project, we would like to use the Confluent.Kafka to connect to a Kerberized Kafka cluster from a .NET core microservice. The default .NET core image mcr.microsoft.com/dotnet/core/runtime:2.1 is based on a Debian image so the application fails on GSSAPI: recompile librdkafka with libsasl2 or openssl support. Current build options: PLAIN SASL_SCRAM'. It can be fixed by recompiling the librdkafka as described in issue 550. Or an Ubuntu based image can be used (i.e mcr.microsoft.com/dotnet/core/runtime:2.1-bionic).

Having a nuget package without GSSAPI support for Debian 9 is strange to me especially when the Microsoft's default image is Debian 9. Could you please comment on that?

Thank you

How to reproduce

Have a Kerberized Kafka cluster
Create a .NET core application
Use latest version of nuget package Confluent.Kafka
Run the .NET core application in a Debian based docker image (i.e mcr.microsoft.com/dotnet/core/runtime:2.1)
The application fals with message GSSAPI: recompile librdkafka with libsasl2 or openssl support. Current build options: PLAIN SASL_SCRAM'

Checklist

Please provide the following information:

  • [x] librdkafka version (release number or git tag): 1.2.1
  • [x] Apache Kafka version: 2.3.0
  • [x] librdkafka client configuration:
"security.protocol", "SASL_PLAINTEXT";
"sasl.mechanisms", "GSSAPI";
"sasl.kerberos.principal", "svc_hdfdev_kafka/[email protected]");
"sasl.kerberos.keytab", "keytab";
"sasl.kerberos.service.name", "svc_hdfdev_kafka;
  • [x] Operating system: Debian 9
  • [ ] Provide logs (with debug=.. as necessary) from librdkafka
  • [ ] Provide broker log excerpts
  • [ ] Critical issue

All 3 comments

Same issue for Docker .Net Core 3.0 runtime image(Debian 10)

Quoting the wiki:

The disparity in build-time features is a compromise between NuGet package size (fewer libraries) and required system dependencies (e.g., Cyrus SASL / Kerberos). If GSSAPI support is required on a platform for where there is no corresponding library with GSSAPI support you will need to install librdkafka through other means and specify the installed library path using Library.Load (API docs).

Was this page helpful?
0 / 5 - 0 ratings