Skip to content

Commit 14341cd

Browse files
committed
feat(compose): optional Trino + KairosDB connector overlay
Adds compose.trino.yml as an opt-in overlay applied on top of the core docker-compose.yml. Brings up a single-node Trino (476) with the trino-kairosdb-connector (3.0.0-rc1) installed via a one-shot init service into a named volume, mounted alongside an ExaMon-owned KairosDB catalog. Matches the Kubernetes overlay shape so connector and Trino pins move together.
1 parent 7919db9 commit 14341cd

3 files changed

Lines changed: 88 additions & 0 deletions

File tree

‎compose.trino.yml‎

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Optional Trino overlay for the ExaMon Docker Compose stack.
2+
# Compatibility: trino-kairosdb-connector 3.0.0-rc1, tested with Trino 476.
3+
# Usage: docker compose -f docker-compose.yml -f compose.trino.yml up -d
4+
# See deploy/docker/trino/README.md for details.
5+
6+
services:
7+
trino-connector-init:
8+
image: curlimages/curl:8.10.1
9+
command:
10+
- sh
11+
- -c
12+
- |
13+
set -eu
14+
test -f /plugin/kairosdb-connector.jar || \
15+
curl -fsSL -o /plugin/kairosdb-connector.jar \
16+
"https://github.com/ExamonHPC/trino-kairosdb-connector/releases/download/3.0.0-rc1/kairosdb-connector-3.0.0-rc1.jar"
17+
volumes:
18+
- trino_kairosdb_plugin:/plugin
19+
networks:
20+
- examon_net
21+
restart: "no"
22+
23+
trino:
24+
image: trinodb/trino:476
25+
depends_on:
26+
trino-connector-init:
27+
condition: service_completed_successfully
28+
kairosdb:
29+
condition: service_healthy
30+
ports:
31+
- "8080:8080"
32+
volumes:
33+
- trino_kairosdb_plugin:/usr/lib/trino/plugin/kairosdb:ro
34+
- ./deploy/docker/trino/catalog:/etc/trino/catalog:ro
35+
networks:
36+
- examon_net
37+
restart: unless-stopped
38+
logging:
39+
driver: json-file
40+
options:
41+
max-size: "10m"
42+
max-file: "1"
43+
44+
volumes:
45+
trino_kairosdb_plugin:

‎deploy/docker/trino/README.md‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Trino overlay for Docker Compose
2+
3+
Optional add-on that brings a single-node Trino with the KairosDB connector
4+
into the ExaMon Compose stack. Trino stays a separate component: lifecycle,
5+
upgrades, and tuning are decoupled from the core stack.
6+
7+
## Layout
8+
9+
- `../../../compose.trino.yml` — overlay file applied on top of `docker-compose.yml`.
10+
- `catalog/examon_ts_timestamps.properties` — KairosDB catalog, mounted into Trino at `/etc/trino/catalog`.
11+
12+
The connector JAR is fetched at startup by a one-shot init service
13+
(`trino-connector-init`) into a named volume (`trino_kairosdb_plugin`),
14+
which is then mounted into Trino at `/usr/lib/trino/plugin/kairosdb`. The
15+
JAR is downloaded once and cached in the volume across restarts.
16+
17+
## Usage
18+
19+
From the repository root, with the core stack already configured:
20+
21+
```bash
22+
docker compose -f docker-compose.yml -f compose.trino.yml up -d
23+
```
24+
25+
Trino is reachable on `http://localhost:8080`. Inside the Compose network
26+
the catalog reaches KairosDB at `http://kairosdb:8083`.
27+
28+
To remove only the Trino overlay (keeping the core stack):
29+
30+
```bash
31+
docker compose -f docker-compose.yml -f compose.trino.yml stop trino trino-connector-init
32+
docker compose -f docker-compose.yml -f compose.trino.yml rm -f trino trino-connector-init
33+
```
34+
35+
## Pin policy
36+
37+
- Trino image tag and connector version are pinned in `compose.trino.yml`.
38+
- The Kubernetes overlay in `deploy/trino/values-examon.yaml` tracks the
39+
same pins; both files should move together on a connector or Trino bump.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
connector.name=kairosdb
2+
kairosdb.url=http://kairosdb:8083
3+
kairosdb.timestamp.format=TIMESTAMP_TZ
4+
kairosdb.timestamp.default-start-hours=24

0 commit comments

Comments
 (0)