io.fabric8.kubernetes.api.model.EnvVarBuilder#io.fabric8.kubernetes.api.model.ProbeBuilder源码实例Demo

下面列出了io.fabric8.kubernetes.api.model.EnvVarBuilder#io.fabric8.kubernetes.api.model.ProbeBuilder 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: jkube   文件: QuarkusHealthCheckEnricher.java
private Probe discoverQuarkusHealthCheck(int initialDelay) {
    if (!getContext().hasDependency("io.quarkus", "quarkus-smallrye-health")) {
        return null;
    }

    return new ProbeBuilder()
        .withNewHttpGet()
          .withNewPort(asInteger(getConfig(Config.port)))
          .withPath(getConfig(Config.path))
          .withScheme(getConfig(Config.scheme))
        .endHttpGet()
        .withFailureThreshold(asInteger(getConfig(Config.failureThreshold)))
        .withSuccessThreshold(asInteger(getConfig(Config.successThreshold)))
        .withInitialDelaySeconds(initialDelay)
        .build();
}
 
源代码2 项目: jkube   文件: WebAppHealthCheckEnricher.java
private Probe getProbe(boolean readiness) {
    if (!isApplicable()) {
        return null;
    }

    Integer port = getPort();
    String scheme = getScheme().toUpperCase();
    String path = getPath();

    int delay = readiness ? getInitialReadinessDelay() : getInitialLivenessDelay();

    return new ProbeBuilder().
        withNewHttpGet().withNewPort(port).withPath(path).withScheme(scheme).endHttpGet().
        withInitialDelaySeconds(delay).build();

}
 
源代码3 项目: jkube   文件: WildFlySwarmHealthCheckEnricher.java
private Probe discoverWildFlySwarmHealthCheck(int initialDelay) {
    if (getContext().hasDependency("org.wildfly.swarm", "monitor")
            || getContext().hasDependency("org.wildfly.swarm", "microprofile-health")) {
        Integer port = getPort();
        // scheme must be in upper case in k8s
        String scheme = getScheme().toUpperCase();
        String path = getPath();

        // lets default to adding a wildfly swarm health check
        return new ProbeBuilder()
                .withNewHttpGet().withNewPort(port).withPath(path).withScheme(scheme).endHttpGet()
                .withFailureThreshold(getFailureThreshold())
                .withSuccessThreshold(getSuccessThreshold())
                .withInitialDelaySeconds(initialDelay).build();
    }
    return null;
}
 
源代码4 项目: jkube   文件: ThorntailV2HealthCheckEnricher.java
private Probe discoverThorntailHealthCheck(int initialDelay) {
    if (getContext().hasDependency(IO_THORNTAIL, "thorntail-kernel")) {
        // if there's thorntail-kernel, it's Thorntail v4
        return null;
    }

    if (getContext().hasDependency(IO_THORNTAIL, "monitor")
            || getContext().hasDependency(IO_THORNTAIL, "microprofile-health")) {
        Integer port = getPort();
        // scheme must be in upper case in k8s
        String scheme = getScheme().toUpperCase();
        String path = getPath();

        return new ProbeBuilder()
                 .withNewHttpGet().withNewPort(port).withPath(path).withScheme(scheme).endHttpGet()
                 .withFailureThreshold(getFailureThreshold())
                 .withSuccessThreshold(getSuccessThreshold())
                 .withInitialDelaySeconds(initialDelay).build();
    }
    return null;
}
 
Probe create() {
	HTTPGetActionBuilder httpGetActionBuilder = new HTTPGetActionBuilder()
			.withPath(getProbePath())
			.withNewPort(getPort());

	List<HTTPHeader> httpHeaders = getHttpHeaders();

	if (!httpHeaders.isEmpty()) {
		httpGetActionBuilder.withHttpHeaders(httpHeaders);
	}

	return new ProbeBuilder()
			.withHttpGet(httpGetActionBuilder.build())
			.withTimeoutSeconds(getTimeout())
			.withInitialDelaySeconds(getInitialDelay())
			.withPeriodSeconds(getPeriod())
			.build();
}
 
