diff --git a/readme.md b/readme.md index 094c0376..f330cd94 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,4 @@ -Spring Cloud Kubernetes ------------------------ +## Spring Cloud Kubernetes Spring Cloud integration with Kubernetes @@ -16,7 +15,7 @@ Spring Cloud integration with Kubernetes - [ConfigMap Archaius Bridge](#configmap-archaius-bridge) --- -### DiscoveryClient for Kubernetes ### +### DiscoveryClient for Kubernetes [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.fabric8/spring-cloud-starter-kubernetes/badge.svg?style=flat-square)](https://maven-badges.herokuapp.com/maven-central/io.fabric8/spring-cloud-starter-kubernetes/) [![Javadocs](http://www.javadoc.io/badge/io.fabric8/spring-cloud-starter-kubernetes.svg?color=blue)](http://www.javadoc.io/doc/io.fabric8/spring-cloud-starter-kubernetes) @@ -49,7 +48,7 @@ spring.cloud.kubernetes.discovery.enabled=false Some spring cloud components use the `DiscoveryClient` in order obtain info about the local service instance. For this to work you need to align the service name with `spring.application.name`. -### ConfigMap PropertySource +#### ConfigMap PropertySource The most common approach to configure your spring boot application is to edit the `application.yaml` file. Often the user may override properties by specifying system properties or env variables. Kubernetes has the notion of [ConfigMap](http://kubernetes.io/docs/user-guide/configmap/) for passing configuration to the application. This project provides integration with `ConfigMap` to make config maps accessible by spring boot. @@ -94,7 +93,7 @@ data: max:16 ``` -### Pod Health Indicator +#### Pod Health Indicator Spring Boot uses [HealthIndicator](https://github.com/spring-projects/spring-boot/blob/master/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthIndicator.java) to expose info about the health of an application. That makes it really useful for exposing health related information to the user and are also a good fit for use as [readiness probes](http://kubernetes.io/docs/user-guide/production-pods/#liveness-and-readiness-probes-aka-health-checks). @@ -105,16 +104,20 @@ The Kubernetes health indicator which is part of the core modules exposes the fo - visible services - flag that indicates if app is internal or external to Kubernetes -### Transparency +#### Transparency All of the features described above will work equally fine regardless of wether our application is inside Kubernetes or not. This is really helpful for development and troubleshooting. -### Kubernetes Profile Autoconfiguration +#### Kubernetes Profile Autoconfiguration When the application is run inside Kubernetes a profile named `kubernetes` will automatically get activated. This allows the user to customize the configuration that will be applied in and out of kubernetes *(e.g. different dev and prod configuration)*. -#### Ribbon discovery in Kubernetes +### Ribbon discovery in Kubernetes + +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.fabric8/spring-cloud-starter-kubernetes-netflix?style=flat-square)](https://maven-badges.herokuapp.com/maven-central/io.fabric8/spring-cloud-starter-kubernetes-netflix/) +[![Javadocs](http://www.javadoc.io/badge/io.fabric8/spring-cloud-starter-kubernetes-netflix.svg?color=blue)](http://www.javadoc.io/doc/io.fabric8/spring-cloud-starter-kubernetes-netflix) +[![Dependency Status](https://www.versioneye.com/java/io.fabric8:spring-cloud-starter-kubernetes-netflix/badge?style=flat)](https://www.versioneye.com/java/io.fabric8:spring-cloud-starter-kubernetes-netflix/) A Kubernetes based `ServerList` for Ribbon has been implemented. The implementation is part of the [spring-cloud-kubernetes-ribbon](spring-cloud-kubernetes-ribbon/pom.xml) module and you can use it by adding: @@ -140,7 +143,11 @@ Examples that are using this module for ribbon discovery are: - [Kubeflix - LoanBroker - Bank](https://github.com/fabric8io/kubeflix/tree/master/examples/loanbroker/bank) -#### Zipkin discovery in Kubernetes +### Zipkin discovery in Kubernetes + +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.fabric8/spring-cloud-starter-kubernetes-zipkin/badge.svg?style=flat-square)](https://maven-badges.herokuapp.com/maven-central/io.fabric8/spring-cloud-starter-kubernetes-zipkin/) +[![Javadocs](http://www.javadoc.io/badge/io.fabric8/spring-cloud-starter-kubernetes-zipkin.svg?color=blue)](http://www.javadoc.io/doc/io.fabric8/spring-cloud-starter-kubernetes-zipkin) +[![Dependency Status](https://www.versioneye.com/java/io.fabric8:spring-cloud-starter-kubernetes-zipkin/badge?style=flat)](https://www.versioneye.com/java/io.fabric8:spring-cloud-starter-kubernetes-zipkin/) [Zipkin](https://github.com/openzipkin/zipkin) is a distributed tracing system and it is also supported by [Sleuth](https://github.com/spring-cloud/spring-cloud-sleuth). @@ -161,7 +168,11 @@ Examples of application that are using Zipkin discovery in Kubernetes: - [iPaas Quickstarts - Spring Boot - Ribbon](https://github.com/fabric8io/ipaas-quickstarts/tree/master/quickstart/spring-boot/ribbon) - [Kubeflix - LoanBroker - Bank](https://github.com/fabric8io/kubeflix/tree/master/examples/loanbroker/bank) -#### ConfigMap Archaius Bridge +### ConfigMap Archaius Bridge + +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.fabric8/spring-cloud-starter-kubernetes-archaius/badge.svg?style=flat-square)](https://maven-badges.herokuapp.com/maven-central/io.fabric8/spring-cloud-starter-kubernetes-archaius/) +[![Javadocs](http://www.javadoc.io/badge/io.fabric8/spring-cloud-starter-kubernetes-archaius.svg?color=blue)](http://www.javadoc.io/doc/io.fabric8/spring-cloud-starter-kubernetes-archaius) +[![Dependency Status](https://www.versioneye.com/java/io.fabric8:spring-cloud-starter-kubernetes-archaius/badge?style=flat)](https://www.versioneye.com/java/io.fabric8:spring-cloud-starter-kubernetes-archaius/) Section [ConfigMap PropertySource](#configmap-propertysource) provides a brief explanation on how to configure spring boot application via ConfigMap. This approach will aid in creating the configuration properties objects that will be passed in our application. If our application is using Archaius it will indirectly benefit by it. @@ -170,7 +181,7 @@ An alternative approach that provides more direct Archaius support without getti This module allows you to annotate your application with the `@ArchaiusConfigMapSource` and archaius will automatically use the configmap as a watched source *(get notification on changes)*. --- -#### Building +### Building You can just use maven to build it from sources: @@ -178,7 +189,7 @@ You can just use maven to build it from sources: mvn clean install ``` -#### Usage +### Usage The project provides a "starter" module, so you just need to add the following dependency in your project.