-
Notifications
You must be signed in to change notification settings - Fork 6
/
docker-compose.yml
189 lines (183 loc) · 9.95 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# zeelos - connect-clusters
# MAINTAINER zeelos.io - https://zeelos.io
version: '3.6'
services:
kafka-connect-influxdb:
image: zeelos/kafka-connect-leshan-influxdb:0.2-SNAPSHOT
environment:
- CONNECT_BOOTSTRAP_SERVERS=kafka-cloud:9092
- CONNECT_LISTENERS=https://0.0.0.0:8083
- CONNECT_GROUP_ID=zeelos-connect-${gateway.id}-influxdb-group
- CONNECT_CONFIG_STORAGE_TOPIC=zeelos-connect-${gateway.id}-influxdb-configs
- CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR=1
- CONNECT_OFFSET_STORAGE_TOPIC=zeelos-connect-${gateway.id}-influxdb-offsets
- CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR=1
- CONNECT_OFFSET_FLUSH_INTERVAL_MS=10000
- CONNECT_STATUS_STORAGE_TOPIC=zeelos-connect-${gateway.id}-influxdb-status
- CONNECT_STATUS_STORAGE_REPLICATION_FACTOR=1
- CONNECT_KEY_CONVERTER=io.confluent.connect.avro.AvroConverter
- CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL=https://schema-registry-cloud:8083
- CONNECT_VALUE_CONVERTER=io.confluent.connect.avro.AvroConverter
- CONNECT_VALUE_CONVERTER_ENHANCED_AVRO_SCHEMA_SUPPORT=true
- CONNECT_VALUE_CONVERTER_CONNECT_META_DATA=false
- CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL=https://schema-registry-cloud:8083
- CONNECT_INTERNAL_KEY_CONVERTER=org.apache.kafka.connect.json.JsonConverter
- CONNECT_INTERNAL_VALUE_CONVERTER=org.apache.kafka.connect.json.JsonConverter
- CONNECT_REST_ADVERTISED_HOST_NAME=kafka-connect-influxdb
- CONNECT_REST_ADVERTISED_PORT=8083
- CONNECT_REST_ACCESS_CONTROL_ALLOW_METHODS=GET,POST,PUT,DELETE,OPTIONS
- CONNECT_REST_ACCESS_CONTROL_ALLOW_ORIGIN=*
- CONNECT_ZOOKEEPER_CONNECT=zookeeper-cloud:2181
- CONNECT_LOG4J_ROOT_LOGLEVEL=INFO
- CONNECT_LOG4J_LOGGERS=com.datamountaineer=DEBUG
- CONNECT_PLUGIN_PATH=/opt/connectors
- KAFKA_HEAP_OPTS=-Xms128M -Xmx128M
- KAFKA_JMX_HOSTNAME=localhost
- KAFKA_JMX_PORT=9584
- KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
- CONNECT_SECURITY_PROTOCOL=SSL
- CONNECT_SSL_TRUSTSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.truststore.jks
- CONNECT_SSL_TRUSTSTORE_PASSWORD=${ssl.truststorepass}
- CONNECT_SSL_KEYSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.keystore.jks
- CONNECT_SSL_KEYSTORE_PASSWORD=${ssl.keystorepass}
- CONNECT_SSL_CLIENT_AUTH=true
- CONNECT_PRODUCER_SECURITY_PROTOCOL=SSL
- CONNECT_PRODUCER_SSL_TRUSTSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.truststore.jks
- CONNECT_PRODUCER_SSL_TRUSTSTORE_PASSWORD=${ssl.truststorepass}
- CONNECT_PRODUCER_SSL_KEYSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.keystore.jks
- CONNECT_PRODUCER_SSL_KEYSTORE_PASSWORD=${ssl.keystorepass}
- CONNECT_PRODUCER_SSL_KEY_PASSWORD=${ssl.keypass}
- CONNECT_CONSUMER_SECURITY_PROTOCOL=SSL
- CONNECT_CONSUMER_SSL_TRUSTSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.truststore.jks
- CONNECT_CONSUMER_SSL_TRUSTSTORE_PASSWORD=${ssl.truststorepass}
- CONNECT_CONSUMER_SSL_KEYSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.keystore.jks
- CONNECT_CONSUMER_SSL_KEYSTORE_PASSWORD=${ssl.keystorepass}
- CONNECT_CONSUMER_SSL_KEY_PASSWORD=${ssl.keypass}
- KAFKA_OPTS=-Djavax.net.ssl.trustStore=/etc/kafka/secrets/kafka.connect-cloud.truststore.jks
-Djavax.net.ssl.trustStorePassword=${ssl.truststorepass}
-Djavax.net.ssl.keyStore=/etc/kafka/secrets/kafka.connect-cloud.keystore.jks
-Djavax.net.ssl.keyStorePassword=${ssl.keystorepass}
- SCHEMA_REGISTRY_OPTS=-Djavax.net.ssl.trustStore=/etc/kafka/secrets/kafka.connect-cloud.truststore.jks
-Djavax.net.ssl.trustStorePassword=${ssl.truststorepass}
-Djavax.net.ssl.keyStore=/etc/kafka/secrets/kafka.connect-cloud.keystore.jks
-Djavax.net.ssl.keyStorePassword=${ssl.keystorepass}
secrets:
- source: kafka.connect-cloud.keystore.jks
target: /etc/kafka/secrets/kafka.connect-cloud.keystore.jks
- source: kafka.connect-cloud.truststore.jks
target: /etc/kafka/secrets/kafka.connect-cloud.truststore.jks
- source: client-cloud.certificate.pem
target: /etc/kafka/secrets/client-cloud.certificate.pem
- source: client-cloud.key
target: /etc/kafka/secrets/client-cloud.key
networks:
- cloudnet
# ports:
# - 8083:8083
# - 9584:9584
deploy:
replicas: 1
placement:
constraints:
- node.labels.type == cloud
labels:
io.zeelos.app: "zeelos"
io.zeelos.role: "Connect - Your hub for connecting Apache Kafka to all your systems"
io.zeelos.gatewayId: ${gateway.id}
kafka-connect-leshan-asset:
image: zeelos/kafka-connect-leshan-influxdb:0.2-SNAPSHOT
environment:
- CONNECT_BOOTSTRAP_SERVERS=kafka-cloud:9092
- CONNECT_LISTENERS=https://0.0.0.0:8083
- CONNECT_GROUP_ID=zeelos-connect-${gateway.id}-leshan-asset-group
- CONNECT_CONFIG_STORAGE_TOPIC=zeelos-connect-${gateway.id}-leshan-asset-configs
- CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR=1
- CONNECT_OFFSET_STORAGE_TOPIC=zeelos-connect-${gateway.id}-leshan-asset-offsets
- CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR=1
- CONNECT_OFFSET_FLUSH_INTERVAL_MS=10000
- CONNECT_STATUS_STORAGE_TOPIC=zeelos-connect-${gateway.id}-leshan-asset-status
- CONNECT_STATUS_STORAGE_REPLICATION_FACTOR=1
- CONNECT_KEY_CONVERTER=io.confluent.connect.avro.AvroConverter
- CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL=https://schema-registry-cloud:8083
- CONNECT_VALUE_CONVERTER=io.confluent.connect.avro.AvroConverter
- CONNECT_VALUE_CONVERTER_ENHANCED_AVRO_SCHEMA_SUPPORT=true
- CONNECT_VALUE_CONVERTER_CONNECT_META_DATA=false
- CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL=https://schema-registry-cloud:8083
- CONNECT_INTERNAL_KEY_CONVERTER=org.apache.kafka.connect.json.JsonConverter
- CONNECT_INTERNAL_VALUE_CONVERTER=org.apache.kafka.connect.json.JsonConverter
- CONNECT_REST_ADVERTISED_HOST_NAME=kafka-connect-leshan-asset
- CONNECT_REST_ADVERTISED_PORT=8083
- CONNECT_REST_ACCESS_CONTROL_ALLOW_METHODS=GET,POST,PUT,DELETE,OPTIONS
- CONNECT_REST_ACCESS_CONTROL_ALLOW_ORIGIN=*
- CONNECT_ZOOKEEPER_CONNECT=zookeeper-cloud:2181
- CONNECT_LOG4J_ROOT_LOGLEVEL=INFO
- CONNECT_LOG4J_LOGGERS=io.zeelos.leshan=DEBUG
- CONNECT_PLUGIN_PATH=/opt/connectors
- KAFKA_HEAP_OPTS=-Xms128M -Xmx128M
- KAFKA_JMX_HOSTNAME=localhost
- KAFKA_JMX_PORT=9585
- KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
- CONNECT_SECURITY_PROTOCOL=SSL
- CONNECT_SSL_TRUSTSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.truststore.jks
- CONNECT_SSL_TRUSTSTORE_PASSWORD=${ssl.truststorepass}
- CONNECT_SSL_KEYSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.keystore.jks
- CONNECT_SSL_KEYSTORE_PASSWORD=${ssl.keystorepass}
- CONNECT_SSL_CLIENT_AUTH=true
- CONNECT_PRODUCER_SECURITY_PROTOCOL=SSL
- CONNECT_PRODUCER_SSL_TRUSTSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.truststore.jks
- CONNECT_PRODUCER_SSL_TRUSTSTORE_PASSWORD=${ssl.truststorepass}
- CONNECT_PRODUCER_SSL_KEYSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.keystore.jks
- CONNECT_PRODUCER_SSL_KEYSTORE_PASSWORD=${ssl.keystorepass}
- CONNECT_PRODUCER_SSL_KEY_PASSWORD=${ssl.keypass}
- CONNECT_CONSUMER_SECURITY_PROTOCOL=SSL
- CONNECT_CONSUMER_SSL_TRUSTSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.truststore.jks
- CONNECT_CONSUMER_SSL_TRUSTSTORE_PASSWORD=${ssl.truststorepass}
- CONNECT_CONSUMER_SSL_KEYSTORE_LOCATION=/etc/kafka/secrets/kafka.connect-cloud.keystore.jks
- CONNECT_CONSUMER_SSL_KEYSTORE_PASSWORD=${ssl.keystorepass}
- CONNECT_CONSUMER_SSL_KEY_PASSWORD=${ssl.keypass}
- KAFKA_OPTS=-Djavax.net.ssl.trustStore=/etc/kafka/secrets/kafka.connect-cloud.truststore.jks
-Djavax.net.ssl.trustStorePassword=${ssl.truststorepass}
-Djavax.net.ssl.keyStore=/etc/kafka/secrets/kafka.connect-cloud.keystore.jks
-Djavax.net.ssl.keyStorePassword=${ssl.keystorepass}
- SCHEMA_REGISTRY_OPTS=-Djavax.net.ssl.trustStore=/etc/kafka/secrets/kafka.connect-cloud.truststore.jks
-Djavax.net.ssl.trustStorePassword=${ssl.truststorepass}
-Djavax.net.ssl.keyStore=/etc/kafka/secrets/kafka.connect-cloud.keystore.jks
-Djavax.net.ssl.keyStorePassword=${ssl.keystorepass}
secrets:
- source: kafka.connect-cloud.keystore.jks
target: /etc/kafka/secrets/kafka.connect-cloud.keystore.jks
- source: kafka.connect-cloud.truststore.jks
target: /etc/kafka/secrets/kafka.connect-cloud.truststore.jks
- source: client-cloud.certificate.pem
target: /etc/kafka/secrets/client-cloud.certificate.pem
- source: client-cloud.key
target: /etc/kafka/secrets/client-cloud.key
networks:
- cloudnet
# ports:
# - 8083:8083
# - 9585:9585
deploy:
replicas: 1
placement:
constraints:
- node.labels.type == cloud
labels:
io.zeelos.app: "zeelos"
io.zeelos.role: "Connect - Your hub for connecting Apache Kafka to all your systems"
io.zeelos.gatewayId: ${gateway.id}
secrets:
kafka.connect-cloud.keystore.jks:
file: ./security/kafka.connect-cloud.keystore.jks
kafka.connect-cloud.truststore.jks:
file: ./security/kafka.connect-cloud.truststore.jks
client-cloud.certificate.pem:
file: ./security/client-cloud.certificate.pem
client-cloud.key:
file: ./security/client-cloud.key
networks:
cloudnet:
external: true
name: cloudnet