Pipeline CI/CD: Woodpecker + Harbor + ArgoCD (Fase 2) #3

Open
opened 2026-06-12 02:43:44 +00:00 by ldraney · 3 comments
Owner

Type

Feature

Lineage

Equivalente a html-poster#3 — versión en español

Repo

html-poster-espanol, pal-e-services, pal-e-deployments

User Story

Como practicante de DevOps, quiero que el código enviado a Forgejo se construya, pruebe y despliegue automáticamente para demostrar el pipeline completo.

Context

Fase 2 del roadmap. Fase 1 completada (PR #5). Sigue el patrón probado de landscaping-assistant. Incluye onboarding en pal-e-services Terraform y overlay en pal-e-deployments.

File Targets

html-poster-espanol (repo principal):

  • .woodpecker.yaml (nuevo — adaptar de landscaping-assistant/.woodpecker.yaml)
  • Dockerfile (nuevo — multi-etapa ruby-rails-build + ruby-rails-runtime de base-images)
  • bin/docker-entrypoint (nuevo — script de entrada copiado del patrón landscaping-assistant)

pal-e-services (Terraform):

  • terraform/k3s.tfvars — agregar entrada html-poster-espanol al mapa var.services

pal-e-deployments (Kustomize):

  • overlays/html-poster-espanol/prod/kustomization.yaml (nuevo — adaptar de overlays/landscaping-assistant/prod/)
  • overlays/html-poster-espanol/prod/deployment-patch.yaml (nuevo)

Feature Flag

None

Acceptance Criteria

  • .woodpecker.yaml con lint, test, build+push via kaniko
  • Dockerfile multi-etapa funcional (ruby-rails-build + ruby-rails-runtime)
  • bin/docker-entrypoint presente y ejecutable
  • Entrada html-poster-espanol en var.services de pal-e-services (terraform/k3s.tfvars)
  • Overlay de Kustomize en pal-e-deployments (overlays/html-poster-espanol/prod/)
  • Pipeline verde al hacer push a main
  • Imagen en Harbor
  • ArgoCD sincroniza pod
  • URL pública en vivo vía Tailscale funnel

Test Expectations

  • Push a main activa pipeline en Woodpecker
  • Pipeline completa sin errores (lint, test, build+push)
  • Imagen aparece en Harbor con tag correcto
  • Pod corriendo en namespace html-poster-espanol en k8s
  • URL pública responde con 200

Constraints

  • Usar patrón exacto de landscaping-assistant para los 3 repos
  • kaniko para build de imagen
  • Harbor como registro de contenedores
  • base-images ruby-rails-build y ruby-rails-runtime como imágenes base

Checklist

  • Crear bin/docker-entrypoint
  • Crear Dockerfile
  • Crear .woodpecker.yaml
  • Crear overlay en pal-e-deployments
  • Agregar a pal-e-services terraform/k3s.tfvars
  • Terraform apply
  • Verificar pipeline verde
  • Verificar imagen en Harbor
  • Verificar pod en k8s
  • Verificar URL pública
  • html-poster#3 (equivalente en inglés)
  • landscaping-assistant (patrón de referencia para los 3 repos)
  • pal-e-services (Terraform que crea namespace, pipeline, ArgoCD app, funnel)
  • pal-e-deployments (overlays de Kustomize para despliegue)
### Type Feature ### Lineage Equivalente a html-poster#3 — versión en español ### Repo html-poster-espanol, pal-e-services, pal-e-deployments ### User Story Como practicante de DevOps, quiero que el código enviado a Forgejo se construya, pruebe y despliegue automáticamente para demostrar el pipeline completo. ### Context Fase 2 del roadmap. Fase 1 completada (PR #5). Sigue el patrón probado de landscaping-assistant. Incluye onboarding en pal-e-services Terraform y overlay en pal-e-deployments. ### File Targets **html-poster-espanol (repo principal):** - `.woodpecker.yaml` (nuevo — adaptar de landscaping-assistant/.woodpecker.yaml) - `Dockerfile` (nuevo — multi-etapa ruby-rails-build + ruby-rails-runtime de base-images) - `bin/docker-entrypoint` (nuevo — script de entrada copiado del patrón landscaping-assistant) **pal-e-services (Terraform):** - `terraform/k3s.tfvars` — agregar entrada `html-poster-espanol` al mapa `var.services` **pal-e-deployments (Kustomize):** - `overlays/html-poster-espanol/prod/kustomization.yaml` (nuevo — adaptar de overlays/landscaping-assistant/prod/) - `overlays/html-poster-espanol/prod/deployment-patch.yaml` (nuevo) ### Feature Flag None ### Acceptance Criteria - [ ] .woodpecker.yaml con lint, test, build+push via kaniko - [ ] Dockerfile multi-etapa funcional (ruby-rails-build + ruby-rails-runtime) - [ ] bin/docker-entrypoint presente y ejecutable - [ ] Entrada html-poster-espanol en var.services de pal-e-services (terraform/k3s.tfvars) - [ ] Overlay de Kustomize en pal-e-deployments (overlays/html-poster-espanol/prod/) - [ ] Pipeline verde al hacer push a main - [ ] Imagen en Harbor - [ ] ArgoCD sincroniza pod - [ ] URL pública en vivo vía Tailscale funnel ### Test Expectations - Push a main activa pipeline en Woodpecker - Pipeline completa sin errores (lint, test, build+push) - Imagen aparece en Harbor con tag correcto - Pod corriendo en namespace html-poster-espanol en k8s - URL pública responde con 200 ### Constraints - Usar patrón exacto de landscaping-assistant para los 3 repos - kaniko para build de imagen - Harbor como registro de contenedores - base-images ruby-rails-build y ruby-rails-runtime como imágenes base ### Checklist - [ ] Crear bin/docker-entrypoint - [ ] Crear Dockerfile - [ ] Crear .woodpecker.yaml - [ ] Crear overlay en pal-e-deployments - [ ] Agregar a pal-e-services terraform/k3s.tfvars - [ ] Terraform apply - [ ] Verificar pipeline verde - [ ] Verificar imagen en Harbor - [ ] Verificar pod en k8s - [ ] Verificar URL pública ### Related - html-poster#3 (equivalente en inglés) - landscaping-assistant (patrón de referencia para los 3 repos) - pal-e-services (Terraform que crea namespace, pipeline, ArgoCD app, funnel) - pal-e-deployments (overlays de Kustomize para despliegue)
Author
Owner

Scope Review: NEEDS_REFINEMENT

Review note: review-1413-2026-06-11

File Targets section is incomplete -- missing 3 critical targets across 2 additional repos.

Issues found:

  • bin/docker-entrypoint not listed as a file target but required by the Dockerfile pattern (landscaping-assistant reference has it)
  • Terraform target is vague ("agregar a var.services") -- should specify pal-e-services/terraform/k3s.tfvars
  • pal-e-deployments repo not mentioned at all -- needs overlays/html-poster-espanol/prod/ with kustomization.yaml and deployment-patch.yaml (matching landscaping-assistant pattern)
  • Work spans 3 repos (html-poster-espanol, pal-e-services, pal-e-deployments) but only 1 is acknowledged
  • arch:ci-pipeline backing note missing in pal-e-docs
  • story note story-html-poster-espanol-demostrar-pipeline listed as "pendiente" -- no dedicated note exists

Decomposition: 7 AC across 3 repos technically exceeds thresholds, but work is mechanical pattern-copying from landscaping-assistant. No decomposition needed if file targets are corrected to enumerate all repos explicitly.

## Scope Review: NEEDS_REFINEMENT Review note: `review-1413-2026-06-11` File Targets section is incomplete -- missing 3 critical targets across 2 additional repos. **Issues found:** - `bin/docker-entrypoint` not listed as a file target but required by the Dockerfile pattern (landscaping-assistant reference has it) - Terraform target is vague ("agregar a var.services") -- should specify `pal-e-services/terraform/k3s.tfvars` - `pal-e-deployments` repo not mentioned at all -- needs `overlays/html-poster-espanol/prod/` with kustomization.yaml and deployment-patch.yaml (matching landscaping-assistant pattern) - Work spans 3 repos (html-poster-espanol, pal-e-services, pal-e-deployments) but only 1 is acknowledged - arch:ci-pipeline backing note missing in pal-e-docs - story note `story-html-poster-espanol-demostrar-pipeline` listed as "pendiente" -- no dedicated note exists **Decomposition:** 7 AC across 3 repos technically exceeds thresholds, but work is mechanical pattern-copying from landscaping-assistant. No decomposition needed if file targets are corrected to enumerate all repos explicitly.
Author
Owner

Refinamiento post-revisión (review-1413):

  1. Repo ampliado: Ahora lista los 3 repos explícitamente (html-poster-espanol, pal-e-services, pal-e-deployments)
  2. bin/docker-entrypoint agregado a File Targets (faltaba, requerido por el Dockerfile de landscaping-assistant)
  3. Terraform path especificado: terraform/k3s.tfvars en vez de referencia vaga
  4. pal-e-deployments agregado: overlay completo en overlays/html-poster-espanol/prod/ (kustomization.yaml + deployment-patch.yaml)
  5. Nota de arquitectura creada: arch-ci-pipeline-html-poster-espanol en pal-e-docs
  6. Story note: Se mantiene como pendiente — se creará cuando el proyecto madure
**Refinamiento post-revisión (review-1413):** 1. **Repo ampliado**: Ahora lista los 3 repos explícitamente (html-poster-espanol, pal-e-services, pal-e-deployments) 2. **bin/docker-entrypoint agregado** a File Targets (faltaba, requerido por el Dockerfile de landscaping-assistant) 3. **Terraform path especificado**: `terraform/k3s.tfvars` en vez de referencia vaga 4. **pal-e-deployments agregado**: overlay completo en `overlays/html-poster-espanol/prod/` (kustomization.yaml + deployment-patch.yaml) 5. **Nota de arquitectura creada**: `arch-ci-pipeline-html-poster-espanol` en pal-e-docs 6. **Story note**: Se mantiene como pendiente — se creará cuando el proyecto madure
Author
Owner

Scope Review: APPROVED

Review note: review-1413-2026-06-11-r2

Re-review after refinement. All 6 recommendations from prior review (review-1413-2026-06-11) resolved:

  • [BODY] x4: bin/docker-entrypoint added to file targets, terraform path specified as terraform/k3s.tfvars, pal-e-deployments overlay added, all 3 repos documented explicitly
  • [SCOPE] arch note: arch-ci-pipeline-html-poster-espanol created
  • [SCOPE] story note: pendiente status accepted (foundational work)

All 6 file targets verified against filesystem. 9 acceptance criteria confirmed testable. No decomposition needed (mechanical pattern-following from landscaping-assistant). Ready for implementation.

## Scope Review: APPROVED Review note: `review-1413-2026-06-11-r2` Re-review after refinement. All 6 recommendations from prior review (`review-1413-2026-06-11`) resolved: - **[BODY] x4**: bin/docker-entrypoint added to file targets, terraform path specified as `terraform/k3s.tfvars`, pal-e-deployments overlay added, all 3 repos documented explicitly - **[SCOPE] arch note**: `arch-ci-pipeline-html-poster-espanol` created - **[SCOPE] story note**: pendiente status accepted (foundational work) All 6 file targets verified against filesystem. 9 acceptance criteria confirmed testable. No decomposition needed (mechanical pattern-following from landscaping-assistant). Ready for implementation.
Sign in to join this conversation.
No labels
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/html-poster-espanol#3
No description provided.