wanyaoqi e42d360bb5 Automated cherry pick of #24452: Cherry pick of #23094 upstream release 4.0 1770106850 (#24464)
* feat(region, climc): Add kickstart parameters and metadata

- Add kickstart parameters and metadata support
- Add kickstart CLI options and management commands
- Set kickstart metadata in PostCreate
- Add related kickstart metadata fields

* feat(host): Implement automated VM installation

- Mounts the installation ISO to a unique temp path, reusing existing mounts.
- Extracts kernel (`vmlinuz`, `initrd`) to configure QEMU boot.
- Injects kernel parameters to trigger the autoinstall.
- Add kickstart configuration validation.

Modified `guestLauncher` script to handle kernel parameters with spaces
that were previously truncated by the Python script.

* feat(host): Implement Kickstart monitoring

- Automatically updates the VM status upon
receiving `KICKSTART_SUCCESS` or `KICKSTART_FAILED` signals.
- On success, cleans up temporary mount points
and restarts the server via the Region API.

* feat(region): add kickstart type metadata

Adds the `VM_METADATA_KICKSTART_TYPE` to distinguish between
kickstart configurations passed by URL or by direct content.

* feat(host): Handle kickstart installing and timeout

- Set status to 'installing' upon successful kickstart boot
- Handle KICKSTART_INSTALLING serial message for status updates
- Add timeout handling for kickstart status monitoring

* feat(host): provide Kickstart config via content

Embed the provided config content as a file in a
labeled ISO (mkisofs), then mount the ISO during
the Kickstart installation to supply the config.

* refactor(host): Enhance the kickstart installation

- Integrates kickstart status directly into the VM status, replacing metadata.
- Unifies locations for kickstart logs and temporary files.
- Uses regex for more robust status matching.
- Moves helper functions to `kickstart_helper.go`.
- Fixes an incorrect kickstart configuration filename.
- Adjusts kickstart logging.

* feat(region, host): add kickstart support for openEuler

* refactor(host): extract kickstart cleanup function

* feat(region, climc): add kickstart-complete cli

Add this command to manually update the kickstart status and
reboot VM if needed. This is mainly used by users to manually
update the kickstart status when kickstart status detection is abnormal.

* refactor(region): reduce code duplication in Kickstart validation

- unify two validateKickstartConfig functions
- extract determineKickstartType function for type determination

* fix(region, host): fix kickstart auto-reboot

- Adjusted the timing of setting the status to
`kickstart_pending` to avoid incorrect reboot checks
- Skip setting kickstart if the status is already
`kickstart_completed` to prevent unnecessary reboots
- Added cleanup of kickstart files upon VM deletion

* feat(host): download kickstart config from URL

- download content when passing config via URL
- unified boot parameters

* feat(host): copy kickstart kernel files

* feat(host): ensure kickstart completion signal in config

---------

Co-authored-by: happygame <happygame1024@gmail.com>
2026-03-20 01:35:42 +08:00

Cloudpods

CircleCI Go Report Card

English | 简体中文

What is Cloudpods?

Cloudpods

Cloudpods is a cloud-native open source unified multi/hybrid-cloud platform developed with Golang, i.e. Cloudpods is a cloud on clouds. Cloudpods is able to manage not only on-premise KVM/baremetals, but also resources from many cloud accounts across many cloud providers. It hides the differences of underlying cloud providers and exposes one set of APIs that allow programatically interacting with these many clouds.

Who needs Cloudpods?

  • Those who need a simple solution to virtualize a few physical servers into a private cloud
  • Those who need a compact and fully automatic baremetal lift-cycle management solution
  • Those who want to turn a VMware vSphere virtualization cluster into a private cloud
  • Those who need a cohesive view of both public and private cloud in a hybrid cloud setup
  • Those who need a centric portal to access multiple acccounts from multiple public clouds
  • Those who is currently using a single cloud account, but will not lose the possibility to adopt multicloud strategy

Features

See Introduction for details.

Supported cloud providers

  • Public Clouds:
    • AWS
    • Azure
    • Google Cloud Platform
    • Alibaba Cloud
    • Huawei Cloud
    • Tencent Cloud
    • UCloud
    • Ctyun (China Telecom)
    • ECloud (China Mobile)
    • JDCloud
  • Private Clouds:
    • OpenStack
    • ZStack
    • Alibaba Cloud Aspara
    • Huawei HCSO
    • Nutanix
  • On-premise resources:
    • Lightweight private cloud built on KVM
    • VMWare vSphere vCenter/ESXi
    • Baremetals (IPMI, Redfish API)
    • Object storages (Minio, Ceph, XSky)
    • NAS (Ceph)

Supported resources

  • Servers: instances, disks, network interfaces, networks, vpcs, storages, hosts, wires, snapshots, snapshot policies, security groups, elastic IPs, SSH keypairs, images
  • Load Balancers: instances, listeners, backend groups, backends, TLS certificates, ACLs
  • Object Storage: buckets, objects
  • NAS: file_systems, access_groups, mount_targets
  • RDS: instances, accounts, backups, databases, parameters, privileges
  • Elastic Cache: instances, accounts, backups, parameters
  • DNS: DNS zones, DNS records
  • VPC: VPCs, VPC peering, inter-VPC network, NAT gateway, DNAT/SNAT rules, route tables, route entries

Getting started

Please refer to the document Getting Started to select the appropriate scenario for installation.

Documentations

Who is using Cloudpods?

Please check this issue for the user list of Cloudpods. If you are using Cloudpods, you are welcome to leave your information by responding the issue. Thank you for your support.

Contact

Changelog

See Relase Notes and Changelog for details.

Contribution

You are welcome to do any kind of contribution to the project. Please refer to CONTRIBUTING for guidelines.

License

Apache License 2.0. See LICENSE.

AI-generated doc

DeepWiki provides an amazing AI-generated doc of this project, you may refer to it for more detailed and comprehensive understanding of codes.

Description
A cloud-native open-source unified multi-cloud and hybrid-cloud platform. 开源、云原生的多云管理及混合云融合平台
Readme Apache-2.0 259 MiB
Languages
Go 99.6%
Shell 0.3%