yaml datatype for charm configuration settings
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Triaged
|
Low
|
Unassigned | ||
juju-core |
Won't Fix
|
Low
|
Unassigned |
Bug Description
Charm configuration in config.yaml allows integer, boolean and string datatypes. Some charms require more complex data structures for their configuration, for example a list of (database_name, user_name, access_type) tuples or charm-helper's install_sources and install_keys lists.
One current work around, used by charm-helpers, is to use the 'string' type and allow the user to embed a fragment of yaml. This works, but requires the yaml fragment to be quoted as a string and does not have basic validation.
Other more common work arounds are comma separated lists, space separated lists, base64 and other arbitrary, inconsistent and ad-hoc methods.
It would be lovely if 'yaml' could be specified as a config item datatype, allowing an arbitrary yaml data structure to be embedded as configuration. This would bring consistency, and reduce bugs in charms' custom serialization routines.
description: | updated |
Changed in juju-core: | |
importance: | Wishlist → Low |
status: | New → Triaged |
tags: | added: charm config |
Changed in juju-core: | |
status: | Triaged → Won't Fix |
tags: | added: canonical-is cpe-onsite |
We'd also like to see this in UE, as we keep having to do grotty things like:
$ juju set uci-ci-tarmac branches="'lp:uci-engine': by-tarmac. py' message_ template: '[r=<approved_by>] <commit_message>' criteria: 'Approve >= 1' message_ template: '[r=<approved_by>] <commit_message>' criteria: 'Approve >= 1'"
verify_command: '/usr/bin/env python bin/called-
commit_
voting_
'lp:uci-team':
commit_
voting_