40 Commits

Author SHA1 Message Date
Matthew Carpenter
2699ce3833 add help text to kubeadm and manifest subcommands
Signed-off-by: Matthew Carpenter <mattcarp88@gmail.com>
2026-06-30 12:50:56 +00:00
Guillermo Gaston
dcd3236925 Add configurable health check in BGP mode
In BGP mode without leader election, every kube-vip instance announces
the same VIP. ECMP distributes traffic evenly, but if a node's
kube-apiserver goes down, kube-vip (a static pod tied to kubelet) keeps
advertising the route — sending a fraction of all API traffic into a
black hole.

An optional health check loop now polls the local kube-apiserver and
withdraws the BGP route after a configurable number of consecutive
failures, removing the dead node from the ECMP set. The route is
re-announced once the API server recovers.

Signed-off-by: Guillermo Gaston <ggastonloren@nvidia.com>
2026-05-04 20:04:45 +00:00
Patryk Strusiewicz-Surmacki
5818a6c661 Do not use panic()
Signed-off-by: Patryk Strusiewicz-Surmacki <patryk.pawel.strusiewicz-surmacki@external.telekom.de>
2026-01-26 12:47:17 +01:00
Cellebyte
2074be2939 use the new vip.LookupHost for manifest creation
Signed-off-by: Cellebyte <marcel.fest@live.de>
2025-09-18 17:41:57 +02:00
Cellebyte
d2ecf22edd fix images in the kind clusters when manifest is used
Signed-off-by: Cellebyte <marcel.fest@live.de>
2025-09-04 18:54:57 +02:00
Marcel Fest
c5e854f323 Breaking: Remove vip_cidr in favor of vip_subnet from config interface
Signed-off-by: Marcel Fest <marcel.fest@telekom.de>
2025-04-14 21:41:34 +02:00
Dan Finneran
e1481db95c cleanup of messages 2025-02-05 09:24:39 +00:00
Dan Finneran
2136e69a82 Big refactor to log/slog 2025-01-16 17:45:09 +00:00
Dan Finneran
ffe2e9c808 Various fixes to CI 2025-01-05 14:59:51 +00:00
Ludovic Ortega
a5d6846608 fix: set vip_cidr default value
Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
2024-07-23 21:15:12 +02:00
Wout Van De Wiel
f933079da0 fix: print manifests to stdout
Signed-off-by: Wout Van De Wiel <wout.vandewiel@accelleran.com>
2024-02-06 18:42:01 +01:00
ii2day
7a93f6fd04 fix: Using log instead of fmt.print
Signed-off-by: ii2day <ii2day.zoro@gmail.com>
2024-02-05 09:58:32 +08:00
thebsdbox
1bcd101b53 Table mode is now added to kube-vip 2022-06-29 16:08:02 +01:00
Daniel Finneran
93cca8e938 Merge branch 'main' into ipvs 2021-10-26 13:48:26 +01:00
thebsdbox
e1bfcb1aa6 Tidying up of redundant code, fixes to fwdtype lb 2021-10-26 13:47:13 +01:00
Steve Sloka
9b65c1e63c Refactor the Kubernetes client generation into a single place inside a new k8s package.
Signed-off-by: Steve Sloka <slokas@vmware.com>
2021-10-25 15:30:23 -04:00
Steve Sloka
2e9c2244c1 Adds golangci-lint to check for code errors + clean up resulting findings after running.
Signed-off-by: Steve Sloka <slokas@vmware.com>
2021-10-20 13:55:34 +00:00
thebsdbox
5f751cc321 Fixes from feedback 2021-09-03 13:37:43 +01:00
thebsdbox
d06176a56b Implements a secondary interface just for services 2021-09-02 10:07:17 +01:00
thebsdbox
27451767c3 Fixes re-application of VIP 2021-07-09 11:37:47 +01:00
Edwin Xie
dbfc39cee3 Support IPv6
- Implement gratuitous NDP neighbor advertisements
- Add e2e tests for IPv6 neighbor advertisements and IPv4 ARP broadcasts
  - Adds a README.md for e2e tests
