Fix: jsonnet syntax
All checks were successful
Build package / build-package (push) Successful in 28s

This commit is contained in:
2024-12-16 21:33:51 +08:00
parent 9615477165
commit c3d4e9a557
3 changed files with 39 additions and 60 deletions

View File

@@ -1,6 +1,6 @@
# Maintainer: Yi-Ting Shih <ytshih@it.cs.nycu.edu.tw> # Maintainer: Yi-Ting Shih <ytshih@it.cs.nycu.edu.tw>
pkgname=vm pkgname=vm
pkgver=1.0.0rc2 pkgver=1.0.0rc3
pkgrel=1 pkgrel=1
pkgdesc="A QEMU VM management tool" pkgdesc="A QEMU VM management tool"
arch=("x86_64") arch=("x86_64")

View File

@@ -1,35 +1,12 @@
import 'qemu.libsonnet'; local qemu = import 'qemu.libsonnet';
{ {
[obj.name]: [obj.name]:
default(obj.name) qemu.default(obj.name)
+ resource(obj.cpu, obj.ram) + qemu.resource(obj.cpu, obj.ram)
+ net(obj.mac) + qemu.net(obj.mac)
+ monitor(obj.mac) + qemu.monitor(obj.mac)
for obj in [ for obj in [
{
name: 'k0scontroller' + i,
cpu: 2,
ram: '2G',
mac: '08:00:00:20:01:1' + i,
}
for i in std.range(1, 3)
] + [
{
name: 'k0sworker' + i,
cpu: 4,
ram: '4G',
mac: '08:00:00:20:01:2' + i,
}
for i in std.range(1, 3)
] + [
{
name: 'ostest',
cpu: 4,
ram: '8G',
mac: '08:00:00:20:01:73',
},
] + [
{ {
name: 'test' + i, name: 'test' + i,
cpu: 1, cpu: 1,

View File

@@ -1,37 +1,39 @@
local default(name) = [ {
default(name):: [
'-enable-kvm', '-enable-kvm',
'-cpu host', '-cpu host',
'-drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/x64/OVMF_CODE.4m.fd', '-drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/x64/OVMF_CODE.4m.fd',
'-drive if=pflash,format=raw,file=pflash/' + name + '.4m.fd', '-drive if=pflash,format=raw,file=pflash/' + name + '.4m.fd',
'-drive file=img/' + name + '.qcow2,format=qcow2', '-drive file=img/' + name + '.qcow2,format=qcow2',
]; ],
local resource(cpu, ram) = [ resource(cpu, ram):: [
'-smp ' + cpu + ',sockets=1', '-smp ' + cpu + ',sockets=1',
'-m ' + ram, '-m ' + ram,
]; ],
local monitor(mac) = [ monitor(mac):: [
'-monitor telnet:localhost:2' + std.split(mac, ':')[4] + std.split(mac, ':')[5] + ',server,nowait,nodelay', '-monitor telnet:localhost:2' + std.split(mac, ':')[4] + std.split(mac, ':')[5] + ',server,nowait,nodelay',
]; ],
local net(mac, area='test') = [ net(mac, area='test'):: [
'-nic bridge,br=' + area + ',mac=' + mac, '-nic bridge,br=' + area + ',mac=' + mac,
]; ],
local spice() = [ spice():: [
'-vga virtio', '-vga virtio',
'-device virtio-serial-pci', '-device virtio-serial-pci',
'-spice port=5555,disable-ticketing=on', '-spice port=5555,disable-ticketing=on',
'-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0', '-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0',
'-chardev spicevmc,id=spicechannel0,name=vdagent', '-chardev spicevmc,id=spicechannel0,name=vdagent',
]; ],
local vnc(display=0) = [ vnc(display=0):: [
'-vnc :' + display, '-vnc :' + display,
]; ],
local iso(file) = [ iso(file):: [
'-boot d', '-boot d',
'-cdrom ' + file, '-cdrom ' + file,
]; ],
}