-
Notifications
You must be signed in to change notification settings - Fork 13
/
quick-start.yml
181 lines (169 loc) · 6.86 KB
/
quick-start.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
# This docker-compose is only to get started with Conduktor.
# It is starting Conduktor, a Redpanda cluster (Kafka), and a fake app to generate traffic.
# Go to http://localhost:8080 when started
####################################################################################################
# DO NOT USE IT IN PRODUCTION
#
# For production, please check: https://docs.conduktor.io/platform/category/deployment-options/
# to deploy on Kubernetes via Helm, or AWS using Cloudformation.
####################################################################################################
services:
# Conduktor Console, the enterprise UI.
# It depends on PostgreSQL. Here, we depend on Redpanda only for our get-started.
# https://docs.conduktor.io/platform/get-started/configuration/introduction/
conduktor-console:
image: conduktor/conduktor-console:1.30.0
ports:
- "8080:8080"
volumes:
- conduktor_data:/var/conduktor
environment:
CDK_DATABASE_URL: "postgresql://conduktor:change_me@postgresql:5432/conduktor-console"
CDK_KAFKASQL_DATABASE_URL: "postgresql://conduktor:change_me@postgresql-sql:5432/conduktor-sql"
CDK_ORGANIZATION_NAME: "getting-started"
CDK_CLUSTERS_0_ID: "local-kafka"
CDK_CLUSTERS_0_NAME: "local-kafka"
CDK_CLUSTERS_0_BOOTSTRAPSERVERS: "redpanda-0:9092"
CDK_CLUSTERS_0_SCHEMAREGISTRY_URL: "http://redpanda-0:18081"
CDK_CLUSTERS_0_COLOR: "#6A57C8"
CDK_CLUSTERS_0_ICON: "kafka"
CDK_CLUSTERS_1_ID: "cdk-gateway"
CDK_CLUSTERS_1_NAME: "cdk-gateway"
CDK_CLUSTERS_1_BOOTSTRAPSERVERS: "conduktor-gateway:6969"
CDK_CLUSTERS_1_SCHEMAREGISTRY_URL: "http://redpanda-0:18081"
CDK_CLUSTERS_1_KAFKAFLAVOR_URL: "http://conduktor-gateway:8888"
CDK_CLUSTERS_1_KAFKAFLAVOR_USER: "admin"
CDK_CLUSTERS_1_KAFKAFLAVOR_PASSWORD: "conduktor"
CDK_CLUSTERS_1_KAFKAFLAVOR_VIRTUALCLUSTER: "passthrough"
CDK_CLUSTERS_1_KAFKAFLAVOR_TYPE: "Gateway"
CDK_CLUSTERS_1_COLOR: "#6A57C8"
CDK_CLUSTERS_1_ICON: "dog"
CDK_MONITORING_CORTEX-URL: http://conduktor-monitoring:9009/
CDK_MONITORING_ALERT-MANAGER-URL: http://conduktor-monitoring:9010/
CDK_MONITORING_CALLBACK-URL: http://conduktor-console:8080/monitoring/api/
CDK_MONITORING_NOTIFICATIONS-CALLBACK-URL: http://localhost:8080
depends_on:
redpanda-0:
condition: service_healthy
postgresql:
condition: service_healthy
postgresql-2:
condition: service_healthy
# Conduktor stores its metadata in PostgreSQL.
# Consider using an external managed database for production usage.
# https://docs.conduktor.io/platform/get-started/configuration/database/
postgresql:
image: postgres:14
hostname: postgresql
volumes:
- pg_data:/var/lib/postgresql/data
environment:
PGDATA: "/var/lib/postgresql/data"
POSTGRES_DB: "conduktor-console"
POSTGRES_USER: "conduktor"
POSTGRES_PASSWORD: "change_me"
POSTGRES_HOST_AUTH_METHOD: "scram-sha-256"
healthcheck:
test: [ "CMD-SHELL", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
# Conduktor depends on a separate db for storing Kafka data for SQL querying
# It is optional, but required if you wish to use SQL functionality
# Separate db ensures continued operation of the core Console experience if the SQL db becomes unavailable
# https://docs.conduktor.io/platform/guides/configure-sql/
postgresql-2:
image: postgres:14
hostname: postgresql-sql
volumes:
- pg_data_sql:/var/lib/postgresql/data
environment:
PGDATA: "/var/lib/postgresql/data"
POSTGRES_DB: "conduktor-sql"
POSTGRES_USER: "conduktor"
POSTGRES_PASSWORD: "change_me"
POSTGRES_HOST_AUTH_METHOD: "scram-sha-256"
healthcheck:
test: [ "CMD-SHELL", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
# Conduktor uses Cortex to store Kafka and applications metrics as well as alerting.
# It is optional.
# https://docs.conduktor.io/platform/get-started/configuration/cortex/
conduktor-monitoring:
image: conduktor/conduktor-console-cortex:1.30.0
environment:
CDK_CONSOLE-URL: "http://conduktor-console:8080"
# We use Redpanda to get started with Kafka as it's small and efficient.
# This is an example here. For production, connect Conduktor to your own Kafka clusters.
redpanda-0:
command:
- redpanda
- start
- --kafka-addr internal://0.0.0.0:9092,external://0.0.0.0:19092
- --advertise-kafka-addr internal://redpanda-0:9092,external://localhost:19092
- --pandaproxy-addr internal://0.0.0.0:8082,external://0.0.0.0:18082
# Address the broker advertises to clients that connect to the HTTP Proxy.
- --advertise-pandaproxy-addr internal://redpanda-0:8082,external://localhost:18082
- --schema-registry-addr internal://0.0.0.0:8081,external://0.0.0.0:18081
# Redpanda brokers use the RPC API to communicate with eachother internally.
- --rpc-addr redpanda-0:33145
- --advertise-rpc-addr redpanda-0:33145
- --smp 1
- --memory 1G
- --mode dev-container
- --default-log-level=info
image: docker.redpanda.com/redpandadata/redpanda:v24.1.6
container_name: redpanda-0
volumes:
- redpanda-0:/var/lib/redpanda/data
ports:
- 18081:18081
- 18082:18082
- 19092:19092
- 19644:9644
healthcheck:
test: ["CMD-SHELL", "rpk cluster health | grep -E 'Healthy:.+true' || exit 1"]
interval: 15s
timeout: 3s
retries: 5
start_period: 5s
# Conduktor comes with its Gateway, a Kafka proxy bringing many security and governance features.
# In this get started, Gateway uses Redpanda as its backend Kafka cluster.
# https://docs.conduktor.io/gateway/
conduktor-gateway:
image: conduktor/conduktor-gateway:3.5.0
hostname: conduktor-gateway
container_name: conduktor-gateway
environment:
KAFKA_BOOTSTRAP_SERVERS: redpanda-0:9092
ports:
- "8888:8888"
healthcheck:
test: curl localhost:8888/health
interval: 5s
retries: 25
depends_on:
redpanda-0:
condition: service_healthy
# As this is a get started, we want to bring some life to the cluster to demonstrate the value of Conduktor.
# This is totally optional and only used for this purpose. Do not use it in production.
conduktor-data-generator:
image: conduktor/conduktor-data-generator:0.8
container_name: conduktor-data-generator
environment:
KAFKA_BOOTSTRAP_SERVERS: conduktor-gateway:6969
KAFKA_SCHEMA_REGISTRY_URL: http://redpanda-0:8081
GATEWAY_ADMIN_API: http://conduktor-gateway:8888
restart: on-failure
depends_on:
redpanda-0:
condition: service_healthy
conduktor-gateway:
condition: service_healthy
volumes:
pg_data: {}
pg_data_sql: {}
conduktor_data: {}
redpanda-0: {}