Add Woodpecker CI pipeline, Dockerfile, and k8s manifests for GitOps deployment #3

Closed
opened 2026-03-01 22:18:16 +00:00 by forgejo_admin · 0 comments
Contributor

Plan

plan-2026-02-25-mcp-gateway-migration — Phase 3+4

Repo

notion-mcp-remote — the repo where the code change happens

User Story

As a platform operator
I need notion-mcp-remote to have a Woodpecker CI pipeline that builds container images and pushes to Harbor, plus k8s manifests for ArgoCD deployment
So that the service can be deployed via the established GitOps pipeline instead of manual kubectl apply

Acceptance Criteria

When I push to main on notion-mcp-remote
Then Woodpecker runs lint/test, builds a Docker image via kaniko, and pushes it to Harbor with a commit SHA tag
And ArgoCD can sync the k8s/ manifests to deploy the service

Additional Information

  • Old Dockerfile reference: mcp-gateway-k8s/images/notion-mcp-remote/Dockerfile
  • Old k8s manifests: mcp-gateway-k8s/base/notion-mcp-remote/ (deployment.yaml, pvc.yaml, service.yaml)
  • Env vars needed: HOST, PORT, BASE_URL, NOTION_OAUTH_CLIENT_ID, NOTION_OAUTH_CLIENT_SECRET, SESSION_SECRET, ADDITIONAL_ALLOWED_HOSTS
  • Health endpoint: /health on port 8000
  • PVC: notion-mcp-data at /app/data
  • Dockerfile pattern: convention-dockerfile-pypi-pattern (multi-stage build + PIP_INDEX_URL build arg)
  • Pipeline pattern: basketball-api/.woodpecker.yaml
  • Harbor image_repo: notion-mcp-remote/server

Checklist

  • PR opened with related notes
  • Dockerfile follows convention-dockerfile-pypi-pattern
  • .woodpecker.yml with test + ruff + kaniko build steps
  • k8s/ directory with kustomization.yaml, deployment.yaml, servicemonitor.yaml
  • Ruff lint + format clean
  • project-pal-e — parent project
  • plan-2026-02-25-mcp-gateway-migration — Phase 3+4
  • convention-dockerfile-pypi-pattern — Dockerfile pattern
  • service-onboarding-sop — onboarding process
### Plan `plan-2026-02-25-mcp-gateway-migration` — Phase 3+4 ### Repo `notion-mcp-remote` — the repo where the code change happens ### User Story As a platform operator I need notion-mcp-remote to have a Woodpecker CI pipeline that builds container images and pushes to Harbor, plus k8s manifests for ArgoCD deployment So that the service can be deployed via the established GitOps pipeline instead of manual kubectl apply ### Acceptance Criteria When I push to main on notion-mcp-remote Then Woodpecker runs lint/test, builds a Docker image via kaniko, and pushes it to Harbor with a commit SHA tag And ArgoCD can sync the k8s/ manifests to deploy the service ### Additional Information - Old Dockerfile reference: `mcp-gateway-k8s/images/notion-mcp-remote/Dockerfile` - Old k8s manifests: `mcp-gateway-k8s/base/notion-mcp-remote/` (deployment.yaml, pvc.yaml, service.yaml) - Env vars needed: HOST, PORT, BASE_URL, NOTION_OAUTH_CLIENT_ID, NOTION_OAUTH_CLIENT_SECRET, SESSION_SECRET, ADDITIONAL_ALLOWED_HOSTS - Health endpoint: /health on port 8000 - PVC: notion-mcp-data at /app/data - Dockerfile pattern: `convention-dockerfile-pypi-pattern` (multi-stage build + PIP_INDEX_URL build arg) - Pipeline pattern: `basketball-api/.woodpecker.yaml` - Harbor image_repo: `notion-mcp-remote/server` ### Checklist - [ ] PR opened with related notes - [ ] Dockerfile follows convention-dockerfile-pypi-pattern - [ ] .woodpecker.yml with test + ruff + kaniko build steps - [ ] k8s/ directory with kustomization.yaml, deployment.yaml, servicemonitor.yaml - [ ] Ruff lint + format clean ### Related - `project-pal-e` — parent project - `plan-2026-02-25-mcp-gateway-migration` — Phase 3+4 - `convention-dockerfile-pypi-pattern` — Dockerfile pattern - `service-onboarding-sop` — onboarding process
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/notion-mcp-remote#3
No description provided.