<p>I am not sure where else to turn as all example I have seen I have pretty much copied and still cannot get it to work. The connector will not install and states empty password.  I have validted each step and cannot get it to work.  Here are the steps I have taken.</p>
<h1>Container</h1>
<pre class="lang-sh prettyprint-override"><code>FROM strimzi/kafka:0.16.1-kafka-2.4.0
USER root:root
RUN mkdir -p /opt/kafka/plugins/debezium
COPY ./debezium-connector-mysql/ /opt/kafka/plugins/debezium/
USER 1001
</code></pre>
<p>Next I create the secret to use with mySQL.</p>
<pre class="lang-sh prettyprint-override"><code>cat &lt;&lt;EOF | kubectl apply -n kafka-cloud -f - 
apiVersion: v1
kind: Secret
metadata:
  name: mysql-auth
type: Opaque
stringData:
  mysql-auth.properties: |-
    username: root
    password: supersecret
EOF
</code></pre>
<p><strong>Validate</strong></p>
<pre class="lang-sh prettyprint-override"><code>% kubectl -n kafka-cloud get secrets | grep mysql-auth
mysql-auth                                     Opaque                                1      14m
</code></pre>
<p>Double check to make sure the user and password are not empty as the error in the connector state.</p>
<pre class="lang-sh prettyprint-override"><code>% kubectl -n kafka-cloud get secret mysql-auth -o yaml

apiVersion: v1
data:
  mysql-auth.properties: dXNlcm5hbWU6IHJvb3QKcGFzc3dvcmQ6IHN1cGVyc2VjcmV0
kind: Secret
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {&quot;apiVersion&quot;:&quot;v1&quot;,&quot;kind&quot;:&quot;Secret&quot;,&quot;metadata&quot;:{&quot;annotations&quot;:{},&quot;name&quot;:&quot;mysql-auth&quot;,&quot;namespace&quot;:&quot;kafka-cloud&quot;},&quot;stringData&quot;:{&quot;mysql-auth.properties&quot;:&quot;username: root\npassword: supersecret&quot;},&quot;type&quot;:&quot;Opaque&quot;}
  creationTimestamp: &quot;2022-03-02T23:48:55Z&quot;
  name: mysql-auth
  namespace: kafka-cloud
  resourceVersion: &quot;4041&quot;
  uid: 14a7a878-d01f-4899-8dc7-81b515278f32
type: Opaque
</code></pre>
<h1>Add Connect Cluster</h1>
<pre class="lang-yaml prettyprint-override"><code>cat &lt;&lt;EOF | kubectl apply -n kafka-cloud -f -
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
  annotations:
#  # use-connector-resources configures this KafkaConnect
#  # to use KafkaConnector resources to avoid
#  # needing to call the Connect REST API directly
    strimzi.io/use-connector-resources: &quot;true&quot;
spec:
  version: 3.1.0
  image: connect-debezium
  replicas: 1
  bootstrapServers: my-kafka-cluster-kafka-bootstrap:9092
  config:
    group.id: connect-cluster
    offset.storage.topic: connect-cluster-offsets
    config.storage.topic: connect-cluster-configs
    status.storage.topic: connect-cluster-status
    config.storage.replication.factor: 1
    offset.storage.replication.factor: 1
    status.storage.replication.factor: 1
    config.providers: file
    config.providers.file.class: org.apache.kafka.common.config.provider.FileConfigProvider
  externalConfiguration:
    volumes:
      - name: mysql-auth-config
        secret:
          secretName: mysql-auth
EOF
</code></pre>
<h2>Add Connector</h2>
<pre class="lang-sh prettyprint-override"><code>cat &lt;&lt;EOF | kubectl apply -n kafka-cloud -f -
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
    name: mysql-test-connector
    labels:
        strimzi.io/cluster: my-connect-cluster
