Program Layer¶
The program layer provides project-specific configurations and customizations.
Purpose¶
Enables:
- Project-specific tool versions
- Custom application stacks
- Team workflows
- CI/CD integration
- Environment-specific settings
Key Features¶
Configuration Override¶
Programs can override organization settings:
Custom Variables¶
Add project-specific configuration:
Custom Playbooks¶
Project setup automation:
- name: Setup My Project
tasks:
- name: Clone repository
- name: Install dependencies
- name: Setup database
Directory Structure¶
packages/programs/my-project/
├── Vagrantfile # VM configuration
├── ansible/
│ ├── group_vars/
│ │ └── all.yml # Program variables
│ ├── playbooks/
│ │ └── program-setup.yml
│ └── roles/ # Custom roles
├── tests/ # Program tests
└── README.md # Documentation
Common Patterns¶
Web Application¶
apps:
docker: { enabled: true }
python: { enabled: true }
nodejs: { enabled: true }
postgresql: { enabled: true }