* MINOR: Remove duplicate rules to avoid validation warning when applying
* optional fix for duplicate validation rule
* +optional validation should not be on type level, but field
---------
Co-authored-by: Kenneth Holm Seelig <xkhse@energinet.dk>
* WIP: Add API spec for machine ip pool ref
* Adjusting code to comply with the new API
* Implement the logic for the IP Pool Ref for proxmoxmachines
* Make Default network required when setting network and add tests
* add metadata handling for proxmox node name
* First draft: flatcar and ignition support
* Revert "add metadata handling for proxmox node name"
This reverts commit 3dd5aae409a70da006e35c7130ca9ecc39fe73f0.
* Make The Ignition ISO able to be unmounted
* Fixes lints
* Fixes Tests
* remove unsed config and Fixes Test
* Set ipv6
* add tests
* add tests for injector
* more test coverage
* Fix lint
* Provide a correct cluster template
* Provide docs on how to provision cluster with flatcar
* Address reviews
* Update envtest
* Address reviwes and try e2e test with skip label
* Implement networkd config units with VRFs
* Tidy
* E2e test for flatcar
* Use correct template for flatcar
* Add more tests
* Simpler units name
* add comment for netdev index
* Address reviews
* remove uncessary variable
* Add note about EXP_KUBEADM_BOOTSTRAP_FORMAT_IGNITION
* Address reviews
* Change ignition docs
* Remove quotes
* pkg/ignition/network.go: fix VRF routing rules policy table, add tests
---------
Co-authored-by: tuunit <jan@larwig.com>
Co-authored-by: Felix Wischke (65278) <felix@zeynix.de>
* Return VMIDFreeErr or the error object itself if CheckID returns true/an error
* Rename VMIDFreeErr to ErrVMIDFree and fix comment to make linter happy
* feat: Add ability to specify range of VM IDs to use
* Fix codespell error: fix spelling
* When checking if a vmid is free, first check the existing ProxmoxMachines before querying the Proxmox API.
* Check that the vmid of the Proxmox machine is set (not -1) before adding it to usedVMIDs
* Move spec.vmidRange from ProxmoxCluster to ProxmoxMachine
* Update github.com/luthermonson/go-proxmox to v0.2.0
* Revert "Update github.com/luthermonson/go-proxmox to v0.2.0"
This reverts commit c5d15e56ef7c61ab884c3726e2e9707ba8038a27.
Because of this bug https://github.com/luthermonson/go-proxmox/pull/169
* Update github.com/luthermonson/go-proxmox to v0.2.1
* Add test for ClusterScope.ListProxmoxMachinesForCluster
* Fix wording in ProxmoxMachine types test
* Rename vmidRange to vmIDRange to follow k8s API conventions
* Add validation for vmIDRange: end should be greater than or equal to start
* Set failureMessage and failureReason when ErrNoVMIDInRangeFree is thrown
* Refactor getVMID to improve code quality
---------
Co-authored-by: Mohamed Chiheb Ben Jemaa <mc.benjemaa@gmail.com>
* feat(vlan): Add vlan tag support for VM reconcile.
This commit implement VLAN tag support when creating - or more in general reconciling - a ProxmoxMachine. This feature implements a new optional value in the ProxmoxMachine CRS, defined in the NetworkDevice type. The value is an integer, delimited in the range 1-4094.
Tests have been also implemented to prevent regression, and e2e tests have been conducted creating both cluster using the new property and without - to check past compat.
* test(vlan): Add more testing and fix validation
* fix(test-vlan): Fix regression in test caused by a typo
* misc: Add more entry to gitignore
* refactor: Removed unused validator and refactor variable name
* refactor: Refactor variable name
* Add VRF device support
* cluster-template-cilium-load-balancer: metallb based loadbalancer nodes
* LoadBalancerNodes: Documentation
* load-balancer-nodes: taint and toleration for metallb
* cluster-template-cilium-load-balancer: force ipvs/strictARP for metallb
* Add tests
* Add Comment for webhook
* Add tests
* Add minmal test for proxmoxmachine controller
* Add comment for mtu
* Rephrase special case for MTU
---------
Co-authored-by: Mario Valderrama <mario.valderrama@ionos.com>
* feat: implement setting mtu for virtio network device
See https://git.proxmox.com/?p=qemu-server.git;a=commit;h=61a14cde8d568e552d3deaab2da76b479b8aca7b
* fix: split extractNetworkModelAndBridge into multiple functions
* fix: set maximum mtu to 65520
* test: should not allow mtu less than 1 or more than 65520
* feat: add validating webhook for proxmoxmachine
* fix: remove default mtu
`ProxmoxCluster.spec.SchedulerHints.MemoryAdjustment=300` allows to (theoretically) allocate 300% of a host's memory for VMs (use with caution - enabling memory ballooning highly recommended)
`ProxmoxCluster.spec.SchedulerHints.MemoryAdjustment=95` allows to limit memory allocation to 95% of a host's memory
`ProxmoxCluster.spec.SchedulerHints.MemoryAdjustment=0` entirely disables scheduling memory constraints