源代码6 项目: enmasse   文件: KubeUtilTest.java
@Test
public void appliesContainerLivenessProbeSettingsToPodTemplate() {
    Container actualContainer = new ContainerBuilder()
            .withName("foo")
            .withLivenessProbe(new ProbeBuilder()
                    .withInitialDelaySeconds(1)
                    .withPeriodSeconds(2)
                    .withFailureThreshold(4).build()).build();
    Container desiredContainer = new ContainerBuilder()
            .withName("foo")
            .withLivenessProbe(new ProbeBuilder()
                    .withInitialDelaySeconds(10)
                    .withSuccessThreshold(80).build()).build();
    PodTemplateSpec actual = doApplyContainers(actualContainer, desiredContainer);

    Container container = actual.getSpec().getContainers().get(0);
    Probe probe = container.getLivenessProbe();
    assertThat(probe.getInitialDelaySeconds(), equalTo(10));
    assertThat(probe.getPeriodSeconds(), equalTo(2));
    assertThat(probe.getFailureThreshold(), equalTo(4));
    assertThat(probe.getSuccessThreshold(), equalTo(80));
}
 
源代码7 项目: data-highway   文件: LanderPodFactory.java
private Container container(String roadName, List<String> args, Map<String, String> config, String truckParkName) {
  List<EnvVar> env = ImmutableList
      .<EnvVar> builder()
      .add(envFromFieldPath("KUBERNETES_NAMESPACE", "metadata.namespace"))
      .add(env("POD_NAME", truckParkName))
      .add(env("ENVIRONMENT", environment))
      .add(env("JVM_ARGS", config.get(JVM_ARGS)))
      .add(env("CLOUDWATCH_REGION", config.get(CLOUDWATCH_REGION)))
      .add(env("CLOUDWATCH_GROUP", config.get(CLOUDWATCH_GROUP)))
      .add(env("CLOUDWATCH_STREAM", "${KUBERNETES_NAMESPACE}-truck-park-" + roadName))
      .build();
  Map<String, Quantity> limits = ImmutableMap
      .<String, Quantity> builder()
      .put(CPU, new Quantity(config.get(CPU)))
      .put(MEMORY, new Quantity(config.get(MEMORY)))
      .build();
  return new ContainerBuilder()
      .withName(truckParkName)
      .withImage(config.get(DOCKER_IMAGE))
      .withArgs(args)
      .withEnv(env)
      .withResources(new ResourceRequirementsBuilder().withLimits(limits).withRequests(limits).build())
      .withLivenessProbe(new ProbeBuilder()
          .withHttpGet(new HTTPGetActionBuilder().withPath("/").withPort(new IntOrString("http")).build())
          .withInitialDelaySeconds(getConfigOrDefault(config, "livenessInitialDelay", 30))
          .withPeriodSeconds(getConfigOrDefault(config, "livenessPeriod", 5))
          .withSuccessThreshold(getConfigOrDefault(config, "livenessSuccessThreshold", 1))
          .withTimeoutSeconds(getConfigOrDefault(config, "livenessTimeout", 5))
          .withFailureThreshold(getConfigOrDefault(config, "livenessFailureThreshold", 3))
          .build())
      .build();
}
 
源代码8 项目: rabbitmq-operator   文件: RabbitMQContainers.java
private Probe buildReadinessProbe() {
    return new ProbeBuilder()
            .withNewExec().withCommand("/probes/readiness.sh").endExec()
            .withInitialDelaySeconds(20)
            .withTimeoutSeconds(5)
            .withPeriodSeconds(5)
            .withFailureThreshold(3)
            .withSuccessThreshold(1)
            .build();
}
 
源代码9 项目: jkube   文件: DockerHealthCheckEnricher.java
private Probe getProbe(ImageConfiguration image) {
    if (hasHealthCheck(image)) {
        HealthCheckConfiguration health = image.getBuildConfiguration().getHealthCheck();
        return new ProbeBuilder()
                .withExec(new ExecAction(health.getCmd().asStrings()))
                .withTimeoutSeconds(durationSeconds(health.getTimeout()))
                .withPeriodSeconds(durationSeconds(health.getInterval()))
                .withFailureThreshold(health.getRetries())
                .build();
    }

    return null;
}
 
源代码10 项目: jkube   文件: AbstractHealthCheckEnricherTest.java
protected AbstractHealthCheckEnricher createEnricher(Properties properties, Map<String, String> pi) {

        JavaProject project = JavaProject.builder().properties(new Properties()).build();
        project.getProperties().putAll(properties);

        final JKubeEnricherContext.JKubeEnricherContextBuilder enricherContextBuilder = JKubeEnricherContext.builder()
                .project(project)
                .log(log);
        if(pi != null && !pi.isEmpty()) {
            enricherContextBuilder.processingInstructions(pi);
        }
        EnricherContext context = enricherContextBuilder.build();

        AbstractHealthCheckEnricher enricher = new AbstractHealthCheckEnricher(context, "basic") {
            @Override
            protected Probe getLivenessProbe() {
                return getReadinessProbe();
            }

            @Override
            protected Probe getReadinessProbe() {
                return new ProbeBuilder()
                        .withNewHttpGet()
                        .withHost("localhost")
                        .withNewPort(8080)
                        .endHttpGet()
                        .build();
            }
        };
        return enricher;
    }
 
