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

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

Plan

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

Repo

gcal-scheduler — the repo where the code change happens

User Story

As a platform operator
I need gcal-scheduler to have a Woodpecker CI pipeline that builds container images and pushes to Harbor, plus k8s manifests for ArgoCD deployment
So that the appointment booking portal can be deployed via the established GitOps pipeline

Acceptance Criteria

When I push to main on gcal-scheduler
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

  • No old mcp-gateway-k8s reference for this service — create manifests from scratch
  • May have partial reference in mcp-gateway-k8s/base/pal-e-appointment/
  • This service provides the appointment booking form and chatbot widget
  • Depends on gcal-mcp-remote being live for calendar operations
  • Health endpoint: TBD (check existing code for /health or /healthz)
  • Dockerfile pattern: convention-dockerfile-pypi-pattern (multi-stage build + PIP_INDEX_URL build arg)
  • Pipeline pattern: basketball-api/.woodpecker.yaml
  • Harbor image_repo: gcal-scheduler/server
  • Port: 8000

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 `gcal-scheduler` — the repo where the code change happens ### User Story As a platform operator I need gcal-scheduler to have a Woodpecker CI pipeline that builds container images and pushes to Harbor, plus k8s manifests for ArgoCD deployment So that the appointment booking portal can be deployed via the established GitOps pipeline ### Acceptance Criteria When I push to main on gcal-scheduler 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 - No old mcp-gateway-k8s reference for this service — create manifests from scratch - May have partial reference in `mcp-gateway-k8s/base/pal-e-appointment/` - This service provides the appointment booking form and chatbot widget - Depends on gcal-mcp-remote being live for calendar operations - Health endpoint: TBD (check existing code for /health or /healthz) - Dockerfile pattern: `convention-dockerfile-pypi-pattern` (multi-stage build + PIP_INDEX_URL build arg) - Pipeline pattern: `basketball-api/.woodpecker.yaml` - Harbor image_repo: `gcal-scheduler/server` - Port: 8000 ### 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/gcal-scheduler#1
No description provided.