Skip to content

feat(cli): admin-less deploy names what it leaves out, and why - #504

Merged
bmscomp merged 1 commit into
mainfrom
feat/deploy-adminless-reasons
Oct 26, 2026
Merged

bmscomp merged 1 commit into
mainfrom
feat/deploy-adminless-reasons

Conversation

@bmscomp

@bmscomp bmscomp commented Oct 26, 2026

Copy link
Copy Markdown
Owner

PR 2 of the deploy plan (plans/deploy-enhancement.md): every component listed, with the reason it is off.

What changes

The admin-less profile leaves out the Strimzi operator, cert-manager, Kyverno, Litmus and the monitoring stack. Until now they disappeared from the wizard's component list and from the "Component Selection" phase without a word.

  • Wizard: a note under the admin-less component list names each left-out component and why. It fits an 80×24 terminal; the screen captured in tmux was:
    Not installed admin-less
    
    Strimzi Operator — its CRDs and cluster roles need cluster admin; Kafka runs
    on the operator a cluster admin installed
    Cert-Manager, Kyverno — cluster-wide CRDs and admission webhooks need cluster
    admin
    Litmus Chaos — its CRDs and cluster roles need cluster admin, so this Kates
    runs no chaos experiments
    Monitoring (Prometheus, Grafana) — …
    
  • Flag runs: the same list prints as Not installed: … lines in the Component Selection phase. The scrape-only monitoring choice gets its own ✓ line there too.
  • Monitoring's reason follows the cluster:
    • no Prometheus operator to scrape for;
    • the wizard's PodMonitors option, when an operator is there;
    • "the cluster's own Prometheus scrapes this stack instead", when that option was chosen.

The admin/admin-less check is unchanged. The plan also listed adminlessSuggestion/strimziInstallSuggestion under the note. I left them out: deploy already prints them where they apply, before the wizard and in the Strimzi check.

Checks

  • TestPrintComponentSelection_AdminlessNamesWhatIsLeftOut covers no operator, an operator, and the scrape chosen.
  • go test ./cmd passes. golangci-lint run --new-from-rev=origin/main reports 0 issues. scripts/check-cli-style.sh passes.
  • Live on kind-panda, read-only through a copied kubeconfig:
    • kates deploy --adminless --topology single --namespace kafka --dry-run --yes prints the four lines.
    • kates deploy -i --adminless …, driven in an 80×24 tmux pane up to the component screen and then cancelled, shows the note on the same page as the list.
  • An independent review, with each finding checked by a second agent, confirmed one defect: the monitoring entry said Jaeger, which no profile installs. It is fixed here. The older "Jaeger (Tracing)" line for --with-monitoring and the flag's help text have the same misnomer; they are left for a separate change.

The admin-less profile drops the Strimzi operator, cert-manager, Kyverno,
Litmus and the monitoring stack, and they used to vanish from the wizard's
component list and the Component Selection phase without a word. Both now
list them with the reason: cluster-wide CRDs, roles or webhooks that need
cluster admin. Monitoring's line follows the cluster: no Prometheus
operator to scrape for, the wizard's PodMonitors option, or the scrape
already chosen. The scrape-only choice also gets its own line in the
Component Selection phase.
@bmscomp
bmscomp merged commit 701af93 into main Oct 26, 2026
56 checks passed
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.

1 participant