Description
stacker service add redis rewrites the entire stacker.yml file, injecting null structural fields and collapsing existing config_contract details.
Affected Projects
ArchiveBox (likely all projects with config_contract)
Steps to Reproduce
- Start with a valid stacker.yml with populated config_contract
- Run
stacker service add redis
- Compare original stacker.yml with the rewritten version
Expected Behavior
Append the requested service while preserving existing config structure and values.
Actual Behavior
- Injects
null fields: organization: null, app.dockerfile: null, etc.
- Collapses
config_contract.services.app to {}
- Removes explicit ADMIN_PASSWORD contract detail
- File becomes invalid until
stacker config fix is run
Example Diff
# Before
config_contract:
services:
app:
environment:
- name: ADMIN_PASSWORD
required: true
secret: true
# After (broken)
config_contract:
services:
app: {}
Environment
- Stacker CLI version: latest
Description
stacker service add redisrewrites the entirestacker.ymlfile, injectingnullstructural fields and collapsing existingconfig_contractdetails.Affected Projects
ArchiveBox (likely all projects with config_contract)
Steps to Reproduce
stacker service add redisExpected Behavior
Append the requested service while preserving existing config structure and values.
Actual Behavior
nullfields:organization: null,app.dockerfile: null, etc.config_contract.services.appto{}stacker config fixis runExample Diff
Environment