类io.fabric8.kubernetes.api.model.batch.CronJobBuilder源码实例Demo

下面列出了怎么用io.fabric8.kubernetes.api.model.batch.CronJobBuilder的API类实例代码及写法,或者点击链接到github查看源代码。

protected CronJob createCronJob(ScheduleRequest scheduleRequest) {
	Map<String, String> labels = Collections.singletonMap(SPRING_CRONJOB_ID_KEY,
			scheduleRequest.getDefinition().getName());

	Map<String, String> schedulerProperties = scheduleRequest.getSchedulerProperties();
	String schedule = schedulerProperties.get(SchedulerPropertyKeys.CRON_EXPRESSION);
	Assert.hasText(schedule, "The property: " + SchedulerPropertyKeys.CRON_EXPRESSION + " must be defined");

	PodSpec podSpec = createPodSpec(scheduleRequest);
	String taskServiceAccountName = this.deploymentPropertiesResolver.getTaskServiceAccountName(scheduleRequest.getSchedulerProperties());
	if (StringUtils.hasText(taskServiceAccountName)) {
		podSpec.setServiceAccountName(taskServiceAccountName);
	}

	CronJob cronJob = new CronJobBuilder().withNewMetadata().withName(scheduleRequest.getScheduleName())
			.withLabels(labels).endMetadata().withNewSpec().withSchedule(schedule).withNewJobTemplate()
			.withNewSpec().withNewTemplate().withSpec(podSpec).endTemplate().endSpec()
			.endJobTemplate().endSpec().build();

	setImagePullSecret(scheduleRequest, cronJob);

	return this.client.batch().cronjobs().create(cronJob);
}
 
源代码2 项目: module-ballerina-kubernetes   文件: JobHandler.java
private CronJob getCronJob(JobModel jobModel) {
    return new CronJobBuilder()
            .withNewMetadata()
            .withName(jobModel.getName())
            .endMetadata()
            .withNewSpec()
            .withNewJobTemplate()
            .withNewSpec()
            .withActiveDeadlineSeconds((long) jobModel.getActiveDeadlineSeconds())
            .endSpec()
            .endJobTemplate()
            .withSchedule(jobModel.getSchedule())
            .endSpec()
            .build();
}
 
源代码3 项目: kubernetes-client   文件: CronJobCrudTest.java
@Test
public void testCrud() {
  KubernetesClient client = server.getClient();

  CronJob cronJob1 = new CronJobBuilder().withNewMetadata()
    .withName("cronJob1")
    .withResourceVersion("1")
    .addToLabels("foo", "bar")
    .endMetadata()
    .withNewSpec()
    .withSchedule("1 2-14 * * 0-1,5-6")
    .withNewJobTemplate()
    .withNewSpec()
    .withNewTemplate()
    .withNewSpec()
    .addNewImagePullSecret()
    .withName("gcr-secret")
    .endImagePullSecret()
    .addNewContainer()
    .withName("devopsish-netlify-cronjob")
    .withImage("gcr.io/chrisshort-net/devopsish-netlify-cron:latest")
    .addNewEnv()
    .withName("URL")
    .withNewValueFrom()
    .withNewSecretKeyRef()
    .withName("devops-build-hook")
    .withKey("url")
    .endSecretKeyRef()
    .endValueFrom()
    .endEnv()
    .endContainer()
    .endSpec()
    .endTemplate()
    .endSpec()
    .endJobTemplate()
    .endSpec()
    .build();

  CronJob cronJob2 = new CronJobBuilder().withNewMetadata()
    .withName("cronJob2")
    .withResourceVersion("1")
    .endMetadata()
    .withNewSpec()
    .withSchedule("*/1 * * * *")
    .withNewJobTemplate()
    .withNewSpec()
    .withNewTemplate()
    .withNewSpec()
    .addNewContainer()
    .withName("app")
    .withImage("bitnami/kubecfg:0.5.0")
    .addNewEnv()
    .withName("TOKEN")
    .withNewValueFrom()
    .withNewSecretKeyRef()
    .withName("default-token-rtw2m")
    .withKey("token")
    .endSecretKeyRef()
    .endValueFrom()
    .endEnv()
    .endContainer()
    .endSpec()
    .endTemplate()
    .endSpec()
    .endJobTemplate()
    .endSpec()
    .build();

  client.batch().cronjobs().inNamespace("ns1").create(cronJob1);
  client.batch().cronjobs().inNamespace("ns2").create(cronJob2);

  CronJobList cronJobList = client.batch().cronjobs().list();
  assertNotNull(cronJobList);
  assertEquals(0, cronJobList.getItems().size());

  cronJobList = client.batch().cronjobs().inAnyNamespace().list();
  assertNotNull(cronJobList);
  assertEquals(2, cronJobList.getItems().size());

  cronJobList = client.batch().cronjobs().inNamespace("ns1").list();
  assertNotNull(cronJobList);
  assertEquals(1, cronJobList.getItems().size());

  cronJobList = client.batch().cronjobs().inNamespace("ns2").list();
  assertNotNull(cronJobList);
  assertEquals(1, cronJobList.getItems().size());

  cronJobList = client.batch().cronjobs().inNamespace("ns1").withLabels(Collections.singletonMap("foo", "bar")).list();
  assertNotNull(cronJobList);
  assertEquals(1, cronJobList.getItems().size());

  boolean bDeleted = client.batch().cronjobs().inNamespace("ns1").withName("cronJob1").delete();
  cronJobList = client.batch().cronjobs().inNamespace("ns1").list();
  assertTrue(bDeleted);
  assertEquals(0, cronJobList.getItems().size());

  cronJob2 = client.batch().cronjobs().inNamespace("ns2").withName("cronJob2").edit().editSpec().withSchedule("*/1 * * * *").and().done();
  assertNotNull(cronJob2);
  assertEquals("*/1 * * * *", cronJob2.getSpec().getSchedule());
}
 
源代码4 项目: kubernetes-client   文件: CronJobIT.java
@Before
public void init() {
  currentNamespace = session.getNamespace();
  cronJob1 = new CronJobBuilder().withApiVersion("batch/v1beta1").withNewMetadata()
    .withName("cronjob1")
    .endMetadata()
    .withNewSpec()
    .withSchedule("*/1 * * * *")
    .withNewJobTemplate()
    .withNewSpec()
    .withNewTemplate()
    .withNewSpec()
    .addNewContainer()
    .withName("hello")
    .withImage("busybox")
    .withArgs("/bin/sh", "-c", "date; echo Hello from Kubernetes")
    .endContainer()
    .withRestartPolicy("OnFailure")
    .endSpec()
    .endTemplate()
    .endSpec()
    .endJobTemplate()
    .endSpec()
    .build();
  cronJob2 = new CronJobBuilder().withApiVersion("batch/v1beta1").withNewMetadata()
    .withName("cronjob2")
    .endMetadata()
    .withNewSpec()
    .withSchedule("*/1 * * * *")
    .withNewJobTemplate()
    .withNewSpec()
    .withNewTemplate()
    .withNewSpec()
    .addNewContainer()
    .withName("pi")
    .withImage("perl")
    .withCommand("perl")
    .withArgs(Arrays.asList("-Mbignum=bpi", "-wle", "print bpi(2000)"))
    .endContainer()
    .withRestartPolicy("OnFailure")
    .endSpec()
    .endTemplate()
    .endSpec()
    .endJobTemplate()
    .endSpec()
    .build();

  client.batch().cronjobs().inNamespace(currentNamespace).create(cronJob1);
  client.batch().cronjobs().inNamespace(currentNamespace).create(cronJob2);
}
 
 同包方法