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
+
+
+
+
+