Solución:
Idealmente, esto debería ser configurable como parte del helm
script, pero desafortunadamente no lo es a partir de ahora. Una forma de solucionar este problema es crear un nuevo Docker a partir de la imagen de Docker de Kafka Connect de Confluent. Descargue el conector manualmente y extraiga el contenido en una carpeta. Copie el contenido de esto en una ruta en el contenedor. Algo como a continuación.
Contenido de Dockerfile
FROM confluentinc/cp-kafka-connect:5.2.1
COPY <connector-directory> /usr/share/java
/usr/share/java
es la ubicación predeterminada donde Kafka Connect busca complementos. También puede utilizar una ubicación diferente y proporcionar la nueva ubicación (plugin.path
) durante tu helm
instalación.
Cree esta imagen y alójela en un lugar accesible. También tendrá que proporcionar / anular la imagen y los detalles de la etiqueta durante la helm
instalación.
Aquí está el camino hacia el values.yaml
expediente. Puedes encontrar el image
y plugin.path
valores aquí.
Solo un complemento al comentario de Jegan anterior: https://stackoverflow.com/a/56049585/6002912
Puede optar por hacer el Dockerfile a continuación. Recomendado.
FROM confluentinc/cp-server-connect-operator:5.4.0.0
RUN confluent-hub install --no-prompt debezium/debezium-connector-postgresql:1.0.0
O puede usar una compilación de múltiples etapas de Docker en su lugar.
FROM confluentinc/cp-server-connect-operator:5.4.0.0
COPY --from=debezium/connect:1.0
/kafka/connect/debezium-connector-postgres/
/usr/share/confluent-hub-components/debezium-connector-postgres/
Esto le ayudará a ahorrar tiempo al obtener los archivos jar correctos para sus complementos, como debezium-connector-postgres.
De la documentación de Confluent: https://docs.confluent.io/current/connect/managing/extending.html#create-a-docker-image-containing-c-hub-connectors
El pod de Kafka Connect ya debería tener instalado el concentrador confluente. Es ese pod en el que debe ejecutar los comandos.