keel.yaml provides three
layout keys for it.
Groups
Declare groups on the deployment and place variables in them:- Ungrouped variables come first, then groups in ascending ID order — IDs are integers, and gaps are fine.
- Each group is a collapsible section with its label, its description (Markdown), a count of its variables, and — when any of its fields still need input — a red N required chip. Collapsed groups stay scannable.
collapsed: truestarts a group closed. A group containing a validation error is always opened so the error is never hidden.- A group ID referenced by a variable without a
groups:entry renders with the labelGroup <ID>. A defined group that no variable references is a validation error.
Rows
Within a group (or among the ungrouped variables),row puts fields side by
side:
- Variables sharing a row ID render on one line, in document order, rows in ascending ID order.
- Variables without a row come after the rows of their group, each full width. Multi-line fields and long descriptions belong there.
- Rows wrap on narrow screens, so nothing is lost on a phone.
Flex
flex is a variable’s share of its row’s width, in the CSS flex-grow
sense. Two fields with flex: 1 and flex: 2 split the row one third to two
thirds. It defaults to 1, must be positive, and requires row.
Keeping required fields obvious
Layout helps navigation; markers help completion. Independently of layout:- Fields that need input (required, no default) carry a red asterisk.
- Group headers count how many such fields they contain.
- Optional fields say optional; fields with a default show the default under the input.
- The Variables card has a legend, and the deployment page counts missing values per target.