# check=skip=SecretsUsedInArgOrEnv
FROM 086679231553.dkr.ecr.us-east-1.amazonaws.com/docker-parent-images:kafka-connect82

USER root

# Add & install OpenSearch Sink connector
ENV OS_CONNECTOR_VERSION='4.1.0'
COPY plugins /tmp/connect-plugins
RUN tar -C /tmp/connect-plugins -xvf /tmp/connect-plugins/opensearch-connector-for-apache-kafka-${OS_CONNECTOR_VERSION}.tar

# Install Lenses secret provider
ENV LENSES_SECRET_PROVIDER_VERSION='2.3.0'
RUN curl -L -o secret-provider-${LENSES_SECRET_PROVIDER_VERSION}-all.jar https://github.com/lensesio/secret-provider/releases/download/${LENSES_SECRET_PROVIDER_VERSION}/secret-provider-${LENSES_SECRET_PROVIDER_VERSION}-all.jar &&\
    mkdir -p /usr/share/java/secret-providers/ &&\
    mv secret-provider-${LENSES_SECRET_PROVIDER_VERSION}-all.jar /usr/share/java/secret-providers/

# Copy files
COPY entry_point.sh /usr/local/bin/entry_point.sh
RUN chmod +x /usr/local/bin/entry_point.sh

# Sync manifests to enable faster service_load discovery (KIP-898), until plugin owners support it themselves
RUN /bin/connect-plugin-path sync-manifests --plugin-path "/usr/share/java/secret-providers,/usr/share/confluent-hub-components,/tmp/connect-plugins"

COPY config.template.json /tmp/

USER appuser

# Set default ENV variables
# The OpenSearch connector does not accept hyphens, so please only use underscores for ${CONNECTOR_NAME}
ENV CONNECTOR_NAME='opensearch_sink'
ENV CONNECT_KEY_CONVERTER='org.apache.kafka.connect.json.JsonConverter'
ENV CONNECT_VALUE_CONVERTER='org.apache.kafka.connect.json.JsonConverter'
ENV CONNECT_PLUGIN_PATH='/usr/share/java/secret-providers,/usr/share/confluent-hub-components/,/tmp/connect-plugins/'
ENV CONNECT_PLUGIN_DISCOVERY='service_load'
ENV SECRETS_MANAGER_OPENSEARCH_SECRET_NAME=''
ENV CONNECT_PRODUCER_MAX_REQUEST_SIZE=15728640
ENV FLUSH_TIMEOUT_MS='100000'
ENV READ_TIMEOUT_MS='3000'
ENV MAX_RETRIES=3
ENV RETRY_BACKOFF_MS=1000
ENV BATCH_SIZE='2000'
ENV WRITE_METHOD='upsert'
ENV TRANSFORMS='renameTopic'
ENV TRANSFORMS_RENAMETOPIC_TYPE='org.apache.kafka.connect.transforms.RegexRouter'
ENV TRANSFORMS_RENAMETOPIC_REGEX='.*'
ENV TRANSFORMS_RENAMETOPIC_REPLACEMENT=''
ENV BEHAVIOR_ON_VERSION_CONFLICT='report'
ENV MAX_INFLIGHT_REQUESTS=5
ENV MAX_BUFFERED_RECORDS=20000


EXPOSE ${CONNECT_REST_PORT}

ENTRYPOINT  ["/usr/local/bin/entry_point.sh"]
