Commit Graph

69 Commits

Author SHA1 Message Date
Max Audron 9d44127245 add support for kubernetes service discovery
This commit adds support to discover garage instances running in
kubernetes.

Once enabled by setting `kubernetes_namespace` and
`kubernetes_service_name` garage will create a Custom Resources
`garagenodes.deuxfleurs.fr` with nodes public key as the resource name.
and IP and Port information as spec in the namespace configured by
`kubernetes_namespace`.

For discovering nodes the resources are filtered with the optionally set
`kubernetes_service_name` which sets a label
`garage.deuxfleurs.fr/service` on the resources.

This allows to separate multiple garage deployments in a single
namespace.

the `kubernetes_skip_crd` variable allows to disable the creation of the
CRD by garage itself. The user must deploy this manually.
2022-03-12 13:05:52 +01:00
Alex Auvolat 5b1117e582 New model for buckets 2022-01-04 12:45:46 +01:00
Alex Auvolat c94406f428 Improve how node roles are assigned in Garage
- change the terminology: the network configuration becomes the role
  table, the configuration of a nodes becomes a node's role
- the modification of the role table takes place in two steps: first,
  changes are staged in a CRDT data structure. Then, once the user is
  happy with the changes, they can commit them all at once (or revert
  them).
- update documentation
- fix tests
- implement smarter partition assignation algorithm

This patch breaks the format of the network configuration: when
migrating, the cluster will be in a state where no roles are assigned.
All roles must be re-assigned and commited at once. This migration
should not pose an issue.
2021-11-16 16:05:53 +01:00
Alex Auvolat 43e13a501d Use published netapp crate instead of git repo 2021-10-26 10:36:57 +02:00
Alex Auvolat 4067797d01 First port of Garage to Netapp 2021-10-22 15:55:18 +02:00
Alex Auvolat b9127dd6f8 Prepare for v0.3.0 and add migration path from v0.2.1.x 2021-05-28 15:29:58 +02:00
Alex Auvolat f859d15062 update to v0.2.1 2021-03-19 13:39:18 +01:00
Alex Auvolat fd8f4caa81 Support old CPUs 2021-03-19 12:19:40 +01:00
Alex Auvolat 4c26a0b9c1 Update Cargo.toml files with AGPL license info 2021-03-18 21:59:17 +01:00
Alex Auvolat dead945c8f Prepare for release 0.2 2021-03-18 19:33:15 +01:00
Alex Auvolat f4346cc5f4 Update dependencies 2021-03-16 15:58:40 +01:00
Alex Auvolat 0cd5b2ae19 WIP migrate to tokio 1 2021-03-15 22:36:41 +01:00
Alex Auvolat 3bf2df622a Time and metadata improvements 2021-03-15 16:21:41 +01:00
Alex Auvolat 20e6e9fa20 Update sled & try to debug deadlock (but its in sled...) 2021-02-23 21:27:28 +01:00
Alex Auvolat e8e4418ca7 Add blake2 and xxhash hash functions 2021-02-23 17:52:28 +01:00
Alex Auvolat 1d1d497e2b Bump everything to 0.1.1 2021-01-15 17:54:48 +01:00
Alex Auvolat cc65cdc0fe Add license, description and repository to .toml files 2020-07-07 14:14:58 +02:00
Alex Auvolat d867bbcfb5 Implement DeleteObjects 2020-05-01 15:52:35 +00:00
Alex Auvolat d8f5e643bc Split code for modular compilation 2020-04-24 10:10:01 +00:00