aboutsummaryrefslogtreecommitdiff
path: root/src/rpc/system.rs
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/main' into optimal-layoutMendes2022-10-041-73/+179
|\
| * Fix instant substractions that might have panickedfix-timeAlex Auvolat2022-09-291-1/+3
| |
| * RPC performance changesAlex Auvolat2022-09-191-4/+12
| | | | | | | | | | | | - configurable ping timeout - single, much higher, configurable RPC timeout - no more concurrency semaphore
| * Allow for hostnames in bootstrap_peers and rpc_public_addr (fix #353)resolve-peer-namesAlex Auvolat2022-09-141-16/+57
| |
| * Add checks on replication_factor of layouts we use (fix #363, fix #364)various-fixes-for-0.8Alex Auvolat2022-09-131-5/+25
| |
| * Merge branch 'lx-perf-improvements' into netapp-stream-bodyAlex Auvolat2022-09-081-7/+4
| |\
| | * Move GIT_VERSION injection later in build chain to reduce build timesAlex Auvolat2022-09-071-7/+4
| | |
| * | Less strict timeoutsAlex Auvolat2022-09-011-3/+3
| | |
| * | Merge branch 'lx-perf-improvements' into netapp-stream-bodyAlex Auvolat2022-08-291-5/+2
| |\|
| | * Configure structopt to report the right versionv0.7.2_ci-test-2bug/reported-versionQuentin Dufour2022-08-111-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, structopt reports the value provided by the env var CARGO_PKG_VERSION, feeded by Cargo when reading Cargo.toml. However for Garage we use a versioning based on git, so we often report a version that is behind the real version. In this commit, we create garage_util::version::garage() that reports the right version and configure all structopt subcommands to call this function instead of using the env var.
| * | First adaptation to WIP netapp with streaming bodyAlex Auvolat2022-07-291-3/+4
| |/
| * Background task manager (#332)Alex2022-07-081-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - [x] New background worker trait - [x] Adapt all current workers to use new API - [x] Command to list currently running workers, and whether they are active, idle, or dead - [x] Error reporting - Optimizations - [x] Merkle updater: several items per iteration - [ ] Use `tokio::task::spawn_blocking` where appropriate so that CPU-intensive tasks don't block other things going on - scrub: - [x] have only one worker with a channel to start/pause/cancel - [x] automatic scrub - [x] ability to view and change tranquility from CLI - [x] persistence of a few info - [ ] Testing Co-authored-by: Alex Auvolat <alex@adnab.me> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/332 Co-authored-by: Alex <alex@adnab.me> Co-committed-by: Alex <alex@adnab.me>
| * First version of admin API (#298)Alex2022-05-241-48/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Spec:** - [x] Start writing - [x] Specify all layout endpoints - [x] Specify all endpoints for operations on keys - [x] Specify all endpoints for operations on key/bucket permissions - [x] Specify all endpoints for operations on buckets - [x] Specify all endpoints for operations on bucket aliases View rendered spec at <https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/admin-api/doc/drafts/admin-api.md> **Code:** - [x] Refactor code for admin api to use common api code that was created for K2V **General endpoints:** - [x] Metrics - [x] GetClusterStatus - [x] ConnectClusterNodes - [x] GetClusterLayout - [x] UpdateClusterLayout - [x] ApplyClusterLayout - [x] RevertClusterLayout **Key-related endpoints:** - [x] ListKeys - [x] CreateKey - [x] ImportKey - [x] GetKeyInfo - [x] UpdateKey - [x] DeleteKey **Bucket-related endpoints:** - [x] ListBuckets - [x] CreateBucket - [x] GetBucketInfo - [x] DeleteBucket - [x] PutBucketWebsite - [x] DeleteBucketWebsite **Operations on key/bucket permissions:** - [x] BucketAllowKey - [x] BucketDenyKey **Operations on bucket aliases:** - [x] GlobalAliasBucket - [x] GlobalUnaliasBucket - [x] LocalAliasBucket - [x] LocalUnaliasBucket **And also:** - [x] Separate error type for the admin API (this PR includes a quite big refactoring of error handling) - [x] Add management of website access - [ ] Check that nothing is missing wrt what can be done using the CLI - [ ] Improve formatting of the spec - [x] Make sure everyone is cool with the API design Fix #231 Fix #295 Co-authored-by: Alex Auvolat <alex@adnab.me> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/298 Co-authored-by: Alex <alex@adnab.me> Co-committed-by: Alex <alex@adnab.me>
* | deleted zone_redundancy from System structMendes2022-10-041-2/+0
| |
* | New version of the algorithm that calculate the layout.Mendes2022-09-211-1/+4
|/ | | | | | | | It takes as paramters the replication factor and the zone redundancy, computes the largest partition size reachable with these constraints, and among the possible assignation with this partition size, it computes the one that moves the least number of partitions compared to the previous assignation. This computation uses graph algorithms defined in graph_algo.rs
* Add feature flag for Kubernetes discoveryAlex Auvolat2022-03-241-63/+97
|
* Bump version to 0.7 because of incompatible NetappAlex Auvolat2022-03-141-1/+1
|
* Update to Netapp 0.4 which supports distributed tracingAlex Auvolat2022-03-141-8/+8
|
* add support for kubernetes service discoveryMax Audron2022-03-121-1/+78
| | | | | | | | | | | | | | | | | | | | | 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.
* Some movement of helper code and refactoring of error handlingAlex Auvolat2022-01-041-1/+1
|
* Improve how node roles are assigned in Garagev0.5-beta1Alex Auvolat2021-11-161-41/+59
| | | | | | | | | | | | | | | | | - 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.
* Request strategy: don't launch all 3 requests if not neededv0.4-rc2Alex Auvolat2021-11-041-1/+1
|
* Add semaphore to limit RAM used by buffered outgoing requestsrequest-buffer-semaphoreAlex Auvolat2021-11-031-4/+1
|
* Fix peer list persistence: do not forget previous peersAlex Auvolat2021-11-031-7/+23
|
* Fix clippy lints (fix #121)Alex Auvolat2021-10-261-1/+1
|
* Improve CLI, adapt tests, update documentationAlex Auvolat2021-10-251-54/+111
|
* Improvements to CLI and various fixes for netapp versionAlex Auvolat2021-10-221-73/+204
| | | | Discovery via consul, persist peer list to file
* First port of Garage to NetappAlex Auvolat2021-10-221-0/+363