213 Commits

Author SHA1 Message Date
thebsdbox
b1e43738eb re-factor kube-vip command 2020-04-09 18:23:16 +01:00
Dan Finneran
a0e2fd8283 Environment variables
This change bumps teh version to `0.1.3` and adds:

- Updated deployment, with clear roles and service accounts
- Makefile changes (optional container tag)
- Ability to use environment variables for vip container
2020-03-07 15:47:54 +00:00
Dan Finneran
8a89889abf Multi Architecture Docker builds
This fixes:
- Wrong import path
- Moves the build into a container
- Uses `buildx` for multi-arch builds
- Updated Makefile
2020-02-28 14:04:21 +00:00
Dan Finneran
c5504dad2c Enables interface and arp 2020-02-25 18:22:07 +00:00
Dan Finneran
96fde235a8 Kube-vip now works as an app LB 2020-02-25 17:48:02 +00:00
Dan Finneran
e43f2575f5 Fixes comma seperated members
Accidentally was using the wrong flags function. This fixes it to a slice.
2020-02-15 19:06:04 +00:00
Dan Finneran
391855dce5 Adds flags for creating configuration
This adds a large number of flags to create a customised `kube-vip` configuration.

`-h`

```
      --arp                       Use ARP broadcasts to improve VIP re-allocations
      --interface string          Name of the interface to bind to (default "eth0")
      --lbBackends strings        Comma seperated backends, format: address:port (default [192.168.0.1:8080,192.168.0.2:8080])
      --lbBindToVip               Bind example load balancer to VIP
      --lbName string             The name of a load balancer instance (default "Example Load Balancer")
      --lbPort int                Port that load balander will expose on (default 8080)
      --lbType string             Type of load balancer instance (tcp/http) (default "tcp")
      --localPeer string          Settings for this peer, format: id:address:port (default "server1:192.168.0.1:10000")
      --remotePeers stringArray   Comma seperated remotePeers, format: id:address:port (default [server2:192.168.0.2:10000,server3:192.168.0.3:10000])
      --singleNode                Start this instance as a single node
      --startAsLeader             Start this instance as the cluster leader
      --vip string                The Virtual IP addres (default "192.168.0.1")
```
2020-02-15 18:45:13 +00:00
Dan Finneran
79146940d0 Fixes generation of manifest
This generates a manifest with the `current` version of `kube-vip`
2020-02-12 09:57:25 +00:00
Dan Finneran
a57ce0f7d8 This simplifies the requirement for starting the first instance as a leader
Either passing `-l` or `startAsLeader:true` makes the first node deployment much more simple
2020-02-11 16:53:29 +00:00
Dan Finneran
2f78cf79fa Simplification of configuration
This removes the duplication of peers and has a seperate entry for remote and local peers
2020-02-09 14:47:54 +00:00
Dan Finneran
62954c2091 SingleNode / LoadBalancer 2020-02-05 16:41:51 +00:00
Dan Finneran
d0e61069f5 Re-Write of all load balancing code
Configuration and mutating of config, along with validation all moved out to seperate package.

All load balancing code now moved inline
2020-02-04 09:16:23 +00:00
Dan Finneran
9258e3e205 Bare-Bones implementation
This initial commit contains all of the implementation details for:

- Build a multi-node cluster using RAFT
- Allocates/Deallocate a VIP using `netlink`
- Uses ARP to broadcast networking changes
- Creates example configuration
- Creates example manifest
2020-02-03 16:57:24 +00:00