From f1c7e9d8babe41f297d6162a352e8451f4b6ff6e Mon Sep 17 00:00:00 2001 From: Arjav <54466460+arjavdongaonkar@users.noreply.github.com> Date: Fri, 14 Feb 2025 00:46:50 +0530 Subject: [PATCH] Add Maven profile for Vault integration (#1868) * Add Maven profile for Vault integration Signed-off-by: Arjav * Add Vault Maven profile info to k8s Config Server documentation Signed-off-by: Arjav * Remove activation flag from vault profile an update doc Signed-off-by: Arjav --------- Signed-off-by: Arjav --- .../ROOT/pages/spring-cloud-kubernetes-configserver.adoc | 8 ++++++++ .../spring-cloud-kubernetes-configserver/pom.xml | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/docs/modules/ROOT/pages/spring-cloud-kubernetes-configserver.adoc b/docs/modules/ROOT/pages/spring-cloud-kubernetes-configserver.adoc index 037557e1..f310bf21 100644 --- a/docs/modules/ROOT/pages/spring-cloud-kubernetes-configserver.adoc +++ b/docs/modules/ROOT/pages/spring-cloud-kubernetes-configserver.adoc @@ -29,6 +29,14 @@ list of namespace values. NOTE: If you set `spring.cloud.kubernetes.configserver.config-map-namespaces` and/or `spring.cloud.kubernetes.configserver.secrets-namespaces` you will need to include the namespace in which the Config Server is deployed in order to continue to fetch Config Map and Secret data from that namespace. +### Using Advanced Features Of Spring Vault +In order to use some of the [more advanced Spring Vault features](https://docs.spring.io/spring-cloud-config/reference/server/environment-repository/vault-backend.html) of the **Spring Cloud Config Server**, [`spring-vault-core`](https://mvnrepository.com/artifact/org.springframework.vault/spring-vault-core) must be on the classpath. By default, Spring Cloud Kubernetes can generate a Docker image for deploying Config Server to Kubernetes, but it does not include `spring-vault-core` in the classpath. If you need `spring-core-vault` to enable certain functionality in the Config Server you can build your own version of Docker image by enabling the `vault` Maven profile when running Maven build. + +Example: +```bash +$ ../../mvnw clean install -Pvault +``` + ### Kubernetes Access Controls The Kubernetes Config Server uses the Kubernetes API server to fetch Config Map and Secret data. In order for it to do that it needs ability to `get` and `list` Config Map and Secrets (depending on what you enable/disable). diff --git a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/pom.xml b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/pom.xml index 5596d865..33641a2a 100644 --- a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/pom.xml +++ b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/pom.xml @@ -92,6 +92,15 @@ springcloud/${project.artifactId}:${project.version} + + vault + + + org.springframework.vault + spring-vault-core + + +