feat: tofu apply to provision notion-mcp-remote #296
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/pal-e-platform#296
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
Standalone — scoped from
project-notion-mcp-remote. Executesservice-onboarding-sopstep 5 after the upstream PRs on pal-e-services (var.services) and pal-e-deployments (overlay) have landed.Repo
forgejo_admin/pal-e-platformUser Story
As an operator
I want
tofu applyto materialise the notion-mcp-remote service in the clusterSo that ArgoCD begins syncing and a public Tailscale Funnel URL becomes available for claude.ai to consume.
Context
This is the bring-up apply for notion-mcp-remote. After pal-e-services #var.services entry and pal-e-deployments #overlay land, running
tofu plan/applyon pal-e-platform materialises:notion-mcp-remoteoverlays/notion-mcp-remote/prodnotion-mcp-remote.tail5b443a.ts.netLucas-approval gated. Always use
-lock=falseto avoid blocking CI. First bring-up requires full apply (not-target) — port/ingress resources don't reconcile under targeted applies.File Targets
Expected: no file changes in this repo. This ticket is the apply operation and the recordkeeping around it.
If
tofu plansurfaces missing plumbing (e.g. a missing netpol row or a service module tweak), open follow-up tickets rather than inline it here.Files NOT to touch:
network-policies.tf— not needed (service only egresses to api.notion.com)Acceptance Criteria
tofu plan -lock=falseon pal-e-platform shows the expected diff: namespace, ArgoCD Application, Harbor project + robots, image pull secret, Tailscale Funnel ingresstofu apply -lock=falsecompletes successfullykubectl get ns notion-mcp-remotereturns the namespacenotion-mcp-remote.tail5b443a.ts.netresolves and returns a response from the podTest Expectations
tofu fmt -checkclean (no formatting changes required)tofu validatepassescd terraform && tofu plan -lock=false -var-file=k3s.tfvarsConstraints
notion-mcp-remotenamespace viakubectl create secret generic— ArgoCD will otherwise overwrite them. This is a sibling todo on the notion-mcp-remote board.-lock=false-target— first deploys need full applyChecklist
tofu planreviewedtofu applyexecutedRelated
project-notion-mcp-remotearch-deployment-notion-mcp-remoteservice-onboarding-sop(Pre-Deploy Validation Checklist)story-notion-mcp-remote-ops-deploy-gitopsScope Review: NEEDS_REFINEMENT
Review note:
review-1045-2026-04-21Template, dependencies, acceptance criteria, and guardrails are all solid. One traceability gap to resolve:
[LABEL]or[SCOPE]— thearch:argocdlabel on this board item has no backingarch-argocdnote in pal-e-docs. The ticket body correctly anchors onarch-deployment-notion-mcp-remote(which exists). Recommend either:arch:deployment-notion-mcp-remoteso the label matches the real backing note, orarch-argocdplatform-component note (also reusable by pal-e-services #57 which carries the same label).No decomposition needed (single apply, ~3 min agent work, Lucas-gated). Apply-ready once pal-e-services #57 (var.services entry) and pal-e-deployments #132 (overlay) merge and the pre-deploy validation checklist is 100% green.
Scope Review: APPROVED (re-review)
Review note:
review-1045-2026-04-21-v2Prior review (
review-1045-2026-04-21) flagged a single gap: thearch:argocdlabel had no backing note in pal-e-docs. Main session relabeled board item 1045 toarch:deployment-notion-mcp-remote, which has a backing active architecture note (arch-deployment-notion-mcp-remote, id 1548) — and matches the architectural anchor already referenced in this ticket's body.Traceability triangle complete. Template complete. AC agent-verifiable. Dependencies (#57, #132, notion-mcp-remote #7) documented and sequenced. Lucas approval gate explicit. No decomposition needed.
Ticket is apply-ready once pal-e-services #57 and pal-e-deployments #132 land and the pre-deploy validation checklist is green.
Status — 2026-05-03 (mid-cascade pause for operator review)
Both upstream PRs landed:
Local clones reconciled:
~/pal-e-services: origin was misconfigured (pointed at GitHub mirror); fetched + fast-forward-pulled viaforgejoremote. HEAD now atb671634. Working tree clean. Newnotion-mcp-remoteblock mirrored fromk3s.tfvars.exampleinto liveterraform/k3s.tfvars(gitignored, operator-only file).~/pal-e-deployments: NOT touched. On feature branch75-rename-pal-e-productionwith 1 unpushed commit (f9c850e revert: basketball-api to pre-merge SHA (PR #490 broke checkout)). Operator handles when convenient; not blocking fortofu applysince this repo is read by ArgoCD, not the local checkout.tofu plan output — escalation required
tofu plan -lock=false -var-file=k3s.tfvarsran successfully.The 7 adds (expected, match PR #72 test plan exactly)
kubernetes_namespace_v1.service["notion-mcp-remote"]harbor_project.service["notion-mcp-remote"]kubernetes_secret_v1.harbor_creds["notion-mcp-remote"]argocd_applicationfor notion-mcp-remote (points atoverlays/notion-mcp-remote/prod)notion-mcp-remote.tail5b443a.ts.netPlus output additions:
The 14 unrelated changes — pre-existing drift, NOT from PR #72
Per PR #72 test plan: "If unrelated drift appears, STOP and escalate (precedent: review-1064-2026-04-20)." Stopping here.
Two distinct drift patterns visible:
harbor_credssecret has anargocd.argoproj.io/instancelabel that isn't in the.tfsource — terraform wants to strip them. Likely benign (ArgoCD re-applies its own labels on next sync) but unverified.binary_data_woanddata_woon the same secrets. Kubernetes provider upgrade artifact, no actual data change.Operator decision needed
-target=...for the 7 new resources only)tofu applyAva's recommendation: A — preserves the kanban discipline of one-ticket-one-change while we're mid-cascade, drift cleanup gets its own platform-board ticket so it's properly traced.
What blocks closure of this ticket
tofu applyruns successfullynotion-mcp-remotenamespace, Funnel hostname resolves over HTTPSdone, downstream cascade unblocks (#1046 already operator-runnable in parallel; #1047, #1048, #1049 sequential after this)Related
project-notion-mcp-remote(Status section reflects this state)arch-deployment-notion-mcp-remotesop-platform-tf-changes