| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 <bruce.ashfield@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 >= 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 <bruce.ashfield@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 <bruce.ashfield@gmail.com>
|
|
|
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 <bruce.ashfield@gmail.com>
|