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