Skip to content

Add printer columns to all CRDs#4489

Merged
ChrisJBurns merged 1 commit into
mainfrom
cburns/4252-add-printer-columns-to-all-crds
Apr 2, 2026
Merged

Add printer columns to all CRDs#4489
ChrisJBurns merged 1 commit into
mainfrom
cburns/4252-add-printer-columns-to-all-crds

Conversation

@ChrisJBurns
Copy link
Copy Markdown
Collaborator

Summary

  • kubectl get output for config CRDs was minimal (just name + age), forcing operators to use -o yaml to check readiness or discover which MCPServers reference a config. This adds informative printer columns to all config CRDs and fixes inconsistencies found during audit.
  • Adds Ready and References columns to MCPOIDCConfig, MCPTelemetryConfig, MCPExternalAuthConfig, and MCPToolConfig. Fixes the MCPGroup printerColumn marker typo that silently prevented column rendering.

Closes #4252

Type of change

  • New feature

Test plan

  • Unit tests (task test)
  • Linting (task lint-fix)
  • CRD manifest regeneration (task operator-manifests) — verified generated YAML matches markers

Changes

File Change
mcpoidcconfig_types.go Rename "Type" → "Source", add Ready + References columns
mcptelemetryconfig_types.go Replace Tracing/Metrics columns with Ready + References
mcpexternalauthconfig_types.go Add Ready + References columns
mcpgroup_types.go Fix printerColumn typo → printcolumn, reorder columns
toolconfig_types.go Remove broken Filter/Override Count columns, add Ready
deploy/charts/operator-crds/** Regenerated CRD manifests (files + templates)

Does this introduce a user-facing change?

Yes. kubectl get output is now significantly more informative for all CRDs:

MCPOIDCConfig — before:

NAME              TYPE                       AGE
my-oidc-config    kubernetesServiceAccount   5m

MCPOIDCConfig — after:

NAME              SOURCE                     READY   REFERENCES              AGE
my-oidc-config    kubernetesServiceAccount   True    ["my-server","other"]   5m

MCPTelemetryConfig — before:

NAME              ENDPOINT                        TRACING   METRICS   AGE
my-otel-config    https://otel-collector:4318     true      true      5m

MCPTelemetryConfig — after:

NAME              ENDPOINT                        READY   REFERENCES       AGE
my-otel-config    https://otel-collector:4318     True    ["my-server"]    5m

MCPExternalAuthConfig — before:

NAME              TYPE              AGE
my-auth-config    tokenExchange     5m

MCPExternalAuthConfig — after:

NAME              TYPE              READY   REFERENCES       AGE
my-auth-config    tokenExchange     True    ["my-server"]    5m

MCPToolConfig — before:

NAME             FILTER COUNT   OVERRIDE COUNT   REFERENCED BY      AGE
my-tool-config                                   ["my-server"]      5m

MCPToolConfig — after:

NAME             READY   REFERENCES       AGE
my-tool-config   True    ["my-server"]    5m

MCPGroup — before (columns silently missing due to typo):

NAME       READY    AGE
my-group   True     5m

MCPGroup — after (all columns now render):

NAME       SERVERS   PHASE   READY   AGE
my-group   3         Ready   True    5m

Special notes for reviewers

  • The MCPGroup had three +kubebuilder:printerColumn markers (capital C) which is not a recognized kubebuilder marker — only +kubebuilder:printcolumn works. This means the Servers, Phase, and Age columns were silently dropped from the generated CRD. Only the Ready column (which used the correct spelling) was rendering.
  • Config CRDs use a "Valid" condition type (not "Ready") for their status, so the Ready column maps to .status.conditions[?(@.type=='Valid')].status.
  • MCPToolConfig's previous "Filter Count" and "Override Count" columns used type=integer with JSONPaths that resolve to arrays/maps, not integers — they produced empty output. Replaced with a Ready column.

Generated with Claude Code

`kubectl get` output for config CRDs (MCPOIDCConfig, MCPTelemetryConfig,
MCPExternalAuthConfig, MCPToolConfig) was minimal — showing only type/name
and age. Operators had to use `-o yaml` to check readiness or which servers
reference a config. This adds Ready and References columns to all config
CRDs, renames MCPOIDCConfig's column to "Source" for clarity, and fixes the
MCPGroup `printerColumn` typo that prevented its columns from rendering.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added the size/S Small PR: 100-299 lines changed label Apr 1, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.33%. Comparing base (c3fadd1) to head (93df3c4).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4489      +/-   ##
==========================================
- Coverage   69.38%   69.33%   -0.05%     
==========================================
  Files         501      501              
  Lines       51345    51345              
==========================================
- Hits        35625    35600      -25     
- Misses      12975    13000      +25     
  Partials     2745     2745              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ChrisJBurns ChrisJBurns merged commit f43e29b into main Apr 2, 2026
42 of 43 checks passed
@ChrisJBurns ChrisJBurns deleted the cburns/4252-add-printer-columns-to-all-crds branch April 2, 2026 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/S Small PR: 100-299 lines changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Printer Columns to All CRDs

2 participants