From 9290888ebea533646ac9ca7e1863d0039e13c766 Mon Sep 17 00:00:00 2001 From: Will Russell Date: Wed, 2 Apr 2025 16:44:31 +0100 Subject: [PATCH] feat: add kestra --- blueprints/kestra/docker-compose.yml | 65 ++++++++++++++++++++++++++++ blueprints/kestra/kestra.svg | 17 ++++++++ blueprints/kestra/template.toml | 13 ++++++ meta.json | 15 +++++++ 4 files changed, 110 insertions(+) create mode 100644 blueprints/kestra/docker-compose.yml create mode 100644 blueprints/kestra/kestra.svg create mode 100644 blueprints/kestra/template.toml diff --git a/blueprints/kestra/docker-compose.yml b/blueprints/kestra/docker-compose.yml new file mode 100644 index 00000000..505304b6 --- /dev/null +++ b/blueprints/kestra/docker-compose.yml @@ -0,0 +1,65 @@ +volumes: + postgres-data: + driver: local + kestra-data: + driver: local + +services: + postgres: + image: postgres + volumes: + - postgres-data:/var/lib/postgresql/data + environment: + POSTGRES_DB: kestra + POSTGRES_USER: kestra + POSTGRES_PASSWORD: k3str4 + healthcheck: + test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] + interval: 30s + timeout: 10s + retries: 10 + + kestra: + image: kestra/kestra:latest + pull_policy: always + # Note that this setup with a root user is intended for development purpose. + # Our base image runs without root, but the Docker Compose implementation needs root to access the Docker socket + # To run Kestra in a rootless mode in production, see: https://kestra.io/docs/installation/podman-compose + user: "root" + command: server standalone + volumes: + - kestra-data:/app/storage + - /var/run/docker.sock:/var/run/docker.sock + - /tmp/kestra-wd:/tmp/kestra-wd + environment: + KESTRA_CONFIGURATION: | + datasources: + postgres: + url: jdbc:postgresql://postgres:5432/kestra + driverClassName: org.postgresql.Driver + username: kestra + password: k3str4 + kestra: + server: + basicAuth: + enabled: false + username: "admin@localhost.dev" # it must be a valid email address + password: kestra + repository: + type: postgres + storage: + type: local + local: + basePath: "/app/storage" + queue: + type: postgres + tasks: + tmpDir: + path: /tmp/kestra-wd/tmp + url: http://localhost:8080/ + ports: + - "8080:8080" + - "8081:8081" + depends_on: + postgres: + condition: service_started \ No newline at end of file diff --git a/blueprints/kestra/kestra.svg b/blueprints/kestra/kestra.svg new file mode 100644 index 00000000..4d12c869 --- /dev/null +++ b/blueprints/kestra/kestra.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/blueprints/kestra/template.toml b/blueprints/kestra/template.toml new file mode 100644 index 00000000..c1cb733a --- /dev/null +++ b/blueprints/kestra/template.toml @@ -0,0 +1,13 @@ +[variables] +main_domain = "${domain}" + +[config] +[[config.domains]] +serviceName = "kestra" +port = 8080 +host = "${main_domain}" + + +[[config.env]] + +[[config.mounts]] \ No newline at end of file diff --git a/meta.json b/meta.json index 080fa610..e3606709 100644 --- a/meta.json +++ b/meta.json @@ -2570,5 +2570,20 @@ "api", "self-hosted" ] + }, + { + "id": "kestra", + "name": "Kestra", + "version": "0.22", + "description": "Unified Orchestration Platform to Simplify Business-Critical Workflows and Govern them as Code and from the UI.", + "logo": "kestra.svg", + "links": { + "github": "https://github.com/kestra-io/kestra", + "website": "https://kestra.io", + "docs": "https://kestra.io/docs" + }, + "tags": [ + "automation" + ] } ]