Repository navigation
Closed
Labels
area/dashboardIssues or PRs related to the dashboard / UIIssues or PRs related to the dashboard / UIkind/bugCategorizes issue or PR as related to a bugCategorizes issue or PR as related to a bugpriority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to completeImportant over the long term, but may not be staffed and/or may need multiple releases to completetriage/acceptedIndicates an issue is ready to be actively worked onIndicates an issue is ready to be actively worked on
Description
Summary
In the dashboard (console) Kubernetes app form, a user who wants to size a worker node group by explicit resources (cpu/memory) instead of an instanceType cannot do it: clearing the instanceType field and entering cpu/memory makes the Save button silently do nothing — no toast, no navigation, no validation error.
This is the apps/kubernetes analog of #2909 (same class of problem reported for vm-instance).
Steps to reproduce
- Open the Kubernetes app create/edit form in the console.
- On a worker node group, clear the
instanceTypefield and setresources.cpu/resources.memory. - Click Save → nothing happens (no error surfaced, form not submitted).
Mechanism (console)
The app form is schema-driven (RJSF) over the app's values.schema.json:
nodeGroups[].instanceTypeisrequiredin the schema (and defaulted tou1.medium).packages/system/dashboard/images/console/apps/console/src/components/SchemaForm.tsxsetsliveValidate={false}, so validation runs on submit. An empty value for a required field fails validation andonSubmitnever fires — the click is a silent no-op with no visible error.…/components/DynamicOptionsWidget.tsxrenders the empty choice as<option value="" disabled={required}>, so for the requiredinstanceTypefield the "-- None --" option is disabled — the field cannot even be emptied through the dropdown.
Net effect: the dashboard offers no way to size a node group purely by resources, and the blocked submit is silent.
Relationship to #3121 and #2909
- fix(kubernetes): make node group resources optional when instanceType is set #3121 (chart, precedence) makes sizing by resources work when the default
instanceTypeis kept: explicitresourcestake precedence and the instancetype is omitted at render, so the VM is valid. That resolves the practical workflow. It deliberately keepsinstanceTyperequired (no schema/UI change), so the dashboard still cannot represent "no instanceType, size by resources," and clearing the field still fails silently. - vm-instance renders both instancetype matcher and explicit domain resources — KubeVirt rejects the VM with a conflict error #2909 is the same defect for
vm-instance(area/dashboard, accepted).
Suggested fix (one or both)
- Surface the failure. A schema-driven form should show validation errors (or focus the offending field) on a blocked submit instead of silently doing nothing. This applies to every app form, not just Kubernetes, and is the higher-value fix.
- Allow sizing by resources from the UI. If clearing
instanceTypeis meant to be supported, dropinstanceTypefrom the schemarequiredlist —DynamicOptionsWidgetalready enables a selectable "-- None --" when the field is not required — paired with a render-time "at least one sizing source" guard in the chart. With fix(kubernetes): make node group resources optional when instanceType is set #3121's precedence landing, this is optional polish.
Environment
Reproducible on current main console (packages/system/dashboard/images/console). Originally surfaced on the apps/kubernetes node-group form.
Reacted by dosubot
Metadata
Metadata
Assignees
Labels
area/dashboardIssues or PRs related to the dashboard / UIIssues or PRs related to the dashboard / UIkind/bugCategorizes issue or PR as related to a bugCategorizes issue or PR as related to a bugpriority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to completeImportant over the long term, but may not be staffed and/or may need multiple releases to completetriage/acceptedIndicates an issue is ready to be actively worked onIndicates an issue is ready to be actively worked on
Activity
hiSandog commentedon Jul 3, 2026
Clearing
instanceTypesounds like a null-vs-empty-string persistence bug. The dashboard should explicitly send a value that means “unset instance type and use explicit resources”, and the backend should store that state distinctly from “no change”. An e2e test that switches from instance type to CPU/memory resources, saves, reloads, and reconciles the node group would cover the user-visible failure.fix(dashboard): focus the offending field when a submit is blocked
fix(dashboard): focus the offending field when a submit is blocked
fix(dashboard): reach fields inside additionalProperties maps, and ke…
fix(dashboard): reach fields inside additionalProperties maps, and ke…
fix(dashboard): focus the offending field when a submit is blocked
fix(dashboard): reach fields inside additionalProperties maps, and ke…
fix(dashboard): small Console fixes from the cozystack#3828 triage (c…