Skip to content
Official Java client library for kubernetes
Branch: master
Clone or download
k8s-ci-robot Merge pull request #556 from yue9944882/bugfix/upgrade-bouncycastle-d…
…ependency

Update org.bouncycastle dependency #554
Latest commit 2ba127f Apr 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.mvn/wrapper Project to control its own maven version Dec 8, 2017
examples refactor pager to support colon-loop java grammar Apr 1, 2019
extended add new extended module Mar 14, 2019
kubernetes fixes patch format Apr 4, 2019
proto [maven-release-plugin] prepare for next development iteration Feb 11, 2019
scripts Add update client script Sep 30, 2017
util Merge pull request #556 from yue9944882/bugfix/upgrade-bouncycastle-d… Apr 20, 2019
.gitignore
.travis.yml
CHANGELOG.md Update change log. Nov 5, 2018
CONTRIBUTING.md
LICENSE Initial commit May 8, 2017
OWNERS add yue to maintainer Apr 11, 2019
README.md Update to the 1.13 API. Mar 1, 2019
RELEASES.md Fix code formatting in releases.md Jan 12, 2018
SECURITY_CONTACTS
code-of-conduct.md Add code-of-conduct.md Dec 20, 2017
mvnw Project to control its own maven version Dec 8, 2017
mvnw.cmd
pom.xml add new extended module Mar 14, 2019
settings Update to the 1.13 API. Mar 1, 2019
settings.xml Automation. Jun 1, 2018

README.md

Kubernetes Java Client

Build Status Client Capabilities Client Support Level

Java client for the kubernetes API.

Installation

To install the Java client library to your local Maven repository, simply execute:

git clone --recursive https://github.com/kubernetes-client/java
cd java
mvn install

Refer to the official documentation for more information.

Maven users

Add this dependency to your project's POM:

<dependency>
    <groupId>io.kubernetes</groupId>
    <artifactId>client-java</artifactId>
    <version>4.0.0</version>
    <scope>compile</scope>
</dependency>

Gradle users

compile 'io.kubernetes:client-java:4.0.0'

Others

At first generate the JAR by executing:

git clone --recursive https://github.com/kubernetes-client/java
cd java
cd kubernetes
mvn package

Then manually install the following JARs:

  • target/client-java-api-4.0.0-beta1-SNAPSHOT.jar
  • target/lib/*.jar

Example

list all pods:

import io.kubernetes.client.ApiClient;
import io.kubernetes.client.ApiException;
import io.kubernetes.client.Configuration;
import io.kubernetes.client.apis.CoreV1Api;
import io.kubernetes.client.models.V1Pod;
import io.kubernetes.client.models.V1PodList;
import io.kubernetes.client.util.Config;

import java.io.IOException;

public class Example {
    public static void main(String[] args) throws IOException, ApiException{
        ApiClient client = Config.defaultClient();
        Configuration.setDefaultApiClient(client);

        CoreV1Api api = new CoreV1Api();
        V1PodList list = api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null);
        for (V1Pod item : list.getItems()) {
            System.out.println(item.getMetadata().getName());
        }
    }
}

watch on namespace object:

import com.google.gson.reflect.TypeToken;
import io.kubernetes.client.ApiClient;
import io.kubernetes.client.ApiException;
import io.kubernetes.client.Configuration;
import io.kubernetes.client.apis.CoreV1Api;
import io.kubernetes.client.models.V1Namespace;
import io.kubernetes.client.util.Config;
import io.kubernetes.client.util.Watch;

import java.io.IOException;

public class WatchExample {
    public static void main(String[] args) throws IOException, ApiException{
        ApiClient client = Config.defaultClient();
        Configuration.setDefaultApiClient(client);

        CoreV1Api api = new CoreV1Api();

        Watch<V1Namespace> watch = Watch.createWatch(
                client,
                api.listNamespaceCall(null, null, null, null, null, 5, null, null, Boolean.TRUE, null, null),
                new TypeToken<Watch.Response<V1Namespace>>(){}.getType());

        for (Watch.Response<V1Namespace> item : watch) {
            System.out.printf("%s : %s%n", item.type, item.object.getMetadata().getName());
        }
    }
}

More examples can be found in examples folder. To run examples, run this command:

mvn exec:java -Dexec.mainClass="io.kubernetes.client.examples.Example"

Documentation

All APIs and Models' documentation can be found at the Generated client's docs

Compatibility

client version 1.9 1.10 1.11 1.12 1.13
2.0.0 - - - -
3.0.0 + - - -
4.0.0 + + + -
5.0.0-beta1 + + + +

Key:

  • Exactly the same features / API objects in both java-client and the Kubernetes version.
  • + java-client has features or api objects that may not be present in the Kubernetes cluster, but everything they have in common will work.
  • - The Kubernetes cluster has features the java-client library can't use (additional API objects, etc).

See the CHANGELOG for a detailed description of changes between java-client versions.

Contributing

Please see CONTRIBUTING.md for instructions on how to contribute.

Code of Conduct

Participation in the Kubernetes community is governed by the CNCF Code of Conduct.

Development

Update the generated code.

The code is generated by the swagger-codegen project.

We have built general purpose cross-language tools for generating code, it is hosted in the kubernetes-client/gen repository.

To get started, in a root directory that is not your java client directory, for example your directory layout could be:

${HOME}/
        src/
             gen/
             java/
...

Then to clone the gen repository, you would run:

cd ${HOME}/src
git clone https://github.com/kubernetes-client/gen
export GEN_ROOT=${PWD}

Then to update the client:

cd ${HOME}/src/java
${GEN_ROOT}/gen/openapi/java.sh kubernetes ./settings

This should run through a long-ish build process involving docker and eventually result in a new set of generated code in the kubernetes directory.

You can’t perform that action at this time.