1+ # Integrations between Kafka products
2+
3+ resource "juju_integration" "kafka_kraft" {
4+ count = local. deployment_mode == " split" ? 1 : 0
5+ model = var. model
6+
7+ application {
8+ name = module. broker . app_name
9+ endpoint = " peer-cluster-orchestrator"
10+ }
11+
12+ application {
13+ name = module. controller [0 ]. app_name
14+ endpoint = " peer-cluster"
15+ }
16+ }
17+
18+ resource "juju_integration" "kafka_connect" {
19+ count = var. connect . units > 0 ? 1 : 0
20+ model = var. model
21+
22+ application {
23+ name = module. broker . app_name
24+ endpoint = " kafka-client"
25+ }
26+
27+ application {
28+ name = module. connect [0 ]. app_name
29+ }
30+ }
31+
32+ resource "juju_integration" "kafka_karapace" {
33+ count = var. karapace . units > 0 ? 1 : 0
34+ model = var. model
35+
36+ application {
37+ name = module. broker . app_name
38+ endpoint = " kafka-client"
39+ }
40+
41+ application {
42+ name = module. karapace [0 ]. app_name
43+ }
44+ }
45+
46+ resource "juju_integration" "kafka_ui" {
47+ count = var. ui . units > 0 ? 1 : 0
48+ model = var. model
49+
50+ application {
51+ name = module. broker . app_name
52+ endpoint = " kafka-client"
53+ }
54+
55+ application {
56+ name = module. ui [0 ]. app_name
57+ }
58+ }
59+
60+
61+ resource "juju_integration" "karapace_ui" {
62+ count = var. karapace . units > 0 && var. ui . units > 0 ? 1 : 0
63+ model = var. model
64+
65+ application {
66+ name = module. karapace [0 ]. app_name
67+ endpoint = " karapace"
68+ }
69+
70+ application {
71+ name = module. ui [0 ]. app_name
72+ }
73+ }
74+
75+ resource "juju_integration" "kafka_connect_ui" {
76+ count = var. connect . units > 0 && var. ui . units > 0 ? 1 : 0
77+ model = var. model
78+
79+ application {
80+ name = module. connect [0 ]. app_name
81+ endpoint = " connect-client"
82+ }
83+
84+ application {
85+ name = module. ui [0 ]. app_name
86+ }
87+ }
88+
89+ resource "juju_integration" "integrator_kafka" {
90+ model = var. model
91+
92+ application {
93+ name = juju_application. integrator . name
94+ }
95+
96+ application {
97+ name = module. broker . app_name
98+ }
99+ }
100+
101+ # TLS Integrations
102+
103+ resource "juju_integration" "kafka_tls" {
104+ count = local. tls_enabled ? 1 : 0
105+ model = var. model
106+
107+ application {
108+ name = module. broker . app_name
109+ endpoint = " certificates"
110+ }
111+
112+ application {
113+ offer_url = var. tls_offer
114+ }
115+ }
116+
117+ resource "juju_integration" "kafka_connect_tls" {
118+ count = local. tls_enabled && var. connect . units > 0 ? 1 : 0
119+ model = var. model
120+
121+ application {
122+ name = module. connect [0 ]. app_name
123+ endpoint = " certificates"
124+ }
125+
126+ application {
127+ offer_url = var. tls_offer
128+ }
129+ }
130+
131+ resource "juju_integration" "karapace_tls" {
132+ count = local. tls_enabled && var. karapace . units > 0 ? 1 : 0
133+ model = var. model
134+
135+ application {
136+ name = module. karapace [0 ]. app_name
137+ endpoint = " certificates"
138+ }
139+
140+ application {
141+ offer_url = var. tls_offer
142+ }
143+ }
144+
145+ resource "juju_integration" "kafka_ui_ingress" {
146+ count = var. ingress_offer != null && var. ui . units > 0 ? 1 : 0
147+ model = var. model
148+
149+ application {
150+ name = module. ui [0 ]. app_name
151+ endpoint = " ingress"
152+ }
153+
154+ application {
155+ offer_url = var. ingress_offer
156+ }
157+ }
158+
159+ # COS Integrations
160+
161+ resource "juju_integration" "kafka_cos_metrics" {
162+ count = local. cos_enabled ? 1 : 0
163+ model = var. model
164+
165+ application {
166+ name = module. broker . app_name
167+ endpoint = " metrics-endpoint"
168+ }
169+
170+ application {
171+ offer_url = var. cos_offers . metrics
172+ }
173+
174+ }
175+
176+ resource "juju_integration" "kafka_cos_dashboard" {
177+ count = local. cos_enabled ? 1 : 0
178+ model = var. model
179+
180+ application {
181+ name = module. broker . app_name
182+ endpoint = " grafana-dashboard"
183+ }
184+
185+ application {
186+ offer_url = var. cos_offers . dashboard
187+ }
188+
189+ }
190+
191+ resource "juju_integration" "kafka_cos_logging" {
192+ count = local. cos_enabled ? 1 : 0
193+ model = var. model
194+
195+ application {
196+ name = module. broker . app_name
197+ endpoint = " logging"
198+ }
199+
200+ application {
201+ offer_url = var. cos_offers . logging
202+ }
203+
204+ }
205+
206+ resource "juju_integration" "kraft_cos_metrics" {
207+ count = local. cos_enabled && local. deployment_mode == " split" ? 1 : 0
208+ model = var. model
209+
210+ application {
211+ name = module. controller [0 ]. app_name
212+ endpoint = " metrics-endpoint"
213+ }
214+
215+ application {
216+ offer_url = var. cos_offers . metrics
217+ }
218+
219+ }
220+
221+ resource "juju_integration" "kraft_cos_dashboard" {
222+ count = local. cos_enabled && local. deployment_mode == " split" ? 1 : 0
223+ model = var. model
224+
225+ application {
226+ name = module. controller [0 ]. app_name
227+ endpoint = " grafana-dashboard"
228+ }
229+
230+ application {
231+ offer_url = var. cos_offers . dashboard
232+ }
233+
234+ }
235+
236+ resource "juju_integration" "kraft_cos_logging" {
237+ count = local. cos_enabled && local. deployment_mode == " split" ? 1 : 0
238+ model = var. model
239+
240+ application {
241+ name = module. controller [0 ]. app_name
242+ endpoint = " logging"
243+ }
244+
245+ application {
246+ offer_url = var. cos_offers . logging
247+ }
248+
249+ }
250+
251+ resource "juju_integration" "connect_cos_metrics" {
252+ count = local. cos_enabled && var. connect . units > 0 ? 1 : 0
253+ model = var. model
254+
255+ application {
256+ name = module. connect [0 ]. app_name
257+ endpoint = " metrics-endpoint"
258+ }
259+
260+ application {
261+ offer_url = var. cos_offers . metrics
262+ }
263+
264+ }
265+
266+ resource "juju_integration" "connect_cos_dashboard" {
267+ count = local. cos_enabled && var. connect . units > 0 ? 1 : 0
268+ model = var. model
269+
270+ application {
271+ name = module. connect [0 ]. app_name
272+ endpoint = " grafana-dashboard"
273+ }
274+
275+ application {
276+ offer_url = var. cos_offers . dashboard
277+ }
278+
279+ }
280+
281+ resource "juju_integration" "connect_cos_logging" {
282+ count = local. cos_enabled && var. connect . units > 0 ? 1 : 0
283+ model = var. model
284+
285+ application {
286+ name = module. connect [0 ]. app_name
287+ endpoint = " logging"
288+ }
289+
290+ application {
291+ offer_url = var. cos_offers . logging
292+ }
293+
294+ }
0 commit comments