private Probe generateProbe(ProbeModel probeModel) {
    if (null == probeModel) {
        return null;
    }
    TCPSocketAction tcpSocketAction = new TCPSocketActionBuilder()
            .withNewPort(probeModel.getPort())
            .build();
    return new ProbeBuilder()
            .withInitialDelaySeconds(probeModel.getInitialDelaySeconds())
            .withPeriodSeconds(probeModel.getPeriodSeconds())
            .withTcpSocket(tcpSocketAction)
            .build();
}
 
private Probe generateProbe(ProbeModel probeModel) {
    if (null == probeModel) {
        return null;
    }
    TCPSocketAction tcpSocketAction = new TCPSocketActionBuilder()
            .withNewPort(probeModel.getPort())
            .build();
    return new ProbeBuilder()
            .withInitialDelaySeconds(probeModel.getInitialDelaySeconds())
            .withPeriodSeconds(probeModel.getPeriodSeconds())
            .withTcpSocket(tcpSocketAction)
            .build();
}
 
源代码13 项目: strimzi-kafka-operator   文件: ModelUtils.java
protected static ProbeBuilder newProbeBuilder(io.strimzi.api.kafka.model.Probe userProbe) {
    return new ProbeBuilder()
            .withInitialDelaySeconds(userProbe.getInitialDelaySeconds())
            .withTimeoutSeconds(userProbe.getTimeoutSeconds())
            .withPeriodSeconds(userProbe.getPeriodSeconds())
            .withSuccessThreshold(userProbe.getSuccessThreshold())
            .withFailureThreshold(userProbe.getFailureThreshold());
}
 
源代码14 项目: enmasse   文件: KubeUtilTest.java
@Test
public void appliesContainerReadinessProbeSettingsToPodTemplate() {
    Container actualContainer = new ContainerBuilder()
            .withName("foo")
            .withReadinessProbe(new ProbeBuilder()
                    .withInitialDelaySeconds(1).build()).build();
    Container desiredContainer = new ContainerBuilder()
            .withName("foo")
            .withReadinessProbe(new ProbeBuilder()
                    .withInitialDelaySeconds(10).build()).build();
    PodTemplateSpec actual = doApplyContainers(actualContainer, desiredContainer);

    Container container = actual.getSpec().getContainers().get(0);
    assertThat(container.getReadinessProbe().getInitialDelaySeconds(), equalTo(10));
}
 
源代码15 项目: jkube   文件: SpringBootHealthCheckEnricher.java
protected Probe buildProbe(Properties springBootProperties, Integer initialDelay, Integer period, Integer timeout, Integer failureTh, Integer successTh) {
    SpringBootConfigurationHelper propertyHelper = new SpringBootConfigurationHelper(getContext().getDependencyVersion(SpringBootConfigurationHelper.SPRING_BOOT_GROUP_ID, SpringBootConfigurationHelper.SPRING_BOOT_ARTIFACT_ID));
    Integer managementPort = propertyHelper.getManagementPort(springBootProperties);
    boolean usingManagementPort = managementPort != null;

    Integer port = managementPort;
    if (port == null) {
        port = propertyHelper.getServerPort(springBootProperties);
    }

    String scheme;
    String prefix;
    if (usingManagementPort) {
        scheme = StringUtils.isNotBlank(springBootProperties.getProperty(propertyHelper.getManagementKeystorePropertyKey())) ? SCHEME_HTTPS : SCHEME_HTTP;
        prefix = springBootProperties.getProperty(propertyHelper.getManagementContextPathPropertyKey(), "");
    } else {
        scheme = StringUtils.isNotBlank(springBootProperties.getProperty(propertyHelper.getServerKeystorePropertyKey())) ? SCHEME_HTTPS : SCHEME_HTTP;
        prefix = springBootProperties.getProperty(propertyHelper.getServerContextPathPropertyKey(), "");
        prefix += springBootProperties.getProperty(propertyHelper.getServletPathPropertyKey(), "");
        prefix += springBootProperties.getProperty(propertyHelper.getManagementContextPathPropertyKey(), "");
    }

    String actuatorBasePathKey = propertyHelper.getActuatorBasePathPropertyKey();
    String actuatorBasePath = propertyHelper.getActuatorDefaultBasePath();
    if (actuatorBasePathKey != null) {
        actuatorBasePath = springBootProperties.getProperty(actuatorBasePathKey, actuatorBasePath);
    }

    // lets default to adding a spring boot actuator health check
    ProbeBuilder probeBuilder = new ProbeBuilder().
            withNewHttpGet().withNewPort(port).withPath(normalizeMultipleSlashes(prefix + actuatorBasePath + Configs.asString(getConfig(Config.path)))).withScheme(scheme).endHttpGet();

    if (initialDelay != null) {
        probeBuilder = probeBuilder.withInitialDelaySeconds(initialDelay);
    }
    if (period != null) {
        probeBuilder = probeBuilder.withPeriodSeconds(period);
    }
    if (timeout != null) {
        probeBuilder.withTimeoutSeconds(timeout);
    }
    if(failureTh != null) {
        probeBuilder.withFailureThreshold(failureTh);
    }
    if(successTh != null) {
        probeBuilder.withSuccessThreshold(successTh);
    }

    return probeBuilder.build();
}
 
