Search in sources :

Example 21 with Job

use of io.fabric8.kubernetes.api.model.batch.Job in project fabric8 by jboss-fuse.

the class ViewPipeline method main.

public static void main(String[] args) {
    if (args.length == 0) {
        System.err.println("Usage: ViewPipeline jobName [branchName] [gitUrl]");
        return;
    }
    String jobName = args[0];
    String branchName = "master";
    String gitUrl = null;
    if (args.length > 1) {
        branchName = args[1];
    }
    if (args.length > 2) {
        gitUrl = args[2];
    }
    try {
        JobEnvironment environment = new JobEnvironment();
        environment.setJobName(jobName);
        environment.setBranchName(branchName);
        environment.setGitUrl(gitUrl);
        KubernetesClient kubernetesClient = new DefaultKubernetesClient();
        String namespace = kubernetesClient.getNamespace();
        if (Strings.isNullOrBlank(namespace)) {
            namespace = KubernetesHelper.defaultNamespace();
        }
        Pipeline pipeline = Pipelines.getPipeline(kubernetesClient, namespace, environment);
        System.out.println("Found pipeline for job: " + pipeline.getJobName() + " of kind: " + pipeline.getKind());
    } catch (IntrospectionException e) {
        System.out.println("Failed with: " + e);
        e.printStackTrace();
    }
}
Also used : KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) IntrospectionException(java.beans.IntrospectionException) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient)

Example 22 with Job

use of io.fabric8.kubernetes.api.model.batch.Job in project kubernetes by ballerinax.

the class JobTest method testKubernetesJobNodeSelector.

@Test
public void testKubernetesJobNodeSelector() throws IOException, InterruptedException {
    Assert.assertEquals(KubernetesTestUtils.compileBallerinaFile(SOURCE_DIR_PATH, "node_selector.bal"), 0);
    File dockerFile = DOCKER_TARGET_PATH.resolve("Dockerfile").toFile();
    Assert.assertTrue(dockerFile.exists());
    InspectImageResponse imageInspect = getDockerImage(DOCKER_IMAGE_NODE);
    Assert.assertNotNull(imageInspect.getConfig());
    File jobYAML = KUBERNETES_TARGET_PATH.resolve("node_selector_job.yaml").toFile();
    Job job = KubernetesTestUtils.loadYaml(jobYAML);
    Assert.assertEquals(job.getMetadata().getName(), "node-selector-job");
    Assert.assertEquals(job.getSpec().getTemplate().getSpec().getContainers().size(), 1);
    Container container = job.getSpec().getTemplate().getSpec().getContainers().get(0);
    Assert.assertEquals(container.getImage(), DOCKER_IMAGE_NODE);
    Assert.assertEquals(container.getImagePullPolicy(), KubernetesConstants.ImagePullPolicy.IfNotPresent.name());
    Assert.assertEquals(job.getSpec().getTemplate().getSpec().getRestartPolicy(), KubernetesConstants.RestartPolicy.Never.name());
    // Validate node selector
    Map<String, String> nodeSelectors = job.getSpec().getTemplate().getSpec().getNodeSelector();
    Assert.assertEquals(nodeSelectors.size(), 1);
    Assert.assertEquals(nodeSelectors.get("disktype"), "ssd");
}
Also used : Container(io.fabric8.kubernetes.api.model.Container) InspectImageResponse(com.github.dockerjava.api.command.InspectImageResponse) Job(io.fabric8.kubernetes.api.model.batch.Job) File(java.io.File) Test(org.testng.annotations.Test)

Example 23 with Job

use of io.fabric8.kubernetes.api.model.batch.Job in project kubernetes by ballerinax.

the class JobTest method testKubernetesJobGeneration.

