From 9d44127245990cc55dbdff5a4bd0a1524348f110 Mon Sep 17 00:00:00 2001 From: Max Audron Date: Sun, 6 Mar 2022 14:50:00 +0100 Subject: add support for kubernetes service discovery 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. --- src/util/config.rs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/util/config.rs') diff --git a/src/util/config.rs b/src/util/config.rs index f1f4b06a..19c75478 100644 --- a/src/util/config.rs +++ b/src/util/config.rs @@ -52,6 +52,13 @@ pub struct Config { pub consul_host: Option, /// Consul service name to use pub consul_service_name: Option, + /// Kubernetes namespace the service discovery resources are be created in + pub kubernetes_namespace: Option, + /// Service name to filter for in k8s custom resources + pub kubernetes_service_name: Option, + /// Skip creation of the garagenodes CRD + #[serde(default)] + pub kubernetes_skip_crd: bool, /// Sled cache size, in bytes #[serde(default = "default_sled_cache_capacity")] -- cgit v1.2.3