It's extremely rare that MAC addresses assigned to VMs collide. We've added the ability for the Controller to keep track of MAC addresses and prevent reuse. You can also manually specify the MAC address for the VM using the Controller API.
Your VM Templates and Tags must be in a stopped state in the Registry/on your Nodes to set the MAC address properly.
If you have VMs already running when you upgrade your Controller, they will not be managed by this feature until they are restarted through the Controller.
When specifying the label to use in your Jenkins pipelines, you're able to use operators like ||
(OR). Previous versions of our Jenkins plugin had problems with this as each Static Slave Template you configured would be able to use unlimited instances (as many as your controller allowed). In 2.1.0, you have the ability to set a cap on the amount of instances allowed to be created for the specific Static Slave Template or even for the entire Anka Cloud definition. As an example:
large-fleet-ios || small-fleet-ios
large-fleet-ios
small-fleet-ios
that has less resources because more VMs are running at onceWhen someone runs an iOS build, you want it to use the large-fleet if possible so the builds and tests take less time. With this setup, your pipeline will run and request a VM from the Static Slave Template with large-fleet-ios
as the label. However, if other pipeline jobs are already running and using all 5 instance slots, it will then fall back onto using small-fleet-ios
.
Notice that our instance cap for large-fleet-ios
is 5 and we have 10 total VMs for the large-fleet. This allows other labels for the large fleet the remaining 5 slots at all times if there are lots of large-fleet-ios
requests. This helps balance the usage between multiple projects.
Changes to the way we communicate with the Controller API now allows for the slave name and slave/jenkins UI URL to be displayed under the custom columns.
Create an instance with metadata:
❯ curl -X POST "http://anka.controller:8090/api/v1/vm" -H "Content-Type: application/json" \
-d '{"vmid": "c0847bc9-5d2d-4dbc-ba6a-240f7ff08032", "count": 1, "metadata": { "test": true }}'
{"status":"OK","message":"","body":["a681f959-b4db-4f3b-7a88-0384ad146bf4"]}
Then show it as a column in the dashboard:
❯ sudo anka show 10.15.4-stopped
+----------------+--------------------------------------+
| uuid | 3a65b45e-c08d-44e9-84e2-ba45d646af4a |
+----------------+--------------------------------------+
| name | 10.15.4-stopped (test) |
+----------------+--------------------------------------+
| created | 100 seconds ago |
+----------------+--------------------------------------+
| cpu_cores | 6 |
+----------------+--------------------------------------+
| ram | 10G |
+----------------+--------------------------------------+
| display | 1 |
+----------------+--------------------------------------+
| hard_drive | 80Gi (16.6Gi on disk) |
+----------------+--------------------------------------+
| addons_version | 2.2.3.118 |
+----------------+--------------------------------------+
| status | stopped 29 seconds ago |
+----------------+--------------------------------------+
Create your instance and set the CPU and RAM:
❯ curl -X POST "http://anka.controller:8090/api/v1/vm" -H "Content-Type: application/json" \
-d '{"vmid": "3a65b45e-c08d-44e9-84e2-ba45d646af4a", "count": 1, "vcpu": 4, "vram": 8192 }'
{"status":"OK","message":"","body":["ac653ec9-5c7e-4b99-5749-ec0d242ca958"]}
This is change the values of the cloned/started VM:
sh-3.2# anka show mgmtManaged-10.15.4-stopped-1592271338138326000
+-----------------------+-------------------------------------------------+
| uuid | e767f994-e366-460a-9dbd-5e2eb9729242 |
+-----------------------+-------------------------------------------------+
| name | mgmtManaged-10.15.4-stopped-1592271338138326000 |
+-----------------------+-------------------------------------------------+
| created | 10 seconds ago |
+-----------------------+-------------------------------------------------+
| cpu_cores | 4 |
+-----------------------+-------------------------------------------------+
| ram | 8G |
...
When using Anka Viewer, provided a way to get out of full screen, after in full screen mode (using the green full screen button on the window's top bar)
Updated license terms
Disk Usage for Node is displayed in the controller Dahsboard and REST API
Size information for Templates and tags is displayed in the controller dashboard and REST API
Jenkins job/Node information is displayed for the VM provisioned in the controller dashboard
New reserve disk flag in ankacluster join command
When –reserve-space
flag is set, controller will always reserve the disk space before pulling VM template on the node. If there is not enough disk space after allocating for –reserve-space
, then controller will not pull the Vm Template. This flag is provided to avoid scenario where there is no disk psace left on the node to accomodate for extra disk usage duing builds inside the VM.
License passthrough from host to nested enabled Anka VM
This feature enables you to install Anka binary package inside an Anka macOS VM and use it create and run Anka VMs.
anka config propagate_license 1
on the host machine.sudo anka license show
inside the VM. It will show the host license information.Set DPI for the VM
Added a new flag in anka modify set display
command to set DPI for the VM.
anka modify set display [OPTIONS]
configure displays
Options:
-c, --count INTEGER configure number of displays (2 max)
--headless same as --count 0
-p, --password prompt for VNC password
-v, --vnc TEXT configure VNC
--no-vnc disable VNC access to the VM
-d, --dpi INTEGER set DPI (default is 72)
-r, --resolution TEXT set resolution, e.g. 1024x768 or 'default' to reset to default
--help Show this message and exit.
Disable VNC access to the VM
Added a new flag in anka modify set display
command to disable VNC access for the VM.
anka modify set display [OPTIONS]
configure displays
Options:
-c, --count INTEGER configure number of displays (2 max)
--headless same as --count 0
-p, --password prompt for VNC password
-v, --vnc TEXT configure VNC
--no-vnc disable VNC access to the VM
-d, --dpi INTEGER set DPI (default is 72)
-r, --resolution TEXT set resolution, e.g. 1024x768 or 'default' to reset to default
--help Show this message and exit.
Set resolution display for the VM with anka modify set display
.
anka modify set display [OPTIONS]
configure displays
Options:
-c, --count INTEGER configure number of displays (2 max)
--headless same as --count 0
-p, --password prompt for VNC password
-v, --vnc TEXT configure VNC
-r, --resolution TEXT set resolution, e.g. 1024x768 or 'default' to reset to default
--help Show this message and exit.
Send virtual bound events programmatically. This can be used to automate bypass of Apple confirmation dialog.
anka view [OPTIONS] VM_ID
Open VM display viewer
Options:
-d, --display INTEGER Specify the displays to view
-s, --screenshot Make png screenshot
-c, --click TEXT Send the pointer event
--help Show this message and exit.
anka view VM --click 100,200
will click virtual click event at location 100*200
Note Also available through /Library/Application\ Support/Veertu/Anka/addons/click 100,200
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.