# check=skip=SecretsUsedInArgOrEnv
FROM confluentinc/cp-kafka-connect:8.2.1

LABEL parent-images=kafka-connect82

USER root

# Run updates
RUN microdnf -y upgrade && microdnf clean all
# Update and install find for determing SSL configuration in entrypoint and AWS CLI dependencies
RUN microdnf -y install findutils jq glibc less groff-base unzip tar
# Install AWS CLI v2
RUN curl -sL -o awscli.zip https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip \
    && unzip -q awscli.zip \
    && ./aws/install \
    && rm -rf aws awscli.zip

ENV CONNECT_REST_PORT=8083
# CONNECT_GROUP_UNIQUE_IDENTIFIER should be unique for every cluster of a given connector.
# If running more than one same type of connector, set this to a meaningful unique value at runtime
ENV CONNECT_GROUP_UNIQUE_IDENTIFIER='orchard'
ENV CONNECT_SECURITY_PROTOCOL='SSL'
ENV CONNECT_CONFIG_PROVIDERS='file'
ENV CONNECT_CONFIG_PROVIDERS_FILE_CLASS='org.apache.kafka.common.config.provider.FileConfigProvider'
ENV CONNECT_CONSUMER_SECURITY_PROTOCOL="SSL"
ENV CONNECT_CONSUMER_REQUEST_TIMEOUT_MS="20000"
ENV CONNECT_CONSUMER_RETRY_BACKOFF_MS="500"
ENV CONNECT_PRODUCER_SECURITY_PROTOCOL='SSL'
ENV CONNECT_PRODUCER_REQUEST_TIMEOUT_MS='20000'
ENV CONNECT_PRODUCER_RETRY_BACKOFF_MS='500'
ENV Environment='dev'
ENV MAX_TASKS=1
ENV AWS_REGION='us-east-1'

# Configure default log levels
ENV CONNECT_LOG4J_ROOT_LOGLEVEL="ERROR"
ENV CONNECT_LOG4J_LOGGERS="org.I0Itec.zkclient=ERROR,org.reflections=ERROR,org.eclipse.jetty=ERROR,kafka=ERROR,org.apache.kafka=ERROR,org.apache.zookeeper=ERROR,org.apache.kafka.connect.runtime.WorkerSinkTask=ERROR"

# For JMX Metrics.
ENV JMX_PORT=9095
ENV JMX_HOSTNAME='0.0.0.0'
ENV JMX_SSL=false
ENV JMX_AUTH=false

ENV KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true"\
" -Dcom.sun.management.jmxremote.authenticate=$JMX_AUTH"\
" -Dcom.sun.management.jmxremote.ssl=$JMX_SSL"\
" -Dcom.sun.management.jmxremote.local.only=false"\
" -Dcom.sun.management.jmxremote.port=$JMX_PORT"\
" -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"\
" -Djava.rmi.server.hostname=$JMX_HOSTNAME"\
" -Dcom.sun.management.jmxremote.host=$JMX_HOSTNAME"

# Run container as the appuser user
USER appuser
EXPOSE ${JMX_PORT}
