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. --- doc/book/reference-manual/configuration.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'doc') diff --git a/doc/book/reference-manual/configuration.md b/doc/book/reference-manual/configuration.md index a5ee3a3c..b8881795 100644 --- a/doc/book/reference-manual/configuration.md +++ b/doc/book/reference-manual/configuration.md @@ -29,6 +29,10 @@ bootstrap_peers = [ consul_host = "consul.service" consul_service_name = "garage-daemon" +kubernetes_namespace = "garage" +kubernetes_service_name = "garage-daemon" +kubernetes_skip_crd = false + sled_cache_capacity = 134217728 sled_flush_every_ms = 2000 @@ -181,6 +185,20 @@ RPC ports are announced. Garage does not yet support talking to Consul over TLS. +### `kubernetes_namespace`, `kubernetes_service_name` and `kubernetes_skip_crd` + +Garage supports discovering other nodes of the cluster using kubernetes custom +resources. For this to work `kubernetes_namespace` and `kubernetes_service_name` +need to be configured. + +`kubernetes_namespace` sets the namespace in which the custom resources are +configured. `kubernetes_service_name` is added as a label to these resources to +filter them, to allow for multiple deployments in a single namespace. + +`kubernetes_skip_crd` can be set to true to disable the automatic creation and +patching of the `garagenodes.deuxfleurs.fr` CRD. You will need to create the CRD +manually. + ### `sled_cache_capacity` This parameter can be used to tune the capacity of the cache used by -- cgit v1.2.3