integrated hetzner client in repo + showcase of using scope for 'cleaner' scripts

This commit is contained in:
Maxime Van Hees
2025-08-05 20:27:14 +02:00
parent eed6dbf8dc
commit 9fdb8d8845
20 changed files with 3388 additions and 17 deletions

View File

@@ -26,6 +26,7 @@ members = [
"packages/system/virt",
"rhai",
"herodo",
"packages/clients/hetznerclient",
]
resolver = "2"
@@ -47,7 +48,7 @@ log = "0.4"
once_cell = "1.18.0"
rand = "0.8.5"
regex = "1.8.1"
reqwest = { version = "0.12.15", features = ["json"] }
reqwest = { version = "0.12.15", features = ["json", "blocking"] }
rhai = { version = "1.12.0", features = ["sync"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
@@ -102,6 +103,7 @@ sal-git = { path = "packages/system/git" }
sal-kubernetes = { path = "packages/system/kubernetes" }
sal-redisclient = { path = "packages/clients/redisclient" }
sal-mycelium = { path = "packages/clients/myceliumclient" }
sal-hetzner = { path = "packages/clients/hetznerclient" }
sal-text = { path = "packages/core/text" }
sal-os = { path = "packages/system/os" }
sal-net = { path = "packages/core/net" }
@@ -122,6 +124,7 @@ sal-git = { workspace = true, optional = true }
sal-kubernetes = { workspace = true, optional = true }
sal-redisclient = { workspace = true, optional = true }
sal-mycelium = { workspace = true, optional = true }
sal-hetzner = { workspace = true, optional = true }
sal-text = { workspace = true, optional = true }
sal-os = { workspace = true, optional = true }
sal-net = { workspace = true, optional = true }
@@ -141,6 +144,7 @@ git = ["dep:sal-git"]
kubernetes = ["dep:sal-kubernetes"]
redisclient = ["dep:sal-redisclient"]
mycelium = ["dep:sal-mycelium"]
hetzner = ["dep:sal-hetzner"]
text = ["dep:sal-text"]
os = ["dep:sal-os"]
net = ["dep:sal-net"]
@@ -154,7 +158,7 @@ rhai = ["dep:sal-rhai"]
# Convenience feature groups
core = ["os", "process", "text", "net"]
clients = ["redisclient", "postgresclient", "zinit_client", "mycelium"]
clients = ["redisclient", "postgresclient", "zinit_client", "mycelium", "hetzner"]
infrastructure = ["git", "vault", "kubernetes", "virt"]
scripting = ["rhai"]
all = [
@@ -162,6 +166,7 @@ all = [
"kubernetes",
"redisclient",
"mycelium",
"hetzner",
"text",
"os",
"net",
@@ -188,4 +193,3 @@ required-features = ["kubernetes"]
name = "generic_cluster"
path = "examples/kubernetes/clusters/generic.rs"
required-features = ["kubernetes"]