Scaffold Rails app with dev/prod infrastructure and CI pipeline #1
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 -- first ticket for the landscaping-assistant project.
Repo
ldraney/landscaping-assistantUser Story
As a landscaper
I want a working Rails application with a proper CI/CD pipeline
So that all future features (address lookup, property CRUD) can be developed, tested, and deployed reliably from day one.
Context
This is the foundation ticket. The goal is to learn Ruby on Rails by getting the infrastructure right from the start. The app will be a monolithic Rails 8.1.3 application using Hotwire (Turbo + Stimulus) with PostgreSQL. It deploys to the pal-e k3s cluster via ArgoCD with kustomize overlays, matching the pal-enterprises pattern (another Rails app on port 3000).
The three-repo deployment model requires changes across pal-e-platform (NetworkPolicy), pal-e-services (var.services entry), and pal-e-deployments (kustomize overlay). See
docs/infrastructure-and-pipeline.mdfor the exact configs.File Targets
Files to create in this repo:
Gemfile-- Rails 8.1.3, pg, puma, rubocop, rspec-railsDockerfile-- multi-stage build, ruby:3.4.9-slim, EXPOSE 3000.woodpecker.yaml-- lint, test, build-and-push (harbor-core.harbor.svc.cluster.local).rubocop.yml-- project lint configconfig/database.yml-- PostgreSQL for dev/test/proddb/seeds.rb-- 3 service types (Edging & Trimming, Mowing, Weeding)rails newFiles to create in other repos (separate PRs):
pal-e-platform/terraform/network-policies.tf-- add landscaping-assistant to postgres allowlistpal-e-services/terraform/k3s.tfvars-- add var.services entrypal-e-deployments/overlays/landscaping-assistant/prod/kustomization.yamlpal-e-deployments/overlays/landscaping-assistant/prod/deployment-patch.yamlAcceptance Criteria
rails newscaffold boots locally withrails serveron port 3000/uphealth check returns 200db:seedcreates the 3 service typeslandscaping-assistant/applandscaping-assistant.tail5b443a.ts.netTest Expectations
bundle exec rspecConstraints
harbor-core.harbor.svc.cluster.local)pal-e-postgres-rw.postgres.svc.cluster.local)runAsNonRoot,drop: ["ALL"](match pal-enterprises pattern)/up(Rails 8 built-in)Checklist
Related
project-landscaping-assistant-- project pagedocs/infrastructure-and-pipeline.md-- exact configs for all three repos