- Updated action descriptions for clarity in provision-k3s-vm-workers.
- Refactored steps in provision-k3s-vm-workers for improved readability.
- Adjusted permissions formatting in multiple workflows for consistency.
- Added YAML linting step in validate workflow to ensure YAML file quality.
- Introduced .yamllint configuration file for GitHub Actions YAML files.
- Enhanced Makefile to include a target for linting YAML files.
* Add E2E tests for multi-node setup and kubelet restart scenarios
* Update Kubernetes version options in conformance tests workflow
* Enhance VM provisioning action to support dynamic bridge CIDR prefix and pin package versions
* Update k3s version in test suites to v1.36.2-k3s1
- Updated the k3sVersion and k3sOldVersion constants in both cli and e2e test suites to reflect the new version v1.36.2-k3s1 and the previous version v1.36.0-k3s1.
* updated README.md
* Add HCP (Hosted Control Plane) support
Introduce hosted control plane mode for k3k virtual clusters, including
API types, controller logic, server endpoint handling, CLI flags,
CRD updates, kubeconfig generation, and examples.
Co-Authored-By: RuFlo <ruv@ruv.net>
* removed hcpRegitration command
added HCP conformance tests
warning for hcp
fix multi-VM HCP conformance test networking
Both QEMU workers booted with `-net user` and ended up registering the
same InternalIP (10.0.2.15) because each VM gets its own isolated NAT
slirp. Flannel propagated this to `public-ip` on both nodes, so VXLAN
could not tunnel between workers and any cross-node pod traffic broke
(89 failed / 335 passed of 424 conformance specs).
Replace user-mode networking with a Linux bridge (k3kbr0,
192.168.100.0/24) and one TAP device per VM, so the two workers share
an L2 segment with unique routable IPs. NAT outbound from the bridge
keeps internet access working for image pulls.
Also set unique hostnames via cloud-init (worker-1/worker-2) and drop
the `--node-name` flag from INSTALL_K3S_EXEC, since k3s now picks the
correct node name from the OS hostname on its own.
Bump hydrophone back to `--parallel 4` to match the single-VM job
(parallelism was reduced earlier when the failure was thought to be
resource-related).
added HCP print command
updated crds
adding e2e tests
Refactor selectNonLoopbackSAN function to accept SANs directly and update related logic in ensureHCPRegistration
* Update agent flag validation and enhance ingress host check with a warning log
Refactor descriptions for cluster provisioning mode and role in CRDs and documentation
Refactor logging in ServerURL function to use controller-runtime logger
Rename selectNonLoopbackSAN to findNonLoopbackSAN for clarity and update references
Refactor ServerURL function and related code to remove unused parameters and improve clarity
Remove unused imports from kubeconfig.go to improve code clarity
* suggested changes
* fix comment
* fix test
---------
Co-authored-by: jpgouin <jeanphilippe.gouin@suse.com>
Co-authored-by: RuFlo <ruv@ruv.net>
* Update ginkgo and gomega
* Update Ginkgo to version 2.32.0 in workflows and Makefile
---------
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
Co-authored-by: Enrico Candino <enrico.candino@suse.com>
* Update ginkgo and gomega
* Update Ginkgo version to v2.31.0 in workflows and Makefile
---------
Co-authored-by: renovate-rancher[bot] <119870437+renovate-rancher[bot]@users.noreply.github.com>
Co-authored-by: Enrico Candino <enrico.candino@suse.com>
* upload reports, run all conformance
* set parallel
* select k8s version for manual trigger
* added k3k version input
* wait for k3k deployment instead of pod