Compare commits

...

476 Commits

Author SHA1 Message Date
wanyaoqi
d39bf74851 fix(host): guest desc correct rbd disk path (#25394) 2026-08-24 14:36:57 +08:00
wanyaoqi
dff7fdf3ed fix(region,host): host register with correct hostname (#25206)
* fix(region,host): host register with correct hostname

* fix(region): guest migrate reuse create params schedtag
2026-07-28 10:59:19 +08:00
Jian Qiu
06c8d58ef0 fix: allow empty ip on link-local nic (#25199)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-07-22 11:05:07 +08:00
Jian Qiu
ee0522003c fix: lbagent service code typo 20260604 (#24975)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-06-05 01:09:46 +08:00
Jian Qiu
fc361cd558 fix: compatibility issue with vms of empty hypervisor (#24971)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-06-04 15:05:52 +08:00
屈轩
0ae741ddd9 fix(region): purge external project (#24938) 2026-05-31 14:22:48 +08:00
屈轩
cd22014bd4 fix(region): init cloudpods host type (#24937) 2026-05-31 14:22:32 +08:00
Zexi Li
ba3601b846 feat(monitor): add ResourceMetricsDefaultInterval option (#24907) 2026-05-27 11:50:35 +08:00
Jian Qiu
bde5de9ce8 fix: throttle image cache progress callback to avoid download bottleneck (#24899)
When using S3/MinIO backend, the progress callback in AcquireImage was
called synchronously on every 4KB read chunk (via StreamPipe2). Each
call invokes UpdateServerProgress which makes a blocking HTTP PUT to the
compute API (~50ms), capping download speed at ~0.65 Mbps regardless of
available bandwidth.

Fix: throttle the callback to fire at most once every 5 seconds and make
the HTTP call asynchronous (goroutine), matching the behavior of v3.11.x
which used a 1-second ticker with async callbacks.

Fixes #24897

Co-authored-by: Mrliuch <liu15094534492@gmail.com>
2026-05-26 15:09:29 +08:00
屈轩
af9136e080 fix(region): skip useless addition network wire create (#24895) 2026-05-25 19:46:04 +08:00
Zexi Li
acee027365 fix(host): aggregate same-type container devices for env config (#24890)
When multiple NVIDIA GPUs were attached to a container, each device was
passed individually to GetContainerExtraConfigures, producing one
NVIDIA_VISIBLE_DEVICES env per GPU. Duplicate env keys are collapsed by
the runtime to the last value, so the container only saw one GPU even
though the spec listed all of them.

Group RestDevs by DeviceType and invoke GetContainerExtraConfigures
once per type so all GPU UUIDs are joined into a single
NVIDIA_VISIBLE_DEVICES value.
2026-05-25 17:29:42 +08:00
Jian Qiu
cc346ba983 fix: disable s3 direct download default (#24888)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-05-25 10:04:21 +08:00
Zexi Li
4e41809569 fix(region): prefer check_code series for lb backend check_status (#24879) 2026-05-22 14:19:40 +08:00
Jian Qiu
197c91a014 fix: set bridge up after created (#24872)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-05-21 20:28:35 +08:00
wanyaoqi
37f6cd57a4 fix(scheduler): set options ContainerNumaAllocate default true (#24871) 2026-05-21 19:32:23 +08:00
Zexi Li
819f22dd99 feat(hermes): connect vllm/sglang/ollama (#24864)
Co-authored-by: cwz <cwz_eikoh@163.com>
2026-05-21 11:41:39 +08:00
Zexi Li
4432749b7b feat(llm): Implement resumable downloads for models from Hugging Face (#24860)
Co-authored-by: cwz <cwz_eikoh@163.com>
2026-05-21 10:48:56 +08:00
Zexi Li
588e282571 fix(region): ensure lb backend check_status returned when check_code missing (#24857) 2026-05-21 10:34:17 +08:00
wanyaoqi
42b85ba2c7 fix(host): remove cgroup root path check quotation marks (#24853) 2026-05-21 10:33:45 +08:00
Zexi Li
4401be272c fix(region): query metrics from monitor service (#24839) 2026-05-19 18:02:27 +08:00
Zexi Li
827c6b90dd fix(llm): persistent /config dir of hermes agent (#24836) 2026-05-18 14:57:59 +08:00
Zexi Li
3c90e78377 feat(climc): add generic feature-config command (#24831)
Add a generic `feature-config <feature> <on|off>` command alongside the
existing per-feature `feature-config-<name>` commands. A `--force` flag
skips the known-features validation so new features can be toggled
without a code change. Also adds "ai" to the known feature list.
2026-05-18 14:29:04 +08:00
Zexi Li
fd1767cebe feat(llm): support sglang (#24823)
Co-authored-by: cwz <cwz_eikoh@163.com>
2026-05-14 17:08:53 +08:00
Jian Qiu
2d8e88aae7 fix: lbagent keepalived service run may exit (#24806)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-05-13 12:07:54 +08:00
屈轩
d7dc96ac00 fix(region): support stop for change vm config (#24817) 2026-05-12 19:48:09 +08:00
屈轩
d1bbf45990 fix(region): update gp3 disk size (#24812) 2026-05-12 17:27:34 +08:00
Zexi Li
79ab73c980 Automated cherry pick of #24801: Feature(vllm): use entrypint instead of StartLLM (#24802)
* feat(llm): use entrypoint instead of StartLLM

* feat(llm): adapt front-end in comfyui instant-model

---------

Co-authored-by: cwz <cwz_eikoh@163.com>
2026-05-12 10:46:21 +08:00
Zexi Li
680dd5a2dc fix(llm): honor SLLM device override when building container spec (#24800) 2026-05-11 20:06:58 +08:00
wanyaoqi
f63e35af99 fix(host): remove -no-kvm args, -no-kvm argument was a synonym for setting -machine accel=tcg (#24789) 2026-05-11 20:01:14 +08:00
wanyaoqi
505ef9e5bb fix(host): check is cpu hotplug support on guest init (#24787) 2026-05-11 19:59:14 +08:00
Zexi Li
c1abc7570d feat(llm): add SLLM mounted_models override and driver-level validation (#24796) 2026-05-11 17:41:16 +08:00
Zexi Li
c28edb026e feat(monitor): use GET for unifiedmonitors resource-metrics (#24782) 2026-05-08 16:19:35 +08:00
Zexi Li
b5cf4bb575 fix(monitor): dedupe alert trigger condition in notify templates (#24780) 2026-05-07 15:52:51 +08:00
屈轩
c35e95046d fix(region): avoid vm set status start fail when serivce restart (#24777) 2026-05-07 15:22:32 +08:00
Zexi Li
48aa05c5c7 Automated cherry pick of #24760: Feature/comfyui instant model (#24776)
* feat(llm): support cursor

* feat(llm): support import from huggingface

* fix(llm): direction error

* feat(llm): support instant model for comfyui

* feat(llm): support multi file select when save-instant-model

---------

Co-authored-by: cwz <cwz_eikoh@163.com>
2026-05-07 14:43:10 +08:00
wanyaoqi
3c919a5e71 feat(host): mps add container device configuration (#24773) 2026-05-07 10:03:31 +08:00
Jian Qiu
f998448ad1 fix: update vendor for v4.0.3 (#24761)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-05-03 23:22:56 +08:00
Jian Qiu
71648a8e02 fix(host): cpu hotplug compatible with high qemu version (#24762)
Co-authored-by: wanyaoqi <d3lx.yq@gmail.com>
2026-05-03 23:22:31 +08:00
Jian Qiu
ece246f009 fix(host): auto merge backinf file generate disks index (#24763)
Co-authored-by: wanyaoqi <d3lx.yq@gmail.com>
2026-05-03 22:39:11 +08:00
Zexi Li
4eb015e649 fix(monitor): normalize resource-metrics alert_state (#24756)
Treat attach and init as init in PerformResourceMetrics output.
2026-04-30 18:42:01 +08:00
Zexi Li
0005ea8229 fix(monitor): support influxql derivative and difference function translation (#24748) 2026-04-30 13:11:45 +08:00
Jian Qiu
225791f78c fix: init ifb kernel module (#24745)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-04-29 23:48:59 +08:00
wanyaoqi
e9dde8eae6 fix(mcclient,region): add tasks mod, service app options (#24734) 2026-04-29 23:48:06 +08:00
屈轩
5375fff061 fix(region): optimized listener rule list (#24742) 2026-04-29 14:09:29 +08:00
Zexi Li
0f30ccf520 fix(host,llm): fix pod shm mount path return and llm restart memory config (#24737)
- Return shmPath instead of empty string when mountpoint is already
  mounted, so callers get the correct path
- Remove incorrect +1 offset in memory comparison and size formatting
  during LLM restart config change
2026-04-28 19:57:42 +08:00
Zexi Li
a403ad5091 fix(lbagent,monitor): use victoria-metrics for telegraf and fix influxql translation (#24732) 2026-04-27 16:41:55 +08:00
Jian Qiu
b1908b24e3 fix: create redirect lb listener fail (#24725)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-04-27 10:01:19 +08:00
屈轩
acdf623027 fix(region): lb redirect rule create validate (#24729) 2026-04-27 10:00:54 +08:00
wanyaoqi
e42d517b28 chore(host-deployer): update host-deployer-base to 1.5.9 (#24722) 2026-04-26 23:02:59 +08:00
Zexi Li
9be35e4b45 feat(llm): support OpenClaw manual config mode (#24719)
When ManualConfig is enabled, inject OPENCLAW_MANUAL_CONFIG=1 env var
and skip provider/channel credential injection, allowing users to
configure providers and channels themselves inside the desktop.
2026-04-24 11:45:46 +08:00
Zexi Li
67cceae9e2 Automated cherry pick of #24717: Feature/hf-search (#24718)
* llm: add instant-model huggingface query commands

* fix(vllm): use ping instead of health

---------

Co-authored-by: cwz <cwz_eikoh@163.com>
2026-04-24 10:28:34 +08:00
wanyaoqi
52bbe7c9a7 fix(host): usb device passthrough use hostport (#24708) 2026-04-23 13:52:49 +08:00
Jian Qiu
7e5f5cff5e fix: guest change ipaddr no-sync option (#24714)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-04-23 13:52:04 +08:00
Jian Qiu
bb7b50dbc0 fix: handling deleted task object (#24702)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-04-23 10:19:14 +08:00
屈轩
350412009e fix(notify): remove useless code (#24711) 2026-04-21 19:38:04 +08:00
Zexi Li
6372ef9819 refactor(llm): extract shared desktop webtop config (#24699)
Move common desktop/webtop container envs, base spec, rootfs, and login-info parsing
into llm_container helpers and reuse in openclaw and hermes-agent drivers.
2026-04-21 15:04:44 +08:00
Zexi Li
5577aefb22 fix(scheduler): refactor the pending usage logic (#24705) 2026-04-21 15:03:44 +08:00
Matt Gideon
cc1524a71f fix(host): fix isolated device detection regex for PCI and USB devices (#24692) 2026-04-20 14:22:38 +08:00
Zexi Li
23e21c2c16 feat(llm): support hermes-agent (#24696) 2026-04-20 12:47:23 +08:00
Zexi Li
2ee8ae31ad feat(llm): add hostpaths for llm-sku (#24695)
Co-authored-by: cwz <cwz_eikoh@163.com>
2026-04-20 10:51:40 +08:00
屈轩
c119af4b81 fix(region): show associate info (#24688) 2026-04-17 10:10:29 +08:00
Jian Qiu
e129e0477a fix: add version etc. aux handlers to mcp-server (#24686)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-04-17 09:59:56 +08:00
屈轩
c839d38f60 fix(region): vendor update (#24684) 2026-04-16 23:11:21 +08:00
Jian Qiu
54309f95f3 feature: support asymmmetric bandwidth limit (#24679)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-04-16 15:15:43 +08:00
Jian Qiu
ee66577d94 fix: climc container related commands improvements 20260414 (#24672)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-04-15 10:05:45 +08:00
屈轩
5a09e3d5c9 fix(region): sched fail notify (#24677) 2026-04-14 20:13:31 +08:00
屈轩
b55a9a5482 fix(region): disk fail notify (#24674) 2026-04-14 16:28:28 +08:00
Zexi Li
218c973638 fix(llm): harden volume resize and update size log (#24631)
- Wait for disk/desktop status after resize via backup worker
- Centralize volume SizeMB update with resize action log
- Expose vCPU/memory fields in LLM customize columns
2026-04-13 14:38:50 +08:00
Zexi Li
94d2e10f00 feat(climc): support setting rootfs sub_directory 2026-04-13 11:09:52 +08:00
Zexi Li
1b184d3ea7 fix(region): set rootfs default sub_directory (#24666) 2026-04-13 09:59:16 +08:00
屈轩
f8cab462c1 fix(esxi-agent): support esxi vm forder name same with vm name (#24664) 2026-04-13 09:50:48 +08:00
屈轩
255a1fe84f fix(region): support query public cloud vm modification types (#24654) 2026-04-10 16:54:24 +08:00
wanyaoqi
61b5b8b792 fix(region): optimize fetchHostGuestResource (#24633) 2026-04-10 16:53:03 +08:00
Zexi Li
6ccf058d5c fix(host): restart container on exit when AlwaysRestart is set (#24661) 2026-04-10 15:17:11 +08:00
Jian Qiu
258e47056c fix: vpcagent sync inconsistent networkaddress guestnetwork id (#24649)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-04-10 14:44:21 +08:00
屈轩
c568447a61 fix(mcp-server): update mcp docs (#24652) 2026-04-09 20:45:23 +08:00
屈轩
d2aef76bd5 fix(cloudmon): vendor update (#24643) 2026-04-09 16:33:12 +08:00
Jian Qiu
f9ac278ba3 fix: upgrade coredns to v1.10.1 at 4.0 (#24619)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-04-08 16:26:50 +08:00
Jian Qiu
05da992fba fix: undo pr 24532 (#24638)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-04-08 16:25:23 +08:00
wanyaoqi
99bef191f6 feat(host): container add rbd disk support (#24624) 2026-04-08 13:27:46 +08:00
屈轩
3f3c92fa7d fix(region): clean guest network when purge zone (#24627) 2026-04-07 20:55:45 +08:00
屈轩
c0c9ba6d78 fix(region): esxi wire sync (#24617) 2026-04-04 12:17:00 +08:00
Zexi Li
27874cdbeb feat(host): support CTyunOS rootfs (#24612) 2026-04-02 17:47:56 +08:00
屈轩
904ed8dd3a fix(region): vendor update (#24610) 2026-04-02 10:34:51 +08:00
Zexi Li
dffac28e32 feat(llm): get available models from base_url (for ollama & openai) (#24608)
Co-authored-by: cwz <cwz_eikoh@163.com>
2026-04-01 15:44:30 +08:00
Zexi Li
aa17f76589 fix(monitor): update silent_period when channel is empty (#24602)
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.
2026-03-31 20:00:39 +08:00
Jian Qiu
3553263bb6 fix(host): use findmnt instead of df to detect local mount point (#24599)
Co-authored-by: Haibersut <117586514+Haibersut@users.noreply.github.com>
2026-03-31 18:06:40 +08:00
Zexi Li
4f693c4641 feat(monitor): add batch resource metrics query API (#24596)
Add unifiedmonitor class action `resource-metrics` with client options/CLI command.
Implement host/guest metric drivers to query cpu/mem/disk/net rates and attach alert state.
2026-03-31 17:44:35 +08:00
Jian Qiu
11be1de968 fix: support build specific multi-arch buildx (#24588)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-03-31 17:43:09 +08:00
Jian Qiu
e1d108a7f0 fix: add customer usable filters that filter noaddr networks (#24585)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-03-31 17:27:47 +08:00
Zexi Li
ee98c29d9a fix(host): use proper shell quoting in pod tar/find commands (#24592)
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.
2026-03-31 12:04:07 +08:00
Zexi Li
846ba369ac fix(host): get pod status by primary container status (#24581) 2026-03-30 16:21:18 +08:00
wanyaoqi
c61f5113d2 fix(host): add ovmf 4m code (#24575) 2026-03-30 07:54:08 +08:00
Zexi Li
e205da2232 fix(llm): 修复 llm 镜像没有根据 sku 更新的问题 (#24572) 2026-03-26 21:38:21 +08:00
屈轩
225de2334e fix(logger): add syslog init log (#24555) 2026-03-26 18:11:22 +08:00
wanyaoqi
9bb31f4b33 fix(region): validate kickstart enabled (#24558) 2026-03-26 18:09:41 +08:00
Zexi Li
9eaa72993b fix(region): order containers by created_at time (#24567) 2026-03-26 12:16:31 +08:00
Zexi Li
fb8a339cbb fix(keystone): allow blob update for image credentials (#24564)
Also fix type check to allow secret/image only.
2026-03-26 11:41:13 +08:00
屈轩
057e5ebeaa fix(region): add domain container usage (#24562) 2026-03-25 18:26:39 +08:00
Zexi Li
b1f7890324 fix(vllm): user customize args & health check in hostlocal net (#24553)
Co-authored-by: cwz <cwz_eikoh@163.com>
2026-03-25 10:36:46 +08:00
wanyaoqi
c1edcf27fe fix(host): metadata handler proxy telegraf data fix tenant_id (#24544)
* fix(host): metadata handler proxy telegraf data

* fix(host): append unknown dmesg to last entry
2026-03-25 10:34:09 +08:00
Jian Qiu
b45a5f7f9d fix: lbagent genHaproxyConfig possible nil pointer panic (#24537)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-03-25 10:32:41 +08:00
Jian Qiu
d73d3e0108 fix(hostmetrics): add checks for incomplete pod and container stats (#24549)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-03-25 10:31:07 +08:00
屈轩
84bbe1bfc1 fix(region): add container usage (#24542) 2026-03-25 10:23:27 +08:00
屈轩
b9ef8476f2 fix(host-image): update script for riscv64 host-image (#24535) 2026-03-24 11:37:36 +08:00
Zexi Li
7c26ab8db3 fix(host): probing multiple container status (#24529) 2026-03-24 10:27:06 +08:00
wanyaoqi
ab7210c6b6 fix(host): dd zero to lv wife partitions on lvremove (#24525) 2026-03-23 19:02:16 +08:00
wanyaoqi
c4a6c9ff8a fix(host-deployer): resizefs add fstype LVM2_member (#24516) 2026-03-23 00:00:17 +08:00
wanyaoqi
ec315b5516 fix(region): check instance snapshot joint is nil on snapshot purge (#24513) 2026-03-22 23:59:17 +08:00
屈轩
cb266540a1 fix(apigateway): stream download content-type (#24508) 2026-03-20 13:41:40 +08:00
Jian Qiu
64c362f20f feature: support host-local wire (#24497)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-03-20 01:36:42 +08:00
wanyaoqi
603f591ebf Cherry pick of #23094 upstream release 4.0 1770106850 (#24452)
* 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:27 +08:00
wanyaoqi
9142916763 Fix/host deployer nbd driver40 (#24456)
* fix(host-deployer): nbd add concurrency control

* fix(host-deployer,glance): windows image add current version
2026-03-20 01:32:08 +08:00
Zexi Li
ef6241ac9b feat(llm): unify container access url info and login response (#24504) 2026-03-19 23:06:31 +08:00
wanyaoqi
508d4f7713 fix(host-deployer): get resize dev by serial panic (#24446) 2026-03-19 23:03:34 +08:00
cwz_eikoh
e3548b1830 Automated cherry pick of #24471: Feature(mcp): support x-api-key authentication for mcp-server (#24500)
* feat(mcp-server): support base64 ak/sk

* fix(mcp-agent): try to fix route of default-mcp-tools
2026-03-19 15:04:45 +08:00
cwz_eikoh
e3e04ab29d feat(llm): support model import for vllm (#24503) 2026-03-19 15:03:49 +08:00
wanyaoqi
8e83889c9f Automated cherry pick of #24473: fix(glance): cache images to ceph add brand filter (#24479)
* fix(glance): cache images to ceph add brand filter

* fix(region): iso image support default uefi boot mod
2026-03-19 11:45:43 +08:00
Jian Qiu
4314497e88 fix: logger add app-options-show api (#24493)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-03-19 11:43:55 +08:00
屈轩
f5beef50f5 fix(region): allow set disk auto-delete attribute (#24488) 2026-03-19 10:27:57 +08:00
Zexi Li
3e925b6d95 fix(llm): derive openclaw auth password from llm id (#24480) 2026-03-18 19:01:02 +08:00
屈轩
db451719dd fix(region): vendor update (#24485) 2026-03-18 18:52:18 +08:00
wanyaoqi
25fbf463bc fix(baremetal-agent): bm register reuse baseprepare updateBmInfo (#24474) 2026-03-18 10:10:31 +08:00
Zexi Li
bc9c5cf088 fix(monitor): align multi-metric alert conditions in notifications (#24468) 2026-03-17 15:57:19 +08:00
屈轩
5476c43cda fix: add more log info (#24461) 2026-03-17 14:38:57 +08:00
Zexi Li
354e3cd872 feat(llm): add llm_types filters and cleanup dify cli (#24457) 2026-03-16 17:01:36 +08:00
Zexi Li
8c6167bb7b feat(llm): 调整 openclaw 容器与 LLM 基础模型/sku 逻辑 (#24453) 2026-03-16 16:19:40 +08:00
Zexi Li
ace220a0ca fix(llm): mount openclaw home dir (#24449) 2026-03-13 20:38:28 +08:00
屈轩
f1df0e3ac1 fix(region): avoid delete ksyun vm error (#24441) 2026-03-13 15:23:11 +08:00
Jian Qiu
39f3853f3e fix: compat fixes for container host in vm (#24439)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-03-13 13:26:42 +08:00
cwz_eikoh
2c59756f75 Automated cherry pick of #24338: feat(llm): init vllm as llm_container (#24437)
* 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
2026-03-13 11:07:19 +08:00
Zexi Li
6c98f46671 feat(host): rotate container logs (#24432) 2026-03-12 15:14:49 +08:00
Zexi Li
25d1965950 feat(llm): add login-info api (#24429) 2026-03-12 07:20:43 +08:00
wanyaoqi
620814527a fix(region): guestnetworksecgroup list add network info (#24392) 2026-03-11 19:31:46 +08:00
wanyaoqi
c32b6792d9 fix(host): check file exist before copy ovmf vars (#24365) 2026-03-11 19:29:25 +08:00
Zexi Li
88f9b71e53 feat(llm): restart action (#24426) 2026-03-11 19:07:39 +08:00
屈轩
90cc427ad5 fix(cloudmon): update volc api (#24423) 2026-03-11 16:54:44 +08:00
Zexi Li
81d1308ddd openclaw llm agent (#24411)
* support comfyui and openclaw

feat(region,host): support env credential of container

feat(llm): openclaw url

* fix(region): delete server without host_id

* feat(llm): llm spec
2026-03-11 15:21:10 +08:00
屈轩
6b83d6148f fix(monitor): add vm out bandwidth metric (#24417) 2026-03-11 13:49:55 +08:00
屈轩
f2e3713e04 fix(region): vendor update (#24413) 2026-03-11 11:03:18 +08:00
屈轩
86ce69b4a1 fix(region): persistence server status change (#24409) 2026-03-10 15:06:47 +08:00
Zexi Li
804cbbfd45 Automated cherry pick of #24399: feat(llm): polymetric dify with llm (#24405)
* feat(llm): polymetric dify with llm

* fix(llm): drop LLMSpecHolder & fix some bugs

---------

Co-authored-by: cwz <cwz_eikoh@163.com>
2026-03-10 10:23:44 +08:00
Zexi Li
93820a5af4 fix(region): associate eip to pod (#24402) 2026-03-09 15:23:57 +08:00
Zexi Li
6eca607a9b fix(monitor): 仅在 From/To/Interval 为空时设置默认值 (#24395)
setDefaultValue 中 From、To、Interval 改为仅在当前值为空时
才用 inputQuery 覆盖,避免覆盖用户已指定的查询时间范围与间隔
2026-03-06 19:13:10 +08:00
Zexi Li
b7d7a1aa16 fix(host): hard code start index of va gpu 2026-03-05 11:49:02 +08:00
Zexi Li
5b4f6f1f72 feat(host): cgroupv2 implemented for pod (#24116) 2026-03-04 11:21:42 +08:00
cwz_eikoh
64d3842c93 Automated cherry pick of #24355: fix: some bugs in mcp-agent & llm (#24383)
* fix(mcp-agent): encoding issue when simulated streaming

* fix(mcp-agent): use chat-stream in phase tool-choose

* fix(mcp-agent): support reasoning model

* fix(llm): add pre-delete detection

* feat(mcp-agent): add default mcp-agent

* feat(mcp-agent): add default-mcp-tools
2026-03-03 16:08:22 +08:00
cwz_eikoh
6a7904788a Automated cherry pick of #24354: feat(mcp-server): add mcp-server config (#24385)
* feat(mcp-server): add mcp-server config

* fix(mcp-agent): add claude mcp-server-config
2026-03-03 16:06:15 +08:00
屈轩
30cb39af98 fix(esxi-agent): vendor update for rebuild root fail (#24380) 2026-03-03 00:17:06 +08:00
Zexi Li
acb62fc773 feat(monitor): support disable_notify_recovery for commonalert (#24375) 2026-03-02 16:12:49 +08:00
屈轩
9f4f88fc62 fix(region): check bind disk resource (#24372) 2026-03-02 12:02:53 +08:00
屈轩
bcc6800988 fix(region): snapshot size opslog (#24369) 2026-02-28 16:38:29 +08:00
屈轩
520ecda36b fix(region): avoid sync remove disk (#24362) 2026-02-27 15:06:05 +08:00
屈轩
ad4ee389e5 fix(ansibleserver): update telegraf (#24359) 2026-02-27 14:06:40 +08:00
Jian Qiu
0ff2ef0e19 fix: allow uncache deleted image (#24349)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-02-26 23:08:24 +08:00
wanyaoqi
d7b099efa0 fix(host): add guest max mem size options (#24342) 2026-02-26 20:26:41 +08:00
Zexi Li
0096082472 fix(monitor): convert SNodeAlert to SCommonAlert in FetchCustomizeColumns (#24344)
Pass cObjs of type *SCommonAlert to SCommonAlertManager.FetchCustomizeColumns
instead of *SNodeAlert so the parent correctly fetches common alert columns.
2026-02-25 19:31:51 +08:00
Jian Qiu
479e8e1b3a fix: keep climc network-create backward compatibility (#24340)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-02-25 09:03:12 +08:00
屈轩
df2a6d6170 fix(region): avoid account sync cost time abnormal (#24336) 2026-02-24 17:34:02 +08:00
Jian Qiu
b6e11061ef fix: instance snapshot virtual size (#24328)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-02-24 09:23:14 +08:00
Zexi Li
8ce635a36a fix(region): wrong args type on callback function of DiskCreateTask (#24330) 2026-02-13 17:05:22 +08:00
Zexi Li
fbd83ed9b0 fix(host): do not set cached image status to active for TGZ on host (#24324)
TGZ images are unpacked after fetch on host; leave status update to region
StorageCacheImageTask so cachedimage becomes active only in OnCacheSucc.
2026-02-13 10:04:49 +08:00
Jian Qiu
4bb85225b0 fix: ensure s3 client init for s3 storage driver (#24321)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-02-12 10:01:12 +08:00
Zexi Li
e1c2b122b1 feat(region,host): support post overlay uppper config (#24287) 2026-02-11 16:57:04 +08:00
屈轩
5a49aa6a3c fix(yunionconf): policy scope (#24314) 2026-02-11 11:23:51 +08:00
wanyaoqi
3e557a8eb9 fix(host): set dmesg parse failed log level to debug (#24309) 2026-02-11 00:59:35 +08:00
wanyaoqi
39b64b8edd fix(host-deployer): deploy single disk has no disk id (#24304) 2026-02-10 19:35:45 +08:00
wanyaoqi
1b36450a7c fix(host-deployer): online resize loop dev (#24301)
* fix(host-deployer): online resize loop dev

* fix(host-deployer): update host-deployer-base
2026-02-10 17:07:51 +08:00
Zexi Li
11ca895482 feat(monitor): support alert reason notification (#24290)
* feat(monitor): support alert reason notification

* fix(climc): commonalert list options
2026-02-10 09:06:24 +08:00
Jian Qiu
48b438d37b fix: guest syncstatus subtask for disk create task (#24292)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-02-10 09:03:19 +08:00
屈轩
99e582286c fix(notify): notify receiver (#24297) 2026-02-09 20:42:39 +08:00
Jian Qiu
42da4e038c fix: remove parent task info from task context (#24283)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-02-09 13:22:02 +08:00
wanyaoqi
33b60e4bc6 fix(host): add device_id only scsi-hd device (#24279) 2026-02-09 11:26:45 +08:00
wanyaoqi
7cc035a767 fix(host): deploy nics config defore do add nics (#24276) 2026-02-09 08:38:35 +08:00
Jian Qiu
f84b8f1a65 fix: unify lb charge type (#24272)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-02-08 18:43:14 +08:00
Jian Qiu
1659268809 feature: support postpaid traffic metering (#24269)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-02-08 12:57:45 +08:00
wanyaoqi
73f71776de feat(region,host,vpcagent): allow guest network dedicate secgroups (#24261) 2026-02-07 17:31:44 +08:00
wanyaoqi
cebeaae9d0 fix(region,host): rbd snapshot get actual size (#24240)
- add host down and auto migrate notification
2026-02-07 17:30:54 +08:00
屈轩
8b3b1a0ab6 fix(region): vendor update (#24265) 2026-02-07 13:52:06 +08:00
wanyaoqi
1479e5da3e fix(region,host): rename screen dump info structure (#24258) 2026-02-06 18:08:50 +08:00
cwz_eikoh
0b229dc00a fix(llm): add handler in apigateway for mcp-agent-chat (#24254) 2026-02-05 18:16:46 +08:00
屈轩
60da86e645 fix(region): snapshot policy operation (#24249) 2026-02-05 16:40:33 +08:00
wanyaoqi
987fca770c fix(glance): set s3 bucket name before s3 init check (#24237) 2026-02-04 23:07:33 +08:00
屈轩
ee161f21b0 fix(yunionconf): support tags (#24231) 2026-02-04 17:13:59 +08:00
屈轩
1d898e52a7 fix(region): public cloud sku create (#24226) 2026-02-04 14:56:55 +08:00
屈轩
873006650f fix(region): support cloudpods vm disk driver (#24221) 2026-02-04 14:28:09 +08:00
Zexi Li
24dda38605 fix(region,climc): persist netinterface vlan_id to hostnetwork (#24213)
- climc: add VlanId to host-add-netif, host-remove-netif, host-enable-netif,
  host-disable-netif
- region: set bn.VlanId from netif.VlanId when attaching to network
- mcclient: include Vlan_ID in baremetalnetworks list columns
2026-02-04 11:03:12 +08:00
屈轩
cc3a74b2f9 fix(host): support skip check kernel mod (#24218) 2026-02-04 10:30:02 +08:00
屈轩
522ca973f2 fix(region): avoid duplicate check when update account aksk (#24209) 2026-02-03 20:53:12 +08:00
Zexi Li
3e982a7438 Automated cherry pick of #24194: Fix(llm): some mistakes, use CmpId & InstantModelId insteadof SvrId & ModelId (#24205)
* fix(llm): some mistakes

* fix(llm): use CmpId instead of SvrId

* fix(llm): instant_model use id instead of modelId

---------

Co-authored-by: cwz <cwz_eikoh@163.com>
2026-02-03 16:46:07 +08:00
Zexi Li
05bb19c5a6 fix(monitor): comparator string (#24202) 2026-02-03 12:01:41 +08:00
屈轩
9489b6baa4 fix(region): init snapshot policy disk table (#24198) 2026-02-02 20:38:49 +08:00
wanyaoqi
e86609c969 fix(host): guestnetworksync do nothing on detach vfio nic (#24178) 2026-02-02 20:18:05 +08:00
Jian Qiu
8e1c23ec2e fix: allow guestnetwork ip4 addr field nullable (#24191)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-02-02 20:16:29 +08:00
Zexi Li
6b68d880c7 feat(monitor): add the registered model manger function (#24153) 2026-02-02 17:50:46 +08:00
屈轩
3f0c52be68 fix(climc): sku create support arch (#24186) 2026-02-02 14:17:08 +08:00
屈轩
9204340b38 fix(notify): support webhook sign (#24182) 2026-02-02 12:53:55 +08:00
wanyaoqi
c005337eed Automated cherry pick of #24126: feat(region,host): riscv64 cpu arch support (#24174)
* feat(region,host): riscv64 cpu arch support

* fix(region,host): compatible riscv64

* fix(host): add qemu v10.0.7 support
2026-02-01 20:27:12 +08:00
wanyaoqi
7d4245c677 fix(host): live migrate add timeout (#24162) 2026-02-01 20:24:00 +08:00
wanyaoqi
5341c97ccf fix(region): server add set network num queues (#24166) 2026-02-01 20:12:39 +08:00
wanyaoqi
a1bfcc1d9f fix(glance): set glance s3 bucket name default onecloud-images (#24171) 2026-02-01 20:10:57 +08:00
屈轩
e1730556e1 fix(region): defer ctx cancel (#24156) 2026-01-30 19:11:58 +08:00
cwz_eikoh
f2cc3f0c18 Automated cherry pick of #24149: Fix(llm): fix bugs & apikey encrypt & support history for mcp-agent-chat & delete modelname in llmSku (#24150)
* fix(llm): mcp-agent apiKey encrypt

* fix(llm): error-handle when instant-model import

* feature(llm): add get-available-network for llm

* feature(llm): support history for mcp-agent-chat

* fix(llm): llm create with net instead of networktype & networkid

* fix(llm): delete modelName in llmSku & fix some bugs
2026-01-29 10:50:11 +08:00
wanyaoqi
cd755ba02b fix(region): have agent add check is telegraf deployed (#24145) 2026-01-29 10:34:13 +08:00
屈轩
86ffcde03a fix(region): billing resource create time (#24140) 2026-01-28 19:59:48 +08:00
屈轩
fa08f8fd8f fix(glance): support prob iso image (#24133) 2026-01-28 15:28:56 +08:00
Zexi Li
7f54e038c0 fix(llm): add community-registry api (#24130) 2026-01-28 14:30:43 +08:00
Jian Qiu
d83585f158 fix: skip baremetal-agent riscv64 (#24123)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-01-24 20:33:16 +08:00
屈轩
855afe6dc5 fix(region): vendor update (#24118) 2026-01-23 17:03:32 +08:00
屈轩
784efcf211 fix(region): cloudpods container sync (#24113) 2026-01-21 15:33:40 +08:00
Jian Qiu
0cbdf68df3 fix: notify receiver update precedure recode (#24100)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-01-20 00:16:06 +08:00
wanyaoqi
28bbdd3061 fix(host): ensure scsi pci addr on add scsi disk (#24097) 2026-01-19 20:16:30 +08:00
cwz_eikoh
8c20fb7e3d Automated cherry pick of #23906: feature(llm): adapt frontend (#24095)
* feature(llm): add llm-list details, add autostart for llm-save-instant-model

* fix(llm): adjust some interfaces

* fix: name-dup problem when create llm

* fix: install instant-model by id rather than modelID

* fix(llm): add llm_id for mcp-agent

* feature(llm): move network from sku to instance

* feature(llm): add LLMType for llm-image

* feature(llm): add gpuMemoryRequired & ollama-registry yaml

* feature(llm): add url-get interface

* feature(llm): support mcp in mcp-agent-chat

* fix(llm): abstract ollama registry
2026-01-19 18:06:18 +08:00
屈轩
5904eaf042 fix(region): vendor update (#24092) 2026-01-19 14:21:46 +08:00
Jian Qiu
378177ad2f fix: user filter revisit (#24089)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-01-19 10:51:20 +08:00
Zexi Li
86a6a816af fix(telegraf-raid-plugin): working for victoria metrics (#24085) 2026-01-15 17:20:39 +08:00
Jian Qiu
a321c89e5f fix: detailed apigateway auth failure log (#24077)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-01-15 10:13:28 +08:00
Zexi Li
dd76886d51 fix(host): compatible with telegraf 1.36 and add ipmi_sensor conf (#24082)
* fix(host): compatible with telegraf 1.36 and add ipmi_sensor conf

* feat(monitor): add ipmi_sensor metric
2026-01-15 10:06:58 +08:00
屈轩
29809ce265 fix(region): vendor update (#24080) 2026-01-14 14:05:28 +08:00
屈轩
eb33cdbe4a fix(glance): avoid context warnning (#24074) 2026-01-14 10:54:52 +08:00
屈轩
cfde0396c3 fix(region): avoid panic when update user resource (#24071) 2026-01-13 18:20:57 +08:00
屈轩
a640fb3d60 fix(common): skip octet-stream warnning (#24068) 2026-01-13 18:20:35 +08:00
Zexi Li
f1f66fbed1 feat(monitor): delta reducer (#24063) 2026-01-12 17:27:32 +08:00
屈轩
35649ce641 fix(region): remove useless mod (#24061) 2026-01-12 14:12:19 +08:00
cwz_eikoh
0ff02020e7 Automated cherry pick of #24025: feature(llm): add mcp-agent (#24026)
* feature(llm): add mcp-agent

* feature(llm): support openai in llm_client

* feature(llm): chat-stream demo
2026-01-12 10:46:06 +08:00
屈轩
e1e91c0248 fix(region): host schedtag sync (#24056) 2026-01-11 18:33:44 +08:00
屈轩
f9c73f53c3 fix(region): allow batch resize disk (#24050) 2026-01-09 14:04:52 +08:00
Zexi Li
7bd4869998 fix(monitor): top query of monitor_resource_alert (#24052) 2026-01-09 12:10:17 +08:00
屈轩
97becd57ba fix(monitor): optimized common alert list (#24043) 2026-01-09 10:09:53 +08:00
wanyaoqi
399bfcb2e2 fix(host): add query id on detect qemu machine info (#24046) 2026-01-09 08:24:42 +08:00
屈轩
3eba59982c fix(monitor): optimized monitor resource list (#24039) 2026-01-08 15:23:28 +08:00
屈轩
5e50483cbc fix(region): support order by snapshot (#24036) 2026-01-08 11:14:00 +08:00
Zexi Li
317497d6c2 fix(monitor): resource id deduplication of alert record (#24032) 2026-01-07 11:15:51 +08:00
屈轩
e7dee4e9a0 fix(monitor): show alert count (#24028) 2026-01-07 10:03:13 +08:00
Zexi Li
2a82c99942 feat(host): mount post overlay layers by shortest path order (#24012)
* fix(host): mount and umount order for post overlay

- support host_lower_map for post overlay image

* feat(host): tar dirs of pod with include patterns
2026-01-06 20:02:58 +08:00
Zexi Li
35b17d1d7c fix(monitor): fill resource ids of the cloud account (#24029) 2026-01-06 19:44:18 +08:00
wanyaoqi
518f81ba69 fix(region): guest batch create isolated devices add host lock (#24013) 2026-01-06 18:10:49 +08:00
Jian Qiu
8fb0236de5 fix: endpoint mode slave (#24023)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2026-01-06 18:05:27 +08:00
屈轩
c1cd91e01c fix(region): show pretty error (#24021) 2026-01-06 10:29:39 +08:00
屈轩
27500ca14e fix(cloudmon): optimized account balance metric collect (#24011) 2025-12-30 19:56:59 +08:00
屈轩
ec0d44e1bc fix(region): add billing resource check (#24008) 2025-12-30 18:47:27 +08:00
cwz_eikoh
0137096ba8 feature(mcp-server): add InitAuth & userCred (#24006) 2025-12-30 10:36:53 +08:00
wanyaoqi
6c66130f16 fix(region,host,host-deployer): add win11 tpm support (#23951) 2025-12-29 11:18:46 +08:00
wanyaoqi
cb155ebcbb fix(scheduler): correct mem_free = (mem_total - mem_reserved) * mem_cmtbound (#23983) 2025-12-29 11:17:38 +08:00
wanyaoqi
89c836518b fix(climc): host set memory commit bound incorrect params (#23974) 2025-12-29 11:02:19 +08:00
wanyaoqi
62ab0616ff fix(glance): image disk_format use String2ImageFormat (#23990) 2025-12-29 11:01:01 +08:00
Jian Qiu
572d83f146 fix: change OutOfResource http status code to 507 (#23987)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-12-29 10:59:10 +08:00
屈轩
e2bd696ac6 fix(monitor): alert filter by owner (#24001) 2025-12-29 10:15:45 +08:00
屈轩
faeb5685be fix(region): show host cpu and mem usage (#23998) 2025-12-25 21:58:00 +08:00
屈轩
49088da817 fix(region): ksyun create vm params (#23996) 2025-12-25 10:32:40 +08:00
屈轩
dd5dc038cd fix(region): vendor update (#23994) 2025-12-24 19:45:10 +08:00
屈轩
b8e70e1142 fix(region): update private cloud host cpu and mem usage by cloudmon (#23984) 2025-12-24 19:21:21 +08:00
Zexi Li
29dc02f484 fix(host): make disk mount point shared for unshared post overlay (#23980) 2025-12-24 15:33:31 +08:00
屈轩
4dd9e26225 fix(region): show guest nic index (#23958) 2025-12-24 11:33:36 +08:00
Zexi Li
17882cca3f fix(host): quote include paths when before executing tar (#23969) 2025-12-23 18:11:57 +08:00
Jian Qiu
d0383ff1ab feature: assume user login support (#23963)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-12-23 13:54:23 +08:00
Zexi Li
3293def16a feat(host): add debug info when restoring backup to disk (#23962) 2025-12-23 12:02:49 +08:00
wanyaoqi
e20f46f7ed Automated cherry pick of #23930: Automated cherry pick of #23725: feat(baremetal-agent): Linux PCIE disk support mdadm soft raid (#23931)
* feat(baremetal-agent): Linux PCIE disk support mdadm soft raid

* fix(baremeta-agent): soft raid support intel imsm

* fix: update baremetal-agent base
2025-12-22 13:29:25 +08:00
wanyaoqi
a8e8641c75 fix(scheduler,host): sort numa node by numa distance check memsize (#23922) 2025-12-22 11:43:51 +08:00
wanyaoqi
2085d9dfa5 fix(region): guest usage by arch (#23955) 2025-12-22 11:42:48 +08:00
Jian Qiu
2c45df0895 fix: host compat with ovs in container (#23945)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-12-22 11:41:01 +08:00
Jian Qiu
5a15d84685 fix: host flush addrs instead of reset interface (#23948)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-12-18 01:14:39 +08:00
屈轩
3e49aac8f6 fix(region): cloudpods pod (#23946) 2025-12-17 16:29:00 +08:00
cwz_eikoh
09b5ecbce0 Automated cherry pick of #23928: feature(llm): add llm-instant-model-import (#23929)
* feature(llm): add llm-instant-model-import

* fix(llm): can't delete llm while deploy faile

* feature(llm): add instant-model-import to instant-model-create
2025-12-17 13:34:07 +08:00
屈轩
8554c93b0f fix(region): disable sync schedtags (#23942) 2025-12-16 20:40:55 +08:00
屈轩
6b6147777c fix(region): disable cloudpods auto create project (#23937) 2025-12-15 15:51:38 +08:00
屈轩
ddcd72716c fix(region): add provider info for sync log (#23932) 2025-12-15 13:47:19 +08:00
Zexi Li
67d743296d fix(monitor): meter alert panic (#23920) 2025-12-12 10:20:13 +08:00
屈轩
4fbe43192d fix(region): aliyun system disk size (#23926) 2025-12-12 10:19:34 +08:00
Jian Qiu
16f15ac0fc fix: backup storage edit external url (#23916)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-12-09 19:43:54 +08:00
Jian Qiu
eca000b52e fix: splitable not function due to empty datefield (#23908)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-12-09 13:34:26 +08:00
屈轩
3a2ab9e73d fix(region): vendor update (#23904) 2025-12-07 16:00:55 +08:00
屈轩
7a5a2c549a fix(region): baidu storage info (#23902) 2025-12-05 16:20:46 +08:00
cwz_eikoh
9ac509e55b Automated cherry pick of #23898: Feature/pre quick model (#23899)
* feat: add preinstall for quick-models

* fix: drop error when duplicate blobs
2025-12-05 10:33:55 +08:00
Zexi Li
4ca1fbfda5 fix(host): ensure a single file dir when mounting (#23896) 2025-12-04 13:54:08 +08:00
cwz_eikoh
80287d6b4d Automated cherry pick of #23769: [Feature] llm model 使用 post_overlay 功能实现秒装挂载模型 (#23888)
* feat(llm): add probed-package

* feat(llm): add llm-save-instant-app

* feat(llm): add some llm-instant-app options

* fix(llm): change app to model

* fix(llm): rename origin model to sku

* feat(llm): add llm-quick-models

* fix(llm): saved paths for instant model

* fix(llm): fix quick-install-model

---------

Co-authored-by: Zexi Li <zexi.li@icloud.com>
2025-12-03 16:27:19 +08:00
Zexi Li
7015962121 fix(monitor): filter baremetal host for no data query (#23893) 2025-12-03 16:24:35 +08:00
Zexi Li
1a87bb18c9 fix(apigateway): load llm (#23886) 2025-12-03 16:21:04 +08:00
屈轩
af85cca1d6 fix(region): optimized backend sync (#23890) 2025-12-03 15:14:17 +08:00
屈轩
8d9740f149 fix(region): aliyun vnc addr (#23884) 2025-12-03 14:04:16 +08:00
Zexi Li
2dd1d6fc26 fix(host): remove empty files used bind mount (#23881) 2025-12-02 19:34:00 +08:00
wanyaoqi
ce338f180a fix(host,host-deployer): host-deployer add password quality check (#23875) 2025-12-02 17:02:34 +08:00
Zexi Li
6869eca040 feat(monitor): 支持指定过去时间段返回报警资源最多的top5监控策略 (#23878)
* feat(monitor): 支持指定过去时间段返回报警资源最多的top5监控策略

* feat(monitor): 支持指定过去时间段返回报警数量最多的top5资源

* feat(monitor): 支持指定过去时间段某监控策略下各监控指标报警资源最多的top5资源

* feat(monitor): 支持获取过去时间段各项目下报警资源数量
2025-12-02 15:47:54 +08:00
屈轩
4666b00bda fix: update host-deploy base image (#23871) 2025-12-01 11:41:13 +08:00
屈轩
154673e6a3 fix(region): vendor update (#23868) 2025-11-30 17:22:22 +08:00
Zexi Li
0cd633046f fix(monitor): filter alertrecords by alert_name and res_name (#23864) 2025-11-28 18:58:24 +08:00
屈轩
f0980d7817 fix(region): vendor update (#23859) 2025-11-27 20:35:44 +08:00
wanyaoqi
2b0a7ac265 Automated cherry pick of #23846: Fix/host misc fix (#23847)
* fix(host): host register return wrong error value

* fix(host): host handlers use gotypes check ret value is nil
2025-11-27 19:19:31 +08:00
Zexi Li
79166f9aaa fix(monitor): alert shield is not working (#23861) 2025-11-27 19:18:37 +08:00
屈轩
0ec78aaa8a fix(keystone): change token AuditIds width (#23851) 2025-11-27 17:19:37 +08:00
Zexi Li
8622137834 fix(monitor): threshold_range message (#23855) 2025-11-27 16:47:24 +08:00
Zexi Li
4a7b6af08a feat(monitor): support threashold range (#23849) 2025-11-27 14:59:55 +08:00
Zexi Li
41ba24f4b5 feat(climc): support --ouput option for pprof command (#23840) 2025-11-27 14:18:35 +08:00
屈轩
11dc0d46a2 fix(region): vendor update (#23844) 2025-11-26 16:57:01 +08:00
Jian Qiu
fbdf305ff5 fix: generic guest delete task (#23837)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-11-26 01:01:11 +08:00
wanyaoqi
2d30cb862f fix(region,host): perform screendump no save to s3 (#23827) 2025-11-26 01:00:38 +08:00
wanyaoqi
c712a848a5 fix(region): disk take snapshot check backing snapshot is merged (#23833) 2025-11-26 00:59:14 +08:00
屈轩
01c97c0df6 fix(region): support vmware resource pool (#23829) 2025-11-25 19:07:32 +08:00
Zexi Li
c3f9b88faa feat(monitor): get records of monitor_resource_alert (#23822) 2025-11-24 21:34:20 +08:00
屈轩
a49e7437bd fix(region): vendor update (#23820) 2025-11-24 14:20:51 +08:00
Jian Qiu
491cde2257 fix: validate policy role delete condition (#23813)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-11-21 12:04:20 +08:00
Zexi Li
b28bdf43e4 fix(monitor): alerting level (#23800) 2025-11-21 10:26:41 +08:00
Jian Qiu
4afbf46da1 fix: region-dns not support dameng dialect (#23805)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-11-21 09:55:20 +08:00
屈轩
6a0c361ea3 fix(region): snapshot policy resource purge (#23807) 2025-11-20 23:42:22 +08:00
Zexi Li
80b5a7c04a fix(monitor): title of notification by language context (#23788) 2025-11-20 20:11:34 +08:00
屈轩
729a523260 fix(monitor): avoid panic (#23795) 2025-11-20 18:43:12 +08:00
屈轩
3e7c73677e fix(host): format sLsusbTree field content json tag (#23791)
Co-authored-by: 云原生驿站 <33771248+CloudCourierStation@users.noreply.github.com>
2025-11-20 18:26:16 +08:00
Zexi Li
f12c22e7b6 fix(monitor): check if LastSendNotification is zero (#23781) 2025-11-20 18:03:45 +08:00
屈轩
2fee1b6aea fix(region): migrate snapshot policy resource (#23789) 2025-11-20 17:38:15 +08:00
屈轩
32d4820a63 fix(cloudmon): account balance metric with tenant_id (#23785) 2025-11-20 14:22:28 +08:00
屈轩
15c7a825bf fix(cloudmon): avoid undetected new resources (#23778) 2025-11-20 10:48:36 +08:00
Zexi Li
985995c684 fix(baremetal-agent): msdos typo in grub configuration (#23775) 2025-11-20 10:39:09 +08:00
屈轩
52f2d801c1 fix: support build rpm/deb of riscv64 (#23771)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-11-19 17:39:54 +08:00
屈轩
a0f9484770 fix: support risc-v (#23770) 2025-11-19 17:20:26 +08:00
Jian Qiu
19b0997ab6 fix: diskbackup fail to syncstatus on offline backend (#23765)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-11-19 10:48:51 +08:00
Jian Qiu
6274e21053 fix: export/import disk backup (#23760)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-11-18 23:49:39 +08:00
Zexi Li
3ba6c1b3ff fix(host): use directory of single file as post_overlay lower (#23756) 2025-11-18 16:34:48 +08:00
Zexi Li
9099f682fb feat(monitor): set alert_channel to metata (#23754) 2025-11-18 12:52:37 +08:00
屈轩
a0d28c214f fix(region): esxi vm folder (#23752) 2025-11-17 18:14:02 +08:00
屈轩
fccf389a53 fix(region): server sku create status (#23749) 2025-11-17 17:01:08 +08:00
wanyaoqi
8a68f5d7d4 feat(region,host): host dmesg collect (#23746) 2025-11-17 15:44:42 +08:00
Jian Qiu
51fddda1bd fix: filter schedtags by zones (#23743)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-11-15 18:30:33 +08:00
Jian Qiu
65e0f4414e feature: user expired_at attribute support (#23727)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-11-14 10:53:39 +08:00
Zexi Li
c33dc74019 feat(cloudcommon): add ExtraHook steps to joint model (#23722) 2025-11-14 10:50:39 +08:00
wanyaoqi
705fe7a5d9 fix(host): thrown errors on disk fromatfs (#23729) 2025-11-14 10:40:49 +08:00
Zexi Li
91617dc81b fix(host): SHostPingTask was stuck by calling docker command (#23732) 2025-11-13 20:18:55 +08:00
屈轩
f668f496dc fix(region): scope resource (#23736) 2025-11-13 14:43:45 +08:00
屈轩
69831485a3 feat: Cloudpods basic service image RISC-V support (#23724)
This patch enables cloudpos basic service image to be built on RISC-V
platforms and support build script to work on RISC-V platforms.

Signed-off-by: Jinyu Zhao <1813479822@qq.com>
Co-authored-by: Jinyu Zhao <1813479822@qq.com>
2025-11-12 11:44:05 +08:00
cwz_eikoh
8d4595be87 fix(region): add kvm_delete_task (#23698) 2025-11-11 16:32:33 +08:00
wanyaoqi
fcb72e304b fix(region,scheduler): check is BIOS boot request on uefi predicate (#23718) 2025-11-11 13:45:18 +08:00
Zexi Li
30b7deb9f5 fix(baremetal): power status of server is not synced (#23687) 2025-11-10 09:56:29 +08:00
Jian Qiu
a191da0a77 fix: log change bandwidth event (#23713)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-11-10 09:48:40 +08:00
Jian Qiu
dfbd89c9db fix: vm nic charge type support (#23703)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-11-07 10:53:04 +08:00
cwz_eikoh
f53caeb6d1 fix(region): add finish for DependencyTopoGraph (#23710) 2025-11-07 10:20:31 +08:00
cwz_eikoh
bf4f1755c8 fix(llm): don't rely on polling (#23709) 2025-11-07 10:19:37 +08:00
Zexi Li
9bb6e3eb1b fix(host): clear previous usage metrics when any container stopped of pod (#23704) 2025-11-06 20:55:43 +08:00
屈轩
33938c6c01 fix(torrent): vendor update for support risc-v (#23701) 2025-11-06 20:21:14 +08:00
屈轩
4f1bb2a871 fix(region): allow delete server sku (#23694) 2025-11-05 18:20:20 +08:00
屈轩
7abcd04f16 fix(region): add device for disk (#23691) 2025-11-05 16:23:29 +08:00
屈轩
2cae726280 fix(scheduler): sku predicate with empty zone id (#23685) 2025-11-04 20:56:34 +08:00
Zexi Li
16aa081789 fix(baremetal-agent): chose root disk by pci path (#23681) 2025-11-04 20:09:39 +08:00
Jian Qiu
45de538d15 fix: rename check when change project (#23677)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-11-04 16:08:09 +08:00
cwz_eikoh
a05b793b81 feat(region): pod containers start in dependency order (#23669) 2025-11-04 10:38:33 +08:00
屈轩
7df775f07c fix(region): optimized aws server sku sync (#23674) 2025-11-03 22:32:17 +08:00
屈轩
ec3c9f3a20 fix(region): metadata filter by value (#23671) 2025-11-03 19:24:33 +08:00
Zexi Li
e2e79cd7cc fix(host): upload container status when not created (#23666) 2025-11-03 15:53:44 +08:00
屈轩
68675541ff fix(region): optimzed server sku sync (#23663) 2025-11-03 15:13:45 +08:00
屈轩
9ee0e83747 fix(region): disk filter by server (#23659) 2025-11-01 13:32:27 +08:00
屈轩
4068843773 fix(region): optimized filter sku by zone (#23656) 2025-11-01 13:04:49 +08:00
屈轩
c4b719628b fix(region): vendor update (#23653) 2025-11-01 13:03:59 +08:00
cwz_eikoh
66afa2f141 Automated cherry pick of #23620: feat(llm): add network id and network type for llm-model (#23621)
* feat(llm): add network id and network type for llm-model

* fix(llm):portmapping of model network only works when network mode is hostlocal
2025-10-31 10:21:51 +08:00
Zexi Li
51bdf0c655 Automated cherry pick of #23642: fix(scheduler): enable profiling (#23647)
* fix(scheduler): enable profiling

* feat(scheduler): cache NetworkAdditionalWire
2025-10-31 10:19:50 +08:00
屈轩
5fc5c5b330 fix(region): sku cpu mem sync (#23649) 2025-10-30 22:33:39 +08:00
屈轩
1c61483bc1 fix(region): filter disks by server list (#23644) 2025-10-30 17:24:41 +08:00
屈轩
79c45568c7 fix(region): vendor update (#23639) 2025-10-30 10:06:23 +08:00
Zexi Li
002b37f6a1 fix(host): move the hostInstance.Init() step after InitAuth (#23624) 2025-10-29 14:00:33 +08:00
Jian Qiu
6a18b70168 fix: task remote notify (#23627)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-10-29 12:17:27 +08:00
屈轩
bbf0991bb3 fix(cmd): show mcp server update cmd (#23629) 2025-10-28 18:35:01 +08:00
屈轩
1052eb4451 fix(mcp): add dockerfile for mcp server (#23619) 2025-10-28 15:23:20 +08:00
屈轩
07ce88c828 fix(mcp): cherry pick 4.0 (#23617) 2025-10-28 15:22:48 +08:00
屈轩
29585a8af6 fix(region): set ksyun tag (#23611) 2025-10-24 22:54:09 +08:00
Zexi Li
06258859d8 chore(ci): turn off goimports-check rule (#23606) 2025-10-24 15:48:44 +08:00
Zexi Li
2bbd1f792c Automated cherry pick of #23282: [OSPP]feature: Auto deploy llm and dify (#23601)
* feat(llm): add llm-create

* fix(llm): fix llm-create, add llm-list & llm-show

* fix(llm): format file names

* fear(llm): add exec stream

* fear(llm): init llm model cache

* fix(llm): move llm model cache to LocalImageCache

* feat(llm): auto clean model cache

* fix(llm): auto clean tmp model cache

* feat(dify): init dify-create

* fix(dify): change dify default registry

* feat: support create model with gguf file

* feat(llm): support more modelfile option for gguf file

* feat(dify): init user customize dify parameters

* feat: update llm as a service in climc

* fix: delete llm from region service

* feat: init llm service (with error)

* fix: resolve errors (task cant callback yet)

* feat: add PerformRequestHostActionByOtherService for container

* fix: make llm service usable

* feat: delete llm and dify after guest deleted

* feat(llm): add llm-image

* feat(llm): add llm-model

* feat: mv old llm to ollama

* feat(llm): init llm-batch-create(can not run)

* fix(llm): make llm-create usable

* fix(llm): add pull-model step

* feat(llm): add list and delete

* fix(llm): ollama pull official model don't rely on host & region's code any more

* feat(llm): add dify-model

* fix: remove llm's code in host & compute

* fix: remove remain code in compute

* feat(llm): Abstract out and reuse the llm_model logic

* feat(llm): abstract llm_base from llm

* fix(llm): make dify usable

* feat(llm): add sync_dify_images.sh

* fix(llm): format import

* feat(llm): support start & stop for llm and dify

* feat(llm): add model-update

* fix(llm): gendocgo

---------

Co-authored-by: cwz <cwz_eikoh@163.com>
2025-10-24 13:29:40 +08:00
Jian Qiu
56b41893ec fix: rpm/deb support postinst/preinst/prerm/postrm hooks (#23596)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-10-23 01:03:18 +08:00
Jian Qiu
cb0729f672 fix: suport bulding multi-arch rpm deb (#23570)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-10-22 23:53:16 +08:00
屈轩
e6ec61cab1 fix(keystone): fetch domain user count (#23591) 2025-10-22 16:25:54 +08:00
wanyaoqi
35e34f019a fix(region,host,scheduler): add check kvm cpu max on cpu predicate (#23538) 2025-10-22 15:07:22 +08:00
Zexi Li
b352d0cc92 feat(region,host): support nvidia GPU CDI configuration (#23566) 2025-10-22 15:04:08 +08:00
cwz_eikoh
56e938ee2e feat(container): container-restart (#23588) 2025-10-22 14:59:49 +08:00
屈轩
a9649db617 fix(region): support ocean base (#23587) 2025-10-22 14:43:32 +08:00
屈轩
b1ef423c2a fix(region): disable cloudprovider when sync lost (#23582) 2025-10-22 11:30:23 +08:00
屈轩
8da753833d fix(region): vendor update (#23579) 2025-10-22 11:12:17 +08:00
Zexi Li
16b3d220f4 feat(region): allow containers to be created with auto_start param (#23572) 2025-10-21 17:20:52 +08:00
屈轩
dc5884b361 fix(region): adjust the ip_addr character length (#23563) 2025-10-21 10:45:11 +08:00
Jian Qiu
77c471322a fix: container memory.high ratio support (#23558)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-10-21 09:32:57 +08:00
屈轩
584b3291cd fix(glance): add notify for image create (#23553) 2025-10-16 14:30:48 +08:00
wanyaoqi
f5a6465629 fix(webconsole): baremteasl ipmi sol instance_name hide password (#23533) 2025-10-16 00:02:42 +08:00
wanyaoqi
de05e8cc4a fix(host): host probe isoalted device return jsonarray (#23544) 2025-10-16 00:01:36 +08:00
屈轩
a839607802 fix(region): valid essd pl0 disk resize (#23546) 2025-10-15 17:25:06 +08:00
屈轩
6251e28e52 fix(region): vendor update (#23540) 2025-10-15 10:57:52 +08:00
屈轩
3591e9a15f fix(region): support change storage type (#23530) 2025-10-14 16:59:21 +08:00
屈轩
84e8b83aab fix(region): healt status (#23525) 2025-10-13 18:51:04 +08:00
屈轩
cd3190d80f fix(keystone): distribute permissions when the organization changes (#23502) 2025-10-13 18:49:45 +08:00
屈轩
b60346b97f fix(region): private zone create status (#23521) 2025-10-13 18:05:27 +08:00
wanyaoqi
d3c64b8054 fix(host): ensure host wire marshal nil value (#23507) 2025-10-12 11:04:35 +08:00
屈轩
914c1a1971 fix(region): server sku create with region id (#23509) 2025-10-11 16:54:47 +08:00
wanyaoqi
13ce2252ce fix(region,glance,host-deployer): guest image support bios boot mode detect (#23375) 2025-10-11 10:20:54 +08:00
Zexi Li
3bdfb00850 fix(baremetal): ensure the execution of the BaremetalServerDestroyTask (#23497) 2025-10-09 17:07:35 +08:00
Jian Qiu
bc7cc1ad07 fix: ignore e2fsck errors if retcode < 4 (#23489)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-10-09 16:31:40 +08:00
wanyaoqi
dd7602e628 fix(host): disk resize error input params (#23493) 2025-10-09 13:27:44 +08:00
Jian Qiu
7fe4ac72fe fix: network manager keyfile static routes (#23480)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-10-08 13:18:34 +08:00
Jian Qiu
55e586121d fix: support network manager connection profiles (#23468)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-10-03 09:25:14 +08:00
Jian Qiu
144ee48cec fix: default cloud region init error (#23475)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-10-03 06:34:24 +08:00
屈轩
b3a3d170e2 fix(region): vendor update (#23459) 2025-09-30 15:09:43 +08:00
屈轩
ebdcabe330 fix(region): host order by virt cpu (#23457) 2025-09-30 13:19:16 +08:00
Jian Qiu
e504d0d4e3 fix: hostman master nic may be nil (#23450)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-30 11:18:23 +08:00
Jian Qiu
00ee68c716 fix: s3 common options (#23444)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-29 19:22:25 +08:00
Jian Qiu
c6bf60722b fix: disable password history unique check by default (#23438)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-29 15:47:40 +08:00
wanyaoqi
8e6e30d57f fix(region,baremetal): ipv6 baremetal register support (#23422) 2025-09-29 15:22:22 +08:00
Jian Qiu
1f31c00819 fix: backup task worker count in host configmap (#23427)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-29 15:20:38 +08:00
屈轩
a704ab1cea fix(cloudevent): options changed with etcd (#23433) 2025-09-29 12:24:15 +08:00
屈轩
b90abee236 fix(region): vendor update (#23416) 2025-09-28 18:04:03 +08:00
wanyaoqi
ee471da787 fix(host-deployer): update host-deployer-base to 1.4.11 (#23413) 2025-09-28 17:26:03 +08:00
Zexi Li
4e1d8f2a98 fix(region,host): sync server status by upload guest status api (#23408) 2025-09-28 17:24:04 +08:00
屈轩
65492d196c fix(region): vendor update (#23405) 2025-09-28 14:58:55 +08:00
wanyaoqi
af73e7e93a Automated cherry pick of #23374: fix(region,host): guest add vnc screen dump support (#23377)
* fix(host): update nic confs inside vm on qga delete nics

Signed-off-by: wanyaoqi <wanyaoqi@yunion.cn>

* fix(region,host): guest add vnc screen dump support

---------

Signed-off-by: wanyaoqi <wanyaoqi@yunion.cn>
2025-09-27 12:06:12 +08:00
wanyaoqi
59089c6792 Automated cherry pick of #23386: fix(host-deployer): allow growpart on primary partition (#23394)
* fix(host): init cgroup ignore disable cgroup option

* fix(host-deployer): allow growpart on primary partition
2025-09-27 12:02:06 +08:00
Zexi Li
9a19621da0 fix(host): unmount post overlay dir without accquire cached image (#23402) 2025-09-27 07:43:35 +08:00
屈轩
85ad508d83 fix(region): vendor update (#23398) 2025-09-26 18:05:24 +08:00
屈轩
e67f8392a7 fix(region): support cnware (#23389) 2025-09-26 14:45:37 +08:00
屈轩
c9ece3e7de fix(region): vendor update (#23383) 2025-09-26 13:53:39 +08:00
wanyaoqi
b6329b5c23 fix(host-deployer): loop dev resize diskfs umounted and f2fs support (#23358) 2025-09-24 18:52:48 +08:00
Zexi Li
b7a3ed9e27 fix(host): clear the rootfs of container before starting (#23361) 2025-09-24 18:52:06 +08:00
Jian Qiu
d591b7991b fix: network filter by ip error for dameng (#23364)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-24 18:45:07 +08:00
Jian Qiu
e05112b3f6 fix: auto cleanup obsolete password records (#23371)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-24 18:35:38 +08:00
屈轩
bef839cc7b fix(region): vendor update (#23368) 2025-09-24 17:22:23 +08:00
Zexi Li
6c7bb1a1b1 feat(region,host): clean no persistent rootfs (#23354) 2025-09-22 18:10:12 +08:00
屈轩
efe0d135b2 fix(region): add expired release notify hour options (#23351) 2025-09-22 10:58:13 +08:00
Jian Qiu
185332fa28 fix: host backup task worker limit (#23347)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-22 09:48:20 +08:00
Jian Qiu
64fa9f1675 fix: linux sshd_config support (#23342)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-20 00:39:27 +08:00
Zexi Li
60a57b1e1b fix(scheduler): watch serversku (#23328) 2025-09-19 23:49:32 +08:00
屈轩
8ac435af8e fix(region): rds backup sync (#23306) 2025-09-19 23:47:32 +08:00
wanyaoqi
c436fde002 fix(host,host-deployer): support lvm disk resize (#23334)
- add resize lvm disk support
- support qga online resize disk partitions and filesystems
2025-09-19 23:46:03 +08:00
Jian Qiu
f4bcb7ffdf fix: check os_arch when server rebuilding root (#23338)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-19 23:44:31 +08:00
屈轩
38d1d0f766 fix(region): disk reset webhook (#23326) 2025-09-18 15:08:21 +08:00
屈轩
f8001de546 fix(notify): optimized workwx access token expired time (#23323) 2025-09-18 14:55:18 +08:00
Zexi Li
bd731ca958 fix(monitor): diffTagKeys are empty when only one series in results (#23311) 2025-09-18 07:49:17 +08:00
屈轩
6c4a1a3628 fix: upgrade goimports (#23321) 2025-09-17 22:08:03 +08:00
屈轩
5387fc03f8 fix(region): remove debug sql (#23318) 2025-09-17 16:54:47 +08:00
屈轩
37c3db52b9 fix(cloudmon): alert metric with tenant id (#23315) 2025-09-17 16:40:21 +08:00
屈轩
976f0f0bf4 fix(climc): sku create params (#23301) 2025-09-15 15:33:40 +08:00
wanyaoqi
f446f86e9f fix(region): virtual isolated device balance on guest start (#23049) 2025-09-15 11:58:23 +08:00
屈轩
4428791397 fix(region): support gcp shared vpc and image (#23296) 2025-09-12 23:03:31 +08:00
Zexi Li
314fb8f08e feat(host): hide host files mounted to container (#23293) 2025-09-12 18:55:06 +08:00
屈轩
331231ce1a fix(monitor): history alert report (#23280) 2025-09-12 15:27:20 +08:00
Zexi Li
a8e4ecfa5a fix(host,region): container rootfs use sub directory (#23290) 2025-09-12 15:08:07 +08:00
Zexi Li
51bec5644e fix(monitor): fetch total alert resources from monitor_resource_alert (#23275) 2025-09-10 19:17:29 +08:00
屈轩
092a0c2239 fix(region): update cloudprovider external id (#23272) 2025-09-10 18:59:47 +08:00
Jian Qiu
82bfb4cea1 fix: ipv6 ra should be sent periodically (#23259)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-10 18:59:09 +08:00
Jian Qiu
e35ca851a7 fix: image self check status (#23250)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-10 18:57:27 +08:00
屈轩
aba6378177 fix(region): support hyperdisk for gcp (#23269) 2025-09-10 15:34:34 +08:00
Zexi Li
abda8b0400 fix(climc): monitor-alertrecords-total-alert command (#23266) 2025-09-10 14:24:52 +08:00
屈轩
606112ea44 fix(region): sync cloudpods ipmi ip addr (#23264) 2025-09-09 20:52:56 +08:00
屈轩
aca997796d fix(region): cloudpods ipmi info sync (#23262) 2025-09-09 19:27:52 +08:00
屈轩
df7d2d3d80 fix(region): sync cloudpods baremetal isolated device (#23257) 2025-09-09 18:40:38 +08:00
屈轩
42fb3e1327 fix(region): sync cloudpods host storage info (#23255) 2025-09-09 16:00:02 +08:00
屈轩
031e54b81e fix(region): retention server by tag (#23248) 2025-09-08 17:59:59 +08:00
屈轩
f990fe0ba3 fix(region): support retention server by tags (#23246) 2025-09-08 16:27:31 +08:00
屈轩
28dff24e44 fix(region): support retention server by tag (#23244) 2025-09-08 15:45:34 +08:00
屈轩
932e12ae87 fix: upgrade go 1.24 (#23242) 2025-09-05 18:26:42 +08:00
屈轩
7e60f49d4a fix(region): snapshot policy unbind disks (#23239) 2025-09-04 16:57:58 +08:00
屈轩
cbe77a29e2 fix(region): sync prepaid disk expired time (#23236) 2025-09-04 16:47:09 +08:00
屈轩
9ea05affbf fix(region): add disk change billing type log (#23232) 2025-09-03 20:16:38 +08:00
屈轩
56825a3cd9 fix(region): add kafka and mongodb capability (#23229) 2025-09-03 19:44:34 +08:00
屈轩
0e04ce4371 fix(region): distinct cloudprovider fields (#23227) 2025-09-03 15:03:18 +08:00
wanyaoqi
fe36e13dc7 fix(host): live migrate compat ipv6 (#23214) 2025-09-03 05:49:54 +08:00
Jian Qiu
fdf9195e8c fix: fail to delete cas idp due to readonly domain (#23217)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-03 05:48:43 +08:00
Jian Qiu
f72104ce60 fix: image s3 direct download option (#23220)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-03 05:47:32 +08:00
Jian Qiu
73ddbd4048 fix: network filter by ipv6 address (#23223)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-09-03 05:46:44 +08:00
屈轩
2f474ff911 fix(region): support more scheme keypair (#23196) 2025-09-02 14:45:03 +08:00
Zexi Li
3edd8dd65b feat(host): add SdnFetchDataFromComputeService option (#23207) 2025-09-01 23:15:40 +08:00
屈轩
cbf4310cab fix(region): avoid change to the same config sku not effective (#23203) 2025-09-01 11:43:01 +08:00
Jian Qiu
f2d77ad487 fix: too many recursive locks when batch create (#23198)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-08-29 23:08:07 +08:00
wanyaoqi
f491efc498 fix(host): update nic desc on nic changed (#23180) 2025-08-28 10:07:18 +08:00
wanyaoqi
bd719d99c0 feat(region,hostdeployer): add f2fs feature support (#23183) 2025-08-28 10:05:51 +08:00
屈轩
9f037c1baf fix(region): add cloud_env filter for cachedimages (#23191) 2025-08-27 18:34:36 +08:00
Jian Qiu
9b6a13037c fix: guest ipv6 vip (#23187)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-08-27 18:07:44 +08:00
Jian Qiu
3b6949fe78 fix: dhcpv6 should nack confirm if addr changed (#23169)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-08-26 15:35:31 +08:00
wanyaoqi
023309c1cf fix(region,host): ipv6 change addr (#23171) 2025-08-26 15:34:27 +08:00
屈轩
7bfdae3c45 fix(keystone): show ldap url (#23174) 2025-08-26 14:28:39 +08:00
屈轩
6ea9447a92 fix(keystone): upgrade ldap version (#23166) 2025-08-26 13:28:40 +08:00
Jian Qiu
cef3b9effb fix: deploy gai.conf if both v4 and v6 present (#23161)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-08-25 18:19:27 +08:00
Zexi Li
e30d669d19 feat(host): support single file to use post overlay (#23159) 2025-08-25 11:48:01 +08:00
屈轩
38872edae2 fix(region): optimized cached image list (#23154) 2025-08-22 15:43:23 +08:00
wanyaoqi
cff38d74ec feat(region,host,host-deployer): f2fs filesystem support (#23118) 2025-08-22 09:06:31 +08:00
wanyaoqi
f1f01ea823 fix(host): run ifdown script on guest delete (#23102) 2025-08-22 09:03:54 +08:00
10459 changed files with 5164577 additions and 313980 deletions

View File

@@ -7,7 +7,7 @@ jobs:
requires:
- check
docker:
- image: yunion/centos-build:go-1.21.10-0
- image: yunion/alpine-build:3.22.0-go-1.24.6-1
environment:
ONECLOUD_CI_BUILD: "1"

View File

@@ -13,13 +13,13 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Install check tools
shell: bash
run: |
set -o xtrace
git clone --branch yun --depth 4 https://github.com/yousong/tools && cd tools
git clone --branch master --depth 4 https://github.com/yunionio/tools && cd tools
go build ./cmd/goimports && sudo cp goimports /usr/bin/ && cd .. && rm -rf tools
git clone --depth 4 https://github.com/yousong/y18n && cd y18n
go build . && sudo cp y18n /usr/bin && cd .. && rm -rf y18n

View File

@@ -22,7 +22,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -20,7 +20,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -21,7 +21,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -19,7 +19,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -23,7 +23,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -19,7 +19,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -23,7 +23,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -23,7 +23,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -23,7 +23,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -24,7 +24,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -20,7 +20,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -23,7 +23,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
go-version: '1.25'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -96,21 +96,6 @@ deb/%: cmd/%
pkg/%: prepare_dir
$(GO_INSTALL) $(REPO_PREFIX)/$@
rpm/fetcherfs: cmd/fetcherfs
docker run --rm \
--name docker-centos-build-fetcherfs \
-v $(CURDIR):/data \
registry.cn-beijing.aliyuncs.com/yunionio/centos-build:1.1-4 \
/bin/bash -c "VERSION=3.6 /data/build/build.sh fetcherfs /opt/yunion/fetchclient/bin"
deb/fetcherfs: rpm/fetcherfs
#VERSION=3.6 $(DEB_BUILD_SCRIPT) fetcherfs /opt/yunion/fetchclient/bin
docker run --rm \
--name docker-debian-build-fetcherfs \
-v $(CURDIR):/data \
registry.cn-beijing.aliyuncs.com/yunionio/debian10-base:1.0 \
/data/build/convert_rpm2deb.sh
build:
$(MAKE) $(cmdTargets)
@@ -181,7 +166,8 @@ goimports-check:
echo "$@: working tree modified (possibly by goimports)" >&2 ; \
echo "$@: " >&2 ; \
echo "$@: import spec should be grouped in order: std, 3rd-party, yunion.io/x, yunion.io/x/onecloud" >&2 ; \
echo "$@: see \"yun\" branch at https://github.com/yousong/tools" >&2 ; \
echo "$@: goimports should be installed by: \
echo "$@: git clone --depth 4 https://github.com/yunionio/tools && cd tools && go install ./cmd/goimports ; \
false ; \
fi
.PHONY: goimports-check
@@ -250,7 +236,7 @@ hostdeployer-grpc-gen:
check: fmt-check
check: gendocgo-check
check: goimports-check
#check: goimports-check
#check: vet-check
#check: y18n-check
.PHONY: check
@@ -274,7 +260,7 @@ dep:
@echo "$$depDeprecated"
@$(MAKE) mod
RELEASE_BRANCH:=release/4.0
RELEASE_BRANCH:=release/4.0.3
GOPROXY ?= direct
mod:
@@ -286,10 +272,6 @@ mod:
define helpText
Build with docker
make docker-centos-build F='-j4'
make docker-centos-build F='-j4 cmd/region cmd/climc'
make docker-centos-build-stop
make docker-alpine-build F='-j4'
make docker-alpine-build F='-j4 cmd/host cmd/host-deployer'
make docker-alpine-build-stop
@@ -341,7 +323,7 @@ image:
.PHONY: image
image-telegraf-raid-plugin:
VERSION=release-1.6.5 ARCH=all make image telegraf-raid-plugin
VERSION=v4.0-20260115.0 GOOS=linux ARCH=all make image telegraf-raid-plugin
%:
@:

View File

@@ -8,8 +8,7 @@ endif
ModBaseName:=$(notdir $(ModName))
DockerImageRegistry?=registry.cn-beijing.aliyuncs.com
DockerImageAlpineBuild?=$(DockerImageRegistry)/yunionio/alpine-build:3.19.0-go-1.21.10-0
DockerImageCentOSBuild?=$(DockerImageRegistry)/yunionio/centos-build:go-1.21.10-0
DockerImageAlpineBuild?=$(DockerImageRegistry)/yunionio/alpine-build:3.22.2-go-1.24.9-0
EnvIf=$(if $($(1)),$(1)=$($(1)))
@@ -29,27 +28,6 @@ endef
tmpName=$(ModBaseName)-$(shell date +"%Y%m%d.%H%M%S%3N")
docker-centos-build: export dockerCentOSBuildCmd:=$(call dockerCentOSBuildCmd,$(F))
docker-centos-build:
docker rm --force docker-centos-build-$(tmpName) &>/dev/null || true
docker run \
--rm \
--name docker-centos-build-$(tmpName) \
-v $(CURDIR):/root/go/src/yunion.io/x/$(ModBaseName) \
-v $(CURDIR)/_output/centos-build:/root/go/src/yunion.io/x/$(ModBaseName)/_output \
-v $(CURDIR)/_output/centos-build/_cache:/root/.cache \
$(DockerImageCentOSBuild) \
/bin/bash -c "$$dockerCentOSBuildCmd"
ls -lh _output/centos-build/bin
# NOTE we need a way to stop and remove the container started by docker-build.
# No --tty, --stop-signal won't work
docker-centos-build-stop:
docker stop --time 0 docker-centos-build-$(tmpName) || true
.PHONY: docker-centos-build
.PHONY: docker-centos-build-stop
define dockerAlpineBuildCmd
set -o xtrace

View File

@@ -36,6 +36,12 @@ fi
. $ROOT/vars
BUILDROOT=$(mktemp -d 2>/dev/null || mktemp -d -t 'yunion')
function cleanup {
rm -rf "$BUILDROOT"
echo "Deleted temp working directory $BUILDROOT"
}
# register the cleanup function to be called on the EXIT signal
trap cleanup EXIT
echo "Build root ${BUILDROOT}"
@@ -104,41 +110,87 @@ if [ -d $ROOT/root ]; then
rsync -a $ROOT/root/ \$RPM_BUILD_ROOT
fi
%pre
%pre" > $SPEC_FILE
if [ -f $ROOT/preinst ]; then
cat $ROOT/preinst >> $SPEC_FILE
else
echo "
%if %{use_systemd}
getent group %{owner} >/dev/null || /usr/sbin/groupadd -r %{owner}
getent passwd %{owner} >/dev/null || /usr/sbin/useradd -r -s /sbin/nologin -d %{homedir} -M -g %{owner} %{owner}
%endif
" >> $SPEC_FILE
fi
%post
echo "
%post" >> $SPEC_FILE
if [ -f $ROOT/postinst ]; then
cat $ROOT/postinst >> $SPEC_FILE
else
echo "
%if %{use_systemd}
mkdir -p /var/run/%{owner}
chown -R %{owner}:%{owner} /var/run/%{owner}
/usr/bin/systemctl preset %{pkgname}.service >/dev/null 2>&1 ||:
%endif
" >> $SPEC_FILE
fi
%preun
echo "
%preun" >> $SPEC_FILE
if [ -f $ROOT/prerm ]; then
cat $ROOT/prerm >> $SPEC_FILE
else
echo "
%if %{use_systemd}
/usr/bin/systemctl --no-reload disable %{pkgname}.service >/dev/null 2>&1 || :
/usr/bin/systemctl stop %{pkgname}.service >/dev/null 2>&1 ||:
%endif
" >> $SPEC_FILE
fi
%postun
echo "
%postun" >> $SPEC_FILE
if [ -f $ROOT/postrm ]; then
cat $ROOT/postrm >> $SPEC_FILE
else
echo "
%if %{use_systemd}
/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||:
%endif
" >> $SPEC_FILE
fi
echo -n "
%files
%doc
$BIN_PATH/$PKG
$(for b in $EXTRA_BINS; do echo $BIN_PATH/$b; done)
" > $SPEC_FILE
" >> $SPEC_FILE
for b in $EXTRA_BINS; do
echo $BIN_PATH/$b >> $SPEC_FILE
done
if [ -d $ROOT/root/ ]; then
find $ROOT/root/ -type f | sed -e "s:$ROOT/root::g" >> $SPEC_FILE
fi
rpmbuild --define "_topdir $BUILDROOT" -bb $SPEC_FILE
TARGET=
case "$GOARCH" in
"arm64" | "aarch64" | "arm")
TARGET="--target aarch64-redhat-linux"
;;
"amd64" | "x86" | "i686" | "i386" | "x86_64")
TARGET="--target x86_64-redhat-linux"
;;
"riscv64")
TARGET="--target riscv64-linux"
;;
esac
rpmbuild --define "_topdir $BUILDROOT" -bb $SPEC_FILE $TARGET
find $RPM_DIR -type f | while read f; do
d="$(dirname "$f")"
@@ -146,5 +198,3 @@ find $RPM_DIR -type f | while read f; do
mkdir -p "$d"
cp $f $d
done
rm -fr $BUILDROOT

View File

@@ -35,14 +35,48 @@ fi
. $ROOT/vars
case $(uname -m) in
x86_64)
CURRENT_ARCH=amd64
;;
aarch64)
CURRENT_ARCH=arm64
;;
riscv64)
CURRENT_ARCH=riscv64
;;
esac
if [[ -n "$GOARCH" ]]; then
case "$GOARCH" in
"arm64" | "arm" | "aarch64")
CURRENT_ARCH="arm64"
;;
"x86" | "x86_64" | "i686" | "i386" | "amd64")
CURRENT_ARCH="amd64"
;;
"riscv64")
CURRENT_ARCH="riscv64"
;;
esac
fi
if [ -z "$VERSION" ]; then
TAG=$(git describe --abbrev=0 --tags || echo 000000)
VERSION=${TAG/\//-}
VERSION=${VERSION/v/}
VERSION=${VERSION/master-/}
fi
RELEASE=`date +"%y%m%d%H"`
FULL_VERSION=$VERSION-$RELEASE
BUILDROOT=$OUTPUT_DIR/yunion-$1-$FULL_VERSION
BUILDROOT=$OUTPUT_DIR/yunion-${PKG}-${FULL_VERSION}_${CURRENT_ARCH}
function cleanup {
rm -rf "$BUILDROOT"
echo "Deleted temp working directory $BUILDROOT"
}
# register the cleanup function to be called on the EXIT signal
trap cleanup EXIT
rm -rf $BUILDROOT
mkdir -p $BUILDROOT/DEBIAN
mkdir -p $BUILDROOT/$BIN_PATH
@@ -52,27 +86,90 @@ if [ -d $ROOT/root ]; then
cp -rf $ROOT/root/* $BUILDROOT/
fi
echo "Build root ${BUILDROOT}"
case $(uname -m) in
x86_64)
CURRENT_ARCH=amd64
;;
aarch64)
CURRENT_ARCH=arm64
;;
esac
echo "Package: yunion-$1
echo "Package: yunion-$PKG
Version: $FULL_VERSION
Section: base
Priority: optional
Architecture: $CURRENT_ARCH
Maintainer: wanyaoqi@yunionyun.com
Description: Yunion $1
" > $BUILDROOT/DEBIAN/control
Description: $DESCRIPTION" > $BUILDROOT/DEBIAN/control
if [ ${#REQUIRES[@]} -gt 0 ]; then
DEPS=$(IFS=, ; echo "${REQUIRES[*]}")
echo "Depends: $DEPS" >> $BUILDROOT/DEBIAN/control
fi
chmod 0755 $BUILDROOT/DEBIAN/control
cat $BUILDROOT/DEBIAN/control
dpkg-deb --build $BUILDROOT
echo "#!/bin/bash
" > $BUILDROOT/DEBIAN/preinst
if [ -f $ROOT/preinst ]; then
cat $ROOT/preinst >> $BUILDROOT/DEBIAN/preinst
else
if [ "$SERVICE" == "yes" ] && [ -n "$OWNER" ]; then
echo "
getent group ${OWNER} >/dev/null || /usr/sbin/groupadd -r ${OWNER}
getent passwd ${OWNER} >/dev/null || /usr/sbin/useradd -r -s /sbin/nologin -d /home/${OWNER} -M -g ${OWNER} ${OWNER}
" >> $BUILDROOT/DEBIAN/preinst
fi
fi
chmod 0755 $BUILDROOT/DEBIAN/preinst
echo "#!/bin/bash
" > $BUILDROOT/DEBIAN/postinst
if [ -f $ROOT/postinst ]; then
cat $ROOT/postinst >> $BUILDROOT/DEBIAN/postinst
else
if [ "$SERVICE" == "yes" ]; then
echo "
/usr/bin/systemctl preset yunion-${PKG}.service >/dev/null 2>&1 ||:
" >> $BUILDROOT/DEBIAN/postinst
fi
fi
chmod 0755 $BUILDROOT/DEBIAN/postinst
echo "#!/bin/bash
" > $BUILDROOT/DEBIAN/prerm
if [ -f $ROOT/prerm ]; then
cat $ROOT/prerm >> $BUILDROOT/DEBIAN/prerm
else
if [ "$SERVICE" == "yes" ]; then
echo "
/usr/bin/systemctl --no-reload disable yunion-${PKG}.service >/dev/null 2>&1 || :
/usr/bin/systemctl stop yunion-${PKG}.service >/dev/null 2>&1 ||:
" >> $BUILDROOT/DEBIAN/prerm
fi
fi
chmod 0755 $BUILDROOT/DEBIAN/prerm
echo "#!/bin/bash
" > $BUILDROOT/DEBIAN/postrm
if [ -f $ROOT/postrm ]; then
cat $ROOT/postrm >> $BUILDROOT/DEBIAN/postrm
else
if [ "$SERVICE" == "yes" ]; then
echo "
/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||:
" >> $BUILDROOT/DEBIAN/postrm
fi
fi
chmod 0755 $BUILDROOT/DEBIAN/postrm
dpkg-deb --build $BUILDROOT
case "$CURRENT_ARCH" in
"amd64")
DSTARCH="x86_64"
;;
"arm64")
DSTARCH="aarch64"
;;
"riscv64")
DSTARCH="riscv64"
;;
esac
mkdir -p ${OUTPUT_DIR}/${DSTARCH}
mv ${BUILDROOT}.deb ${OUTPUT_DIR}/${DSTARCH}/

View File

@@ -1,7 +1,8 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/ansibleserver-base:v1.1.3
FROM registry.cn-beijing.aliyuncs.com/yunionio/ansibleserver-base:3.22.2-0
# https://github.com/yunionio/telegraf/blob/yn-release-1.36/Makefile.yn#L28
# install playbook and telegraf install pkg
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.5.4 /opt/yunion/playbook /opt/yunion/playbook
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.5.4 /opt/yunion/ansible-install-pkg /opt/yunion/ansible-install-pkg
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.5.3 /opt/yunion/playbook /opt/yunion/playbook
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.5.3 /opt/yunion/ansible-install-pkg /opt/yunion/ansible-install-pkg
ADD ./_output/alpine-build/bin/ansibleserver /opt/yunion/bin/ansibleserver

View File

@@ -1,8 +1,8 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.15.4-0
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
MAINTAINER "Yousong Zhou <zhouyousong@yunionyun.com>"
LABEL maintainer="Yousong Zhou <zhouyousong@yunionyun.com>"
ENV TZ UTC
ENV TZ="UTC"
RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
@@ -13,6 +13,7 @@ RUN set -x \
&& apk add openssh-client \
&& apk add sshpass \
&& apk add py3-pip \
&& apk add py3-paramiko \
&& apk add tzdata git ca-certificates
RUN apk add --no-cache openssh openssl curl rsync pv mariadb-client
@@ -21,8 +22,10 @@ RUN apk add --no-cache --virtual .build-dependencies \
# ansible should be installed
# after setuptools and wheel
RUN rm /usr/lib/python3.*/EXTERNALLY-MANAGED
RUN pip3 install -U pip setuptools wheel \
&& pip3 install paramiko mysqlclient pywinrm \
&& pip3 install mysqlclient pywinrm \
&& pip3 install 'ansible<=9.0.0' \
&& apk del --no-network .build-dependencies \
&& rm -rf /root/.cache /root/.cargo /var/cache/apk/*

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/apigateway /opt/yunion/bin/apigateway

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/apimap /opt/yunion/bin/apimap

View File

@@ -1,8 +1,8 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/baremetal-base:v0.3.9-20231219.0
FROM registry.cn-beijing.aliyuncs.com/yunionio/baremetal-base:v0.3.9-20251215.0
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
LABEL maintainer="Zexi Li <lizexi@yunionyun.com>"
RUN mkdir -p /opt/yunion/bin
ENV TZ UTC
ENV TZ="UTC"
ADD ./_output/alpine-build/bin/baremetal-agent /opt/yunion/bin/baremetal-agent

View File

@@ -1,7 +1,6 @@
#FROM --platform=linux/amd64 registry.cn-beijing.aliyuncs.com/yunionio/centos-build:1.1-4 as build
#RUN yum install -y https://iso.yunion.cn/vm-images/baremetal-pxerom-1.1.0-21092209.x86_64.rpm
#RUN yum install -y http://192.168.23.50:8083/baremetal-pxerom-1.1.0-21092209.x86_64.rpm
FROM registry.cn-beijing.aliyuncs.com/yunionio/yunionos:v3.10.8-20231215.0 as yunionos
FROM registry.cn-beijing.aliyuncs.com/yunionio/yunionos:v4.0.0-20251201.0 as yunionos
FROM centos:8 as grub-stage
@@ -28,9 +27,9 @@ RUN cp /root/grub_arm64.efi /tftp
RUN cp -rf /usr/lib/grub/arm64-efi /tftp/grub
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3-3.13.5
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
MAINTAINER "Zexi Li <zexi.li@icloud.com>"
LABEL maintainer="Zexi Li <zexi.li@icloud.com>"
RUN mkdir -p /opt/yunion/bin
@@ -70,6 +69,8 @@ COPY --from=yunionos /yunionos/x86_64/kernel /opt/cloud/yunion/baremetal
COPY --from=yunionos /yunionos/x86_64/initramfs /opt/cloud/yunion/baremetal
COPY --from=yunionos /yunionos/aarch64/kernel /opt/cloud/yunion/baremetal/kernel_aarch64
COPY --from=yunionos /yunionos/aarch64/initramfs /opt/cloud/yunion/baremetal/initramfs_aarch64
COPY --from=yunionos /yunionos/riscv64/kernel /opt/cloud/yunion/baremetal/kernel_riscv64
COPY --from=yunionos /yunionos/riscv64/initramfs /opt/cloud/yunion/baremetal/initramfs_riscv64
# TODO: syslinux firmwares should removed in future
COPY --from=yunionos /yunionos/x86_64/isolinux.bin /opt/cloud/yunion/baremetal

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/climc-base:20230731.5
FROM registry.cn-beijing.aliyuncs.com/yunionio/climc-base:3.22.2-2
ADD ./build/climc/root/opt /opt

View File

@@ -4,9 +4,9 @@ ARG TARGETPLATFORM
ARG BUILDPLATFORM
ARG TARGETARCH
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
LABEL maintainer="Zexi Li <lizexi@yunionyun.com>"
ENV TZ Asia/Shanghai
ENV TZ="Asia/Shanghai"
RUN mkdir -p /opt/yunion/bin

View File

@@ -0,0 +1,24 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ARG TARGETPLATFORM
ARG BUILDPLATFORM
ARG TARGETARCH
LABEL maintainer="Zexi Li <lizexi@yunionyun.com>"
ENV TZ="Asia/Shanghai"
RUN mkdir -p /opt/yunion/bin
RUN echo http://dl-cdn.alpinelinux.org/alpine/edge/testing >>/etc/apk/repositories
RUN apk add --no-cache bash bash-completion tzdata ca-certificates vim ipmitool ceph-common dropbear shadow && \
rm -rf /var/cache/apk/*
RUN usermod --shell /bin/bash root
RUN curl -L https://iso.yunion.cn/binaries/kubernetes-release/release/v1.22.9/bin/linux/${TARGETARCH}/kubectl -o /usr/bin/kubectl && chmod a+x /usr/bin/kubectl
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN mkdir -p /opt/yunion/bin

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/cloudevent /opt/yunion/bin/cloudevent

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
COPY ./build/cloudid/root/opt/ /opt/
ADD ./_output/alpine-build/bin/cloudid /opt/yunion/bin/cloudid

View File

@@ -1,6 +1,6 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
LABEL maintainer="Zexi Li <lizexi@yunionyun.com>"
RUN mkdir -p /etc/yunion/data/

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/cloudnet /opt/yunion/bin/cloudnet

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/cloudproxy /opt/yunion/bin/cloudproxy

View File

@@ -1,6 +1,6 @@
# registry.cn-beijing.aliyuncs.com/yunionio/debian10-base:1.0
FROM debian:10
FROM debian:trixie
RUN apt update && apt install -y alien

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/devtool /opt/yunion/bin/devtool

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/dhcprelay /opt/yunion/bin/dhcprelay

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/esxi-agent /opt/yunion/bin/esxi-agent

View File

@@ -1,23 +0,0 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.5.0 AS file-repo
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
LABEL maintainer="Rain Zheng <zhengyu@yunion.com>"
# openssh-client, for ansible ssh connection
# git, ca-certificates, for fetching ansible roles
RUN set -x \
&& apk update \
&& apk add git \
&& rm -rf /var/cache/apk/*
# install default playbook and install pkg
RUN mkdir -p /opt/yunion/ansible-install-pkg
# file repo base image from https://github.com/yunionio/telegraf/blob/612b918a28a93cf8e354b8d59544753b021b824a/Makefile.yn#L24
COPY --from=file-repo /opt/yunion/ansible-install-pkg/telegraf*.rpm /opt/yunion/ansible-install-pkg
COPY --from=file-repo /opt/yunion/ansible-install-pkg/telegraf*.deb /opt/yunion/ansible-install-pkg
COPY --from=file-repo /opt/yunion/ansible-install-pkg/telegraf*.zip /opt/yunion/ansible-install-pkg
RUN mkdir -p /opt/yunion/playbook
RUN mkdir /opt/yunion/playbook/monitor-agent
RUN git clone https://github.com/yunionio/monitor-agent.git /opt/yunion/playbook/monitor-agent --recurse-submodules

View File

@@ -1,5 +1,5 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/glance-base:v0.0.1
FROM registry.cn-beijing.aliyuncs.com/yunionio/glance-base:3.22.2-0
ENV TZ UTC
ENV TZ="UTC"
RUN mkdir -p /opt/yunion/bin
ADD ./_output/alpine-build/bin/glance /opt/yunion/bin/glance

View File

@@ -1,5 +1,7 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/torrent:20210815.0
FROM registry.cn-beijing.aliyuncs.com/yunionio/torrent:3.22.2-0
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
LABEL maintainer="Zexi Li <lizexi@yunionyun.com>"
RUN apk add --no-cache s3fs-fuse --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing
RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
RUN apk add --no-cache s3fs-fuse

View File

@@ -22,44 +22,25 @@
#
# The Alpine Linux image that should be used as the basis for the guacd image
ARG ALPINE_BASE_IMAGE=latest
FROM alpine:${ALPINE_BASE_IMAGE} AS builder
ARG ALPINE_BASE_IMAGE=3.22.2
ARG TARGETPLATFORM
# The target architecture of the build. Valid values are "ARM" and "X86". By
# default, this is detected automatically.
ARG BUILD_ARCHITECTURE
RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
# The number of processes that may run simultaneously during the build. By
# default, this is detected automatically.
ARG BUILD_JOBS
# Install build dependencies
RUN apk add --no-cache \
autoconf \
automake \
build-base \
cairo-dev \
cmake \
cunit-dev \
git \
grep \
libjpeg-turbo-dev \
libpng-dev \
libtool \
libwebp-dev \
make \
openssl1.1-compat-dev \
pango-dev \
pulseaudio-dev \
util-linux-dev
# Copy source to container for sake of build
# The directory that will house the guacamole-server source during the build
ARG BUILD_DIR=/tmp/guacamole-server
ARG GUAC_VER=1.5.3
RUN git clone --branch=${GUAC_VER} https://github.com/apache/guacamole-server.git /tmp/guacamole-server
#
# Base directory for installed build artifacts.
#
# NOTE: Due to limitations of the Docker image build process, this value is
# duplicated in an ARG in the second stage of the build.
#
# FreeRDP version (default to version 2)
ARG FREERDP_VERSION=2
# The final install location for guacamole-server and all dependencies. NOTE:
# This value is hard-coded in the entrypoint. Any change to this value must be
# propagated there.
ARG PREFIX_DIR=/opt/guacamole
#
@@ -67,11 +48,12 @@ ARG PREFIX_DIR=/opt/guacamole
# library (these can be overridden at build time if a specific version is
# needed)
#
ARG WITH_FREERDP='2(\.\d+)+'
ARG WITH_FREERDP="${FREERDP_VERSION}(\.\d+)+"
ARG WITH_LIBSSH2='libssh2-\d+(\.\d+)+'
ARG WITH_LIBTELNET='\d+(\.\d+)+'
ARG WITH_LIBVNCCLIENT='LibVNCServer-\d+(\.\d+)+'
ARG WITH_LIBWEBSOCKETS='v\d+(\.\d+)+'
ARG WITH_GUACAMOLE_SERVER='\d+(\.\d+)+'
#
# Default build options for each core protocol support library, as well as
@@ -79,6 +61,8 @@ ARG WITH_LIBWEBSOCKETS='v\d+(\.\d+)+'
# options are needed)
#
ARG FREERDP_ARM_OPTS=""
ARG FREERDP_OPTS="\
-DBUILTIN_CHANNELS=OFF \
-DCHANNEL_URBDRC=OFF \
@@ -89,22 +73,25 @@ ARG FREERDP_OPTS="\
-DWITH_CUPS=OFF \
-DWITH_DIRECTFB=OFF \
-DWITH_FFMPEG=OFF \
-DWITH_FUSE=OFF \
-DWITH_GSM=OFF \
-DWITH_GSSAPI=OFF \
-DWITH_IPP=OFF \
-DWITH_JPEG=ON \
-DWITH_KRB5=ON \
-DWITH_LIBSYSTEMD=OFF \
-DWITH_MANPAGES=OFF \
-DWITH_OPENH264=OFF \
-DWITH_OPENSSL=ON \
-DWITH_OSS=OFF \
-DWITH_PCSC=OFF \
-DWITH_PKCS11=OFF \
-DWITH_PULSE=OFF \
-DWITH_SERVER=OFF \
-DWITH_SERVER_INTERFACE=OFF \
-DWITH_SHADOW_MAC=OFF \
-DWITH_SHADOW_X11=OFF \
-DWITH_SSE2=ON \
-DWITH_SWSCALE=OFF \
-DWITH_WAYLAND=OFF \
-DWITH_X11=OFF \
-DWITH_X264=OFF \
@@ -116,21 +103,47 @@ ARG FREERDP_OPTS="\
-DWITH_XRENDER=OFF \
-DWITH_XTEST=OFF \
-DWITH_XV=OFF \
-DWITH_ZLIB=ON"
-DCMAKE_CXX_FLAGS=-Wno-incompatible-pointer-types \
-DCMAKE_C_FLAGS=-Wno-incompatible-pointer-types \
-DWITH_ZLIB=ON"
ARG FREERDP_X86_OPTS=""
ARG GUACAMOLE_SERVER_ARM_OPTS=""
ARG GUACAMOLE_SERVER_OPTS="\
--disable-guaclog"
--disable-guaclog \
CPPFLAGS=-Wno-error=deprecated-declarations"
ARG GUACAMOLE_SERVER_X86_OPTS=""
ARG GUACAMOLE_SERVER_UNKNOWN_OPTS=""
ARG LIBSSH2_ARM_OPTS=""
ARG LIBSSH2_OPTS="\
-DBUILD_EXAMPLES=OFF \
-DBUILD_SHARED_LIBS=ON"
ARG LIBSSH2_X86_OPTS=""
ARG LIBTELNET_ARM_OPTS=""
ARG LIBTELNET_OPTS="\
--disable-static \
--disable-util"
ARG LIBTELNET_X86_OPTS=""
ARG LIBVNCCLIENT_ARM_OPTS=""
ARG LIBVNCCLIENT_OPTS=""
ARG LIBVNCCLIENT_X86_OPTS=""
ARG LIBWEBSOCKETS_ARM_OPTS=""
ARG LIBWEBSOCKETS_OPTS="\
-DDISABLE_WERROR=ON \
-DLWS_WITHOUT_SERVER=ON \
@@ -141,45 +154,179 @@ ARG LIBWEBSOCKETS_OPTS="\
-DLWS_WITHOUT_TEST_SERVER_EXTPOLL=ON \
-DLWS_WITH_STATIC=OFF"
# Build guacamole-server and its core protocol library dependencies
RUN echo "$TARGETPLATFORM"
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; \
then FREERDP_OPTS="${FREERDP_OPTS} -DWITH_SSE2=ON" && echo "SSE2 active"; \
else FREERDP_OPTS="${FREERDP_OPTS} -DWITH_SSE2=OFF" && echo "SSE2 disabled"; \
fi && ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh
ARG LIBWEBSOCKETS_X86_OPTS=""
#
# Base builder image that will be used by subsequent build stages, including
# for building dependencies of guacamole-server.
#
FROM alpine:${ALPINE_BASE_IMAGE} AS builder
ARG BUILD_DIR
RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
# Install build dependencies
RUN apk add \
autoconf \
automake \
build-base \
cairo-dev \
cjson-dev \
cmake \
cunit-dev \
git \
grep \
krb5-dev \
libjpeg-turbo-dev \
libpng-dev \
libtool \
libwebp-dev \
make \
openssl-dev \
pango-dev \
pulseaudio-dev \
sdl2-dev \
sdl2_ttf-dev \
util-linux-dev
ARG GUAC_VER=1.6.0
RUN git clone --branch=${GUAC_VER} https://github.com/apache/guacamole-server.git ${BUILD_DIR}
#
# Build dependency: libssh2
#
FROM builder AS libssh2
ARG BUILD_DIR
ARG LIBSSH2_ARM_OPTS
ARG LIBSSH2_OPTS
ARG LIBSSH2_X86_OPTS
ARG PREFIX_DIR
ARG WITH_LIBSSH2
RUN ${BUILD_DIR}/src/guacd-docker/bin/autobuild.sh "LIBSSH2" \
"https://github.com/libssh2/libssh2"
#
# Build dependency: libtelnet
#
FROM builder AS libtelnet
ARG BUILD_DIR
ARG LIBTELNET_ARM_OPTS
ARG LIBTELNET_OPTS
ARG LIBTELNET_X86_OPTS
ARG PREFIX_DIR
ARG WITH_LIBTELNET
RUN ${BUILD_DIR}/src/guacd-docker/bin/autobuild.sh "LIBTELNET" \
"https://github.com/seanmiddleditch/libtelnet"
#
# Build dependency: libvncclient
#
FROM builder AS libvncclient
ARG BUILD_DIR
ARG LIBVNCCLIENT_ARM_OPTS
ARG LIBVNCCLIENT_OPTS
ARG LIBVNCCLIENT_X86_OPTS
ARG PREFIX_DIR
ARG WITH_LIBVNCCLIENT
RUN ${BUILD_DIR}/src/guacd-docker/bin/autobuild.sh "LIBVNCCLIENT" \
"https://github.com/LibVNC/libvncserver"
#
# Build dependency: libwebsockets
#
FROM builder AS libwebsockets
ARG BUILD_DIR
ARG LIBWEBSOCKETS_ARM_OPTS
ARG LIBWEBSOCKETS_OPTS
ARG LIBWEBSOCKETS_X86_OPTS
ARG PREFIX_DIR
ARG WITH_LIBWEBSOCKETS
RUN ${BUILD_DIR}/src/guacd-docker/bin/autobuild.sh "LIBWEBSOCKETS" \
"https://github.com/warmcat/libwebsockets"
#
# Build dependency: FreeRDP
#
FROM builder AS freerdp
ARG BUILD_DIR
ARG FREERDP_ARM_OPTS
ARG FREERDP_OPTS
ARG FREERDP_X86_OPTS
ARG PREFIX_DIR
ARG WITH_FREERDP
RUN ${BUILD_DIR}/src/guacd-docker/bin/autobuild.sh "FREERDP" \
"https://github.com/FreeRDP/FreeRDP"
#
# STAGE 7: Collect dependencies built by previous stages and build
# guacamole-server.
#
FROM builder AS guacamole-server
ARG BUILD_DIR
ARG FREERDP_VERSION
ARG GUACAMOLE_SERVER_ARM_OPTS
ARG GUACAMOLE_SERVER_UNKNOWN_OPTS
ARG GUACAMOLE_SERVER_OPTS
ARG GUACAMOLE_SERVER_X86_OPTS
ARG PREFIX_DIR
ARG WITH_GUACAMOLE_SERVER
# Copy dependencies built in previous stages
COPY --from=freerdp ${PREFIX_DIR} ${PREFIX_DIR}
COPY --from=libssh2 ${PREFIX_DIR} ${PREFIX_DIR}
COPY --from=libtelnet ${PREFIX_DIR} ${PREFIX_DIR}
COPY --from=libvncclient ${PREFIX_DIR} ${PREFIX_DIR}
COPY --from=libwebsockets ${PREFIX_DIR} ${PREFIX_DIR}
# Use guacamole-server source from build context
COPY --from=builder ${BUILD_DIR} ${BUILD_DIR}
RUN ${BUILD_DIR}/src/guacd-docker/bin/autobuild.sh "GUACAMOLE_SERVER" "${BUILD_DIR}"
# Determine location of the FREERDP library based on the version.
ARG FREERDP_LIB_PATH=${PREFIX_DIR}/lib/freerdp${FREERDP_VERSION}
# Record the packages of all runtime library dependencies
RUN ${BUILD_DIR}/src/guacd-docker/bin/list-dependencies.sh \
${PREFIX_DIR}/sbin/guacd \
${PREFIX_DIR}/lib/libguac-client-*.so \
${PREFIX_DIR}/lib/freerdp2/*guac*.so \
${FREERDP_LIB_PATH}/*guac*.so \
> ${PREFIX_DIR}/DEPENDENCIES
#
# STAGE 8: Final, runtime image.
#
# Use same Alpine version as the base for the runtime image
FROM alpine:${ALPINE_BASE_IMAGE}
RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
#
# Base directory for installed build artifacts. See also the
# CMD directive at the end of this build stage.
#
# NOTE: Due to limitations of the Docker image build process, this value is
# duplicated in an ARG in the first stage of the build.
#
ARG PREFIX_DIR=/opt/guacamole
# Runtime environment
ENV LC_ALL=C.UTF-8
ENV LD_LIBRARY_PATH=${PREFIX_DIR}/lib
ENV GUACD_LOG_LEVEL=info
FROM alpine:${ALPINE_BASE_IMAGE} AS runtime
ARG PREFIX_DIR
ARG BUILD_DIR
# Copy build artifacts into this stage
COPY --from=builder ${PREFIX_DIR} ${PREFIX_DIR}
COPY --from=guacamole-server ${PREFIX_DIR} ${PREFIX_DIR}
RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
RUN cat ${PREFIX_DIR}/DEPENDENCIES
# Bring runtime environment up to date and install runtime dependencies
RUN apk add --no-cache \
ca-certificates \
font-noto-cjk \
ghostscript \
netcat-openbsd \
shadow \
@@ -189,6 +336,10 @@ RUN apk add --no-cache \
util-linux-login && \
xargs apk add --no-cache < ${PREFIX_DIR}/DEPENDENCIES
# Runtime environment
ENV LC_ALL=C.UTF-8
ENV LD_LIBRARY_PATH=${PREFIX_DIR}/lib
# Checks the operating status every 5 minutes with a timeout of 5 seconds
HEALTHCHECK --interval=5m --timeout=5s CMD nc -z 127.0.0.1 4822 || exit 1
@@ -197,8 +348,6 @@ ARG UID=1000
ARG GID=1000
RUN groupadd --gid $GID guacd
RUN useradd --system --create-home --shell /sbin/nologin --uid $UID --gid $GID guacd
RUN mkdir -p /opt/cloudpods
RUN chown -R guacd:guacd /opt/cloudpods
# Run with user guacd
USER guacd
@@ -206,9 +355,6 @@ USER guacd
# Expose the default listener port
EXPOSE 4822
# Start guacd, listening on port 0.0.0.0:4822
#
# Note the path here MUST correspond to the value specified in the
# PREFIX_DIR build argument.
#
CMD /opt/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f
COPY --from=guacamole-server ${BUILD_DIR}/src/guacd-docker/bin/entrypoint.sh /opt/guacamole/
#COPY
ENTRYPOINT [ "/opt/guacamole/entrypoint.sh" ]

View File

@@ -1,8 +1,8 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-base:v0.7.0
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-base:v0.9.0
MAINTAINER "Yaoqi Wan wanyaoqi@yunionyun.com"
LABEL maintainer="Yaoqi Wan wanyaoqi@yunionyun.com"
ENV TZ UTC
ENV TZ="UTC"
RUN mkdir -p /opt/yunion/bin
ADD ./_output/alpine-build/bin/host /opt/yunion/bin/host

View File

@@ -1,9 +1,9 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-deployer-base:1.4.10
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-deployer-base:1.5.9
MAINTAINER "Yaoqi Wan wanyaoqi@yunionyun.com"
LABEL maintainer="Yaoqi Wan wanyaoqi@yunionyun.com"
ENV TZ UTC
ENV TZ="UTC"
RUN mkdir -p /opt/yunion/bin
ADD ./_output/centos-build/bin/host-deployer /opt/yunion/bin/host-deployer
ADD ./_output/alpine-build/bin/host-deployer /opt/yunion/bin/host-deployer

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/host-health /opt/yunion/bin/host-health

View File

@@ -1,6 +1,6 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ENV TZ UTC
ENV TZ="UTC"
RUN mkdir -p /opt/yunion/bin
ADD ./_output/alpine-build/bin/host-image /opt/yunion/bin/host-image

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/keystone /opt/yunion/bin/keystone

View File

@@ -1,4 +1,4 @@
FROM alpine:3.19
FROM alpine:3.22.2
ARG TARGETPLATFORM
ARG BUILDPLATFORM
@@ -6,4 +6,4 @@ ARG TARGETARCH
RUN echo http://dl-cdn.alpinelinux.org/alpine/edge/testing >>/etc/apk/repositories
RUN apk update && apk add curl android-tools && rm -rf /var/cache/apk/*
RUN curl https://iso.yunion.cn/binaries/kubernetes-release/release/v1.22.9/bin/linux/${TARGETARCH}/kubectl -o /usr/bin/kubectl && chmod a+x /usr/bin/kubectl
RUN curl -L https://iso.yunion.cn/binaries/kubernetes-release/release/v1.22.9/bin/linux/${TARGETARCH}/kubectl -o /usr/bin/kubectl && chmod a+x /usr/bin/kubectl

View File

@@ -1,8 +1,8 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/lbagent-base:v0.0.4
FROM registry.cn-beijing.aliyuncs.com/yunionio/lbagent-base:v0.0.5
MAINTAINER "Yousong Zhou <zhouyousong@yunion.cn>"
LABEL maintainer="Yousong Zhou <zhouyousong@yunion.cn>"
ENV TZ UTC
ENV TZ="UTC"
RUN mkdir -p /opt/yunion/bin
ADD ./_output/alpine-build/bin/lbagent /opt/yunion/bin/lbagent

View File

@@ -1,12 +1,12 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/openvswitch:2.12.4-2
FROM registry.cn-beijing.aliyuncs.com/yunionio/openvswitch:2.12.4-5
MAINTAINER "Jian QIU <qiujian@yunion.cn>"
LABEL maintainer="Jian QIU <qiujian@yunion.cn>"
ENV TZ UTC
ENV TZ="UTC"
ENV GOPATH=/root/go
RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
RUN sed -i 's!v3.20/!v3.22/!g' /etc/apk/repositories
RUN set -x \
&& apk update \

View File

@@ -0,0 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/llm /opt/yunion/bin/llm

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/logger /opt/yunion/bin/logger

View File

@@ -0,0 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/mcp-server /opt/yunion/bin/mcp-server

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
COPY ./build/monitor/root/opt/ /opt/
ADD ./_output/alpine-build/bin/monitor /opt/yunion/bin/monitor

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
COPY ./build/notify/root/opt/ /opt/
ADD ./_output/alpine-build/bin/notify /opt/yunion/bin/notify

View File

@@ -1,9 +1,9 @@
# TODO: use 3.14 will lead 'apk add qemu-img fail on arm64'
FROM alpine:3.13.5
FROM alpine:3.22.1
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
LABEL maintainer="Zexi Li <lizexi@yunionyun.com>"
ENV TZ UTC
ENV TZ="UTC"
RUN mkdir -p /opt/yunion/bin

View File

@@ -1,8 +1,8 @@
FROM alpine:3.15.4
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
LABEL maintainer="Zexi Li <lizexi@yunionyun.com>"
ENV TZ UTC
ENV TZ="UTC"
RUN mkdir -p /opt/yunion/bin

View File

@@ -0,0 +1,13 @@
FROM alpine:3.22.2
LABEL maintainer="Zexi Li <lizexi@yunionyun.com>"
ENV TZ="UTC"
RUN mkdir -p /opt/yunion/bin
RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
RUN apk update && \
apk add --no-cache tzdata curl busybox-extras tcpdump strace ca-certificates && \
rm -rf /var/cache/apk/*

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
COPY ./build/region/root/opt/ /opt/
ADD ./_output/alpine-build/bin/region /opt/yunion/bin/region

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
RUN mkdir -p /opt/yunion/bin
ADD ./_output/alpine-build/bin/region-dns /opt/yunion/bin/region-dns

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/s3gateway /opt/yunion/bin/s3gateway

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/scheduledtask /opt/yunion/bin/scheduledtask

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/scheduler /opt/yunion/bin/scheduler

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/yunion-rootfs:v1.1
FROM registry.cn-beijing.aliyuncs.com/yunionio/yunion-rootfs:v4.0.0-20251112.0
ADD ./_output/centos-build/bin/telegraf-raid-plugin /opt/yunion/bin/telegraf-raid-plugin
ADD ./_output/alpine-build/bin/telegraf-raid-plugin /opt/yunion/bin/telegraf-raid-plugin

View File

@@ -1,10 +1,6 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
MAINTAINER "Zexi Li <zexi.li@icloud.com>"
# HACK: use v3.14 alpine mirror to upgrade qemu-img
RUN echo http://dl-cdn.alpinelinux.org/alpine/v3.14/main > /etc/apk/repositories
RUN echo http://dl-cdn.alpinelinux.org/alpine/v3.14/community >> /etc/apk/repositories
LABEL maintainer="Zexi Li <zexi.li@icloud.com>"
RUN apk update && \
apk add --no-cache qemu-img && \

View File

@@ -1,7 +1,7 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/openvswitch:2.10.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/openvswitch:2.12.4-5
MAINTAINER "Yousong Zhou <zhouyousong@yunion.cn>"
LABEL maintainer="Yousong Zhou <zhouyousong@yunion.cn>"
ENV TZ UTC
ENV TZ="UTC"
RUN mkdir -p /opt/yunion/bin
ADD ./_output/alpine-build/bin/vpcagent /opt/yunion/bin/vpcagent

View File

@@ -1,5 +1,3 @@
# FROM registry.cn-beijing.aliyuncs.com/yunionio/webconsole-base:20230731.2
# FROM registry.cn-beijing.aliyuncs.com/yunionio/webconsole-base:20240514.0
FROM registry.cn-beijing.aliyuncs.com/yunionio/webconsole-base:20240909.0
FROM registry.cn-beijing.aliyuncs.com/yunionio/webconsole-base:3.22.2-1
ADD ./_output/alpine-build/bin/webconsole /opt/yunion/bin/webconsole

View File

@@ -1,8 +1,8 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/kubectl:1.22.9
FROM registry.cn-beijing.aliyuncs.com/yunionio/kubectl:3.22.2-1
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
LABEL maintainer="Zexi Li <lizexi@yunionyun.com>"
ENV TZ UTC
ENV TZ="UTC"
RUN mkdir -p /opt/yunion/bin

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
ADD ./_output/alpine-build/bin/yunionconf /opt/yunion/bin/yunionconf

View File

@@ -1,6 +1,6 @@
REGISTRY ?= "registry.cn-beijing.aliyuncs.com/yunionio"
DOCKER_BUILD = docker build -t $(REGISTRY)
DOCKER_BUILDX = docker buildx build --platform linux/arm64,linux/amd64 --push -t $(REGISTRY)
DOCKER_BUILDX = docker buildx build --platform linux/arm64,linux/amd64,linux/riscv64 --push -t $(REGISTRY)
debian10-base:
@@ -9,73 +9,73 @@ debian10-base:
ONECLOUD_BASE_VERSION = v0.3-3.13.5
ONECLOUD_BASE_VERSION_3-15-4 = v3.15.4-0
ONECLOUD_BASE_VERSION_3-22-2 = 3.22.2-0
onecloud-base:
$(DOCKER_BUILDX)/onecloud-base:$(ONECLOUD_BASE_VERSION) -f ./Dockerfile.onecloud-base .
onecloud-base-3-15-4:
$(DOCKER_BUILDX)/onecloud-base:$(ONECLOUD_BASE_VERSION_3-15-4) -f ./Dockerfile.onecloud-base-3-15-4 .
onecloud-base-3-22-2:
$(DOCKER_BUILDX)/onecloud-base:$(ONECLOUD_BASE_VERSION_3-22-2) -f ./Dockerfile.onecloud-base-3-22-2 .
ANSIBLESERVER_BASE = v1.1.3
ANSIBLESERVER_BASE = 3.22.2-0
ansibleserver-base:
$(DOCKER_BUILDX)/ansibleserver-base:$(ANSIBLESERVER_BASE) -f ./Dockerfile.ansibleserver-base .
CLIMC_BASE_VERSION = 20230731.5
CLIMC_BASE_VERSION_3-22-2 = 3.22.2-2
climc-base:
docker buildx build --platform linux/arm64,linux/amd64 --push \
-t registry.cn-beijing.aliyuncs.com/yunionio/climc-base:$(CLIMC_BASE_VERSION) -f ./Dockerfile.climc-base .
$(DOCKER_BUILDX)/climc-base:$(CLIMC_BASE_VERSION) -f ./Dockerfile.climc-base .
KUBECTL_VERSION = 1.22.9
climc-base-3-22-2:
$(DOCKER_BUILDX)/climc-base:$(CLIMC_BASE_VERSION_3-22-2) -f ./Dockerfile.climc-base-3-22-2 .
KUBECTL_VERSION_3-22-2 = 3.22.2-1
kubectl:
docker buildx build --platform linux/arm64,linux/amd64 --push \
-t registry.cn-beijing.aliyuncs.com/yunionio/kubectl:$(KUBECTL_VERSION) -f ./Dockerfile.kubectl .
$(DOCKER_BUILDX)/kubectl:$(KUBECTL_VERSION_3-22-2) -f ./Dockerfile.kubectl .
WEBCONSOLE_BASE_VERSION = 20240909.0
WEBCONSOLE_BASE_VERSION_3-22-2 = 3.22.2-1
webconsole-base:
$(DOCKER_BUILDX)/webconsole-base:$(WEBCONSOLE_BASE_VERSION) -f ./Dockerfile.webconsole-base .
$(DOCKER_BUILDX)/webconsole-base:$(WEBCONSOLE_BASE_VERSION_3-22-2) -f ./Dockerfile.webconsole-base .
BAREMETAL_BASE_VERSION = v0.3.9-20231219.1
BAREMETAL_BASE_VERSION = v0.3.9-20251112.1
FEDORA_RISCV64_VERSION = 42
fedora-riscv64-base:
wget -q https://dl.fedoraproject.org/pub/alt/risc-v/release/$(FEDORA_RISCV64_VERSION)/Container/riscv64/images/Fedora-Container-Base-Generic-$(FEDORA_RISCV64_VERSION).20250414-8635a3a5bfcd.riscv64.oci.tar.xz && \
xz -d Fedora-Container-Base-Generic-$(FEDORA_RISCV64_VERSION).20250414-8635a3a5bfcd.riscv64.oci.tar.xz && \
skopeo copy oci-archive:Fedora-Container-Base-Generic-$(FEDORA_RISCV64_VERSION).20250414-8635a3a5bfcd.riscv64.oci.tar docker-daemon:fedora-riscv64:$(FEDORA_RISCV64_VERSION) && \
rm -f Fedora-Container-Base-Generic-$(FEDORA_RISCV64_VERSION).20250414-8635a3a5bfcd.riscv64.oci.tar
baremetal-base-riscv: fedora-riscv64-base
$(DOCKER_BUILDX)/baremetal-base:$(BAREMETAL_BASE_VERSION) -f ./Dockerfile.baremetal-base-riscv .
#docker push $(REGISTRY)/baremetal-base:$(BAREMETAL_BASE_VERSION)
baremetal-base:
$(DOCKER_BUILDX)/baremetal-base:$(BAREMETAL_BASE_VERSION) -f ./Dockerfile.baremetal-base .
#docker push $(REGISTRY)/baremetal-base:$(BAREMETAL_BASE_VERSION)
TORRENT_VERSION = 20210815.0
TORRENT_VERSION_3-22-2 = 3.22.2-0
torrent:
$(DOCKER_BUILDX)/torrent:$(TORRENT_VERSION) -f ./Dockerfile.torrent .
GLANCE_BASE_VERSION = v0.0.1
GLANCE_BASE_VERSION_3-22-2 = 3.22.2-0
glance-base:
$(DOCKER_BUILDX)/glance-base:$(GLANCE_BASE_VERSION) -f ./Dockerfile.glance-base .
FILE_REPO_VERSION = v0.5.4
glance-base-3-22-2:
$(DOCKER_BUILDX)/glance-base:$(GLANCE_BASE_VERSION_3-22-2) -f ./Dockerfile.glance-base .
file-repo:
$(DOCKER_BUILDX)/file-repo:$(FILE_REPO_VERSION) -f ./Dockerfile.file-repo . --no-cache
HOST_IMAGE_VERSION ?= v1.0.2
HOST_IMAGE_NAME = $(REGISTRY)/host-image:$(HOST_IMAGE_VERSION)
host-image:
docker pull $(HOST_IMAGE_NAME)-amd64 --platform amd64
docker pull $(HOST_IMAGE_NAME)-arm64 --platform arm64
docker manifest create $(HOST_IMAGE_NAME) \
$(HOST_IMAGE_NAME)-amd64 \
$(HOST_IMAGE_NAME)-arm64
docker manifest annotate $(HOST_IMAGE_NAME) $(HOST_IMAGE_NAME)-amd64 --arch amd64
docker manifest annotate $(HOST_IMAGE_NAME) $(HOST_IMAGE_NAME)-arm64 --arch arm64
docker manifest push $(HOST_IMAGE_NAME)
LBAGENT_BASE_VERSION = v0.0.3
LBAGENT_BASE_VERSION = v0.0.5
lbagent-base:
$(DOCKER_BUILDX)/lbagent-base:$(LBAGENT_BASE_VERSION) -f ./Dockerfile.lbagent-base .
GUACD_VERSION=1.5.3
GUACD_VERSION=1.6.0
guacd:
docker buildx build --platform linux/arm64 --push \
-t registry.cn-beijing.aliyuncs.com/yunionio/guacd:$(GUACD_VERSION)-arm64 -f ./Dockerfile.guacd .
docker buildx build --platform linux/amd64 --push \
-t registry.cn-beijing.aliyuncs.com/yunionio/guacd:$(GUACD_VERSION)-amd64 -f ./Dockerfile.guacd .
docker buildx imagetools create -t registry.cn-beijing.aliyuncs.com/yunionio/guacd:$(GUACD_VERSION) \
registry.cn-beijing.aliyuncs.com/yunionio/guacd:$(GUACD_VERSION)-amd64 \
registry.cn-beijing.aliyuncs.com/yunionio/guacd:$(GUACD_VERSION)-arm64
$(DOCKER_BUILDX)/guacd:$(GUACD_VERSION) -f ./Dockerfile.guacd .

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:3.19.0-go-1.21.10-0 as build
FROM registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:3.22.2-go-1.24.9-0 AS build
ARG TARGETPLATFORM
ARG BUILDPLATFORM
RUN mkdir -p /root/go/src/yunion.io/x/onecloud
@@ -7,11 +7,11 @@ COPY . /root/go/src/yunion.io/x/onecloud
WORKDIR /root/go/src/yunion.io/x/onecloud
RUN make cmd/host
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-base:v0.7.0
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-base:v0.9.0
MAINTAINER "Yaoqi Wan wanyaoqi@yunionyun.com"
LABEL maintainer="Yaoqi Wan wanyaoqi@yunionyun.com"
ENV TZ UTC
ENV TZ="UTC"
RUN mkdir -p /opt/yunion/bin
COPY --from=build /root/go/src/yunion.io/x/onecloud/_output/bin/host /opt/yunion/bin/host

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:1.0-5 as build
FROM registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:3.22.2-go-1.24.9-0 AS build
ARG TARGETPLATFORM
ARG BUILDPLATFORM
@@ -6,13 +6,11 @@ RUN mkdir -p /root/go/src/yunion.io/x/onecloud
COPY . /root/go/src/yunion.io/x/onecloud
RUN cd /root/go/src/yunion.io/x/onecloud && make cmd/torrent
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v3.22.2-0
MAINTAINER "Zexi Li <zexi.li@icloud.com>"
LABEL maintainer="Zexi Li <zexi.li@icloud.com>"
# HACK: use v3.14 alpine mirror to upgrade qemu-img
RUN echo http://dl-cdn.alpinelinux.org/alpine/v3.14/main > /etc/apk/repositories
RUN echo http://dl-cdn.alpinelinux.org/alpine/v3.14/community >> /etc/apk/repositories
RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
RUN apk update && \
apk add --no-cache qemu-img && \

View File

@@ -1,5 +1,5 @@
DESCRIPTION="Yunion Cloud Image Service"
REQUIRES=(
yunion-qemu-2.12.1
yunion-qemu-4.2.0
)

View File

@@ -1,9 +1,9 @@
{{.title}}
策略名称: {{.name}}
触发时间: {{.start_time}}
报警级别: {{.level}}
触发条件: {{.description | unescaped}}
报警数量:{{len .matches}}
{{if .reason}}报警原因: {{.reason}}
{{end}}报警数量:{{len .matches}}
资源名称:{{.resource_name}}
详情地址: {{.web_url}}

View File

@@ -88,8 +88,19 @@
</tr>
<tr>
<td class="td">策略详情:</td>
<td>{{.description}}</td>
<td>
{{- range $i, $m := .matches -}}
{{- if $i}}<br/>{{end -}}
{{- $m.condition | unescaped -}}
{{- end -}}
</td>
</tr>
{{if .reason}}
<tr>
<td class="td">报警原因:</td>
<td>{{.reason}}</td>
</tr>
{{end}}
</table>
<table class="table" style="padding-top: 6px; padding-bottom: 10px;">
<tr>

View File

@@ -1,9 +1,9 @@
{{.title}}
AlertName: {{.name}}
Time: {{.start_time}}
Level: {{.level}}
TriggerCondition: {{.description | unescaped}}
AlertCount: {{len .matches}}
{{if .reason}}Reason: {{.reason}}
{{end}}AlertCount: {{len .matches}}
ResourceName: {{.resource_name}}
WebUrl: {{.web_url}}

View File

@@ -88,8 +88,19 @@
</tr>
<tr>
<td class="td">Strategy details</td>
<td>{{.description}}</td>
<td>
{{- range $i, $m := .matches -}}
{{- if $i}}<br/>{{end -}}
{{- $m.condition | unescaped -}}
{{- end -}}
</td>
</tr>
{{if .reason}}
<tr>
<td class="td">Reason</td>
<td>{{.reason}}</td>
</tr>
{{end}}
</table>
<table class="table" style="padding-top: 6px; padding-bottom: 10px;">
<tr>

View File

@@ -1 +1 @@
{{.title}}
{{monitorTitle .}}

View File

@@ -1 +1 @@
{{.title}}
{{monitorTitle .}}

View File

@@ -1 +1 @@
{{.title}}
{{monitorTitle .}}

View File

@@ -1 +1 @@
{{.title}}
{{monitorTitle .}}

View File

@@ -30,6 +30,7 @@ import (
_ "yunion.io/x/onecloud/cmd/climc/shell/identity"
_ "yunion.io/x/onecloud/cmd/climc/shell/image"
_ "yunion.io/x/onecloud/cmd/climc/shell/k8s"
_ "yunion.io/x/onecloud/cmd/climc/shell/llm"
_ "yunion.io/x/onecloud/cmd/climc/shell/logger"
_ "yunion.io/x/onecloud/cmd/climc/shell/misc"
_ "yunion.io/x/onecloud/cmd/climc/shell/monitor"

View File

@@ -15,6 +15,11 @@
package compute
import (
"fmt"
"os"
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
@@ -39,6 +44,16 @@ func init() {
dbCmd.Create(&compute.DiskBackupCreateOptions{})
dbCmd.Perform("recovery", &compute.DiskBackupRecoveryOptions{})
dbCmd.Perform("syncstatus", &compute.DiskBackupSyncstatusOptions{})
dbCmd.GetWithCustomOptionShow("export-info", func(info jsonutils.JSONObject, opts shell.IGetOpt) {
args := opts.(*compute.DiskBackupExportOptions)
if args.Output != "" {
os.WriteFile(args.Output, []byte(info.String()), 0644)
fmt.Printf("Exported to %s\n", args.Output)
} else {
printObject(info)
}
}, &compute.DiskBackupExportOptions{})
dbCmd.PerformClass("import", &compute.DiskBackupImportOptions{})
ibCmd := shell.NewResourceCmd(&modules.InstanceBackups)
ibCmd.List(&compute.InstanceBackupListOptions{})

View File

@@ -103,4 +103,5 @@ func init() {
cmd.Perform("enable-image-cache", new(AgentEnableImageCacheOpt))
cmd.Perform("disable-image-cache", new(AgentDisableImageCacheOpt))
cmd.Delete(new(AgentDeleteOpt))
cmd.Get("app-options", &options.BaseIdOptions{})
}

View File

@@ -62,6 +62,8 @@ func init() {
cmd.CreateWithKeyword("create-qingcloud", &options.SQingCloudCloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-oracle", &options.SOracleCloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-cephfs", &options.SCephFSCloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-cnware", &options.SCNwareCloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-oceanbase", &options.SOceanbaseCloudAccountCreateOptions{})
cmd.UpdateWithKeyword("update-vmware", &options.SVMwareCloudAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-aliyun", &options.SAliyunCloudAccountUpdateOptions{})
@@ -88,6 +90,8 @@ func init() {
cmd.UpdateWithKeyword("update-baidu", &options.SBaiduCloudAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-cucloud", &options.SCucloudCloudAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-qingcloud", &options.SQingCloudCloudAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-cnware", &options.SCNwareCloudAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-oceanbase", &options.SOceanbaseCloudAccountUpdateOptions{})
cmd.Perform("update-credential", &options.CloudaccountUpdateCredentialOptions{})
@@ -117,6 +121,7 @@ func init() {
cmd.PerformWithKeyword("update-credential-baidu", "update-credential", &options.SBaiduCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("update-credential-cucloud", "update-credential", &options.SCucloudCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("update-credential-qingcloud", "update-credential", &options.SQingCloudCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("update-credential-cnware", "update-credential", &options.SCNwareCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("test-connectivity-google", "test-connectivity", &options.SGoogleCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("test-connectivity-vmware", "test-connectivity", &options.SVMwareCloudAccountUpdateCredentialOptions{})
@@ -133,6 +138,7 @@ func init() {
cmd.PerformWithKeyword("test-connectivity-ctyun", "test-connectivity", &options.SCtyunCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("test-connectivity-jdcloud", "test-connectivity", &options.SJDcloudCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("test-connectivity-cloudpods", "test-connectivity", &options.SCloudpodsCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("test-connectivity-oceanbase", "test-connectivity", &options.SOceanbaseCloudAccountUpdateCredentialOptions{})
cmd.Perform("enable", &options.SCloudAccountIdOptions{})
cmd.Perform("disable", &options.SCloudAccountIdOptions{})

View File

@@ -19,6 +19,7 @@ import (
"io/ioutil"
"os"
"os/exec"
"path"
"strings"
"github.com/ghodss/yaml"
@@ -31,6 +32,7 @@ import (
"yunion.io/x/onecloud/pkg/mcclient"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
"yunion.io/x/onecloud/pkg/util/fileutils2"
"yunion.io/x/onecloud/pkg/util/pod/stream/cp"
)
@@ -43,6 +45,7 @@ func init() {
cmd.BatchDelete(new(options.ContainerDeleteOptions))
cmd.BatchPerform("stop", new(options.ContainerStopOptions))
cmd.BatchPerform("start", new(options.ContainerStartOptions))
cmd.BatchPerform("restart", new(options.ContainerRestartOptions))
cmd.BatchPerform("syncstatus", new(options.ContainerIdsOptions))
cmd.Perform("save-volume-mount-image", new(options.ContainerSaveVolumeMountImage))
cmd.Perform("exec-sync", new(options.ContainerExecSyncOptions))
@@ -136,15 +139,18 @@ func init() {
return nil
})
R(new(options.ContainerCopyOptions), "container-cp", "Container copy", func(s *mcclient.ClientSession, opts *options.ContainerCopyOptions) error {
parts := strings.Split(opts.CONTAINER_ID_FILE, ":")
copyToContainer := func(s *mcclient.ClientSession, src, dst string, rawFile bool) error {
parts := strings.Split(dst, ":")
if len(parts) != 2 {
return fmt.Errorf("invalid container id: %s", opts.CONTAINER_ID_FILE)
return fmt.Errorf("invalid container id: %s", dst)
}
if opts.RawFile {
fr, err := os.Open(opts.SRC_FILE)
if rawFile {
if fileutils2.IsDir(src) {
return fmt.Errorf("source path cannot be a directory when raw file is true: %s", src)
}
fr, err := os.Open(src)
if err != nil {
return errors.Wrapf(err, "open file: %v", opts.SRC_FILE)
return errors.Wrapf(err, "open file: %v", src)
}
defer fr.Close()
if err := modules.Containers.CopyTo(s, parts[0], parts[1], fr); err != nil {
@@ -152,22 +158,24 @@ func init() {
}
return nil
} else {
return cp.NewCopy().CopyToContainer(s, opts.SRC_FILE, cp.ContainerFileOpt{
return cp.NewCopy().CopyToContainer(s, src, cp.ContainerFileOpt{
ContainerId: parts[0],
File: parts[1],
})
}
})
R(new(options.ContainerCopyOptions), "container-cp-from", "Container copy", func(s *mcclient.ClientSession, opts *options.ContainerCopyOptions) error {
parts := strings.Split(opts.SRC_FILE, ":")
}
copyFromContainer := func(s *mcclient.ClientSession, src, dst string, rawFile bool) error {
parts := strings.Split(src, ":")
if len(parts) != 2 {
return fmt.Errorf("invalid container id: %s", opts.CONTAINER_ID_FILE)
return fmt.Errorf("invalid container id: %s", src)
}
ctrId := parts[0]
ctrFile := parts[1]
destFile := opts.CONTAINER_ID_FILE
if opts.RawFile {
destFile := dst
if fileutils2.IsDir(destFile) {
destFile = path.Join(destFile, path.Base(ctrFile))
}
if rawFile {
fw, err := os.Create(destFile)
if err != nil {
return errors.Wrapf(err, "open file: %v", destFile)
@@ -183,5 +191,37 @@ func init() {
File: ctrFile,
}, destFile)
}
}
R(new(options.ContainerCopyOptions), "container-cp", "Container copy", func(s *mcclient.ClientSession, opts *options.ContainerCopyOptions) error {
if strings.Contains(opts.SRC, ":") && !strings.Contains(opts.DST, ":") {
// copy from container to host
err := copyFromContainer(s, opts.SRC, opts.DST, opts.RawFile)
if err != nil {
return errors.Wrapf(err, "copy from container to host")
}
return nil
} else if !strings.Contains(opts.SRC, ":") && strings.Contains(opts.DST, ":") {
// copy from host to container
err := copyToContainer(s, opts.SRC, opts.DST, opts.RawFile)
if err != nil {
return errors.Wrapf(err, "copy to container")
}
return nil
} else if strings.Contains(opts.SRC, ":") && strings.Contains(opts.DST, ":") {
// copy from container to container
return fmt.Errorf("copy from container to container is not supported")
} else {
return fmt.Errorf("copy between local files is not supported")
}
})
R(new(options.ContainerCopyFromOptions), "container-cp-from", "Container copy", func(s *mcclient.ClientSession, opts *options.ContainerCopyFromOptions) error {
err := copyFromContainer(s, opts.CONTAINER_ID_PATH, opts.DST_PATH, opts.RawFile)
if err != nil {
return errors.Wrapf(err, "copy from container to host")
}
return nil
})
}

View File

@@ -42,31 +42,18 @@ import (
func init() {
cmd := shell.NewResourceCmd(&modules.Disks)
cmd.List(&compute_options.DiskListOptions{})
cmd.Show(&compute_options.DiskIdOptions{})
cmd.Perform("public", &compute_options.DiskIdOptions{})
cmd.Perform("private", &compute_options.DiskIdOptions{})
cmd.Perform("syncstatus", &compute_options.DiskIdOptions{})
cmd.Perform("change-owner-candidate-domains", &compute_options.DiskIdOptions{})
cmd.Perform("disk-cancel-delete", &compute_options.DiskIdOptions{})
cmd.Perform("set-class-metadata", &options.ResourceMetadataOptions{})
cmd.Perform("rebuild", &compute_options.DiskRebuildOptions{})
cmd.Perform("migrate", &compute_options.DiskMigrateOptions{})
cmd.Perform("reset-template", &compute_options.DiskResetTemplateOptions{})
cmd.Perform("change-billing-type", new(compute_options.DiskChangeBillingTypeOptions))
type DiskDetailOptions struct {
ID string `help:"ID or Name of disk"`
}
R(&DiskDetailOptions{}, "disk-show", "Show details of disk", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
disk, e := modules.Disks.Get(s, args.ID, nil)
if e != nil {
return e
}
printObject(disk)
return nil
})
R(&DiskDetailOptions{}, "disk-cancel-delete", "Cancel pending delete disks", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
disk, e := modules.Disks.PerformAction(s, args.ID, "cancel-delete", nil)
if e != nil {
return e
}
printObject(disk)
return nil
})
cmd.Perform("change-storage-type", &compute_options.DiskChangeStorageTypeOptions{})
type DiskDeleteOptions struct {
ID []string `help:"ID of disks to delete" metavar:"DISK"`
@@ -96,25 +83,7 @@ func init() {
return nil
})
R(&DiskDetailOptions{}, "disk-public", "Make a disk public", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
disk, e := modules.Disks.PerformAction(s, args.ID, "public", nil)
if e != nil {
return e
}
printObject(disk)
return nil
})
R(&DiskDetailOptions{}, "disk-private", "Make a disk private", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
disk, e := modules.Disks.PerformAction(s, args.ID, "private", nil)
if e != nil {
return e
}
printObject(disk)
return nil
})
R(&DiskDetailOptions{}, "disk-metadata", "Get metadata of a disk", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
R(&compute_options.DiskIdOptions{}, "disk-metadata", "Get metadata of a disk", func(s *mcclient.ClientSession, args *compute_options.DiskIdOptions) error {
meta, e := modules.Disks.GetMetadata(s, args.ID, nil)
if e != nil {
return e
@@ -123,20 +92,11 @@ func init() {
return nil
})
R(&DiskDetailOptions{}, "disk-syncstatus", "Sync status for disk", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
ret, e := modules.Disks.PerformAction(s, args.ID, "syncstatus", nil)
if e != nil {
return e
}
printObject(ret)
return nil
})
type DiskUpdateOptions struct {
ID string `help:"ID or name of disk"`
Name string `help:"New name of disk"`
Desc string `help:"Description" metavar:"DESCRIPTION"`
AutoDelete string `help:"enable/disable auto delete of disk" choices:"enable|disable"`
AutoDelete string `help:"Set disk auto_delete (true/false or enable/disable)" choices:"true|false|enable|disable"`
AutoSnapshot string `help:"enable/disable auto snapshot of disk" choices:"enable|disable"`
DiskType string `help:"Disk type" choices:"data|volume|sys"`
IsSsd *bool `help:"mark disk as ssd" negative:"no-is-ssd"`
@@ -151,7 +111,7 @@ func init() {
params.Add(jsonutils.NewString(args.Desc), "description")
}
if len(args.AutoDelete) > 0 {
if args.AutoDelete == "enable" {
if args.AutoDelete == "enable" || args.AutoDelete == "true" {
params.Add(jsonutils.JSONTrue, "auto_delete")
} else {
params.Add(jsonutils.JSONFalse, "auto_delete")
@@ -300,7 +260,7 @@ func init() {
return nil
})
R(&DiskDetailOptions{}, "disk-change-owner-candidate-domains", "Get change owner candidate domain list", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
R(&compute_options.DiskIdOptions{}, "disk-change-owner-candidate-domains", "Get change owner candidate domain list", func(s *mcclient.ClientSession, args *compute_options.DiskIdOptions) error {
result, err := modules.Disks.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
if err != nil {
return err

View File

@@ -72,6 +72,7 @@ func init() {
cmd.Get("ipmi", &options.BaseIdOptions{})
cmd.Get("vnc", &options.BaseIdOptions{})
cmd.Get("app-options", &options.BaseIdOptions{})
cmd.Get("isolated-device-numa-stats", &compute.HostIsolatedDeviceNumaStatsOptions{})
cmd.GetWithCustomShow("worker-stats", func(data jsonutils.JSONObject) {
stats, _ := data.GetArray("workers")
printList(&printutils.ListResult{Data: stats}, nil)
@@ -266,6 +267,7 @@ func init() {
Ip6Addr string `help:"IPv6 address"`
Bridge string `help:"Bridge of hostwire"`
Interface string `help:"Interface name, eg:eth0, en0"`
VlanId int `help:"Vlan ID"`
}
R(&HostAddNetIfOptions{}, "host-add-netif", "Host add a NIC", func(s *mcclient.ClientSession, args *HostAddNetIfOptions) error {
params := jsonutils.NewDict()
@@ -288,6 +290,7 @@ func init() {
if len(args.Interface) > 0 {
params.Add(jsonutils.NewString(args.Interface), "interface")
}
addVlanIdToParams(params, args.VlanId)
result, err := modules.Hosts.PerformAction(s, args.ID, "add-netif", params)
if err != nil {
return err
@@ -297,12 +300,14 @@ func init() {
})
type HostRemoveNetIfOptions struct {
ID string `help:"ID or Name of host"`
MAC string `help:"MAC of NIC to remove"`
ID string `help:"ID or Name of host"`
MAC string `help:"MAC of NIC to remove"`
VlanId int `help:"Vlan Id"`
}
R(&HostRemoveNetIfOptions{}, "host-remove-netif", "Remove NIC from host", func(s *mcclient.ClientSession, args *HostRemoveNetIfOptions) error {
params := jsonutils.NewDict()
params.Add(jsonutils.NewString(args.MAC), "mac")
addVlanIdToParams(params, args.VlanId)
result, err := modules.Hosts.PerformAction(s, args.ID, "remove-netif", params)
if err != nil {
return err
@@ -318,6 +323,7 @@ func init() {
Ip6 string `help:"IPv6 address"`
Network string `help:"network to connect"`
Reserved bool `help:"fetch IP from reserved pool"`
VlanId int `help:"Vlan ID"`
}
R(&HostEnableNetIfOptions{}, "host-enable-netif", "Enable a network interface for a host", func(s *mcclient.ClientSession, args *HostEnableNetIfOptions) error {
params := jsonutils.NewDict()
@@ -336,6 +342,7 @@ func init() {
if len(args.Network) > 0 {
params.Add(jsonutils.NewString(args.Network), "network")
}
addVlanIdToParams(params, args.VlanId)
result, err := modules.Hosts.PerformAction(s, args.ID, "enable-netif", params)
if err != nil {
return err
@@ -348,6 +355,7 @@ func init() {
ID string `help:"ID or Name of host"`
MAC string `help:"MAC of NIC to disable"`
Reserve bool `help:"Reserve the IP address"`
VlanId int `help:"Vlan Id"`
}
R(&HostDisableNetIfOptions{}, "host-disable-netif", "Disable a network interface", func(s *mcclient.ClientSession, args *HostDisableNetIfOptions) error {
params := jsonutils.NewDict()
@@ -355,6 +363,7 @@ func init() {
if args.Reserve {
params.Add(jsonutils.JSONTrue, "reserve")
}
addVlanIdToParams(params, args.VlanId)
result, err := modules.Hosts.PerformAction(s, args.ID, "disable-netif", params)
if err != nil {
return err
@@ -696,3 +705,9 @@ func init() {
},
)
}
func addVlanIdToParams(params *jsonutils.JSONDict, vlanId int) {
if vlanId > 1 {
params.Add(jsonutils.NewInt(int64(vlanId)), "vlan_id")
}
}

View File

@@ -37,7 +37,7 @@ func init() {
return nil
})
R(&options.TagListOptions{}, "tag-list", "List tags", func(s *mcclient.ClientSession, opts *options.TagListOptions) error {
R(&options.TagListOptions{}, "service-metadata-list", "List service metadata", func(s *mcclient.ClientSession, opts *options.TagListOptions) error {
var mod modulebase.IResourceManager
switch opts.Service {
case "compute":

View File

@@ -98,6 +98,22 @@ func init() {
return nil
})
type NetworkCreate3Options struct {
compute_options.NetworkCreateOptions `start_ip->positional:"false" end_ip->positional:"false" net_mask->positional:"false"`
}
R(&NetworkCreate3Options{}, "network-create3", "Create a dual-stack virtual network", func(s *mcclient.ClientSession, args *NetworkCreate3Options) error {
params, err := args.Params()
if err != nil {
return err
}
net, err := modules.Networks.Create(s, params)
if err != nil {
return err
}
printObject(net)
return nil
})
type NetworkSplitOptions struct {
NETWORK string `help:"ID or name of network to split"`
IP string `help:"Start ip of the split network"`

View File

@@ -36,4 +36,7 @@ func init() {
cmd.Perform("change-owner", &options.SecgroupChangeOwnerOptions{})
cmd.Perform("import-rules", &options.SecgroupImportRulesOptions{})
cmd.PerformClass("clean", &options.SecgroupCleanOptions{})
scmd := shell.NewResourceCmd(&modules.Servernetworksecgroups)
scmd.List(&options.ServerNetworkSecgroupListOptions{})
}

View File

@@ -23,14 +23,20 @@ import (
"yunion.io/x/pkg/util/printutils"
"yunion.io/x/pkg/util/regutils"
"yunion.io/x/onecloud/cmd/climc/shell"
"yunion.io/x/onecloud/pkg/apis/compute"
"yunion.io/x/onecloud/pkg/cloudcommon/cmdline"
"yunion.io/x/onecloud/pkg/mcclient"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
compute_options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
cmd := shell.NewResourceCmd(&modules.ServerNetworkTrafficLogs)
cmd.List(new(compute_options.ServerNetworkTrafficLogListOptions))
type ServerNetworkListOptions struct {
options.BaseListOptions
Server string `help:"ID or Name of Server"`
@@ -138,7 +144,10 @@ func init() {
type ServerNetworkBWOptions struct {
SERVER string `help:"ID or Name of server"`
MACORIP string `help:"IP, Mac, or Index of NIC"`
BW int64 `help:"Bandwidth in Mbps"`
BW int64 `help:"Bandwidth in Mbps"`
Tx int64 `help:"Tx bandwidth in Mbps"`
Rx int64 `help:"Rx bandwidth in Mbps"`
}
R(&ServerNetworkBWOptions{}, "server-change-bandwidth", "Change server network bandwidth in Mbps", func(s *mcclient.ClientSession, args *ServerNetworkBWOptions) error {
params := jsonutils.NewDict()
@@ -156,6 +165,8 @@ func init() {
return fmt.Errorf("Please specify Ip or Mac")
}
params.Add(jsonutils.NewInt(args.BW), "bandwidth")
params.Add(jsonutils.NewInt(args.Tx), "tx_bw_limit")
params.Add(jsonutils.NewInt(args.Rx), "rx_bw_limit")
server, err := modules.Servers.PerformAction(s, args.SERVER, "change-bandwidth", params)
if err != nil {
return err

View File

@@ -30,6 +30,7 @@ import (
"yunion.io/x/pkg/util/printutils"
"yunion.io/x/onecloud/cmd/climc/shell"
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
"yunion.io/x/onecloud/pkg/apis/compute"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modulebase"
@@ -124,13 +125,20 @@ func init() {
cmd.Perform("set-nic-traffic-limit", &options.ServerNicTrafficLimitOptions{})
cmd.Perform("add-sub-ips", &options.ServerAddSubIpsOptions{})
cmd.Perform("update-sub-ips", &options.ServerUpdateSubIpsOptions{})
cmd.BatchPerform("restore-virtual-isolated-devices", &options.ServerIdsOptions{})
cmd.BatchPerform("set-os-info", &options.ServerSetOSInfoOptions{})
cmd.BatchPerform("start-rescue", &options.ServerStartOptions{})
cmd.BatchPerform("stop-rescue", &options.ServerStartOptions{})
cmd.BatchPerform("sync-os-info", &options.ServerIdsOptions{})
cmd.BatchPerform("set-root-disk-matcher", &options.ServerSetRootDiskMatcher{})
cmd.Perform("disable-auto-merge-snapshot", &options.ServerDisableAutoMergeSnapshot{})
cmd.BatchPerform("set-tpm", &options.ServerSetTpmOptions{})
cmd.Perform("set-kickstart", &options.ServerKickstartConfigOptions{})
cmd.Perform("delete-kickstart", &options.ServerIdOptions{})
cmd.Perform("kickstart-complete", &options.ServerKickstartCompleteOptions{})
cmd.Get("kickstart", new(options.ServerIdOptions))
cmd.Get("vnc", new(options.ServerVncOptions))
cmd.Get("modification-types", new(options.ServerIdOptions))
cmd.Get("desc", new(options.ServerIdOptions))
cmd.Get("status", new(options.ServerIdOptions))
cmd.Get("iso", new(options.ServerIdOptions))
@@ -143,6 +151,13 @@ func init() {
cmd.Get("sshport", new(options.ServerIdOptions))
cmd.Get("qemu-info", new(options.ServerIdOptions))
cmd.Get("hardware-info", new(options.ServerIdOptions))
cmd.Get("screen-dump-show", new(options.ServerScreenDumpOptions))
cmd.Get("numa-info", new(options.ServerIdOptions))
cmd.BatchPerform("screen-dump", new(options.ServerIdsOptions))
cmd.Perform("set-network-num-queues", new(options.ServerSetNetworkNumQueues))
cmd.Perform("set-network-secgroup", new(options.ServerNetworkSecGroupsOptions))
cmd.Perform("add-network-secgroup", new(options.ServerNetworkSecGroupsOptions))
cmd.Perform("revoke-network-secgroup", new(options.ServerNetworkSecGroupsOptions))
cmd.GetProperty(&options.ServerStatusStatisticsOptions{})
cmd.GetProperty(&options.ServerProjectStatisticsOptions{})
@@ -184,59 +199,6 @@ func init() {
return nil
})
/*R(&options.ServerBatchMetadataOptions{}, "server-batch-update-user-tag", "add tags for some server", func(s *mcclient.ClientSession, opts *options.ServerBatchMetadataOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
result, err := modules.Servers.PerformClassAction(s, "batch-user-metadata", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.ServerBatchMetadataOptions{}, "server-batch-replace-user-tag", "Set tags for some server", func(s *mcclient.ClientSession, opts *options.ServerBatchMetadataOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
result, err := modules.Servers.PerformClassAction(s, "batch-set-user-metadata", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.ResourceMetadataOptions{}, "server-update-user-tag", "Set tag of a server", func(s *mcclient.ClientSession, opts *options.ResourceMetadataOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
result, err := modules.Servers.PerformAction(s, opts.ID, "user-metadata", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.ResourceMetadataOptions{}, "server-update-user-tag", "Set tag of a server", func(s *mcclient.ClientSession, opts *options.ResourceMetadataOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
result, err := modules.Servers.PerformAction(s, opts.ID, "set-user-metadata", params)
if err != nil {
return err
}
printObject(result)
return nil
})
*/
R(&baseoptions.ResourceMetadataOptions{}, "server-set-metadata", "Set raw metadata of a server", func(s *mcclient.ClientSession, opts *baseoptions.ResourceMetadataOptions) error {
params, err := opts.Params()
if err != nil {
@@ -257,8 +219,10 @@ func init() {
params.Name = opts.NAME
params.AutoStart = opts.AutoStart
params.Eip = opts.Eip
params.EipChargeType = opts.EipChargeType
params.EipChargeType = billing_api.ParseNetChargeType(opts.EipChargeType)
params.EipBw = opts.EipBw
params.EipTxBw = opts.EipTxBw
params.EipRxBw = opts.EipRxBw
server, err := modules.Servers.Create(s, params.JSON(params))
if err != nil {

View File

@@ -0,0 +1,23 @@
package compute
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
type ServerScreenDumpListOptions struct {
options.BaseListOptions
Server string `help:"Id or name of server"`
}
func (o *ServerScreenDumpListOptions) Params() (jsonutils.JSONObject, error) {
return jsonutils.Marshal(o), nil
}
func init() {
cmd := shell.NewResourceCmd(&modules.ServerScreenDumps)
cmd.List(new(ServerScreenDumpListOptions))
}

View File

@@ -31,9 +31,9 @@ import (
)
type GeneralUsageOptions struct {
HostType []string `help:"Host types" choices:"hypervisor|baremetal|esxi|xen|kubelet|hyperv|aliyun|azure|aws|huawei|qcloud|openstack|ucloud|zstack|google|ctyun"`
Provider []string `help:"Provider" choices:"OneCloud|VMware|Aliyun|Azure|Aws|Qcloud|Huawei|OpenStack|Ucloud|VolcEngine|ZStack|Google|Ctyun"`
Brand []string `help:"Brands" choices:"OneCloud|VMware|Aliyun|Azure|Aws|Qcloud|Huawei|OpenStack|Ucloud|VolcEngine|ZStack|Google|Ctyun"`
HostType []string `help:"Host types" choices:"hypervisor|baremetal|esxi|xen|kubelet|hyperv|aliyun|azure|aws|huawei|qcloud|openstack|ucloud|zstack|google|ctyun|cnware"`
Provider []string `help:"Provider" choices:"OneCloud|VMware|Aliyun|Azure|Aws|Qcloud|Huawei|OpenStack|Ucloud|VolcEngine|ZStack|Google|Ctyun|CNWare"`
Brand []string `help:"Brands" choices:"OneCloud|VMware|Aliyun|Azure|Aws|Qcloud|Huawei|OpenStack|Ucloud|VolcEngine|ZStack|Google|Ctyun|CNWare"`
Project string `help:"show usage of specified project"`
ProjectDomain string `help:"show usage of specified domain"`

View File

@@ -23,7 +23,7 @@ import (
func init() {
type WorkerListOptions struct {
ServiceType string `choices:"image|cloudid|cloudevent|devtool|ansible|identity|notify|log|compute|compute_v2|meter|suggestion|cloudmon|cloudproxy|dns|monitor|scheduler|vpcagent|webconsole|yunionconf|bastionhost|extdb|yunionapi"`
ServiceType string `choices:"image|cloudid|cloudevent|devtool|ansible|identity|notify|log|compute|compute_v2|meter|suggestion|cloudmon|cloudproxy|dns|monitor|scheduler|vpcagent|webconsole|yunionconf|bastionhost|extdb|yunionapi|report"`
}
R(&WorkerListOptions{}, "worker-list", "List workers", func(s *mcclient.ClientSession, args *WorkerListOptions) error {
result, err := modules.Workers.List(s, jsonutils.Marshal(args))

View File

@@ -83,6 +83,10 @@ func doK8sEventList(s *mcclient.ClientSession, args *EventListOptions) error {
return DoEventList(*k8s.Logs.ResourceManager, s, args)
}
func doHostDmesgList(s *mcclient.ClientSession, args *EventListOptions) error {
return DoEventList(modules.DmesgLogs, s, args)
}
func DoEventList(man modulebase.ResourceManager, s *mcclient.ClientSession, args *EventListOptions) error {
params := jsonutils.NewDict()
if len(args.Type) > 0 {
@@ -157,6 +161,7 @@ func init() {
R(&EventListOptions{}, "monitor-event-show", "Show operation event logs", doMonitorEventList)
R(&EventListOptions{}, "notify-event-show", "Show operation event logs", doNotifyEventList)
R(&EventListOptions{}, "kube-event-show", "Show operation event logs", doK8sEventList)
R(&EventListOptions{}, "host-dmesg-show", "Show host dmesgs", doHostDmesgList)
R(&TypeEventListOptions{}, "server-event", "Show operation event logs of server", func(s *mcclient.ClientSession, args *TypeEventListOptions) error {
nargs := EventListOptions{BaseEventListOptions: args.BaseEventListOptions, Id: args.ID, Type: []string{"server"}}

View File

@@ -66,7 +66,7 @@ func init() {
type EndpointCreateOptions struct {
SERVICE string `help:"Service ID or Name"`
REGION string `help:"Region"`
INTERFACE string `help:"Interface types" choices:"internal|public|admin|console"`
INTERFACE string `help:"Interface types" choices:"internal|public|admin|console|slave"`
URL string `help:"URL"`
Zone string `help:"Zone"`
Name string `help:"Name"`

View File

@@ -191,6 +191,8 @@ func init() {
IdpEntityId string `help:"Entity id of identity provider to link with"`
Lang string `help:"user default language"`
Expire string `help:"user expired at"`
}
R(&UserCreateOptions{}, "user-create", "Create a user", func(s *mcclient.ClientSession, args *UserCreateOptions) error {
params := jsonutils.NewDict()
@@ -245,6 +247,10 @@ func init() {
params.Add(jsonutils.NewString(args.Lang), "lang")
}
if len(args.Expire) > 0 {
params.Add(jsonutils.NewString(args.Expire), "expired_at")
}
/*if len(args.DefaultProject) > 0 {
projId, err := modules.Projects.GetId(s, args.DefaultProject, nil)
if err != nil {
@@ -288,6 +294,10 @@ func init() {
SkipPasswordComplexityCheck bool `help:"skip_password_complexity_check"`
Lang string `help:"update user language"`
Expire string `help:"user expired at"`
ClearExpire bool `help:"clear user expired at"`
}
R(&UserUpdateOptions{}, "user-update", "Update a user", func(s *mcclient.ClientSession, args *UserUpdateOptions) error {
query := jsonutils.NewDict()
@@ -347,6 +357,11 @@ func init() {
if len(args.Lang) > 0 {
params.Add(jsonutils.NewString(args.Lang), "lang")
}
if args.ClearExpire {
params.Add(jsonutils.JSONTrue, "clear_expire")
} else if len(args.Expire) > 0 {
params.Add(jsonutils.NewString(args.Expire), "expired_at")
}
// if len(args.DefaultProject) > 0 {
// projId, err := modules.Projects.GetId(s, args.DefaultProject, nil)
// if err != nil {

View File

@@ -54,7 +54,7 @@ type ImageOptionalOptions struct {
OsDist string `help:"Distribution name of OS" metavar:"OS_DISTRIBUTION"`
OsVersion string `help:"Version of OS"`
OsCodename string `help:"Codename of OS"`
OsArch string `help:"Os hardware architecture" choices:"x86|x86_64|aarch32|aarch64"`
OsArch string `help:"Os hardware architecture" choices:"x86|x86_64|aarch32|aarch64|riscv32|riscv64"`
OsLang string `help:"OS Language" choices:"zh_CN|en_US"`
Preference int64 `help:"Disk preferences"`
Notes string `help:"Notes about the image"`

View File

@@ -0,0 +1,17 @@
package llm
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/llm"
options "yunion.io/x/onecloud/pkg/mcclient/options/llm"
)
func init() {
cmd := shell.NewResourceCmd(&modules.LLMs).WithKeyword("dify")
cmd.BatchCreate(new(options.DifyCreateOptions))
cmd.List(new(options.DifyListOptions))
cmd.Show(new(options.DifyShowOptions))
cmd.Delete(new(options.DifyDeleteOptions))
cmd.BatchPerform("stop", new(options.DifyStopOptions))
cmd.BatchPerform("start", new(options.DifyStartOptions))
}

View File

@@ -0,0 +1,19 @@
package llm
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/llm"
base_options "yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/llm"
)
func init() {
cmd := shell.NewResourceCmd(&modules.LLMImage)
cmd.List(new(options.LLMImageListOptions))
cmd.Show(new(options.LLMImageShowOptions))
cmd.Create(new(options.LLMImageCreateOptions))
cmd.Update(new(options.LLMImageUpdateOptions))
cmd.Delete(new(options.LLMImageDeleteOptions))
cmd.Perform("public", &base_options.BasePublicOptions{})
cmd.Perform("private", &base_options.BaseIdOptions{})
}

Some files were not shown because too many files have changed in this diff Show More