-
Notifications
You must be signed in to change notification settings - Fork 247
Description
Goal: To empower users with a command-line interface for managing Fleet, enhance automation capabilities and accelerate troubleshooting.
1. Seamless Cluster Lifecycle Management
As a Platform Administrator, I want to easily register a new Kubernetes cluster with Fleet and remove an existing one using CLI commands, so that I can automate the provisioning and de-provisioning of cluster resources, integrate it into CI/CD pipelines, and manage my fleet's scale efficiently without manual intervention in a UI.
Acceptance Criteria:
-
A
fleet cluster register <cluster-name> --kubeconfig <path-to-kubeconfig> [--labels key=value,...]
command exists.- It registers the cluster with the Fleet control plane, applying any specified labels.
- Should this wait for the operation to complete?
- The command should be idempotent (re-running on an already registered cluster with the same parameters should result in no change or a successful state).
- It registers the cluster with the Fleet control plane, applying any specified labels.
-
A
fleet cluster remove <cluster-name> [--force]
command exists.- The command gracefully uninstalls the Fleet agent from the target cluster.
- It unregisters the cluster from the Fleet control plane.
- Should this wait for the operation to complete?
- The
--force
option allows removal even if the agent is unresponsive.
-
fleet cluster list
shows registered clusters and their agent connection status.
(if it is an improvement overkubectl list clusters
)
2. Comprehensive Resource Visibility and Inspection
As a Developer or Operations Engineer, I want to quickly list and view the status of all Fleet-managed resources (including Bundles, GitRepos, HelmOps, BundleDeployments, etc.) directly from the CLI, so that I can gain insights into the deployment state, configuration, and health of my applications and infrastructure across the entire fleet or specific clusters.
Acceptance Criteria:
-
fleet get cluster <cluster-name>
:- Checks agent pod status, logs, and connectivity to the Fleet control plane.
- Verifies RBAC permissions and necessary configurations on the member cluster.
- Reports on cluster registration status and health.
-
fleet get bundle <bundle-name> [-n namespace]
:- Checks the status of
BundleDeployment
resources associated with the bundle. - Verifies that all resources defined in the bundle are correctly applied/progressing on target clusters.
- Identifies unmet dependencies (e.g., other bundles, resources).
- Shows recent events and errors related to the bundle.
- Checks the status of
-
fleet get gitrepo <gitrepo-name> [-n namespace]
:- Checks sync status, recent commit processing, and any errors during reconciliation.
- Verifies connectivity to the Git repository.
-
Output formatting options (
wide
for more columns,yaml
for full resource definition,json
).
3. Proactive Configuration Validation
As a DevOps Engineer or Developer, I want to validate the syntax and semantic correctness of my fleet.yaml
(and other Fleet configuration files) locally via a CLI command before committing changes to version control, so that I can catch configuration errors early, prevent deployment failures, reduce debugging time, and ensure my configurations adhere to best practices and Fleet's schema.
Acceptance Criteria:
-
A
fleet validate -f <path-to-fleet.yaml>
command exists.- The command checks for correct YAML syntax.
- It validates the file against the known schema.
- It checks for common misconfigurations or deprecated fields.
-
The command provides clear, actionable error messages, indicating the problematic file, line number, and a description of the issue.
-
A successful validation returns a confirmation message and a zero exit code, making it suitable for integration into pre-commit hooks and CI/CD pipelines.
4. Granular Workload Distribution and Balancing Control
As a Site Reliability Engineer (SRE) or Platform Architect, I want to precisely control workload placement by managing sharding labels on GitRepos and Clusters, and initiate or observe autobalancing operations via the CLI, so that I can optimize resource utilization, ensure high availability, and manage workload distribution strategies effectively across my fleet.
Acceptance Criteria:
- A command like
fleet sharding status [--namespace <system-namespace>]
shows the current state of sharding and if rebalancing is in progress or recommended. - A command like
fleet sharding autobalance [--namespace <system-namespace>]
initiates a rebalancing check/process.
5. Intelligent Troubleshooting and Diagnostics
Run a comprehensive diagnostic CLI command that helps troubleshoot common issues
6. Generate BundleDiff From Status
Command to generate bundle diffs from resource status. Resource status already contains the needed patch.
7. Scaffolding GitRepos
Like 'helm init', create the content of a Git repo that can be used as a base for GitOps.
This issue should provide a solid foundation for your UX team to start designing the CLI interactions and user experience.
Sub-issues
Metadata
Metadata
Assignees
Type
Projects
Status