From 7a36f0cf0b18ff8ceadf871a624289c54d0329b0 Mon Sep 17 00:00:00 2001 From: Said Boudjelda Date: Tue, 20 Oct 2026 15:58:15 +0200 Subject: [PATCH 1/2] feat(cli): kates lists conformity under Deployment The root help listed `conformity` under Health & Status, next to the commands that report on the cluster right now. A conformity check holds a deployed cluster to the architecture it was meant to have, so it sits in Deployment now, after `deploy status`. The profile filter works line by line: a context with the topology profile still lists it, alone under Deployment, and one without it hides it as before. --- cli/cmd/root.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/cmd/root.go b/cli/cmd/root.go index deab43d3..59263cde 100644 --- a/cli/cmd/root.go +++ b/cli/cmd/root.go @@ -357,7 +357,6 @@ Health & Status: version CLI, API, and runtime version info cluster Kafka cluster metadata and topic listing diff Compare Kafka cluster state between two contexts - conformity Check the cluster against a reference architecture test list List test runs with optional filters test get Show details of a specific test run @@ -444,6 +443,7 @@ Policy Engine (Kyverno): Deployment: deploy Deploy the Kates stack (Kafka, Kates, chaos, monitoring) deploy status Health of the deployed components + conformity Check the cluster against a reference architecture detect Deep cluster compatibility report for Kafka auto Auto-detect cluster config and deploy Kafka operators Strimzi operators on this cluster From 2eece06a1dec832fb5781656a246b8ccddc7efee Mon Sep 17 00:00:00 2001 From: Said Boudjelda Date: Tue, 20 Oct 2026 16:01:45 +0200 Subject: [PATCH 2/2] feat(cli): the deploy profile enables conformity too A context limited to the deploy profile hid `conformity`, now listed under Deployment, because only topology enabled it. Checking a deployed cluster against its reference is deploy work as much as topology work, so both profiles enable it. The CLI Reference's profile table gains `conformity` in both rows (topology had been missing it), and the Conformity Checks chapter names both profiles. --- cli/cmd/command_profiles.go | 2 +- docs/book/10-cli-reference.md | 4 ++-- docs/book/conformity.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cli/cmd/command_profiles.go b/cli/cmd/command_profiles.go index 44e3f710..461142fe 100644 --- a/cli/cmd/command_profiles.go +++ b/cli/cmd/command_profiles.go @@ -35,7 +35,7 @@ var commandProfiles = map[string][]string{ "clean": {"deploy"}, "cluster": {"topology", "chaos"}, "completion": nil, - "conformity": {"topology"}, + "conformity": {"deploy", "topology"}, "cost": {"performance"}, "ctx": nil, "dashboard": {"performance", "integrity"}, diff --git a/docs/book/10-cli-reference.md b/docs/book/10-cli-reference.md index c96b03f7..ff1503d9 100644 --- a/docs/book/10-cli-reference.md +++ b/docs/book/10-cli-reference.md @@ -207,9 +207,9 @@ A context can enable only the commands its user works with. Each profile enables | `performance` | `advisor`, `badge`, `benchmark`, `cost`, `dashboard`, `explain`, `flow`, `gate`, `lab`, `profile`, `replay`, `report`, `scenario-diff`, `schedule`, `test`, `top`, `trend`, `tune`, `watch`, `webhook` | | `integrity` | `dashboard`, `explain`, `kafka`, `migrate`, `replay`, `report`, `scenario-diff`, `schedule`, `test`, `top`, `watch`, `webhook` | | `chaos` | `chaos`, `cluster`, `disruption`, `flow`, `report`, `resilience`, `test`, `watch` | -| `topology` | `cluster`, `diff`, `doctor`, `kafka`, `snapshot` | +| `topology` | `cluster`, `conformity`, `diff`, `doctor`, `kafka`, `snapshot` | | `security` | `kyverno`, `security` | -| `deploy` | `auto`, `clean`, `deploy`, `detect`, `doctor`, `kyverno`, `migrate`, `operator`, `operators`, `versions` | +| `deploy` | `auto`, `clean`, `conformity`, `deploy`, `detect`, `doctor`, `kyverno`, `migrate`, `operator`, `operators`, `versions` | Every profile also enables `audit`, `changelog`, `completion`, `ctx`, `docs`, `health`, `help`, `init`, `mcp`, `plugin`, `ports`, `status`, `theme`, `tldr`, `upgrade`, `version` and plugins. A context with no profiles enables every command, which is how every context starts. diff --git a/docs/book/conformity.md b/docs/book/conformity.md index bbff9084..59abd9b4 100644 --- a/docs/book/conformity.md +++ b/docs/book/conformity.md @@ -605,7 +605,7 @@ WARN brokers.antiAffinity WAIVED monitoring.kafkaExporter ``` -`kates conformity` belongs to the `topology` [command profile](10-cli-reference.md#command-profiles). A context whose profiles leave it out refuses all three subcommands, `lint` and `fmt` included, so a pipeline's context needs that profile or none. The [Conformity](10-cli-reference.md#conformity) entries in the CLI Reference list every flag, and [POST /api/conformity/check](11-api-reference.md#post-apiconformitycheck) documents the report's JSON for callers that skip the CLI. +`kates conformity` belongs to the `topology` and `deploy` [command profiles](10-cli-reference.md#command-profiles). A context whose profiles leave both out refuses all three subcommands, `lint` and `fmt` included, so a pipeline's context needs one of them or none. The [Conformity](10-cli-reference.md#conformity) entries in the CLI Reference list every flag, and [POST /api/conformity/check](11-api-reference.md#post-apiconformitycheck) documents the report's JSON for callers that skip the CLI. ## The Language at a Glance