@Test
public void testKubernetesJobGeneration() throws IOException, InterruptedException {
    Assert.assertEquals(KubernetesTestUtils.compileBallerinaFile(SOURCE_DIR_PATH, "ballerina_job.bal"), 0);
    File dockerFile = DOCKER_TARGET_PATH.resolve("Dockerfile").toFile();
    Assert.assertTrue(dockerFile.exists());
    InspectImageResponse imageInspect = getDockerImage(DOCKER_IMAGE_JOB);
    Assert.assertNotNull(imageInspect.getConfig());
    File jobYAML = KUBERNETES_TARGET_PATH.resolve("ballerina_job_job.yaml").toFile();
    Job job = KubernetesTestUtils.loadYaml(jobYAML);
    Assert.assertEquals(job.getMetadata().getName(), "ballerina-job-job");
    Assert.assertEquals(job.getSpec().getTemplate().getSpec().getContainers().size(), 1);
    Container container = job.getSpec().getTemplate().getSpec().getContainers().get(0);
    Assert.assertEquals(container.getImage(), DOCKER_IMAGE_JOB);
    Assert.assertEquals(container.getImagePullPolicy(), KubernetesConstants.ImagePullPolicy.IfNotPresent.name());
    Assert.assertEquals(job.getSpec().getTemplate().getSpec().getRestartPolicy(), KubernetesConstants.RestartPolicy.Never.name());
}
Also used : Container(io.fabric8.kubernetes.api.model.Container) InspectImageResponse(com.github.dockerjava.api.command.InspectImageResponse) Job(io.fabric8.kubernetes.api.model.batch.Job) File(java.io.File) Test(org.testng.annotations.Test)

Example 24 with Job

use of io.fabric8.kubernetes.api.model.batch.Job in project kubernetes by ballerinax.

the class Sample11Test method compileSample.

@BeforeClass
public void compileSample() throws IOException, InterruptedException {
    Assert.assertEquals(KubernetesTestUtils.compileBallerinaFile(SOURCE_DIR_PATH, "hello_world_job.bal"), 0);
    File artifactYaml = KUBERNETES_TARGET_PATH.resolve("hello_world_job.yaml").toFile();
    Assert.assertTrue(artifactYaml.exists());
    KubernetesClient client = new DefaultKubernetesClient();
    List<HasMetadata> k8sItems = client.load(new FileInputStream(artifactYaml)).get();
    for (HasMetadata data : k8sItems) {
        if ("Job".equals(data.getKind())) {
            job = (Job) data;
        } else {
            Assert.fail("Unexpected k8s resource found: " + data.getKind());
        }
    }
}
Also used : DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) HasMetadata(io.fabric8.kubernetes.api.model.HasMetadata) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) File(java.io.File) FileInputStream(java.io.FileInputStream) BeforeClass(org.testng.annotations.BeforeClass)

Aggregations

IOException (java.io.IOException)8 DefaultKubernetesClient (io.fabric8.kubernetes.client.DefaultKubernetesClient)6 KubernetesClient (io.fabric8.kubernetes.client.KubernetesClient)6 Block (io.fabric8.utils.Block)6 URISyntaxException (java.net.URISyntaxException)6 Container (io.fabric8.kubernetes.api.model.Container)5 Job (io.fabric8.kubernetes.api.model.batch.Job)4 File (java.io.File)4 HashMap (java.util.HashMap)4 List (java.util.List)4 Test (org.junit.Test)4 Test (org.testng.annotations.Test)4 ConfigMap (io.fabric8.kubernetes.api.model.ConfigMap)3 HasMetadata (io.fabric8.kubernetes.api.model.HasMetadata)3 Job (io.fabric8.kubernetes.api.model.Job)3 InspectImageResponse (com.github.dockerjava.api.command.InspectImageResponse)2 JobWithDetails (com.offbytwo.jenkins.model.JobWithDetails)2 Controller (io.fabric8.kubernetes.api.Controller)2 LocalObjectReference (io.fabric8.kubernetes.api.model.LocalObjectReference)2 ObjectMeta (io.fabric8.kubernetes.api.model.ObjectMeta)2