Requested from a live installation.
Now
Pinning is a free-text field: web01.example.com, db02.example.com. The operator has to know the exact certname and type it, with no confirmation it matches anything real until after saving.
Wanted
Choose nodes from the estate the console already knows about — search, select, done.
Worth keeping
Pinning a node PuppetDB has not seen yet must remain possible. It is deliberate today, and the field says so:
Pinning a node PuppetDB has not seen yet is allowed — it will materialize once the node reports.
That is a real workflow — pin the machine being provisioned tomorrow — and NodeGroupPin.certname is deliberately a plain column with no foreign key to ManagedNode so it survives that cache being truncated. A picker that only offers known nodes would remove the capability.
So: a picker for the common case, with free text still available for the not-yet-seen case, and unknown entries shown as such rather than rejected.
Acceptance
Requested from a live installation.
Now
Pinning is a free-text field:
web01.example.com, db02.example.com. The operator has to know the exact certname and type it, with no confirmation it matches anything real until after saving.Wanted
Choose nodes from the estate the console already knows about — search, select, done.
Worth keeping
Pinning a node PuppetDB has not seen yet must remain possible. It is deliberate today, and the field says so:
That is a real workflow — pin the machine being provisioned tomorrow — and
NodeGroupPin.certnameis deliberately a plain column with no foreign key toManagedNodeso it survives that cache being truncated. A picker that only offers known nodes would remove the capability.So: a picker for the common case, with free text still available for the not-yet-seen case, and unknown entries shown as such rather than rejected.
Acceptance