lantern

wanderland-stuffy-pipeline

Wanderland Stuffy Pipeline

Production pipeline for deploying the Stuffy consciousness streaming service to ECS Fargate.

Overview

Attribute Value
System wanderland.stuffy
Pattern Pattern 3 - Static Infrastructure
Platform ECS Fargate (ARM64)
Repository proquest/wanderland

Pipeline Structure

jenkins/wanderland-stuffy.yml    # Peregrine pipeline config
cloudformation/stuffy-ecs-service.yml  # CloudFormation template
stuffy/Dockerfile                # Container build
stuffy/task-definition.json      # Reference task def (manual deploys)

Deployment Stages

1. Build Stage

  • Git clone from proquest/wanderland
  • Docker build from stuffy/Dockerfile
  • Push to ECR: devops/stuffy:streaming-<version>

2. Deploy Stage

  • Nimbus create_stack (Pattern 3 - update in place)
  • Creates/updates: Task Definition, Service, Target Group, Listener Rule

3. Validate Stage

  • Firkin wait for target health
  • HTTP check on /api/health
  • Teams notification on success/failure

Environment Configuration

Environment URL Desired Count
devl/main stuffy.dev.int.proquest.com 1
preprod/qa stuffy.pre.int.proquest.com 1
prod/main stuffy.int.proquest.com 2

Quick Commands

# Deploy to devl
wooster pipeline deploy --pipeline wanderland-stuffy-devl-main-pipeline

# Check deployment status
wooster pipeline display --pipeline wanderland-stuffy-devl-main-pipeline

# View logs
aws logs tail /ecs/stuffy-devl-main --follow

Container Configuration

From stuffy/task-definition.json:

Setting Value
CPU 512 units (devl/preprod), 1024 (prod)
Memory 1024 MB (devl/preprod), 2048 (prod)
Architecture ARM64
Port 8080
Health Check GET /api/health

Environment Variables

Variable Purpose
PUBLIC_URL Self-reference URL for generating links
CODEX_API_URL Backend API for data operations
CODEX_WEB_URL Web frontend for linking
CHECK_* Feature flags for dependency health checks
STUFFY_PUBLIC_INBOX Enable/disable public upload

Files

Pipeline Config

# jenkins/wanderland-stuffy.yml
pipeline:
  metadata:
    name: wanderland-stuffy-<%= environment %>-<%= sub_environment %>-pipeline
    version:
      strategy: static
      version: 1.0.0
  stages:
    build: [gitClone, dockerBuild, ecrPush]
    deploy: [nimbus create_stack]
    validate: [firkin, httpCheck]

CloudFormation Resources

Created by cloudformation/stuffy-ecs-service.yml:

  • AWS::ECS::TaskDefinition - Fargate task with Stuffy container
  • AWS::ECS::Service - Service running on shared ECS cluster
  • AWS::ElasticLoadBalancingV2::TargetGroup - ALB target group
  • AWS::ElasticLoadBalancingV2::ListenerRule - Host-based routing
  • AWS::EC2::SecurityGroup - Task network security
  • AWS::Logs::LogGroup - CloudWatch logging

Related

Slots

North

slots:
- wanderland-ecs-deployment

South

slots: []

East

slots:
- how-to-deploy-simple-ecs-service
- component-wanderland-stuffy

West

slots: []