-
Notifications
You must be signed in to change notification settings - Fork 1.9k
3. Code Examples
Min Jin edited this page Jul 17, 2023
·
10 revisions
Here's a few code snippets showing how to access Kubernetes cluster using the library:
list all pods:
import io.kubernetes.client.openapi.ApiClient;
import io.kubernetes.client.openapi.ApiException;
import io.kubernetes.client.openapi.Configuration;
import io.kubernetes.client.openapi.apis.CoreV1Api;
import io.kubernetes.client.openapi.models.V1Pod;
import io.kubernetes.client.openapi.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.openapi.ApiClient;
import io.kubernetes.client.openapi.ApiException;
import io.kubernetes.client.openapi.Configuration;
import io.kubernetes.client.openapi.apis.CoreV1Api;
import io.kubernetes.client.openapi.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"
Additionally, we prepared a few examples for common use-cases which are shown below:
-
Configuration:
- InClusterClientExample: Configure a client while running inside the Kubernetes cluster.
- KubeConfigFileClientExample: Configure a client to access a Kubernetes cluster from outside.
-
Basics:
- SimpleExample: Simple minimum example of how to use the client.
- ProtoExample: Request/receive payloads in protobuf serialization protocol.
-
PatchExample:
Patch resource objects in various supported patch formats, equal to
kubectl patch
. - FluentExample: Construct arbitrary resource in a fluent builder style.
- YamlExample: Suggested way to load or dump resource in Yaml.
-
Streaming:
-
WatchExample:
Subscribe watch events from certain resources, equal to
kubectl get <resource> -w
. -
LogsExample:
Fetch logs from running containers, equal to
kubectl logs
. -
ExecExample:
Establish an "exec" session with running containers, equal to
kubectl exec
. -
PortForwardExample:
Maps local port to a port on the pod, equal to
kubectl port-forward
. -
AttachExample:
Attach to a process that is already running inside an existing container, equal to
kubectl attach
. -
CopyExample:
Copy files and directories to and from containers, equal to
kubectl cp
. - WebSocketsExample: Establish an arbitrary web-socket session to certain resources.
-
WatchExample:
Subscribe watch events from certain resources, equal to
-
Advanced: (NOTE: The following example requires
client-java-extended
module)- (5.0.0+) InformerExample: Build an informer which list-watches resources and reflects the notifications to a local cache.
- (5.0.0+) PagerExample: Support Pagination (only for the list request) to ease server-side loads/network congestion.
- (6.0.0+) ControllerExample: Build a controller reconciling the state of world by list-watching one or multiple resources.
- (6.0.0+) LeaderElectionExample: Leader election utilities to help implement HA controllers.
- (9.0.0+) SpringIntegrationControllerExample: Building a kubernetes controller based on spring framework's bean injection, see additional documentation here.
- (9.0.0+) GenericKubernetesClientExample: Construct a generic client interface for any kubernetes types, including CRDs.
- (12.0.0+) DynamicKubernetesClientExample: Manipulating either native Kubernetes types or custom resources without generating classes.