Skip to content

dropwizard/dropwizard-kubernetes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dropwizard-kubernetes

Build Status Coverage Status Maven Central

Provides easy integration for Dropwizard applications with the Fabric8 Kubernetes API client.

This bundle comes with out-of-the-box support for:

For more information on the Kubernetes API, take a look at the official documentation here: https://kubernetes.io/docs/reference/#api-reference

Dropwizard Version Support Matrix

dropwizard-kubernetes Dropwizard v1.3.x Dropwizard v2.0.x Dropwizard v2.1.x Dropwizard v3.0.x Dropwizard v4.0.x
v1.3.x
v1.4.x
v1.5.x
v3.0.x
v4.0.x

Usage

Add dependency on library.

Maven:

<dependency> <groupId>io.dropwizard.modules</groupId> <artifactId>dropwizard-kubernetes</artifactId> <version>${dropwizard-kubernetes.version}</version> </dependency>

Gradle:

compile "io.dropwizard.modules:dropwizard-kubernetes:$dropwizardKubernetesVersion"

Usage

In your application's Configuration class, add a KubernetesClientFactory object:

public class ExampleConfiguration extends Configuration { ... @Valid @NotNull @JsonProperty("kubernetes-client") private KubernetesClientFactory kubernetesClientFactory; public KubernetesClientFactory getKubernetesClientFactory() { return kubernetesClientFactory; } public void setKubernetesClientFactory(final KubernetesClientFactory kubernetesClientFactory) { this.kubernetesClientFactory = kubernetesClientFactory; } }

Add a KubernetesClientBundle to the Boostrap object in your initialize method:

private final KubernetesClientBundle<ExampleConfiguration> kubernetesClient = new KubernetesClientBundle<ExampleConfiguration>() { @Override public KubernetesClientFactory getKubernetesClientFactory(ExampleConfiguration configuration) { return configuration.getKubernetesClientFactory(); } }; @Override public void initialize(Bootstrap<ExampleConfiguration> bootstrap) { bootstrap.addBundle(kubernetesClient); } @Override public void run(ExampleConfiguration config, Environment environment) { final KubernetesAPIThing kubernetesAPIThing = new KubernetesAPIThing(kubernetesClient.getKubernetesClient()); environment.jersey().register(new KubernetesAPIThingResource(kubernetesAPIThing)); }

Configure your factory in your config.yml file:

kubernetes-client: name: my-k8s-usecase config: masterUrl: https://localhost:443 apiVersion: v1 namespace: default currentContext: my-context userAgent: generic-crud-app requestConfig: watchReconnectInterval: 3s watchReconnectLimit: 25 connectionTimeout: 10s requestTimeout: 4s rollingTimeout: 5s scaleTimeout: 6s webSocketTimeout: 3s webSocketPingInterval: 10s loggingInterval: 20s httpClient: followRedirects: false followSslRedirects: false proxy: url: "https://127.0.0.1:6379" username: admin password: hunter2 security: trustCerts: true caCert: type: string caCert: abc123def456 trustStore: src/test/resources/truststore.p12 trustStorePassword: changeit interceptors: - type: backwards-compatibility - type: oauth oAuthToken: type: string token: 123abc456def

Support

Please file bug reports and feature requests in GitHub issues.

About

A convenience library for the integration of the Fabric8 Kubernetes client in a Dropwizard service.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5

Languages