Skip to content

refactor(client/kubernetes): move into internal/client/kubernetes subpackage (#140)#622

Merged
QuentinBisson merged 4 commits into
mainfrom
refactor-140-kubernetes-subpackage
May 8, 2026
Merged

refactor(client/kubernetes): move into internal/client/kubernetes subpackage (#140)#622
QuentinBisson merged 4 commits into
mainfrom
refactor-140-kubernetes-subpackage

Conversation

@QuentinBisson
Copy link
Copy Markdown
Contributor

@QuentinBisson QuentinBisson commented May 5, 2026

Closes part of #140.

Moves the 547-line internal/client/kubernetes_client.go into a new internal/client/kubernetes/ subpackage, split per CRD domain (client.go, mcpserver.go, serviceclass.go, workflow.go, events.go). The core file keeps the type, constructor, scheme, lifecycle methods, and discovery-based CRD validation.

Pure refactor: the MusterClient interface stays in the parent client package and the only direct caller of NewKubernetesClient was the in-package dispatcher, which now calls kubernetes.New(restConfig) directly. External consumers depend only on MusterClient and are unaffected.

Renames: kubernetesClientkubernetes.Client, NewKubernetesClientkubernetes.New(config *rest.Config) (*Client, error).

…package (#140)

The 547-line internal/client/kubernetes_client.go now lives under
internal/client/kubernetes/, split per CRD domain:

  client.go         core type + constructor + scheme + validateCRDs
  mcpserver.go      MCPServer CRUD + UpdateMCPServerStatus
  serviceclass.go   ServiceClass CRUD + UpdateServiceClassStatus
  workflow.go       Workflow CRUD + UpdateWorkflowStatus
  events.go         CreateEvent / CreateEventForCRD / QueryEvents

The MusterClient interface stays in the parent client package. The only
caller of the old NewKubernetesClient was the dispatcher in
muster_client.go itself, which now calls kubernetes.New(restConfig)
directly. External consumers depend only on MusterClient and are
unaffected.

kubernetesClient    -> kubernetes.Client
NewKubernetesClient -> kubernetes.New(config *rest.Config) (*Client, error)
@QuentinBisson QuentinBisson force-pushed the refactor-140-kubernetes-subpackage branch from f7ef42e to 96ed89a Compare May 5, 2026 21:00
@QuentinBisson QuentinBisson changed the title refactor(client): split kubernetes_client.go into per-domain files (#140) refactor(client/kubernetes): move into internal/client/kubernetes subpackage (#140) May 5, 2026
…sterClient assertion

Replaces the 'muster' literal duplicated across CreateEvent,
CreateEventForCRD, and QueryEvents with a single sourceComponent
const. Adds var _ MusterClient = (*kubernetes.Client)(nil) at the
dispatcher call site so interface drift fails at compile time.
@QuentinBisson
Copy link
Copy Markdown
Contributor Author

Self-review wrap-up — ready for an external pair of eyes.

Why this should merge: Pure file move. The 547-line internal/client/kubernetes_client.go becomes an internal/client/kubernetes/ subpackage split per CRD (client.go, mcpserver.go, serviceclass.go, workflow.go, events.go).

  • The MusterClient interface stays in the parent client package; the dispatcher now calls kubernetes.New(restConfig) directly.
  • Constructor returns a concrete *Client (was: MusterClient) — embeds client.Client so controller-runtime methods stay accessible.
  • Constants extracted: kindMCPServer, kindServiceClass, kindWorkflow, sourceComponent.
  • validateCRDs relocated unchanged (discovery-API based — still only checks the MCPServer kind; not regressed, but flagged as an out-of-scope follow-up in refactor(client): collapse per-CRD duplication via client.Object helpers (#140) #627).

Per-CRD duplication is intentional in this PR. Each CRD file is the same template differing only by type and kind string — the symmetric situation to #621. #627 collapses both client adapters into shared client.Object helpers and normalises error wrapping (workflow.go was previously the inconsistent one).

CI green.

@QuentinBisson QuentinBisson marked this pull request as ready for review May 7, 2026 22:53
@QuentinBisson QuentinBisson requested a review from a team as a code owner May 7, 2026 22:53
@QuentinBisson QuentinBisson merged commit ef4ea97 into main May 8, 2026
9 checks passed
@QuentinBisson QuentinBisson deleted the refactor-140-kubernetes-subpackage branch May 8, 2026 00:14
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