/**
* Copyright 2005-2016 Red Hat, Inc.
*
* Red Hat licenses this file to you under the Apache License, version
* 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package io.fabric8.kubernetes.api;
import java.util.List;
import java.util.Map;
import java.util.Set;
import io.fabric8.kubernetes.api.model.Container;
import io.fabric8.kubernetes.api.model.ContainerStatus;
import io.fabric8.kubernetes.api.model.Endpoints;
import io.fabric8.kubernetes.api.model.EndpointsList;
import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.PodList;
import io.fabric8.kubernetes.api.model.PodSpec;
import io.fabric8.kubernetes.api.model.ReplicationController;
import io.fabric8.kubernetes.api.model.ReplicationControllerList;
import io.fabric8.kubernetes.api.model.ReplicationControllerSpec;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServiceAccount;
import io.fabric8.kubernetes.api.model.ServiceAccountList;
import io.fabric8.kubernetes.api.model.ServiceList;
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClient;
import static io.fabric8.kubernetes.api.KubernetesHelper.getPorts;
import static io.fabric8.kubernetes.api.KubernetesHelper.getSelector;
/**
* A simple example program testing out the REST API
*/
public class Example {
public static void main(String... args) {
System.out.println("\n\nfabric8 Kubernetes-api example");
KubernetesClient kube = new DefaultKubernetesClient();
System.out.println("=========================================================================");
try {
listPods(kube);
listReplicationControllers(kube);
listServices(kube);
listServiceAccounts(kube);
listEndpoints(kube);
} catch (Exception e) {
System.out.println("FAILED: " + e);
e.printStackTrace();
} finally {
kube.close();
}
System.out.println("=========================================================================");
}
protected static void listPods(KubernetesClient kube) {
System.out.println("\n\nLooking up pods");
System.out.println("=========================================================================");
PodList pods = kube.pods().list();
//System.out.println("Got pods: " + pods);
List<Pod> items = pods.getItems();
for (Pod item : items) {
System.out.println("Pod " + KubernetesHelper.getName(item) + " with ip: " + item.getStatus().getPodIP() + " created: " + item.getMetadata().getCreationTimestamp());
PodSpec spec = item.getSpec();
if (spec != null) {
List<Container> containers = spec.getContainers();
if (containers != null) {
for (Container container : containers) {
System.out.println("Container " + container.getImage() + " " + container.getCommand() + " ports: " + container.getPorts());
}
}
}
Map<String, ContainerStatus> currentContainers = KubernetesHelper.getCurrentContainers(item);
System.out.println("Has " + currentContainers.size() + " container(s)");
Set<Map.Entry<String, ContainerStatus>> entries = currentContainers.entrySet();
for (Map.Entry<String, ContainerStatus> entry : entries) {
String id = entry.getKey();
ContainerStatus info = entry.getValue();
System.out.println("Current container: " + id + " info: " + info);
}
}
System.out.println();
}
protected static void listServices(KubernetesClient kube) {
System.out.println("\n\nLooking up services");
System.out.println("=========================================================================");
ServiceList services = kube.services().list();
List<Service> serviceItems = services.getItems();
for (Service service : serviceItems) {
System.out.println("Service " + KubernetesHelper.getName(service) + " labels: " + service.getMetadata().getLabels() + " selector: " + getSelector(service) + " ports: " + getPorts(service));
}
System.out.println();
}
protected static void listReplicationControllers(KubernetesClient kube) {
System.out.println("\n\nLooking up replicationControllers");
System.out.println("=========================================================================");
ReplicationControllerList replicationControllers = kube.replicationControllers().list();
List<ReplicationController> items = replicationControllers.getItems();
for (ReplicationController item : items) {
ReplicationControllerSpec replicationControllerSpec = item.getSpec();
if (replicationControllerSpec != null) {
System.out.println("ReplicationController " + KubernetesHelper.getName(item) + " labels: " + item.getMetadata().getLabels()
+ " replicas: " + replicationControllerSpec.getReplicas() + " replicatorSelector: " + replicationControllerSpec.getSelector() + " podTemplate: " + replicationControllerSpec.getTemplate());
} else {
System.out.println("ReplicationController " + KubernetesHelper.getName(item) + " labels: " + item.getMetadata().getLabels() + " no replicationControllerSpec");
}
}
System.out.println();
}
protected static void listServiceAccounts(KubernetesClient kube) {
System.out.println("\n\nLooking up service accounts");
System.out.println("=========================================================================");
ServiceAccountList serviceAccounts = kube.serviceAccounts().list();
List<ServiceAccount> serviceAccountItems = serviceAccounts.getItems();
for (ServiceAccount serviceAccount : serviceAccountItems) {
System.out.println("Service Account " + KubernetesHelper.getName(serviceAccount) + " labels: " + serviceAccount.getMetadata().getLabels());
}
System.out.println();
}
protected static void listEndpoints(KubernetesClient kube) {
System.out.println("\n\nLooking up endpoints");
System.out.println("=========================================================================");
EndpointsList endpoints = kube.endpoints().list();
List<Endpoints> endpointItems = endpoints.getItems();
for (Endpoints endpoint : endpointItems) {
System.out.println("Endpoint " + KubernetesHelper.getName(endpoint) + " labels: " + endpoint.getMetadata().getLabels());
}
System.out.println();
}
}