<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/meta-virtualization.git/tests/test_k3s_runtime.py, branch master</title>
<subtitle>Mirror of git.yoctoproject.org/meta-virtualization</subtitle>
<id>https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=master</id>
<link rel='self' href='https://git.enea.com/cgit/linux/meta-virtualization.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/'/>
<updated>2026-04-07T17:32:59+00:00</updated>
<entry>
<title>tests: update k3s multi-node to use kernel cmdline role setup</title>
<updated>2026-04-07T17:32:59+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-04-07T17:32:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=31baaea4ab87aa2a42579b526b5c167796e60097'/>
<id>urn:sha1:31baaea4ab87aa2a42579b526b5c167796e60097</id>
<content type='text'>
Update the multi-node test fixture to use kernel cmdline parameters
(k3s.role, k3s.node-ip, k3s.node-name) instead of manual IP
configuration and k3s restart. The k3s-role-setup.service handles
networking and role switching automatically on boot.

- Pass kernel_append to K3sRunner for k3s.role and k3s.node-ip
- Remove manual ip-addr-add and k3s stop/restart from fixture
- Use k3s-get-token helper to extract join token on server
- Agent starts k3s agent manually with extracted token (token
  not known at boot time)
- Remove _QEMU_ARCH_CONFIG dict (moved to run-qemu-vm.sh script)

All 10 tests pass: 5 single-node + 5 multi-node.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>tests, k3s: update test suite and README for multi-node</title>
<updated>2026-04-07T16:06:01+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-04-07T16:06:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=6b4415876f617b5afe17d1525a555a120df78bc0'/>
<id>urn:sha1:6b4415876f617b5afe17d1525a555a120df78bc0</id>
<content type='text'>
test_k3s_runtime.py:
- Use run-qemu-vm.sh script for multi-node QEMU launches instead of
  inline command building (shared infrastructure with manual testing)
- Resolve script path to absolute for pexpect compatibility
- Accept &gt;= 1 Ready node in single-node test (persistent rootfs state)

README.md:
- Complete rewrite with current build profile workflow
- Document single-node quick start and multi-node cluster setup
- Document kernel cmdline parameters for role-based boot
- Document k3s-get-token helper, packages, and useful commands
- Add automated testing instructions

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>tests: fix k3s multi-node test suite</title>
<updated>2026-04-06T23:49:24+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-04-06T23:43:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=55f63c8a12f86c1a5d5fe1ccf0e9ddb719e7747e'/>
<id>urn:sha1:55f63c8a12f86c1a5d5fe1ccf0e9ddb719e7747e</id>
<content type='text'>
Fix several issues discovered during multi-node testing:

- Find native QEMU binary from build sysroots-components instead of
  relying on PATH (qemu-system-native is not in OE build env PATH)
- Set LD_LIBRARY_PATH for native QEMU shared library dependencies
  (libSDL2, etc. from native sysroots)
- Add if=virtio to drive parameter so root device appears as /dev/vda
- Add CNI bin dirs to PATH when starting k3s manually (systemd service
  has the PATH fix but manual launch does not)
- Wipe server TLS/cred/db state and kubeconfig before restarting with
  cluster IPs to avoid stale certificate errors (cert only valid for
  DHCP IP, not 192.168.50.1)
- Add --tls-san for cluster IP to server start
- Wipe agent k3s state to avoid "not authorized" from stale tokens
- Remove server-only config.yaml on agent (disable-cloud-controller
  flag crashes the agent)
- Set unique --node-name on agent to prevent hostname collision when
  both VMs boot from the same image

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
<entry>
<title>tests: add k3s runtime test suite</title>
<updated>2026-04-06T23:49:24+00:00</updated>
<author>
<name>Bruce Ashfield</name>
<email>bruce.ashfield@gmail.com</email>
</author>
<published>2026-04-06T15:49:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/meta-virtualization.git/commit/?id=ac89a0c46589c79c6ff583a11e0284e54af6a2cb'/>
<id>urn:sha1:ac89a0c46589c79c6ff583a11e0284e54af6a2cb</id>
<content type='text'>
Add test_k3s_runtime.py with 10 tests for k3s single-node and
multi-node verification:

Single-node (5 tests):
- Boot, verify k3s binary and service unit
- Start k3s server, wait for node Ready
- Verify 1 node in Ready state
- Deploy a busybox pod, verify Running
- Delete pod, verify cleanup

Multi-node (5 tests):
- Boot 2 VMs via QEMU socket networking
- Verify inter-VM ping on socket network
- Start k3s server on VM1, join agent on VM2
- Verify 2 nodes Ready
- Deploy 2-replica deployment, verify scheduling

Uses architecture-aware QEMU configuration (x86-64 and arm64
supported). Multi-node tests launch QEMU directly (not runqemu)
to support two concurrent VMs. kubectl commands use KUBECONFIG
instead of embedded 'k3s kubectl' which is not available in the
Yocto build.

Signed-off-by: Bruce Ashfield &lt;bruce.ashfield@gmail.com&gt;
</content>
</entry>
</feed>
