| {
private Class> preferredIpVersion = Inet4Address.class;
@@ -111,7 +112,7 @@ public class VmMgmt extends FreeMarkerConlet {
*
* @param event the event
*/
- @SuppressWarnings({ "unchecked" })
+ @SuppressWarnings({ "unchecked", "PMD.AvoidDuplicateLiterals" })
@Handler
public void onConfigurationUpdate(ConfigurationUpdate event) {
event.structured("/Manager/GuiHttpServer"
@@ -176,6 +177,7 @@ public class VmMgmt extends FreeMarkerConlet {
}
@Override
+ @SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops")
protected Set doRenderConlet(RenderConletRequestBase> event,
ConsoleConnection channel, String conletId, VmsModel conletState)
throws Exception {
@@ -228,6 +230,7 @@ public class VmMgmt extends FreeMarkerConlet {
simplifiedVmDefinition(vmDef, user, roles)));
}
+ @SuppressWarnings("PMD.AvoidDuplicateLiterals")
private Map simplifiedVmDefinition(VmDefinition vmDef,
String user, List roles) {
// Convert RAM sizes to unitless numbers
@@ -267,8 +270,9 @@ public class VmMgmt extends FreeMarkerConlet {
* @throws IOException
*/
@Handler(namedChannels = "manager")
- @SuppressWarnings({ "PMD.CognitiveComplexity",
- "PMD.AvoidInstantiatingObjectsInLoops" })
+ @SuppressWarnings({ "PMD.ConfusingTernary", "PMD.CognitiveComplexity",
+ "PMD.AvoidInstantiatingObjectsInLoops", "PMD.AvoidDuplicateLiterals",
+ "PMD.ConfusingArgumentToVarargsMethod" })
public void onVmResourceChanged(VmResourceChanged event, VmChannel channel)
throws IOException {
var vmName = event.vmDefinition().name();
@@ -374,6 +378,8 @@ public class VmMgmt extends FreeMarkerConlet {
}
+ @SuppressWarnings({ "PMD.AvoidLiteralsInIfCondition",
+ "PMD.LambdaCanBeMethodReference" })
private Summary evaluateSummary(boolean force) {
if (!force && cachedSummary != null) {
return cachedSummary;
@@ -396,7 +402,8 @@ public class VmMgmt extends FreeMarkerConlet {
}
@Override
- @SuppressWarnings({ "PMD.NcssCount" })
+ @SuppressWarnings({ "PMD.AvoidDecimalLiteralsInBigDecimalConstructor",
+ "PMD.NcssCount" })
protected void doUpdateConletState(NotifyConletModel event,
ConsoleConnection channel, VmsModel model) throws Exception {
event.stop();
diff --git a/webpages/VM-Operator-GUI-view.png b/webpages/VM-Operator-GUI-view.png
index dbda800..0463cc5 100644
Binary files a/webpages/VM-Operator-GUI-view.png and b/webpages/VM-Operator-GUI-view.png differ
diff --git a/webpages/VmAccess-preview.png b/webpages/VmAccess-preview.png
index a97f7e1..d13387f 100644
Binary files a/webpages/VmAccess-preview.png and b/webpages/VmAccess-preview.png differ
diff --git a/webpages/_includes/umami.html b/webpages/_includes/umami.html
deleted file mode 100644
index 8066278..0000000
--- a/webpages/_includes/umami.html
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/webpages/_layouts/vm-operator.html b/webpages/_layouts/vm-operator.html
index 40bdff7..b85f650 100644
--- a/webpages/_layouts/vm-operator.html
+++ b/webpages/_layouts/vm-operator.html
@@ -8,7 +8,6 @@
- {% include umami.html %}
diff --git a/webpages/admin-gui.md b/webpages/admin-gui.md
index 325c227..b968a74 100644
--- a/webpages/admin-gui.md
+++ b/webpages/admin-gui.md
@@ -12,10 +12,10 @@ layout: vm-operator
An overview display shows the current CPU and RAM usage and a graph
with recent changes.
-
+
The detail display lists all VMs. From here you can start and stop
the VMs and adjust the CPU and RAM usages (modifies the definition
in kubernetes).
-
+
diff --git a/webpages/auto-login.md b/webpages/auto-login.md
index 66f0edf..59856b2 100644
--- a/webpages/auto-login.md
+++ b/webpages/auto-login.md
@@ -9,7 +9,7 @@ layout: vm-operator
When users log into the web GUI, they have already authenticated with the
VM-Operator. In some environments, requiring an additional login on the
-guest OS can be annoying. To enhance the user experience, the VM-Operator
+guest OS can be cumbersome. To enhance the user experience, the VM-Operator
supports automatic login on the guest operating system, thus eliminating
the need for multiple logins. However, this feature requires specific
support from the guest OS.
@@ -18,9 +18,9 @@ support from the guest OS.
Automatic login requires an agent running inside the guest OS. Similar
to QEMU's standard guest agent, the VM-Operator agent communicates with
-the host via a tty device (provided in the guest as
-`/dev/virtio-ports/org.jdrupes.vmop_agent.0`). On modern Linux systems, `udev` can
-detect this device and trigger the start of an associated systemd service.
+the host via a tty device (`/dev/virtio-ports/org.jdrupes.vmop_agent.0`). On
+modern Linux systems, `udev` can detect this device and trigger the start
+of an associated systemd service.
Sample configuration files for a VM-Operator agent are available
[here](https://github.com/mnlipp/VM-Operator/tree/main/dev-example/vmop-agent).
diff --git a/webpages/index-pic.svg b/webpages/index-pic.svg
index d6b0ef9..e912900 100644
--- a/webpages/index-pic.svg
+++ b/webpages/index-pic.svg
@@ -8,7 +8,7 @@
version="1.1"
id="svg1"
xml:space="preserve"
- inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
+ inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="index-pic.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
@@ -24,13 +24,13 @@
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
- inkscape:zoom="0.95749083"
- inkscape:cx="689.30164"
- inkscape:cy="285.64242"
+ inkscape:zoom="0.67704826"
+ inkscape:cx="757.70079"
+ inkscape:cy="438.66888"
inkscape:window-width="1920"
- inkscape:window-height="1008"
+ inkscape:window-height="1011"
inkscape:window-x="0"
- inkscape:window-y="35"
+ inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="g1">
+ xlink:href="data:image/png;base64,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
C6lOn28Ksb9ky74iNzdHJxqZFuL7piMYDOq2225TUVGRqqqqdOyxx0qS3njjDc2YMUN33XWXvvvd
76p79+5Rz2tpadHcuXO1ZMkSN2Y7ba/tCEZFeObw7przowE67lvdUnqdlR9+rb9tatSsc/qrV3H0
4Hf9zqAef+Nz/dcP+uuwnoEMzblzkVHSX35Ltb/PPvtMDzzwgHr06KF58+bpmGOOkSQ1Njbqpptu
Uk1NjaqqqnTttde69pniob3cob3kUm3v1ltvVTAY1I033qiLL75YUtsWiXvvvVfLli3TQw89pDvu
uMO1z5OI19ozf3YL/SW3bNkyrV69Wr1799acOXM0evRoSdLOnTs1bdo0zZw5U88884wOOeSQtKbP
J17rz2yv82wW8qjly5eroaFBP/zhD8MLQEk66aSTVFlZqQMHDuill16Kes66det06aWXasmSJRo8
eHCuZ7lDFqxrUORi4e9XDUk5wuWbv9IPf79LD73SoLOrdumLYPs/uq/tCGrCgjrNW/e5xs+rU/2X
rRmacxSiVPt7+eWX1dTUpIsvvjg8+JOkkpIS3XTTTZKkVatW5e4DpID2kE9SaW/Lli3atm2bysrK
woM/SQoEArrqqqskSa+++mpuP0AKaA/55q9//askacaMGeHBnCQNHTpUN9xwg/bv36+lS5emPX0+
8Wp/SU8Ck621NOXl5eG1IeXl5SovL4+Z5l//+pduvPHG8P78F1xwgebNm2d7HM2aNWt01VVX6Qc/
+IFOO+00TZ48WQ888IAOHDiQ8vvamTt3rsrLy1VVVWX7+J/+9CeVl5fr/vvvD7/2ySefrObmZlVV
Ven888/XqaeeqsmTJ+vpp5+WJH355ZeaPXu2Jk6cqHHjxuniiy/W3/72t6jXfe211yRJ3/ve92Le
8/vf/76k2AXb9OnTVVtbq/POO0+LFy929PnyxdZ9zQkfr9kVTPoa/3PJx/rm332t2xnU2VW79GVT
SK/tCOrsqjp92dT2O735k290+8rPOjzPVploh/6idZb+DMNQWVmZvvOd78RMf/jhh0tq20qYj2gv
c6+RCO1lvr2ysjK9+OKLmj17dsy05n+zQCD3a92dor3Mv0489Oesv23btkmSTj/99Jj3PPHEEyW1
bWxId/p84tX+XNsCeM4550TdnjhxYtTj1dXVuuKKK7R27VoNGTJE48aN08GDB7Vw4UJdccUV+uKL
L8LT/v3vf9eNN96ot99+W0cddZROP/10NTc3649//KOuuOIKBYNBx+8bz7nnnitJWrlype3jL774
oiRp0qRJUfdff/31+sMf/qDhw4drzJgxqqur0/3336/f//73mjp1qpYvX66ysjIdc8wx2rJli267
7TZVV1eHn29GdeSRR8a857BhwyRJtbW1UfefeeaZWrx4sW677Tb16tXL0efLFwNKohfSt63cp6+/
MbR1X7POfWy3zn1sd9LXuP77faJ+XrczqIr/WxcVoST17ObT1JNKMzPjnQz9Zae/iy66SEuWLNEp
p5wSM/37778vSXl7HBLt5QbtZae9fv36hVeymBobG8N/GFvnL5/QXu7Qn7P+WlvbRjN2u2ya55TY
sWNH2tPnE6/2V5R8kuyYNWuWVq5cqVAopFmzZkU9tnXrVt1zzz3q16+f5s6dq5EjR0qSmpub9dvf
/lbPPfec7r33Xt11112S2taQGIah+fPna+zYsZLajoG75pprtH79eq1cuVLnn39+0vdNZMSIERox
YoRqa2tVW1urESNGhB+rr6/Xu+++qyOOOCJqt69QKKTPPvtMzz77rPr27Sup7aQsc+fO1aOPPqqR
I0dq2bJl4cf+/Oc/67777tNf/vIXVVZWSmrfWtCvX7+YeTLv279/f9T9dmtBO4MNe5o0cdQhWhpx
5qXbX9qnBesa1HAwpIMthv73mX2Tvs6vJ/RTc6t056p94fve2t0UNU3Pbj69eOUQnTy0OHMfoBOh
v+z1F8/ChQslKeFJm9xCe7lDe9lv7/nnn9fy5cv1zjvvKBgM6vzzz9e0adMcf+Zcor3coj9n/R1x
xBGqra3VO++8E7NC891335UkNTQ0hO9Ldfp84eX+8vIYwKefflotLS266aabwgFKUpcuXXTzzTer
f//+eumll/TJJ59Ikj799FNJUv/+/cPTFhUV6frrr9ett96q4447LiPzZa6JsR5z9+KLL8owDNs1
jNOnTw9HJkWvpbn22mujHjv77LMlRa8lOXjwoCSpW7fY/ZG7du0qSZ3i1PLJvL27SWfNq9O7Hzfp
4rE9ox77+MtWHWwxVH54N90yPnmIknTH2f008yz7ac0ITz0iPyLMN/SX+f6efPJJrVu3Tr169dLP
f/7zpNPnEu3lD9rLTHtr167V66+/rmAwKJ/Pp88++0xbtmxJ/CFdQHv5hf7a+zO3WN53333atWtX
+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
RU5ErkJggg==
"
+ id="image1-7"
+ x="391.92126"
+ y="382.84091" />
diff --git a/webpages/index.md b/webpages/index.md
index 6dc3c10..34a3c99 100644
--- a/webpages/index.md
+++ b/webpages/index.md
@@ -9,7 +9,7 @@ layout: vm-operator
# Welcome to VM-Operator
-
+
This project provides an easy to use and flexible solution for
running QEMU/KVM based virtual machines (VMs) in Kubernetes pods.
diff --git a/webpages/pools.md b/webpages/pools.md
index c84264f..41e26ef 100644
--- a/webpages/pools.md
+++ b/webpages/pools.md
@@ -46,20 +46,16 @@ spec:
The `retention` specifies how long the assignment of a VM from the pool to
a user remains valid after the user closes the console. This ensures that
a user can resume work within this timeframe without the risk of another
-user taking over the VM. The time is specified as an
+user taking over the VM. The time is specified as
[ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations).
-Specifying an ISO 8601 time is also supported, but if you consider
-using an absolute time, check again whether a dedicated VM for the user
-isn't the more appropriate choice.
-Setting `loginOnAssignment` to `true` (defaults to `false`) triggers automatic
-login of the user (as described in [section auto login](auto-login.html))
-when the VM is assigned. The `permissions` property specifies the actions
-that users or roles can perform on assigned VMs. The `may` property defaults
-to `[accessConsole]` if not specified.
+Setting `loginOnAssignment` to `true` triggers automatic login of the
+user (as described in [section auto login](auto-login.html)) when
+the VM is assigned. The `permissions` property specifies the actions
+that users or roles can perform on assigned VMs.
VMs become members of one (or more) pools by adding the pool name to
-the `spec.pools` array in the VM definition, as shown below:
+the `spec.pools` array, as shown below:
```yaml
apiVersion: "vmoperator.jdrupes.org/v1"
diff --git a/webpages/upgrading.md b/webpages/upgrading.md
index f3119b0..644dce6 100644
--- a/webpages/upgrading.md
+++ b/webpages/upgrading.md
@@ -34,7 +34,7 @@ layout: vm-operator
update the template manually. If you're using your own template, you
have to add a virtual serial port (see the git history of the standard
template for the required addition).
-
+
* Stateful sets from pre 3.4.0 versions are no longer removed automatically
(see notes below). However, PVCs with the old naming scheme are still
reused.
|