- Adds go.mod dependencies
  - Kind to run clusters
  - Ginkgo testing framework
  - Gomega assertion library
  - ndp library to help with NDP

Co-authored-by: Aidan Obley <aobley@vmware.com>
Co-authored-by: Gabriel Rosenhouse <grosenhouse@vmware.com>
2021-03-12 23:53:27 +00:00
thebsdbox
5e0add5737 inCluster manifest 2020-12-11 13:46:45 +00:00
thebsdbox
356949d9c9 Fixes to pod/daemonset spec 2020-10-23 15:01:31 +01:00
Yassine TIJANI
98f2757749 add checks the address flag
Signed-off-by: Yassine TIJANI <ytijani@vmware.com>
2020-10-19 14:33:10 +02:00
thebsdbox
79509d961f Daemonset manifest
This adds the capability to generate a deamonset manifest
2020-10-08 12:53:19 +01:00
thebsdbox
507fab9d6b LeaderElection configuration
This commit adds customisation of the LeaderElection
2020-09-03 11:46:23 +01:00
thebsdbox
d8505dab55 This is a complete hack
This does the following:
 - Bumps client-go a version
 - Adds the missing `contexts`
 - Takes leaderElection from Kubernetes upstream and adds a fix
2020-08-28 16:36:24 +01:00
thebsdbox
ea11c6fbbd This fixes numerous issues
- Adds the CIDR to the VIP, needed for BGP
- Seperates the EIP association to a seperate function making leader Election code clearer
- Fixes to environment variable names
- Clean un-needed `fatalf` errors
- Added additional comments
2020-08-25 10:07:54 +01:00
thebsdbox
b6e3434ee3 This adds BGP functionality to kube-vip
Details to be added.
2020-08-24 19:27:42 +01:00
Daniel Finneran
9011be8cef Merge pull request #56 from thebsdbox/packet
Packet support
2020-07-28 17:03:05 +01:00
Peter Grant
b02dba45d6 update typos in configs 2020-07-24 15:11:30 +10:00
thebsdbox
bc8f1d6fbe A packet project can now be defined. 2020-07-14 21:41:39 +01:00
thebsdbox
fd06164db5 Enables Packet EIP/VIP 2020-07-14 17:53:12 +01:00
thebsdbox
9f32c3f6d3 Merge remote-tracking branch 'upstream/master' into load-balancer-toggle 2020-07-10 17:07:03 +01:00
thebsdbox
147f130e6e This branch contains the code for leader election
This branch adds the option for using the Kubernetes leader election algorithim to ensure that one node in the cluster will host the virtual IP and load-balancer. To use leaderElection the use teh `--leaderElection` flag when running `kubeadm init`
2020-07-03 14:02:55 +01:00
thebsdbox
f48d34731d Load-balancer optional
This commit changes the `defaul` behaviour of `kube-vip` to use VIP clustering only. The flag `--lbEnable` will default to `false`, which in turn will result in the kubernetes manifest generated by the `kube-vip kubeadm init` having a disabled load-balancer in the manifets.
2020-06-22 17:36:12 +01:00
thebsdbox
d5b15432d5 File exists check
- Updates to `makefile` for building locally
- Ensures output is printed correctly for any kube-client errors
- `--config` added to the `kubeadm join` command to specify a different configuration.
2020-06-19 15:46:05 +01:00
thebsdbox
c9c7b78cf7 Finalise join command
This PR adds all of the functionality to use the kube-vip `kubeadm init` and `kubeadm join` commands. It also adds in client-go, to find all controlplane nodes.
2020-06-18 17:06:13 +01:00
thebsdbox
33cafbe197 Removal of redundant code and tidying of helper functions 2020-04-13 17:37:39 +01:00
thebsdbox
b1e43738eb re-factor kube-vip command 2020-04-09 18:23:16 +01:00