Skip to content

Conversation

@alfredtm
Copy link
Contributor

@alfredtm alfredtm commented Oct 30, 2025

This pull request introduces several significant improvements and new features to the cluster management workflow, wizard UI, and client interfaces. The main highlights include support for autoscaling node pools during cluster creation, new cluster inspection commands (get and status), a more flexible and dynamic wizard interface with select and toggle fields, the introduction of an integration client, and CI/linting improvements. There are also code quality improvements and bug fixes.

Cluster Creation Enhancements:

  • Added support for enabling autoscaling when creating clusters, including new fields for minimum and maximum node counts, and corresponding validation and CLI flags. The wizard now conditionally displays node count or autoscaling fields based on user input. (pkg/commands/cluster/create.go [1] [2] [3] [4]
  • The NewClusterRequest and NodePool types were updated to support autoscaling, SSO provisioner selection, and additional configuration fields. (pkg/client/cluster.go pkg/client/cluster.goR29-R44)

Wizard UI Improvements:

  • The wizard now supports new input types: select and toggle, in addition to text and password. These can be conditionally displayed based on previous answers, allowing for more dynamic and user-friendly forms. (internal/wizard/wizard.go [1] [2] [3] [4] [5] [6]
  • Refactored the wizard's internal model to abstract input fields and manage visibility and focus more robustly. (internal/wizard/wizard.go [1] [2] [3] [4] [5]

Client and Integration API:

  • Introduced a new IntegrationClient interface and implemented a method to list integration instances via the platform API. (pkg/client/client.go [1] pkg/client/integration.go [2]

Cluster Management Commands:

  • Added new cluster get command to display detailed information about a specific cluster, including configuration, node pools, compute resources, and status in pkg/commands/cluster/get.go.
  • Added new cluster status command to quickly check the deployment and ready status of a cluster in pkg/commands/cluster/status.go.
  • Enhanced the cluster list command to display additional information including cluster version, node pool summaries (pool count and node count), and assigned roles in pkg/commands/cluster/list.go.
  • Extended the Cluster type with new fields: ID, Version, NodePools, and Roles. The NodePool type now includes ID and ComputeResources for detailed resource information in pkg/client/cluster.go.
  • Added GetClusterStatus method to the ClusterClient interface for retrieving real-time cluster status in pkg/client/client.go.

CI and Code Quality Improvements:

  • Updated linter configuration to exclude auto-generated code directories (mocks, internal/telemetry) from linting checks, reducing noise in CI runs in .golangci.yaml.
  • Added SilenceErrors: true to the root command for better error handling consistency in pkg/rootcommand/rootcommand.go.

Documentation:

  • Updated interactive cluster creation demo (VHS recording) to showcase the wizard-based workflow with select and toggle inputs instead of command-line flags in docs/create_cluster_interactive.tape and docs/create_cluster_interactive.gif.

Code Quality and Formatting Fixes:

  • Standardized the usage of ux.Ferror, ux.Fprint, and ux.Fsuccess to use formatted strings across the codebase for consistency. (cmd/indev/main.go [1] [2] internal/cli/cli.go [3] [4] pkg/commands/account/login.go [5]
  • Updated Go version in go.mod to 1.24.6. (go.mod go.modL3-R3)

These changes collectively make the cluster management experience more comprehensive and user-friendly, from creation to inspection. The new get and status commands provide better visibility into cluster state, while the enhanced wizard interface and autoscaling support make cluster creation more flexible. The CI improvements and code quality fixes ensure better maintainability as the codebase grows and prepares the foundation for future integration features.

vhs

alfredtm and others added 7 commits October 13, 2025 15:27
Refactored the input handling system to include
support for toggle and select types. Introduced
conditional visibility logic for dynamic forms.
Enhanced cluster creation features with
autoscaling configurations and validations.
Copy link
Member

@Callum0x50 Callum0x50 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When creating a cluster I'm getting an SSO provisioner error, but I can't see any way to specify the SSO provisioner. Have we forgotten to add this in, or am I just doing something wrong? The binary is set up for the production api here. My bad - I used staging. Production works 👍

image

@Callum0x50
Copy link
Member

IMO we should accept name as a positional parameter here.
image

@Callum0x50
Copy link
Member

When creating a cluster I'm getting an SSO provisioner error, but I can't see any way to specify the SSO provisioner. Have we forgotten to add this in, or am I just doing something wrong? The binary is set up for the production api here.

image

And while we're on the topic, this error refers to an organization, but our users don't have any way to see their organization. We should expose the organization somehow, perhaps it makes sense to add it to the account show command?
image

@Callum0x50 Callum0x50 self-assigned this Nov 4, 2025
@Callum0x50 Callum0x50 dismissed their stale review November 4, 2025 09:41

Error was due to binary running on staging instead of production env. Worked as intended when using production.

@Callum0x50
Copy link
Member

Added in the positional parameters in this PR. Will leave the other comments for subsequent PRs instead of extending this one.

@Callum0x50 Callum0x50 merged commit 7ba988f into main Nov 4, 2025
2 checks passed
@Callum0x50 Callum0x50 deleted the feature-parity branch November 4, 2025 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants