Skip to content

v0.14.0

Choose a tag to compare

@github-actions github-actions released this 10 Jun 19:59
270615a

P1 #5: ProviderConfig get/update + image/network discovery (butleradm)

The butleradm provider group gains four verbs, closing audit P1 #5 so a CLI-only operator can run the full cluster-create workflow without falling back to the console.

butleradm provider get NAME [-n ns] [-o json|yaml]
butleradm provider update NAME --from-file f.yaml [-n ns]
butleradm provider images NAME [-n ns] [-o table|json|yaml]
butleradm provider networks NAME [-n ns] [-o table|json|yaml]
Verb Mechanism What it does
get CRD-direct Show a ProviderConfig as a detail table, or the full object with -o json/yaml
update CRD-direct Update the spec from a YAML file, preserving the existing status and resourceVersion
images butler-server List the images a provider can use, for finding the image ID cluster create needs
networks butler-server List the networks a provider can use

get and update are CRD-direct

Both read and write the ProviderConfig directly, like the rest of the provider group. update does Get-then-merge-spec-then-Update and applies only the spec, so the existing validation status and resourceVersion are preserved. A spec edit never clobbers status.

images and networks are policy-filtered

Discovery goes through butler-server so the list is filtered by the same image and network policy the console applies. CLI and console show the same allowed options from one source of truth.

Discovery is supported for the on-premises providers (harvester, nutanix). For cloud providers (aws, azure, gcp) and proxmox the image and network are set directly as fields on the ProviderConfig (for example awsVpcId, gcpImage, azureImageUrn), so those return a clear message naming the provider and pointing at the config fields rather than an error dump.

Validation

Both load-bearing paths are covered by tests: the update merge that preserves status and resourceVersion, and the friendly message for the on-premises-only discovery boundary.