spec:
    class: io.debezium.connector.mysql.MySqlConnector
    tasksMax: 1
    config:
        database.hostname: 172.17.0.13
        database.port: 3306
        database.user:  &quot;${file:/opt/kafka/external-configuration/mysql-auth-config/mysql-auth.properties:username}&quot;
        database.password: &quot;${file:/opt/kafka/external-configuration/mysql-auth-config/mysql-auth.properties:password}&quot;
        database.server.id: 184054
        database.server.name: mysql-pod
        database.whitelist: sample
        database.history.kafka.bootstrap.servers: my-kafka-cluster-kafka-bootstrap:9092
        database.history.kafka.topic: &quot;schema-changes.sample&quot;
        key.converter: &quot;org.apache.kafka.connect.storage.StringConverter&quot;
        value.converter: &quot;org.apache.kafka.connect.storage.StringConverter&quot;
EOF
</code></pre>
<h1>Error</h1>
<p>And no matter what I have tried to get this error. I have no idea what I am missing. I know it a simple config, but I cannot figure it out.  I'm stuck.</p>
<pre class="lang-sh prettyprint-override"><code>% kubectl -n kafka-cloud describe kafkaconnector mysql-test-connector

Name:         mysql-test-connector
Namespace:    kafka-cloud
Labels:       strimzi.io/cluster=my-connect-cluster
Annotations:  &lt;none&gt;
API Version:  kafka.strimzi.io/v1beta2
Kind:         KafkaConnector
Metadata:
  Creation Timestamp:  2022-03-02T23:44:20Z
  Generation:          1
  Managed Fields:
    API Version:  kafka.strimzi.io/v1beta2
    Fields Type:  FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .:
          f:kubectl.kubernetes.io/last-applied-configuration:
        f:labels:
          .:
          f:strimzi.io/cluster:
      f:spec:
        .:
        f:class:
        f:config:
          .:
          f:database.history.kafka.bootstrap.servers:
          f:database.history.kafka.topic:
          f:database.hostname:
          f:database.password:
          f:database.port:
          f:database.server.id:
          f:database.server.name:
          f:database.user:
          f:database.whitelist:
          f:key.converter:
          f:value.converter:
        f:tasksMax:
    Manager:      kubectl-client-side-apply
    Operation:    Update
    Time:         2022-03-02T23:44:20Z
    API Version:  kafka.strimzi.io/v1beta2
    Fields Type:  FieldsV1
    fieldsV1:
      f:status:
        .:
        f:conditions:
        f:observedGeneration:
        f:tasksMax:
        f:topics:
    Manager:         okhttp
    Operation:       Update
    Subresource:     status
    Time:            2022-03-02T23:44:20Z
  Resource Version:  3874
  UID:               c70ffe4e-3777-4524-af82-dad3a57ca25e
Spec:
  Class:  io.debezium.connector.mysql.MySqlConnector
  Config:
    database.history.kafka.bootstrap.servers:  my-kafka-cluster-kafka-bootstrap:9092
    database.history.kafka.topic:              schema-changes.sample
    database.hostname:                         172.17.0.13
    database.password:                         
    database.port:                             3306
    database.server.id:                        184054
    database.server.name:                      mysql-pod
    database.user:                             
    database.whitelist:                        sample
    key.converter:                             org.apache.kafka.connect.storage.StringConverter
    value.converter:                           org.apache.kafka.connect.storage.StringConverter
  Tasks Max:                                   1
Status:
  Conditions:
    Last Transition Time:  2022-03-02T23:45:00.097311Z
    Message:               PUT /connectors/mysql-test-connector/config returned 400 (Bad Request): Connector configuration is invalid and contains the following 1 error(s):
A value is required
You can also find the above list of errors at the endpoint `/{connectorType}/config/validate`
    Reason:             ConnectRestException
    Status:             True
    Type:               NotReady
  Observed Generation:  1
  Tasks Max:            1
  Topics:
Events:  &lt;none&gt;

</code></pre>

nitefrog
<p>The config param needed for the mySQL connector is:</p>
<p><code>database.allowPublicKeyRetrieval: true</code></p>
<p>That resolved the issue.</p>
