docs(standalone): define standalone deployment model #636
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
thwap/thwap-pagesd!636
Loading…
Reference in a new issue
No description provided.
Delete branch "docs/standalone-deployment-model"
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?
What
Add
docs/standalone-deployment-model.md, the design baseline for running thwap-pagesd in standalone mode against a local Docker Engine. Covers the four Phase 1 design tasks:/var/run/docker.sockvia the Docker SDK; container operations only; startup ping + permission verification.tpagectl-{site}-{version}naming for containers and volumes, tracking labels, and the create → ready → promote → remove lifecycle with restart policies./var/lib/thwap-pagesd/sites/{site}/{version}/andpreview-{branch}/layout, resolving the roadmap conflict between #325 and #386 in favor of thesites/segment.Deployerseam, with startup-time mode selection.Also updates
DOCKER-ROADMAP.mdto mark the task and its subtasks complete.Why
Phase 1 of the Docker roadmap requires a defined standalone deployment model before the Docker client integration (#332), deployer separation (#337), and configuration extensions (#343) can be implemented against it. This is a pure design/architecture deliverable — no runtime code changes.
Testing
Breaking Changes
None.
Notes
Subsequent roadmap tasks should treat this document as the agreed model. The
sites/filesystem resolution and theDeployerseam are flagged as open decisions to revisit during implementation.Closes #323
Closes #324
Closes #325
Closes #326
Closes #327
Thorough design doc; codebase claims verified (internal/kubernetes manages Ingress/Deployment/Service/ConfigMap via client-go, SiteService orchestration), roadmap cross-references are accurate, and the #325/#386
sites/conflict resolution is well documented.Blocking Issues
docs/standalone-deployment-model.md(Container orchestration strategy vs. Filesystem layout) — the document specifies two conflicting storage backends for site assets without reconciling them:VolumeCreate/VolumeRemovefor per-deployment Docker named volumes, the naming table defines a "Data volume" (tpagectl-{site}-{version}), and the Create lifecycle stage mounts "the site version's volume" read-only at/usr/share/nginx/html./var/lib/thwap-pagesd/sites/and that "the document root mounted into containers is served read-only from these directories."Named volumes and host-directory bind mounts are different mechanisms and cannot both be the storage for a deployment. Since this document is the agreed model for all Phase 1 tasks, pick one (or explicitly flag this as an open decision like exposure mode and rollback retention are). The roadmap itself carries the same tension (#358/#359 named volumes vs. #392 host directories), which this document is the place to resolve.
Suggestions
docs/standalone-deployment-model.md(Startup behavior) — socket accessibility + connection-error handling are attributed to #329/#330, but #329 is the client wrapper and #330 is connection-error handling; socket-accessibility verification is actually #331. Fix the reference. Filed as #637.docs/standalone-deployment-model.md(Naming conventions) — production containers and data volumes share the identicaltpagectl-{site}-{version}pattern. Separate Docker namespaces mean no functional conflict, but identical names are confusing for operators; consider a distinct volume suffix. Filed as #638.docs/standalone-deployment-model.md(Naming conventions) — "sanitized" is not defined: no mapping for characters Docker forbids (e.g.feature/foo→feature-foo) and no truncation/collision strategy for names near Docker's length limits. Filed as #639.docs/standalone-deployment-model.md(Naming conventions / Filesystem layout) — the branch prefix that triggers preview deployments (test/*) is only implied in the filesystem tree; state it in the naming and lifecycle rules. Filed as #640.Review feedback addressed in
82e3f84:-, collapse, strip, truncate) plus label-based collision disambiguation.test/*pushes; branch name is the part aftertest/.Re-review of commit
82e3f84. All previously raised issues are addressed:Resolved
test/*branches only, branch name being the part aftertest/. Closed as #640.New suggestion
DOCKER-ROADMAP.md— Phase 2 volume-management subtasks (#358 "Create named volumes per site+version", #359, #360, #361) still read literally as named volumes, which now contradicts the resolved host-directory model. Recommend rewording them to match. Filed as #641.No blocking issues remain. Approving.