-
Notifications
You must be signed in to change notification settings - Fork 13
/
quick-start.yml
149 lines (138 loc) · 5.72 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
# 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.
####################################################################################################
version: '3.8'
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.25.1
depends_on:
- postgresql
- redpanda-0
ports:
- "8080:8080"
volumes:
- conduktor_data:/var/conduktor
environment:
CDK_DATABASE_URL: "postgresql://conduktor:change_me@postgresql:5432/conduktor-console"
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
# 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"
# 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.25.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.2.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.5
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: {}
conduktor_data: {}
redpanda-0: {}