diff --git a/README.adoc b/README.adoc index b7f38553..2af48f0c 100644 --- a/README.adoc +++ b/README.adoc @@ -33,7 +33,10 @@ Spring Cloud Kubernetes provides implementations of well known Spring Cloud inte Starters are convenient dependency descriptors you can include in your application. Include a starter to get the dependencies and Spring Boot -auto-configuration for a feature set. +auto-configuration for a feature set. Starters that begin with `spring-cloud-starter-kubernetes-fabric8` +provide implementations using the https://github.com/fabric8io/kubernetes-client[Fabric8 Kubernetes Java Client]. +Starters that begin with +`spring-cloud-starter-kubernetes-client` provide implementations using the https://github.com/kubernetes-client/java[Kubernetes Java Client]. [cols="a,d"] |=== @@ -45,6 +48,10 @@ auto-configuration for a feature set. org.springframework.cloud spring-cloud-starter-kubernetes-fabric8 + + org.springframework.cloud + spring-cloud-starter-kubernetes-client + ---- | <> implementation that resolves service names to Kubernetes Services. @@ -55,6 +62,10 @@ resolves service names to Kubernetes Services. org.springframework.cloud spring-cloud-starter-kubernetes-fabric8-config + + org.springframework.cloud + spring-cloud-starter-kubernetes-client-config + ---- | Load application properties from Kubernetes <> and <>. @@ -67,6 +78,10 @@ Secret changes. org.springframework.cloud spring-cloud-starter-kubernetes-fabric8-all + + org.springframework.cloud + spring-cloud-starter-kubernetes-client-all + ---- | All Spring Cloud Kubernetes features. diff --git a/docs/src/main/asciidoc/discovery-client.adoc b/docs/src/main/asciidoc/discovery-client.adoc index 357321ed..a6438bbf 100644 --- a/docs/src/main/asciidoc/discovery-client.adoc +++ b/docs/src/main/asciidoc/discovery-client.adoc @@ -9,6 +9,7 @@ access from a Spring Boot application running as a pod. This is something that you get for free by adding the following dependency inside your project: ==== +Fabric8 Kubernetes Client [source,xml] ---- @@ -18,6 +19,17 @@ This is something that you get for free by adding the following dependency insid ---- ==== +==== +Kubernetes Java Client +[source,xml] +---- + + org.springframework.cloud + spring-cloud-starter-kubernetes-client + +---- +==== + To enable loading of the `DiscoveryClient`, add `@EnableDiscoveryClient` to the according configuration or application class, as the following example shows: ==== diff --git a/docs/src/main/asciidoc/getting-started.adoc b/docs/src/main/asciidoc/getting-started.adoc index d15ebf34..d6c94084 100644 --- a/docs/src/main/asciidoc/getting-started.adoc +++ b/docs/src/main/asciidoc/getting-started.adoc @@ -2,7 +2,10 @@ Starters are convenient dependency descriptors you can include in your application. Include a starter to get the dependencies and Spring Boot -auto-configuration for a feature set. +auto-configuration for a feature set. Starters that begin with `spring-cloud-starter-kubernetes-fabric8` +provide implementations using the https://github.com/fabric8io/kubernetes-client[Fabric8 Kubernetes Java Client]. +Starters that begin with +`spring-cloud-starter-kubernetes-client` provide implementations using the https://github.com/kubernetes-client/java[Kubernetes Java Client]. [cols="a,d"] |=== @@ -14,6 +17,10 @@ auto-configuration for a feature set. org.springframework.cloud spring-cloud-starter-kubernetes-fabric8 + + org.springframework.cloud + spring-cloud-starter-kubernetes-client + ---- | <> implementation that resolves service names to Kubernetes Services. @@ -24,6 +31,10 @@ resolves service names to Kubernetes Services. org.springframework.cloud spring-cloud-starter-kubernetes-fabric8-config + + org.springframework.cloud + spring-cloud-starter-kubernetes-client-config + ---- | Load application properties from Kubernetes <> and <>. @@ -36,7 +47,8 @@ Secret changes. org.springframework.cloud spring-cloud-starter-kubernetes-fabric8-all + + org.springframework.cloud + spring-cloud-starter-kubernetes-client-all + ---- -| All Spring Cloud Kubernetes features. - -|=== diff --git a/docs/src/main/asciidoc/sagan-index.adoc b/docs/src/main/asciidoc/sagan-index.adoc index 893e5591..a7f394a7 100644 --- a/docs/src/main/asciidoc/sagan-index.adoc +++ b/docs/src/main/asciidoc/sagan-index.adoc @@ -9,4 +9,4 @@ The main objective of the projects provided in this repository is to facilitate * `PropertySource` objects configured via ConfigMaps ## Getting Started -The easiest way to get started is by including the Spring Cloud BOM and then adding `spring-cloud-starter-kubernetes-fabric8-all` to your application's classpath. If you don't want to include all of the Spring Cloud Kubernetes features you can add individual starters for the features you would like. By default Spring Cloud Kubernetes will enable the `kubernetes` profile when it detects it is running inside a Kubernetes cluster. You can take advantage of this by creating a `kubernetes-application` configuration properties for anything specific to Kubernetes you might want to configure. Once the starter is on the classpath the application should behave as any other Spring Cloud application. +The easiest way to get started is by including the Spring Cloud BOM and then adding `spring-cloud-starter-kubernetes-client-all` to your application's classpath. If you don't want to include all of the Spring Cloud Kubernetes features you can add individual starters for the features you would like. By default Spring Cloud Kubernetes will enable the `kubernetes` profile when it detects it is running inside a Kubernetes cluster. You can take advantage of this by creating a `kubernetes-application` configuration properties for anything specific to Kubernetes you might want to configure. Once the starter is on the classpath the application should behave as any other Spring Cloud application. diff --git a/docs/src/main/asciidoc/security-service-accounts.adoc b/docs/src/main/asciidoc/security-service-accounts.adoc index d45b53ba..499297cc 100644 --- a/docs/src/main/asciidoc/security-service-accounts.adoc +++ b/docs/src/main/asciidoc/security-service-accounts.adoc @@ -34,6 +34,12 @@ Depending on the requirements, you'll need `get`, `list` and `watch` permission |spring-cloud-starter-kubernetes-fabric8-config |configmaps, secrets + +|spring-cloud-starter-kubernetes-client +|pods, services, endpoints + +|spring-cloud-starter-kubernetes-client-config +|configmaps, secrets |=== For development purposes, you can add `cluster-reader` permissions to your `default` service account. On a production system you'll likely want to provide more granular permissions. diff --git a/pom.xml b/pom.xml index c1099d89..992eb9b9 100644 --- a/pom.xml +++ b/pom.xml @@ -98,6 +98,8 @@ spring-cloud-starter-kubernetes-fabric8 spring-cloud-starter-kubernetes-fabric8-config spring-cloud-starter-kubernetes-fabric8-all + spring-cloud-starter-kubernetes-client + spring-cloud-starter-kubernetes-client-config spring-cloud-starter-kubernetes-client-all spring-cloud-kubernetes-examples spring-cloud-kubernetes-fabric8-leader diff --git a/spring-cloud-kubernetes-dependencies/pom.xml b/spring-cloud-kubernetes-dependencies/pom.xml index e8715601..43f3339b 100644 --- a/spring-cloud-kubernetes-dependencies/pom.xml +++ b/spring-cloud-kubernetes-dependencies/pom.xml @@ -146,12 +146,24 @@ ${project.version} + + org.springframework.cloud + spring-cloud-starter-kubernetes-client + ${project.version} + + org.springframework.cloud spring-cloud-starter-kubernetes-fabric8-config ${project.version} + + org.springframework.cloud + spring-cloud-starter-kubernetes-client-config + ${project.version} + + org.springframework.cloud spring-cloud-starter-kubernetes-fabric8-loadbalancer diff --git a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-config-it/pom.xml b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-config-it/pom.xml index e3e0bdb3..0eb23d3c 100644 --- a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-config-it/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-client-config-it/pom.xml @@ -14,7 +14,7 @@ org.springframework.cloud - spring-cloud-starter-kubernetes-client-all + spring-cloud-starter-kubernetes-client-config org.springframework.cloud diff --git a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-core-k8s-client-it/pom.xml b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-core-k8s-client-it/pom.xml index 7b17e220..f5303b53 100644 --- a/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-core-k8s-client-it/pom.xml +++ b/spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-core-k8s-client-it/pom.xml @@ -14,7 +14,7 @@ org.springframework.cloud - spring-cloud-starter-kubernetes-client-all + spring-cloud-starter-kubernetes-client org.springframework.cloud diff --git a/spring-cloud-starter-kubernetes-client-config/pom.xml b/spring-cloud-starter-kubernetes-client-config/pom.xml new file mode 100644 index 00000000..bb4467f0 --- /dev/null +++ b/spring-cloud-starter-kubernetes-client-config/pom.xml @@ -0,0 +1,30 @@ + + + + spring-cloud-kubernetes + org.springframework.cloud + 2.0.0-SNAPSHOT + + 4.0.0 + + spring-cloud-starter-kubernetes-client-config + + + + org.springframework.cloud + spring-cloud-kubernetes-commons + + + org.springframework.cloud + spring-cloud-kubernetes-client-autoconfig + + + org.springframework.cloud + spring-cloud-kubernetes-client-config + + + + + diff --git a/spring-cloud-starter-kubernetes-client/pom.xml b/spring-cloud-starter-kubernetes-client/pom.xml new file mode 100644 index 00000000..69f332e8 --- /dev/null +++ b/spring-cloud-starter-kubernetes-client/pom.xml @@ -0,0 +1,46 @@ + + + + + spring-cloud-kubernetes + org.springframework.cloud + 2.0.0-SNAPSHOT + + 4.0.0 + + spring-cloud-starter-kubernetes-client + + + + org.springframework.cloud + spring-cloud-kubernetes-commons + + + org.springframework.cloud + spring-cloud-kubernetes-client-autoconfig + + + org.springframework.cloud + spring-cloud-kubernetes-client-discovery + + + + +