Compare commits

...

7 Commits

24 changed files with 85 additions and 235 deletions
Generated
+18 -192
View File
@@ -272,29 +272,6 @@ dependencies = [
"zeroize",
]
[[package]]
name = "aws-lc-rs"
version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce2b2dcc879c3bae0d371e77c99f2238400ef24ec001394befa67b6e543add9e"
dependencies = [
"aws-lc-sys",
"zeroize",
]
[[package]]
name = "aws-lc-sys"
version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f09fae7be8bb3174e05c6afdb34199e6dc0c7c04ba9fa237b1967adfbde27483"
dependencies = [
"cc",
"cmake",
"dunce",
"fs_extra",
"pkg-config",
]
[[package]]
name = "aws-runtime"
version = "1.7.3"
@@ -785,17 +762,6 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]]
name = "chacha20"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06"
dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
"rand_core 0.10.1",
]
[[package]]
name = "chrono"
version = "0.4.44"
@@ -871,15 +837,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
[[package]]
name = "cmake"
version = "0.1.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
dependencies = [
"cc",
]
[[package]]
name = "cmov"
version = "0.5.3"
@@ -1249,12 +1206,6 @@ dependencies = [
"phf",
]
[[package]]
name = "dunce"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
[[package]]
name = "dyn-clone"
version = "1.0.20"
@@ -1448,12 +1399,6 @@ dependencies = [
name = "format_table"
version = "0.1.1"
[[package]]
name = "fs_extra"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
[[package]]
name = "fundu"
version = "2.0.1"
@@ -1568,7 +1513,7 @@ dependencies = [
[[package]]
name = "garage"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"assert-json-diff",
"async-trait",
@@ -1636,7 +1581,7 @@ dependencies = [
[[package]]
name = "garage_api_admin"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"argon2",
"async-trait",
@@ -1668,7 +1613,7 @@ dependencies = [
[[package]]
name = "garage_api_common"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"base64 0.22.1",
"bytes",
@@ -1704,7 +1649,7 @@ dependencies = [
[[package]]
name = "garage_api_k2v"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"base64 0.22.1",
"futures",
@@ -1727,7 +1672,7 @@ dependencies = [
[[package]]
name = "garage_api_s3"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"aes-gcm",
"async-compression",
@@ -1772,7 +1717,7 @@ dependencies = [
[[package]]
name = "garage_block"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"arc-swap",
"async-compression",
@@ -1796,7 +1741,7 @@ dependencies = [
[[package]]
name = "garage_db"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"fjall",
"heed",
@@ -1811,7 +1756,7 @@ dependencies = [
[[package]]
name = "garage_model"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"arbitrary",
"argon2",
@@ -1839,7 +1784,7 @@ dependencies = [
[[package]]
name = "garage_net"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"arc-swap",
"bytes",
@@ -1865,7 +1810,7 @@ dependencies = [
[[package]]
name = "garage_rpc"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"arc-swap",
"async-trait",
@@ -1876,6 +1821,9 @@ dependencies = [
"garage_util",
"gethostname",
"hex",
"hyper 1.9.0",
"hyper-rustls 0.27.9",
"hyper-util",
"ipnet",
"itertools 0.14.0",
"k8s-openapi",
@@ -1886,6 +1834,7 @@ dependencies = [
"pnet_datalink",
"rand 0.9.4",
"reqwest",
"rustls 0.23.39",
"schemars",
"serde",
"serde_bytes",
@@ -1898,7 +1847,7 @@ dependencies = [
[[package]]
name = "garage_table"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"arc-swap",
"async-trait",
@@ -1919,7 +1868,7 @@ dependencies = [
[[package]]
name = "garage_util"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"arbitrary",
"arc-swap",
@@ -1954,7 +1903,7 @@ dependencies = [
[[package]]
name = "garage_web"
version = "2.4.0"
version = "2.4.1"
dependencies = [
"garage_api_common",
"garage_api_s3",
@@ -1999,10 +1948,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
dependencies = [
"cfg-if",
"js-sys",
"libc",
"wasi",
"wasm-bindgen",
]
[[package]]
@@ -2024,13 +1971,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
dependencies = [
"cfg-if",
"js-sys",
"libc",
"r-efi 6.0.0",
"rand_core 0.10.1",
"wasip2",
"wasip3",
"wasm-bindgen",
]
[[package]]
@@ -2893,7 +2837,7 @@ dependencies = [
"hyper-util",
"log",
"percent-encoding",
"reqwest",
"rustls 0.23.39",
"serde",
"serde_json",
"sha2 0.10.9",
@@ -3150,12 +3094,6 @@ dependencies = [
"hashbrown 0.16.1",
]
[[package]]
name = "lru-slab"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
[[package]]
name = "lsm-tree"
version = "2.10.4"
@@ -3912,63 +3850,6 @@ dependencies = [
"hashbrown 0.16.1",
]
[[package]]
name = "quinn"
version = "0.11.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8"
dependencies = [
"bytes",
"cfg_aliases 0.2.1",
"pin-project-lite",
"quinn-proto",
"quinn-udp",
"rustc-hash",
"rustls 0.23.39",
"socket2 0.5.10",
"thiserror 2.0.18",
"tokio",
"tracing",
"web-time",
]
[[package]]
name = "quinn-proto"
version = "0.11.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83"
dependencies = [
"aws-lc-rs",
"bytes",
"getrandom 0.4.2",
"lru-slab",
"rand 0.10.2",
"rand_pcg",
"ring",
"rustc-hash",
"rustls 0.23.39",
"rustls-pki-types",
"slab",
"thiserror 2.0.18",
"tinyvec",
"tracing",
"web-time",
]
[[package]]
name = "quinn-udp"
version = "0.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694"
dependencies = [
"cfg_aliases 0.2.1",
"libc",
"once_cell",
"socket2 0.5.10",
"tracing",
"windows-sys 0.52.0",
]
[[package]]
name = "quote"
version = "1.0.45"
@@ -4033,17 +3914,6 @@ dependencies = [
"rand_core 0.9.5",
]
[[package]]
name = "rand"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80"
dependencies = [
"chacha20",
"getrandom 0.4.2",
"rand_core 0.10.1",
]
[[package]]
name = "rand_chacha"
version = "0.3.1"
@@ -4082,21 +3952,6 @@ dependencies = [
"getrandom 0.3.4",
]
[[package]]
name = "rand_core"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
[[package]]
name = "rand_pcg"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a"
dependencies = [
"rand_core 0.10.1",
]
[[package]]
name = "redox_syscall"
version = "0.5.18"
@@ -4180,7 +4035,6 @@ dependencies = [
"log",
"percent-encoding",
"pin-project-lite",
"quinn",
"rustls 0.23.39",
"rustls-pki-types",
"rustls-platform-verifier",
@@ -4330,7 +4184,6 @@ version = "0.23.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c2c118cb077cca2822033836dfb1b975355dfb784b5e8da48f7b6c5db74e60e"
dependencies = [
"aws-lc-rs",
"log",
"once_cell",
"ring",
@@ -4358,7 +4211,6 @@ version = "1.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd"
dependencies = [
"web-time",
"zeroize",
]
@@ -4405,7 +4257,6 @@ version = "0.103.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e"
dependencies = [
"aws-lc-rs",
"ring",
"rustls-pki-types",
"untrusted",
@@ -5047,21 +4898,6 @@ dependencies = [
"zerovec",
]
[[package]]
name = "tinyvec"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa"
dependencies = [
"tinyvec_macros",
]
[[package]]
name = "tinyvec_macros"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
version = "1.52.1"
@@ -5703,16 +5539,6 @@ dependencies = [
"wasm-bindgen",
]
[[package]]
name = "web-time"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
dependencies = [
"js-sys",
"wasm-bindgen",
]
[[package]]
name = "webpki-root-certs"
version = "1.0.7"
+18 -13
View File
@@ -25,18 +25,18 @@ default-members = ["src/garage"]
# Internal Garage crates
format_table = { version = "0.1.1", path = "src/format-table" }
garage_api_common = { version = "2.4.0", path = "src/api/common" }
garage_api_admin = { version = "2.4.0", path = "src/api/admin" }
garage_api_s3 = { version = "2.4.0", path = "src/api/s3" }
garage_api_k2v = { version = "2.4.0", path = "src/api/k2v" }
garage_block = { version = "2.4.0", path = "src/block" }
garage_db = { version = "2.4.0", path = "src/db", default-features = false }
garage_model = { version = "2.4.0", path = "src/model", default-features = false }
garage_net = { version = "2.4.0", path = "src/net" }
garage_rpc = { version = "2.4.0", path = "src/rpc" }
garage_table = { version = "2.4.0", path = "src/table" }
garage_util = { version = "2.4.0", path = "src/util" }
garage_web = { version = "2.4.0", path = "src/web" }
garage_api_common = { version = "2.4.1", path = "src/api/common" }
garage_api_admin = { version = "2.4.1", path = "src/api/admin" }
garage_api_s3 = { version = "2.4.1", path = "src/api/s3" }
garage_api_k2v = { version = "2.4.1", path = "src/api/k2v" }
garage_block = { version = "2.4.1", path = "src/block" }
garage_db = { version = "2.4.1", path = "src/db", default-features = false }
garage_model = { version = "2.4.1", path = "src/model", default-features = false }
garage_net = { version = "2.4.1", path = "src/net" }
garage_rpc = { version = "2.4.1", path = "src/rpc" }
garage_table = { version = "2.4.1", path = "src/table" }
garage_util = { version = "2.4.1", path = "src/util" }
garage_web = { version = "2.4.1", path = "src/web" }
k2v-client = { version = "0.0.4", path = "src/k2v-client" }
# External crates from crates.io
@@ -117,7 +117,12 @@ kube = { version = "3.0", default-features = false, features = [
"rustls-tls",
] }
schemars = "1.2"
reqwest = { version = "0.13", default-features = false }
reqwest = { version = "0.13", default-features = false, features = [
"rustls-no-provider",
"json",
] }
rustls = { version = "0.23", default-features = false, features = ["std", "ring"] }
form_urlencoded = "1.2"
http = "1.4"
httpdate = "1.0"
+5 -5
View File
@@ -96,14 +96,14 @@ to store 2 TB of data in total.
## Get a Docker image
Our docker image is currently named `dxflrs/garage` and is stored on the [Docker Hub](https://hub.docker.com/r/dxflrs/garage/tags?page=1&ordering=last_updated).
We encourage you to use a fixed tag (eg. `v2.4.0`) and not the `latest` tag.
For this example, we will use the latest published version at the time of the writing which is `v2.4.0` but it's up to you
We encourage you to use a fixed tag (eg. `v2.4.1`) and not the `latest` tag.
For this example, we will use the latest published version at the time of the writing which is `v2.4.1` but it's up to you
to check [the most recent versions on the Docker Hub](https://hub.docker.com/r/dxflrs/garage/tags?page=1&ordering=last_updated).
For example:
```
docker pull dxflrs/garage:v2.4.0
docker pull dxflrs/garage:v2.4.1
```
## Deploying and configuring Garage
@@ -171,7 +171,7 @@ docker run \
-v /etc/garage.toml:/etc/garage.toml \
-v /var/lib/garage/meta:/var/lib/garage/meta \
-v /var/lib/garage/data:/var/lib/garage/data \
dxflrs/garage:v2.4.0
dxflrs/garage:v2.4.1
```
With this command line, Garage should be started automatically at each boot.
@@ -185,7 +185,7 @@ If you want to use `docker-compose`, you may use the following `docker-compose.y
version: "3"
services:
garage:
image: dxflrs/garage:v2.4.0
image: dxflrs/garage:v2.4.1
network_mode: "host"
restart: unless-stopped
volumes:
+2 -2
View File
@@ -157,7 +157,7 @@ docker run \
-e GARAGE_DEFAULT_ACCESS_KEY \
-e GARAGE_DEFAULT_SECRET_KEY \
-e GARAGE_DEFAULT_BUCKET \
dxflrs/garage:v2.4.0
dxflrs/garage:v2.4.1
/garage server --single-node --default-bucket
```
@@ -337,7 +337,7 @@ When you first start a cluster without automatic configuration, the output of `g
```
==== HEALTHY NODES ====
ID Hostname Address Tags Zone Capacity DataAvail Version
563e1ac825ee3323 linuxbox 127.0.0.1:3901 NO ROLE ASSIGNED v2.4.0
563e1ac825ee3323 linuxbox 127.0.0.1:3901 NO ROLE ASSIGNED v2.4.1
```
Creating a cluster layout for a Garage deployment means informing Garage of the
+4
View File
@@ -47,6 +47,10 @@ bootstrap_peers = []
$REPLICATION_MODE
rpc_secret = "$NETWORK_SECRET"
[consul_discovery]
service_name = "panic-catcher"
consul_http_addr = "http://localhost:9876"
[s3_api]
api_bind_addr = "0.0.0.0:$((3910+$count))" # the S3 API port, HTTP without TLS. Add a reverse proxy for the TLS part.
s3_region = "garage" # set this to anything. S3 API calls will fail if they are not made against the region set here.
+2 -2
View File
@@ -2,8 +2,8 @@ apiVersion: v2
name: garage
description: S3-compatible object store for small self-hosted geo-distributed deployments
type: application
version: 0.10.1
appVersion: "v2.4.0"
version: 0.10.2
appVersion: "v2.4.1"
home: https://garagehq.deuxfleurs.fr/
icon: https://garagehq.deuxfleurs.fr/images/garage-logo.svg
+1 -1
View File
@@ -1,6 +1,6 @@
# garage
![Version: 0.10.1](https://img.shields.io/badge/Version-0.10.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v2.4.0](https://img.shields.io/badge/AppVersion-v2.4.0-informational?style=flat-square)
![Version: 0.10.2](https://img.shields.io/badge/Version-0.10.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v2.4.1](https://img.shields.io/badge/AppVersion-v2.4.1-informational?style=flat-square)
S3-compatible object store for small self-hosted geo-distributed deployments
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_api_admin"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_api_common"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_api_k2v"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_api_s3"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_block"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_db"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
+1 -1
View File
@@ -24,7 +24,7 @@ percent-encoding.workspace = true
hyper = { workspace = true, default-features = false, features = ["http1", "http2"] }
hyper-util.workspace = true
hyper-rustls.workspace = true
reqwest = { workspace = true, default-features = false, features = ["json", "rustls-no-provider"] }
rustls.workspace = true
serde = { workspace = true, default-features = false, features = ["derive", "std"] }
serde_json.workspace = true
thiserror.workspace = true
+1 -1
View File
@@ -72,7 +72,7 @@ impl K2vClient {
/// Create a new K2V client.
pub fn new(config: K2vClientConfig) -> Result<Self, Error> {
let connector = hyper_rustls::HttpsConnectorBuilder::new()
.with_native_roots()?
.with_provider_and_native_roots(rustls::crypto::ring::default_provider())?
.https_or_http()
.enable_http1()
.enable_http2()
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_model"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_net"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
+7 -3
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_rpc"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
@@ -40,7 +40,11 @@ thiserror = { workspace = true, optional = true }
kube = { workspace = true, optional = true }
k8s-openapi = { workspace = true, optional = true }
schemars = { workspace = true, optional = true }
reqwest = { workspace = true, optional = true, features = ["json", "rustls"] }
reqwest = { workspace = true, optional = true }
hyper = { workspace = true, optional = true }
hyper-rustls = { workspace = true, optional = true }
hyper-util = { workspace = true, optional = true }
rustls = { workspace = true, optional = true }
pnet_datalink.workspace = true
@@ -50,7 +54,7 @@ opentelemetry.workspace = true
[features]
kubernetes-discovery = ["kube", "k8s-openapi", "schemars"]
consul-discovery = ["reqwest", "thiserror"]
consul-discovery = ["hyper", "hyper-rustls", "hyper-util", "reqwest", "rustls", "thiserror"]
system-libs = ["sodiumoxide/use-pkg-config"]
[lints]
+4
View File
@@ -80,6 +80,10 @@ pub struct ConsulDiscovery {
impl ConsulDiscovery {
pub fn new(config: ConsulDiscoveryConfig) -> Result<Self, ConsulError> {
if rustls::crypto::CryptoProvider::get_default().is_none() {
_ = rustls::crypto::ring::default_provider().install_default();
}
let mut builder: reqwest::ClientBuilder = reqwest::Client::builder().use_rustls_tls();
if config.tls_skip_verify {
builder = builder.danger_accept_invalid_certs(true);
+10 -3
View File
@@ -29,8 +29,15 @@ pub struct Node {
port: u16,
}
pub async fn get_client() -> Result<Client, kube::Error> {
if rustls::crypto::CryptoProvider::get_default().is_none() {
_ = rustls::crypto::ring::default_provider().install_default();
}
Client::try_default().await
}
pub async fn create_kubernetes_crd() -> Result<(), kube::Error> {
let client = Client::try_default().await?;
let client = get_client().await?;
let crds: Api<CustomResourceDefinition> = Api::all(client.clone());
let params = PatchParams::apply(&format!("garage.{}", K8S_GROUP));
@@ -45,7 +52,7 @@ pub async fn create_kubernetes_crd() -> Result<(), kube::Error> {
pub async fn get_kubernetes_nodes(
kubernetes_config: &KubernetesDiscoveryConfig,
) -> Result<Vec<(NodeID, SocketAddr)>, kube::Error> {
let client = Client::try_default().await?;
let client = get_client().await?;
let nodes: Api<GarageNode> = Api::namespaced(client.clone(), &kubernetes_config.namespace);
let lp = ListParams::default().labels(&format!(
@@ -98,7 +105,7 @@ pub async fn publish_kubernetes_node(
debug!("Node object to be applied: {:#?}", node);
let client = Client::try_default().await?;
let client = get_client().await?;
let nodes: Api<GarageNode> = Api::namespaced(client.clone(), &kubernetes_config.namespace);
if let Ok(old_node) = nodes.get(&node_pubkey).await {
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_table"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_util"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>"]
edition = "2018"
license = "AGPL-3.0"
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "garage_web"
version = "2.4.0"
version = "2.4.1"
authors = ["Alex Auvolat <alex@adnab.me>", "Quentin Dufour <quentin@dufour.io>"]
edition = "2018"
license = "AGPL-3.0"