aboutsummaryrefslogtreecommitdiff
path: root/src/rpc/system.rs
Commit message (Collapse)AuthorAgeFilesLines
* remove Ring and use ClusterLayout everywhereAlex Auvolat2023-11-081-29/+26
|
* fix compilation on macostrinity-1686a2023-10-151-2/+2
| | | | fsblkcnt_t is ony 32b there, so we have to do an additional cast
* Merge branch 'main' into nextAlex Auvolat2023-09-271-9/+9
|\
| * fix hang on shutdownAlex Auvolat2023-09-121-9/+9
| |
* | new layout: fix clippy lintsAlex Auvolat2023-09-181-2/+2
| |
* | Merge branch 'main' into nextv0.9.0-beta2Alex Auvolat2023-09-111-2/+2
|\|
| * fix 32-bit buildfix-32bitAlex Auvolat2023-09-111-2/+2
| |
* | Merge branch 'main' into nextAlex Auvolat2023-09-111-36/+30
|\|
| * use statvfs instead of mount list to determine free data/meta space (fix #611)Alex Auvolat2023-09-111-9/+8
| |
* | correct free data space accounting for multiple data dirs on same fsAlex Auvolat2023-09-071-5/+23
| |
* | block manager: skeleton for multi-hdd supportAlex Auvolat2023-09-061-4/+19
| |
* | admin api: switch GetClusterHealth to camelcase (fix #381 again)Alex Auvolat2023-06-141-2/+2
| |
* | Merge branch 'main' into nextAlex Auvolat2023-04-251-15/+89
|\|
| * More clippy fixesAlex Auvolat2023-01-261-2/+2
| |
| * Add local disk usage to exported prometheus metricsreport-disk-usageAlex Auvolat2023-01-261-9/+28
| |
| * Disk space reportAlex Auvolat2023-01-261-14/+59
| | | | | | | | Report available disk space on nodes and calculate cluster-wide available space in `garage stats` (fix #479)
| * system.rs: Integrated SystemMetrics into System implementation.Jonathan Davies2023-01-101-0/+10
| |
* | Merge branch 'main' into nextAlex Auvolat2023-01-041-58/+65
|\|
| * Fix Consul & Kubernetes discovery with new way of doing background thingsfix-backgroundAlex Auvolat2023-01-031-17/+22
| |
| * Refactor how things are migratedAlex Auvolat2023-01-031-5/+13
| |
| * better error message handlingAlex Auvolat2022-12-141-11/+12
| |
| * Get rid of background::spawnAlex Auvolat2022-12-141-16/+13
| |
| * Improve error message on rpc connection failureAlex Auvolat2022-12-141-7/+9
| |
| * Refactor background runner and get rid of job workerAlex Auvolat2022-12-141-15/+9
| |
* | Merge commit 'ec12d6c' into nextAlex Auvolat2022-12-111-3/+3
|\ \ | |/ |/|
| * Return more info when layout's .check() fails, fix compilation, fix testAlex Auvolat2022-11-081-3/+3
| |
* | Refactor health check and add ability to return it in jsonAlex Auvolat2022-12-051-1/+98
|/
* move things aroundAlex Auvolat2022-10-181-9/+8
|
* Load TLS certificates only onceAlex Auvolat2022-10-181-8/+14
|
* Add TLS support for Consul discovery + refactoringAlex Auvolat2022-10-181-44/+26
|
* 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>
* 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
|