From e5d24f557a2598a3ce939e0275e15262ad51dd81 Mon Sep 17 00:00:00 2001 From: Hermes Agent service account Date: Sat, 6 Jun 2026 17:36:14 -0500 Subject: [PATCH] feat(tekton): Add Firecrawl build pipelines - firecrawl-api: Multi-stage build (Go + Node.js + Rust) - firecrawl-playwright: Node.js + Chromium browser automation - firecrawl-postgres: PostgreSQL 16 with pg_cron extension All pipelines validated with successful test builds. Images pushed to Harbor library project. Day 2 of Firecrawl deployment complete. --- .../pipelines/firecrawl-api-pipeline.yaml | 85 +++++++++++++++++++ .../firecrawl-playwright-pipeline.yaml | 85 +++++++++++++++++++ .../firecrawl-postgres-pipeline.yaml | 85 +++++++++++++++++++ 3 files changed, 255 insertions(+) create mode 100644 cluster/platform/tekton/pipelines/firecrawl-api-pipeline.yaml create mode 100644 cluster/platform/tekton/pipelines/firecrawl-playwright-pipeline.yaml create mode 100644 cluster/platform/tekton/pipelines/firecrawl-postgres-pipeline.yaml diff --git a/cluster/platform/tekton/pipelines/firecrawl-api-pipeline.yaml b/cluster/platform/tekton/pipelines/firecrawl-api-pipeline.yaml new file mode 100644 index 0000000..52dbf3d --- /dev/null +++ b/cluster/platform/tekton/pipelines/firecrawl-api-pipeline.yaml @@ -0,0 +1,85 @@ +--- +apiVersion: tekton.dev/v1 +kind: Pipeline +metadata: + name: firecrawl-api-pipeline + namespace: innoventions + labels: + app.kubernetes.io/name: firecrawl-api + app.kubernetes.io/component: pipeline + app.kubernetes.io/part-of: firecrawl +spec: + description: | + Pipeline to build the Firecrawl API container image. + Multi-stage build with Go, Node.js, and Rust dependencies. + params: + - name: git-url + type: string + description: Git repository URL + default: https://github.com/mendableai/firecrawl + - name: git-revision + type: string + description: Git revision to checkout + default: main + - name: image-name + type: string + description: Target image name + default: the-seas.local.mk-labs.cloud/library/firecrawl-api + - name: image-tag + type: string + description: Image tag + default: latest + - name: dockerfile-path + type: string + description: Path to Dockerfile relative to repo root + default: ./Dockerfile + - name: build-context + type: string + description: Build context path + default: ./apps/api + workspaces: + - name: shared-data + description: Workspace for source code + - name: docker-credentials + description: Docker config for Harbor authentication + tasks: + - name: fetch-source + taskRef: + name: git-clone + workspaces: + - name: output + workspace: shared-data + params: + - name: url + value: $(params.git-url) + - name: revision + value: $(params.git-revision) + - name: depth + value: "1" + - name: sslVerify + value: "false" + - name: deleteExisting + value: "true" + - name: build-push + taskRef: + name: kaniko-build + runAfter: + - fetch-source + workspaces: + - name: source + workspace: shared-data + - name: dockerconfig + workspace: docker-credentials + params: + - name: IMAGE + value: $(params.image-name):$(params.image-tag) + - name: DOCKERFILE + value: $(params.dockerfile-path) + - name: CONTEXT + value: $(params.build-context) + - name: EXTRA_ARGS + value: + - --insecure + - --skip-tls-verify + - --cache=true + - --cache-ttl=24h diff --git a/cluster/platform/tekton/pipelines/firecrawl-playwright-pipeline.yaml b/cluster/platform/tekton/pipelines/firecrawl-playwright-pipeline.yaml new file mode 100644 index 0000000..7d218bd --- /dev/null +++ b/cluster/platform/tekton/pipelines/firecrawl-playwright-pipeline.yaml @@ -0,0 +1,85 @@ +--- +apiVersion: tekton.dev/v1 +kind: Pipeline +metadata: + name: firecrawl-playwright-pipeline + namespace: innoventions + labels: + app.kubernetes.io/name: firecrawl-playwright + app.kubernetes.io/component: pipeline + app.kubernetes.io/part-of: firecrawl +spec: + description: | + Pipeline to build the Firecrawl Playwright service container image. + Node.js application with Chromium browser dependencies. + params: + - name: git-url + type: string + description: Git repository URL + default: https://github.com/mendableai/firecrawl + - name: git-revision + type: string + description: Git revision to checkout + default: main + - name: image-name + type: string + description: Target image name + default: the-seas.local.mk-labs.cloud/library/firecrawl-playwright + - name: image-tag + type: string + description: Image tag + default: latest + - name: dockerfile-path + type: string + description: Path to Dockerfile relative to repo root + default: ./Dockerfile + - name: build-context + type: string + description: Build context path + default: ./apps/playwright-service-ts + workspaces: + - name: shared-data + description: Workspace for source code + - name: docker-credentials + description: Docker config for Harbor authentication + tasks: + - name: fetch-source + taskRef: + name: git-clone + workspaces: + - name: output + workspace: shared-data + params: + - name: url + value: $(params.git-url) + - name: revision + value: $(params.git-revision) + - name: depth + value: "1" + - name: sslVerify + value: "false" + - name: deleteExisting + value: "true" + - name: build-push + taskRef: + name: kaniko-build + runAfter: + - fetch-source + workspaces: + - name: source + workspace: shared-data + - name: dockerconfig + workspace: docker-credentials + params: + - name: IMAGE + value: $(params.image-name):$(params.image-tag) + - name: DOCKERFILE + value: $(params.dockerfile-path) + - name: CONTEXT + value: $(params.build-context) + - name: EXTRA_ARGS + value: + - --insecure + - --skip-tls-verify + - --cache=true + - --cache-ttl=24h diff --git a/cluster/platform/tekton/pipelines/firecrawl-postgres-pipeline.yaml b/cluster/platform/tekton/pipelines/firecrawl-postgres-pipeline.yaml new file mode 100644 index 0000000..784c91d --- /dev/null +++ b/cluster/platform/tekton/pipelines/firecrawl-postgres-pipeline.yaml @@ -0,0 +1,85 @@ +--- +apiVersion: tekton.dev/v1 +kind: Pipeline +metadata: + name: firecrawl-postgres-pipeline + namespace: innoventions + labels: + app.kubernetes.io/name: firecrawl-postgres + app.kubernetes.io/component: pipeline + app.kubernetes.io/part-of: firecrawl +spec: + description: | + Pipeline to build the Firecrawl PostgreSQL container image. + PostgreSQL with pg_cron extension and custom configuration. + params: + - name: git-url + type: string + description: Git repository URL + default: https://github.com/mendableai/firecrawl + - name: git-revision + type: string + description: Git revision to checkout + default: main + - name: image-name + type: string + description: Target image name + default: the-seas.local.mk-labs.cloud/library/firecrawl-postgres + - name: image-tag + type: string + description: Image tag + default: latest + - name: dockerfile-path + type: string + description: Path to Dockerfile relative to repo root + default: ./apps/nuq-postgres/Dockerfile + - name: build-context + type: string + description: Build context path + default: ./apps/nuq-postgres + workspaces: + - name: shared-data + description: Workspace for source code + - name: docker-credentials + description: Docker config for Harbor authentication + tasks: + - name: fetch-source + taskRef: + name: git-clone + workspaces: + - name: output + workspace: shared-data + params: + - name: url + value: $(params.git-url) + - name: revision + value: $(params.git-revision) + - name: depth + value: "1" + - name: sslVerify + value: "false" + - name: deleteExisting + value: "true" + - name: build-push + taskRef: + name: kaniko-build + runAfter: + - fetch-source + workspaces: + - name: source + workspace: shared-data + - name: dockerconfig + workspace: docker-credentials + params: + - name: IMAGE + value: $(params.image-name):$(params.image-tag) + - name: DOCKERFILE + value: $(params.dockerfile-path) + - name: CONTEXT + value: $(params.build-context) + - name: EXTRA_ARGS + value: + - --insecure + - --skip-tls-verify + - --cache=true + - --cache-ttl=24h