silent_period is stored as Frequency on the notification, not on the
alert itself. PostUpdate only called UpdateNotification (which recreates
notifications with the new silent_period) when Channel was non-empty.
When channel was an empty array, the silent_period update was silently
skipped. Add an else-if branch to directly update the existing
notifications' Frequency when silent_period changes but channel is empty.
Add shellQuote helper that safely escapes single quotes and apply it
consistently across tarGzDir and tarHostDir to prevent shell injection
via crafted paths, directory names, or exclude patterns.
* 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>
* feat(llm): init vllm as llm_container
* feat(vllm): fix save-instant-model for vllm
* feat(llm): support quick-model for vllm
* feat(vllm): support preferred-model in llm
* fix(llm): add ValidateSpec in llm_container_driver
* feat(vllm): auto-set vllm params