Multi-Stack Products

Define complex applications with multiple Docker Stacks and shared variables in a single manifest.

What are Multi-Stack Products?

Multi-Stack Products allow you to define complex applications consisting of multiple Docker Stacks. Instead of managing each stack separately, they are combined in a single RSGo Manifest.

Typical Use Cases

  • Microservices Architectures: Frontend, backend, and database as separate stacks with shared configuration
  • Multi-Tenant Setups: Base stack with customer-specific extensions
  • Development Environments: Development tools and dependencies bundled in one product

Shared Variables

A key feature is the ability to define variables at the product level that can be used by all stacks:

product:
  name: my-application
  variables:
    - name: DATABASE_HOST
      type: String
      description: Shared database hostname

stacks:
  - name: backend
    variables:
      - name: DATABASE_HOST  # Inherits definition from product

  - name: frontend
    variables:
      - name: API_URL
        type: String

Variable Override Behavior

When a variable is defined at both product and stack level, the definitions are intelligently merged:

Merge Rules:

  • Stack-specific values override product values
  • Type and validation are inherited from the product
  • Descriptions can be customized at the stack level

Benefits

  • Consistency: Uniform configuration across all stacks
  • Reusability: Define shared variables only once
  • Clarity: All components in one manifest
  • Deployment: One-click installation of the entire product