PCP-6874: Feat: LXD workload cluster / Host Control Plane cluster / maintenance mode #354
Conversation
* Added InternalIP to Machine's status.addresses * Added InternalDNS to Machine's status.addresses * support hypershift nodes with FQDN --------- Co-authored-by: jzhoucliqr <zhoujun06@gmail.com>
) * Add support for LXD server and VM composer * Vmhost and lxd initiliser daemon * Fix MAAS client identity to use secret or environment variables and add LXD documentation * Fix make generate command to exclude lxd-initializer directory * Update generate-manifests to include controllers directory for RBAC generation * LXD Support for Controlplane Cluster: - Support for LXD init via daemonset - Launch daemonset from capmaas-controller - Register CP node as LXD host from capmaas-controller * Fix maas profile creation * Code refactoring, commented redundent code for now * Workload cluster and VM creation fix. Code refactoring * Update changes * Code refactor, removed infraclusterref * PCP-5043: remove accidental .netrc and ignore it * Removed WorkloadClusterConfigRef from maas cluster. Refactor code. * Update pkg/maas/machine/machine.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update pkg/maas/machine/machine.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add support for LXD server and VM composer * Vmhost and lxd initiliser daemon * Fix MAAS client identity to use secret or environment variables and add LXD documentation * Fix make generate command to exclude lxd-initializer directory * Update generate-manifests to include controllers directory for RBAC generation * LXD Support for Controlplane Cluster: - Support for LXD init via daemonset - Launch daemonset from capmaas-controller - Register CP node as LXD host from capmaas-controller * Fix maas profile creation * Code refactoring, commented redundent code for now * Workload cluster and VM creation fix. Code refactoring * Update changes * Code refactor, removed infraclusterref * PCP-5043: remove accidental .netrc and ignore it * Removed WorkloadClusterConfigRef from maas cluster. Refactor code. * core global template * Fix vm compose flow. Updated maas-client-go verison * Update machine.go * Fixed pr comment and constants for min resource * Minor comment fix
* PCP-5088: Storage input configuration * PCP-5088: Storage input configuration * PCP-5088: Storage input configuration * Update pkg/maas/machine/machine.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
… bootstrap cluster (#189) * resolved issue that lxd-initializer daemonset is running in bootstrap cluster * keep one APIServerReadinessLabel
…e and lxd-initializer finish running (#188)
* PCP-5124: HCP cluster deletion, Deregister KVM Host * Code refactor added new util functions (#193)
* auto detect resource pool, zone, and storage * restore env var and make build image to use go 1.24 * change to use maas-client-go v0.0.4-beta1 * exclude username for lxd initializer image * adopt image in daemonset yaml * Update lxd-initializer/lxd-initializer.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…ter VMs are still running (#202)
…uster; new LXD VM created on a KVM/LXD host belonging to a different MAAS host-pooling cluster (#215)
* add resourcePool as filter when composing lxd vm * error out when selecting default resource pool
…ne cluster (#228) * PCP-5178: Release LXD VM during the upgrade of the hosted control plane cluster
* PCP-5152: Multiple node HCP cluster losing interface reference * Additional changes (#225) * Additional changes * trust password and code cleanup (#226) * Additional changes * Add gate to registration logic, seperate it to initializer and put grace period. Code cleanup. * Add gate to registration logic, seperate it to initializer and put grace period. Code cleanup. (#234) * Additional changes * Add gate to registration logic, seperate it to initializer and put grace period. Code cleanup. * - Gosec fix - Cleanup daemonset once all host are registered * Additional changes * Use hsotname for lxd registration. Code refactoring. (#240) * Use hsotname for lxd registration. Code refactoring. * merge conflict
…#253) * added number of interfaces check before releasing IP * If IP is already allocated and interface is referenced, we should avoid releasing such IP
…s in host selection (#325)
* PCP-6344: Maas HCP cluster upgrade is stuck * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…nk_subnet (#318) * Fix wrong subnet in use existing VM flow * feat: add AUTO link mode and LinkSubnetWithMode for MAAS link_subnet * fix unit tests * change to use new maas client go * fix pkg/maas/lxd/host_maas_client_test.go * add unit test for resolveLinkMode --------- Co-authored-by: kun zhou <kun.zhou@spectrocloud.com> Co-authored-by: Kun Zhou <156021375+Kun483@users.noreply.github.com>
…api-provider-maas into feat/lxd-hcp
|
@Kun483 These could be blocking issue for clusterctl: --cluster-role is global, not per-cluster This is the core Palette assumption that breaks. --cluster-role is a single process-wide flag So in a standard single-management-cluster clusterctl setup you cannot get HMC (HCP maintenance) and Recommendation: register HMC and VEC unconditionally and have each controller filter the objects it |
|
MAAS credential secret undocumented for clusterctl. Everything reads |
@AmitSahastra , The secret is not something the user creates manually. It ships as part of the provider's infrastructure-components.yaml, sourced from config/default/credentials.yaml. So the real flow is:
|
… README to clarify MAAS credentials handling and added new cluster templates for HCP and LXD. Refactored MAAS client identity retrieval in the codebase for consistency.
What this PR does / why we need it
Type of change
Checklist
make testpasses locally.make lintpasses locally.make verifypasses locally (generated code and formatting are committed).Special notes for reviewers