源代码16 项目: syndesis   文件: OpenShiftServiceImplTest.java
DeploymentConfigBuilder baseDeploymentFor(final String name, final DeploymentData deploymentData) {
    return new DeploymentConfigBuilder()
        .withNewMetadata()
            .withName(openshiftName(name))
            .addToAnnotations(deploymentData.getAnnotations())
            .addToLabels(deploymentData.getLabels())
        .endMetadata()
        .withNewSpec()
            .withReplicas(1)
            .addToSelector("syndesis.io/integration", openshiftName(name))
            .withNewStrategy()
                .withType("Recreate")
                .withNewResources()
                   .addToLimits("memory", new Quantity(config.getDeploymentMemoryLimitMi()  + "Mi"))
                   .addToRequests("memory", new Quantity(config.getDeploymentMemoryRequestMi() +  "Mi"))
                .endResources()
            .endStrategy()
            .withRevisionHistoryLimit(0)
            .withNewTemplate()
                .withNewMetadata()
                    .addToLabels("syndesis.io/integration", openshiftName(name))
                    .addToLabels(OpenShiftServiceImpl.COMPONENT_LABEL, "integration")
                    .addToLabels(deploymentData.getLabels())
                    .addToAnnotations(deploymentData.getAnnotations())
                    .addToAnnotations("prometheus.io/scrape", "true")
                    .addToAnnotations("prometheus.io/port", "9779")
                .endMetadata()
                .withNewSpec()
                    .addNewContainer()
                        .withImage(deploymentData.getImage())
                        .withImagePullPolicy("Always")
                        .withName(openshiftName(name))
                        .addToEnv(new EnvVarBuilder().withName("LOADER_HOME").withValue(config.getIntegrationDataPath()).build())
                        .addToEnv(new EnvVarBuilder().withName("AB_JMX_EXPORTER_CONFIG").withValue("/tmp/src/prometheus-config.yml").build())
                        .addToEnv(new EnvVarBuilder().withName("JAEGER_ENDPOINT").withValue("http://syndesis-jaeger-collector:14268/api/traces").build())
                        .addToEnv(new EnvVarBuilder().withName("JAEGER_TAGS").withValue("integration.version="+deploymentData.getVersion()).build())
                        .addToEnv(new EnvVarBuilder().withName("JAEGER_SAMPLER_TYPE").withValue("const").build())
                        .addToEnv(new EnvVarBuilder().withName("JAEGER_SAMPLER_PARAM").withValue("1").build())
                        .addNewPort()
                            .withName("jolokia")
                            .withContainerPort(8778)
                        .endPort()
                        .addNewPort()
                            .withName("metrics")
                            .withContainerPort(9779)
                        .endPort()
                        .addNewPort()
                            .withName("management")
                            .withContainerPort(8081)
                        .endPort()
                        .addNewVolumeMount()
                            .withName("secret-volume")
                            .withMountPath("/deployments/config")
                            .withReadOnly(false)
                        .endVolumeMount()
                        .withLivenessProbe(new ProbeBuilder()
                            .withInitialDelaySeconds(config.getIntegrationLivenessProbeInitialDelaySeconds())
                            .withNewHttpGet()
                                .withPath("/actuator/health")
                                .withNewPort(8081)
                            .endHttpGet()
                            .build())
                    .endContainer()
                    .addNewVolume()
                        .withName("secret-volume")
                        .withNewSecret()
                            .withSecretName(openshiftName(name))
                        .endSecret()
                    .endVolume()
                .endSpec()
            .endTemplate()
            .addNewTrigger()
                .withNewImageChangeParams()
                    .withAutomatic(true)
                    .withContainerNames(openshiftName(name))
                    .withNewFrom()
                        .withKind("ImageStreamTag")
                        .withName(openshiftName(name) + ":0")
                    .endFrom()
                .endImageChangeParams()
                .withType("ImageChange")
            .endTrigger()
            .addNewTrigger()
                .withType("ConfigChange")
            .endTrigger()
        .endSpec();
}
 
