Commit graph

22 commits

Author SHA1 Message Date
Alex d50fa2a562
nix: add clang to flake.nix and shell.nix 2023-10-26 11:19:22 +02:00
Alex d3fffd30dc use mold linker when invoking cargo manually (not in nix build scripts) 2023-10-10 13:56:48 +02:00
Alex f251b4721f Apply nixfmt to all .nix files; fix devshell and add it to cache 2023-01-26 12:25:48 +01:00
Alex 60c26fbc62
Inject last modified date as git_version; flake cache uploading 2022-11-16 23:47:10 +01:00
Alex e76dba9561
Make repository into a Nix flake 2022-11-16 23:25:34 +01:00
Alex a54a63c491
Add function to upload a build and its dependencies to the cache
to faster bootstrap new runner nodes
2022-10-18 14:19:19 +02:00
Alex 8fc93abc79
Some things are now in result-bin 2022-10-18 13:39:21 +02:00
Alex 7c0c229934
move refresh_toolchain 2022-10-18 12:15:31 +02:00
Alex d104ae8711
Add step to generate multi-arch Docker container in CI 2022-09-26 19:09:55 +02:00
Quentin fcb04843f7
Run clippy in nix, leveraging nix caching ability 2022-07-26 18:27:52 +02:00
Quentin 76cb34a0ae
Fail if compiled binary is dynamic 2022-07-26 18:27:46 +02:00
trinity-1686a 64c193e3db Add a K2V client library and CLI (#303) could use getting split in modules, but I'm not sure how exactly

Co-authored-by: trinity-1686a <>
Reviewed-on: Deuxfleurs/garage#303
Co-authored-by: trinity-1686a <>
Co-committed-by: trinity-1686a <>
2022-05-18 22:24:09 +02:00
Alex f0d0cd9a20
Remove strum crate dependency; add protobuf nix dependency 2022-03-14 10:53:00 +01:00
Max Audron 9d44127245
add support for kubernetes service discovery
This commit adds support to discover garage instances running in

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

For discovering nodes the resources are filtered with the optionally set
`kubernetes_service_name` which sets a label
`` on the resources.

This allows to separate multiple garage deployments in a single

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
Quentin 2a3afcaf65 Test WinSCP 2022-03-03 14:29:10 +01:00
Quentin 5d19f3d2d7
Add integration tests to Drone 2022-02-10 17:55:50 +01:00
Quentin 084dcdbd3a
Upgrade cargo2nix 2022-02-10 17:55:50 +01:00
Quentin 6f7ef11537 Generate and upload a JSON result 2022-02-05 22:09:43 +01:00
Quentin b4592a00fe Implement ListMultipartUploads (#171)
Implement ListMultipartUploads, also refactor ListObjects and ListObjectsV2.

It took me some times as I wanted to propose the following things:
  - Using an iterator instead of the loop+goto pattern. I find it easier to read and it should enable some optimizations. For example, when consuming keys of a common prefix, we do many [redundant checks]( while the only thing to do is to [check if the following key is still part of the common prefix](
  - Try to name things (see ExtractionResult and RangeBegin enums) and to separate concerns (see ListQuery and Accumulator)
  - An IO closure to make unit tests possibles.
  - Unit tests, to track regressions and document how to interact with the code
  - Integration tests with `s3api`. In the future, I would like to move them in Rust with the aws rust SDK.

Merging of the logic of ListMultipartUploads and ListObjects was not a goal but a consequence of the previous modifications.

Some points that we might want to discuss:
  - ListObjectsV1, when using pagination and delimiters, has a weird behavior (it lists multiple times the same prefix) with `aws s3api` due to the fact that it can not use our optimization to skip the whole prefix. It is independant from my refactor and can be tested with the commented `s3api` tests in ``. It probably has the same weird behavior on the official AWS S3 implementation.
  - Considering ListMultipartUploads, I had to "abuse" upload id marker to support prefix skipping. I send an `upload-id-marker` with the hardcoded value `include` to emulate your "including" token.
  - Some ways to test ListMultipartUploads with existing software (my tests are limited to s3api for now).

Co-authored-by: Quentin Dufour <>
Reviewed-on: Deuxfleurs/garage#171
Co-authored-by: Quentin <>
Co-committed-by: Quentin <>
2022-01-12 19:04:55 +01:00
Quentin 93f8d59e4c
Extract toolchain build from the CI 2021-10-29 11:34:01 +02:00
Quentin cc1caa87fb
Use Rust binaries from Nix instead of rustup 2021-10-29 11:34:01 +02:00
Quentin dc017a0cab
Build Garage with Nix 2021-10-19 16:56:07 +02:00