Enrico Candino
9d0feeef0d
fix lint
2026-06-15 16:10:07 +02:00
Enrico Candino
d01ae2e820
adding e2e tests
2026-06-15 16:03:28 +02:00
67d5f4dbfc
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 >
2026-06-12 17:36:48 +02:00
Enrico Candino and GitHub
651da42ef0
Added provider.cattle.io=k3k label to Clusters ( #901 )
...
* added provider k3k label
* small change to check build
2026-06-12 16:12:38 +02:00
Enrico Candino and GitHub
737dcf998e
Added Policy finalizer ( #781 )
...
* added policy finalizer
* check with a small timeout
* comments
* removed requeue, renamed log
2026-04-15 11:14:22 +02:00
Enrico Candino and GitHub
cb985ec5ea
fix pvc race condition ( #786 )
2026-04-14 17:37:27 +02:00
Enrico Candino and GitHub
06c5aee7c9
add importas linter ( #779 )
2026-04-13 17:25:17 +02:00
Enrico Candino and GitHub
ba1648e560
Refactoring of tests moving common logic in tests/framework ( #769 )
...
* first commit
* refactor: update golangci configuration and reorder imports in namespace.go
* refactor: update golangci configuration for linters and formatters
* check restart for logs fetch
* rverted a bit the structure
* requested changes
* WriteLogs rename
2026-04-13 12:50:38 +02:00
Gaurav Mehta and GitHub
8add97934e
minor fix to translated ingress tls secrets in ingress object ( #672 )
...
* minor fix to translated ingress tls secrets in ingress object
updated cluster ingress sync options to include extra field for SyncTLSSecrets
Signed-off-by: Gaurav Mehta <gaurav.mehta@suse.com >
* rebase changes from main, include feedback for renaming ingress secret sync field to DisableTLSSecretTranslation, and add kubelet integration tests to verify secret name translation
Signed-off-by: Gaurav Mehta <gaurav.mehta@suse.com >
---------
Signed-off-by: Gaurav Mehta <gaurav.mehta@suse.com >
2026-04-08 11:39:23 +02:00
Enrico Candino and GitHub
ba819618e3
Cleanup tests and small fixes ( #741 )
...
* Added missing k3k pod logs export
* fix env variables
* bump codecov action to v6 (node 24 support)
* remove azure/setup-helm dependency, fixed k3s image
* fix shasum
* fix helm check
* added kubernetes version matrix
* requested changes, and small fixes
2026-04-04 02:50:03 +02:00
Enrico Candino and GitHub
ef2bb0339a
Schedule Pods in the same Node with a preferred affinity ( #724 )
...
* Add integration tests for Deployment and StatefulSet creation with PVC in shared cluster
* Add affinity settings for pod scheduling based on agent hostname
* increased timeout
* focus test
* rmeove cleanup
* check for existing pvc
* remove focus
* add affinity tests for Pods in shared cluster
* refactor restartServerPod to improve pod restart checks and timeout handling
* unfocus
* fix test description
2026-03-31 11:22:10 +02:00
Enrico Candino and GitHub
93e8ab6d8f
update K3S_HOST_VERSION and use variable in cli tests ( #734 )
2026-03-31 11:12:25 +02:00
Enrico Candino and GitHub
18889ba6b7
Removed Pod mutating Webhook (shared mode) ( #699 )
...
* removed all webhook references
* fix tests
* removal of webhook
* updated doc
* add downward API test
* small refactor of virtual-kubelet
* split tests
2026-03-31 10:29:22 +02:00
Jonathan Crowther and GitHub
624fee98d7
Refactor tests to their own directories ( #723 )
...
* Move cli tests
* Move e2e tests to their own directory
* Move integration tests
* Fix path within the cli tests
* Move k3k-kubelet tests
* Improve the various make test- options
* Remove dead code from cli tests
* Update development.md with the new make commands
2026-03-26 09:45:31 -04:00
Enrico Candino and GitHub
9554628fc5
Update virtual-kubelet (v1.12) and Kubernetes deps (v1.35) ( #716 )
...
* bump virtual-kubelet and k8s
* bump controller-manager
* fix upgrade-downgrade
* fix kubernetes version
* Update tests_suite_test.go
* removed direct dep of yaml.v2, bump etcd modules
2026-03-23 12:51:43 +01:00
Enrico Candino and GitHub
7b0f695248
Bump some tes dependencies and fix lint ( #708 )
2026-03-18 17:43:41 +01:00
Kevin McDermott and GitHub
9d38388c80
Merge pull request #662 from bigkevmcd/change-role-to-worker
...
Change the nodes type to worker.
2026-03-18 08:02:31 +00:00
Enrico Candino and GitHub
7641a1c9c5
Add sync of Host StorageClasses ( #681 )
...
* initial impl
* wip test
* fix
* wip tests
* Refactor storage class sync logic and enhance test coverage
* fix test
* remove storageclass sync test
* removed commented code
* added sync to cluster status to apply policy configuration
* fix for storageClass policy indexes
* fix for missing indexed field, and label sync
* - update sync options descriptions for resource types
- added storage class tests sync with policy
- requested changes
* fix for nil map
2026-03-17 16:53:29 +01:00
Kevin McDermott and Enrico Candino
d975171920
Change the nodes type to worker.
...
This modifies the configuration of the created nodes via virtual-kubelet
to set the node type to be worker instead of agent.
Bump the Ginkgo version to the latest - allows use of `t.Context()`
rather than creating contexts.
Co-authored-by: Enrico Candino <enrico.candino@gmail.com >
2026-03-17 09:28:30 +00:00
Enrico Candino and GitHub
83b4415f02
refactor: streamline K3S Docker installation and chart setup with dynamic repository handling ( #692 )
2026-03-12 11:11:12 +01:00
Enrico Candino and GitHub
9836f8376d
Added policy in Cluster Status ( #663 )
...
* initial implementation
restored policyName
* added test, fixed priority scheduling
* requested changes from review
- wrapped errors
- fixed some kube-api-linter issues to match k8s conventions
- moved policy namespace check in the same condition branch
2026-02-17 16:15:13 +01:00
Enrico Candino and GitHub
004e177ac1
Bump kubernetes dependencies (v1.33) ( #647 )
...
* bump kubernetes to v0.33.7
* updated kuberneets api versions
* bump tests
* fix k3s version
* fix test
* centralize k8s version
* remove focus
* revert GetPodCondition, GetContainerStatus and pin of k8s.io/controller-manager
2026-01-27 22:28:56 +01:00
Enrico Candino and GitHub
0164c785ab
Show correct allocatable resources when a Policy is applied ( #638 )
...
* wip
* wip
* wip
* fix lint and tests
* fixed bugs for missing resources
* cleanup and refactor
* removed coreClient from configureNode
* added comments to distribute algorithm
2026-01-27 15:56:37 +01:00
Hussein Galal and GitHub
c1b7da4c72
SecretMounts feature and private registries ( #570 )
...
* Add SecretMounts field
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
2026-01-26 21:47:40 +02:00
Hussein Galal and GitHub
fcc7191ab3
CLI cluster update ( #595 )
...
* CLI cluster update
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
2026-01-20 14:00:24 +02:00
Enrico Candino and GitHub
5f42eafd2a
Dev doc update ( #611 )
...
* update development.md
* fix tests
* fix cli test
2026-01-16 14:56:43 +01:00
Hussein Galal and GitHub
a871917aec
Refactor startup command to wait for node IP changes ( #598 )
...
* Patch node ip when server pod restarts
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* wsl
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Refactor startup command and adding safe mode
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Add date/time logging to the startup script
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
---------
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
2026-01-09 16:29:47 +02:00
Enrico Candino and GitHub
fc6bcedc5f
fix for missing label update in creation, added tests ( #592 )
2025-12-16 11:34:50 +01:00
Enrico Candino and GitHub
c9bb1bcf46
Fixed CreatePod and UpdatePod in Virtual Kubelet for Downward API ( #573 )
...
* wip
* fix lint
* ephemerals container
* remove unused
* add retry
* volumes refactor
* added configmap and secret keyRef translation
* set debug logger to virtual kubelet logger
* added tests
* fix lint, removed unused func
* added test file locally
2025-12-10 13:47:34 +01:00
Enrico Candino and GitHub
e385ceb66f
Fixed missing Kubernetes host version when specified ( #585 )
...
* fix for missing host version
* added test
* fix test
* fix test
2025-12-03 09:21:27 +01:00
Enrico Candino and GitHub
521ff17ef6
Added test for SubPathExpr ( #569 )
...
* small fixes
* added test for subpathexpr
* removed old comment
2025-11-21 16:28:59 +01:00
Enrico Candino and GitHub
8760afd5bc
Added --namespace flag to k3kcli policy create ( #564 )
...
* added --namespace flag to policy create to actually bind the new policy to existing namespaces
* fix lint
* fix tests
* added overwrite flag
* updated cli docs
* fix tests 2
* moved double quotes to single quote
* fix test
2025-11-14 21:45:28 +01:00
Enrico Candino and GitHub
2e6de51dab
Improve tests resiliency ( #539 )
...
* fix missing namespaces cleanup
* fix conflict namespace
* fix PVC already created error, patch for existing volume, and check with hardcoded k3k name
* removed useless test
* fix for dump covdata from external pod
* keep namespaces flag
* fix for multi-node clusters
* fix for hanging pod in isolated namespace
2025-10-31 21:51:37 +01:00
Enrico Candino and GitHub
af9e1d6ca7
Cleanup orphaned resources after Cluster deletion ( #540 )
...
* adding controller reference for garbage collection, delete API lease
* added test
* fix lint
2025-10-31 15:25:38 +01:00
Enrico Candino and GitHub
075d72df5d
Cleanup of customCAs spec ( #527 )
...
* cleanup spec from customCAs when omitted
* add enabled default for customCAs
2025-10-23 22:11:44 +02:00
Enrico Candino and GitHub
514fdf6b86
Fix for flaky test ( #523 )
...
* fix for flaky test
* fix lint
* check ContainersReady condition
2025-10-21 18:19:36 +02:00
Hussein Galal and GitHub
89dc352bea
Scale up/down tests for virtual and shared mode ( #508 )
...
* Scale up/down tests for virtual and shared mode
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* defer cleanup and more fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* add labels to e2e tests and divide the workload
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* add labels to e2e tests and divide the workload
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* add validate job to e2e test
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fix label filters for e2e tests
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fix makefile
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* use constants for e2e tests labels
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fix typo
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fix labels
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
---------
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
2025-10-15 17:01:14 +03:00
Enrico Candino and GitHub
7644406eeb
Fix for flaky test ( #509 )
...
* fix for flaky test and fix for PVC creation
* fix lint
2025-10-15 11:31:45 +02:00
Enrico Candino and GitHub
594c2571c3
promoted v1alpha1 resources to v1beta1 ( #505 )
2025-10-13 17:24:56 +02:00
Hussein Galal and GitHub
12971f55a6
Add k8s version upgrade test ( #503 )
...
* Add k8s version upgrade test
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* lint
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* remove unused functions
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
---------
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
2025-10-13 17:14:25 +03:00
Hussein Galal and GitHub
a0fd472841
Use K3S host cluster for E2E tests ( #492 )
...
* Add kubeconfig to e2e_tests
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* add E2E_KUBECONFIG env variable
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fix yaml permissions for kubeconfig
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Fix image name and use ttl.sh
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* add uuidgen result to a file
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* add hostIP
* Add k3s version to e2e test
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* remove comment
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* remove virtual mode tests
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fix failed test
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Add KUBECONFIG env variable to the make install
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* add k3kcli to github_path
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Use docker installation for testing the cli
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* typo
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fix test cli
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* lint
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* typo
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
---------
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
2025-10-08 15:39:35 +03:00
Enrico Candino and GitHub
9f265c73d9
Fix for HA server deletion ( #493 )
...
* wip
* wip
* wip
* removed todo
2025-10-08 13:23:15 +02:00
Enrico Candino and GitHub
5c95ca3dfa
Fix for pod eviction in host cluster ( #484 )
...
* update statefulset controller
* fix for single pod
* adding pod controller
* added test
* removed comment
* merged service controller
* revert statefulset
* added test
* added common owner filter
2025-10-03 16:22:54 +02:00
Hussein Galal and GitHub
80037e815f
Adding upgrade path tests ( #481 )
...
* Adding upgrade path tests
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* wsl
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Remove update label
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
---------
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
2025-10-02 14:53:08 +03:00
Enrico Candino and GitHub
7585611792
Rename PodController to StatefulSetController ( #482 )
...
* renamed pod.go
* update statefulset controller
* fix for single pod
* added test, revert finalizer
* wip ha deletion
* revert logic
* remove focus
2025-10-01 17:06:24 +02:00
Enrico Candino and GitHub
01589bb359
splitting tests ( #461 )
2025-09-23 12:07:49 +02:00
Hussein Galal and GitHub
72eb819216
Add imagepullsecrets to controller, server, and agents ( #455 )
...
* Add imagepullsecrets to controller, server, and agents
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Fix tests
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Fix tests
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fix test cli
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fxing tests
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Add agent section to helm chart values
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Fix charts values
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* Fixing chart and refactoring cluster config
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* default lists to the values of imagepullsecrets
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* more fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fixes
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* wsl
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* fix version image function and add unit tests
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
* simplify arguments and remove registry from the code
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
---------
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
2025-09-17 11:29:01 +03:00
Enrico Candino and GitHub
1550c6b45a
Add k3k controller coverage data ( #452 )
...
* added k3k controller coverage data
* cleanup
2025-09-03 11:37:56 +02:00
Hussein Galal and GitHub
8d89c7d133
Fix service port for generated kubeconfig secret ( #433 )
...
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com >
2025-08-18 09:17:30 +03:00
Enrico Candino and GitHub
084701fcd9
Migrate from urfave/cli to cobra ( #426 )
...
* wip
* env var fix
* cluster create
* cluster create and delete
* cluster list
* cluster cmd
* kubeconfig
* policy create
* policy delete and list, and added root commands
* removed urfavecli from k3kcli
* fix policy command
* k3k-kubelet to cobra
* updated docs
* updated go.mod
* updated test
* added deletion
* added cleanup and flake attempts
* wip bind env
* simplified config
2025-07-24 16:49:40 +02:00