Commit Graph

28 Commits

Author SHA1 Message Date
Alex Auvolat
dc8d0496cc
Refactoring: rename config files, make modifications less invasive 2022-03-14 10:53:51 +01:00
Alex Auvolat
8c2fb0c066
Add tracing integration with opentelemetry 2022-03-14 10:52:13 +01:00
mricher
e349af13a7
Update dependencies and add admin module with metrics
- Global dependencies updated in Cargo.lock
- New module created in src/admin to host:
  - the (future) admin REST API
  - the metric collection
- add configuration block

No metrics implemented yet
2022-03-14 10:51:12 +01:00
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
d4dd2e2640
Make use of website config, return error document on error 2022-01-13 14:25:19 +01:00
trinity-1686a
1eb972b1ac Add compression using zstd (#173)
fix #27

Co-authored-by: Trinity Pointard <trinity.pointard@gmail.com>
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/173
Co-authored-by: trinity-1686a <trinity.pointard@gmail.com>
Co-committed-by: trinity-1686a <trinity.pointard@gmail.com>
2021-12-15 11:26:43 +01:00
Trinity Pointard
9c58ec28d3 add support for vhost-style s3 bucket 2021-11-16 15:41:41 +01:00
Trinity Pointard
9d7535c3f5 allow missing bootstrap_peers in garage.toml 2021-11-05 16:36:25 +01:00
Alex Auvolat
de4276202a
Improve CLI, adapt tests, update documentation 2021-10-25 14:21:48 +02:00
Alex Auvolat
1b450c4b49
Improvements to CLI and various fixes for netapp version
Discovery via consul, persist peer list to file
2021-10-22 16:55:24 +02:00
Alex Auvolat
4067797d01
First port of Garage to Netapp 2021-10-22 15:55:18 +02:00
Alex Auvolat
b490ebc7f6
Many improvements on ring/replication and its configuration:
- Explicit "replication_mode" configuration parameters that takes
  either "none", "2" or "3" as values, instead of letting user configure
  replication factor themselves. These are presets whose corresponding
  replication/quorum values can be found in replication/mode.rs

- Explicit support for single-node and two-node deployments
  (number of nodes must be at least "replication_mode", with "none"
  we can have only one node)

- Ring is now stored much more compactly with 256*8 + n*32 bytes,
  instead of 256*32 bytes

- Support for gateway-only nodes that do not store data
  (these nodes still need a metadata_directory to store the list
  of bucket and keys since those are stored on all nodes; it also
  technically needs a data_directory to start but it will stay
  empty unless we have bugs)
2021-05-28 14:07:36 +02:00
Alex Auvolat
575726358c
Tune Sled configuration
- Make sled cache size and flush interval configurable
- Set less agressive default values:
  - cache size 128MB instead of 1GB
  - Flush interval 2 seconds instead of .5 seconds
2021-05-03 17:27:43 +02:00
Trinity Pointard
f871689571
run cargo fmt on util and make missing doc warning 2021-04-27 16:37:10 +02:00
Trinity Pointard
f9bd2d8fb7
document util crate 2021-04-27 16:37:10 +02:00
Trinity Pointard
f17cb6c969 resolve domain to multiple addresses
And warn instead of failling when a domain can't be resolved
2021-03-18 21:04:30 +01:00
Trinity Pointard
c8a7ce5cdf remove domain resolution for *_bind_addr 2021-03-18 19:47:51 +01:00
Trinity Pointard
81e9db783f simplify addresse deserialialiser and limit allocations 2021-03-18 19:47:51 +01:00
Trinity Pointard
ae3b7029a9 add support for using domain name in configuration 2021-03-18 19:47:51 +01:00
Alex Auvolat
3882d5ba36 Remove epidemic propagation for fully replicated stuff: write directly to all nodes 2021-03-05 15:09:18 +01:00
Quentin
2765291796 Build path correctly 2020-11-11 19:48:01 +01:00
Quentin
4093833ae8 Extract bucket 2020-11-10 09:57:07 +01:00
Quentin
cea871d944 Skeleton to the new web API 2020-11-02 15:48:39 +01:00
Quentin
104e2ce0a2 Add "web" configuration entry 2020-10-31 17:28:56 +01:00
Alex Auvolat
fbe8fe81f2 Add automatic peer discovery from Consul 2020-06-30 18:33:14 +02:00
Alex Auvolat
db6f1f35a8 Rename epidemic_factor to epidemic_fanout (that's what it is); complete conf example in readme 2020-06-30 15:03:34 +02:00
Alex Auvolat
f2e05986c4 Starting to be S3 compatible 2020-04-24 17:46:52 +00:00
Alex Auvolat
d8f5e643bc Split code for modular compilation 2020-04-24 10:10:01 +00:00