Skip to content

docs(decisions): Kubernetes out of scope; cluster-blueprint write API not viable - #32

Merged
PF9-pushkar merged 1 commit into
mainfrom
feat/cluster-blueprint-resource
Jul 14, 2026
Merged

docs(decisions): Kubernetes out of scope; cluster-blueprint write API not viable#32
PF9-pushkar merged 1 commit into
mainfrom
feat/cluster-blueprint-resource

Conversation

@PF9-pushkar

Copy link
Copy Markdown
Collaborator

Records two scope decisions (docs-only) after investigation.

Kubernetes (PCD-K) — out of scope

pcd_kubernetes_cluster is a Cluster-API-native model that belongs in a dedicated CAPI/Kubernetes provider, not this IaaS provider. Decision by the maintainer.

pcd_cluster_blueprint write resource — not shipped

I built the resource and then drove the live resmgr/v2 blueprint API directly (the lab blueprint was made freely mutable for this). On CE 2026.4:

Op Result
Create POST /blueprint works — but only with a complete object including a valid non-empty storageBackends; anything partial/empty returns an opaque 500
Delete DELETE /blueprint/{name} works
Update no working path — documented PUT /blueprint/{name} returns 404 for an existing blueprint; POST /{name}→404, PATCH→405, PUT /blueprint→500

With no working update, a resource would have to force-replace a cluster-defining object on every change — unsafe (hosts/clusters depend on it) — and create is itself fragile. So the write resource is not shipped; the existing pcd_cluster_blueprint data source (read) is the supported surface, and blueprints are authored via the UI wizard. Revisit if a later CE build fixes the update path.

No code change — the half-built resource was reverted; all test blueprints created during investigation were cleaned up (lab has only ce-lab-bp).

… not viable

Record two scope decisions in DECISIONS.md:

- Kubernetes (PCD-K / Cluster-API) is deliberately out of scope for this IaaS
  provider — it's a CAPI-native model that belongs in a dedicated provider.

- The pcd_cluster_blueprint write resource is NOT shipped. Driving the live
  resmgr/v2 blueprint API showed create requires a complete object with a valid
  non-empty storageBackends (opaque 500 otherwise), delete works, but UPDATE has
  no working path (documented PUT /blueprint/{name} 404s even for an existing
  blueprint; POST/{name} 404, PATCH 405, PUT /blueprint 500). A resource with no
  working update would have to force-replace a cluster-defining object on every
  change, which is unsafe. The pcd_cluster_blueprint data source (read) remains
  the supported surface.
@PF9-pushkar
PF9-pushkar merged commit eb82797 into main Jul 14, 2026
5 checks passed
@PF9-pushkar
PF9-pushkar deleted the feat/cluster-blueprint-resource branch July 14, 2026 00:59
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