源代码17 项目: kubernetes-plugin   文件: PodTemplateBuilder.java
private Container createContainer(ContainerTemplate containerTemplate, Collection<TemplateEnvVar> globalEnvVars,
        Collection<VolumeMount> volumeMounts) {
    Map<String, EnvVar> envVarsMap = new HashMap<>();
    String workingDir = substituteEnv(containerTemplate.getWorkingDir());
    if (JNLP_NAME.equals(containerTemplate.getName())) {
        envVarsMap.putAll(jnlpEnvVars(workingDir));
    }
    envVarsMap.putAll(defaultEnvVars(globalEnvVars));

    if (containerTemplate.getEnvVars() != null) {
        containerTemplate.getEnvVars().forEach(item ->
                envVarsMap.put(item.getKey(), item.buildEnvVar())
        );
    }

    EnvVar[] envVars = envVarsMap.values().stream().toArray(EnvVar[]::new);

    String cmd = containerTemplate.getArgs();
    if (slave != null && cmd != null) {
        SlaveComputer computer = slave.getComputer();
        if (computer != null) {
            cmd = cmd.replaceAll(JNLPMAC_REF, computer.getJnlpMac()) //
                    .replaceAll(NAME_REF, computer.getName());
        }
    }
    List<String> arguments = Strings.isNullOrEmpty(containerTemplate.getArgs()) ? Collections.emptyList()
            : parseDockerCommand(cmd);

    ContainerPort[] ports = containerTemplate.getPorts().stream().map(entry -> entry.toPort()).toArray(size -> new ContainerPort[size]);


    List<VolumeMount> containerMounts = getContainerVolumeMounts(volumeMounts, workingDir);

    ContainerLivenessProbe clp = containerTemplate.getLivenessProbe();
    Probe livenessProbe = null;
    if (clp != null && parseLivenessProbe(clp.getExecArgs()) != null) {
        livenessProbe = new ProbeBuilder()
                .withExec(new ExecAction(parseLivenessProbe(clp.getExecArgs())))
                .withInitialDelaySeconds(clp.getInitialDelaySeconds())
                .withTimeoutSeconds(clp.getTimeoutSeconds())
                .withFailureThreshold(clp.getFailureThreshold())
                .withPeriodSeconds(clp.getPeriodSeconds())
                .withSuccessThreshold(clp.getSuccessThreshold())
                .build();
    }

    return new ContainerBuilder()
            .withName(substituteEnv(containerTemplate.getName()))
            .withImage(substituteEnv(containerTemplate.getImage()))
            .withImagePullPolicy(containerTemplate.isAlwaysPullImage() ? "Always" : "IfNotPresent")
            .withNewSecurityContext()
            .withPrivileged(containerTemplate.isPrivileged())
            .withRunAsUser(containerTemplate.getRunAsUserAsLong())
            .withRunAsGroup(containerTemplate.getRunAsGroupAsLong())
            .endSecurityContext()
            .withWorkingDir(workingDir)
            .withVolumeMounts(containerMounts.toArray(new VolumeMount[containerMounts.size()]))
            .addToEnv(envVars)
            .addToPorts(ports)
            .withCommand(parseDockerCommand(containerTemplate.getCommand()))
            .withArgs(arguments)
            .withLivenessProbe(livenessProbe)
            .withTty(containerTemplate.isTtyEnabled())
            .withNewResources()
            .withRequests(getResourcesMap(containerTemplate.getResourceRequestMemory(), containerTemplate.getResourceRequestCpu()))
            .withLimits(getResourcesMap(containerTemplate.getResourceLimitMemory(), containerTemplate.getResourceLimitCpu()))
            .endResources()
            .build();
}