Search in sources :

Example 1 with KubernetesTcpSocketAction

use of com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesTcpSocketAction in project halyard by spinnaker.

the class KubernetesV1DistributedService method buildContainer.

default KubernetesContainerDescription buildContainer(String name, ServiceSettings settings, List<ConfigSource> configSources, DeploymentEnvironment deploymentEnvironment, DeployKubernetesAtomicOperationDescription description) {
    KubernetesContainerDescription container = new KubernetesContainerDescription();
    KubernetesProbe readinessProbe = new KubernetesProbe();
    KubernetesHandler handler = new KubernetesHandler();
    int port = settings.getPort();
    String healthEndpoint = settings.getHealthEndpoint();
    if (healthEndpoint != null) {
        handler.setType(KubernetesHandlerType.HTTP);
        KubernetesHttpGetAction action = new KubernetesHttpGetAction();
        action.setPath(healthEndpoint);
        action.setPort(port);
        handler.setHttpGetAction(action);
    } else {
        handler.setType(KubernetesHandlerType.TCP);
        KubernetesTcpSocketAction action = new KubernetesTcpSocketAction();
        action.setPort(port);
        handler.setTcpSocketAction(action);
    }
    readinessProbe.setHandler(handler);
    container.setReadinessProbe(readinessProbe);
    applyCustomSize(container, deploymentEnvironment, name, description);
    KubernetesImageDescription imageDescription = KubernetesUtil.buildImageDescription(settings.getArtifactId());
    container.setImageDescription(imageDescription);
    container.setName(name);
    List<KubernetesContainerPort> ports = new ArrayList<>();
    KubernetesContainerPort containerPort = new KubernetesContainerPort();
    containerPort.setContainerPort(port);
    ports.add(containerPort);
    container.setPorts(ports);
    List<KubernetesVolumeMount> volumeMounts = new ArrayList<>();
    for (ConfigSource configSource : configSources) {
        KubernetesVolumeMount volumeMount = new KubernetesVolumeMount();
        volumeMount.setName(configSource.getId());
        volumeMount.setMountPath(configSource.getMountPath());
        volumeMounts.add(volumeMount);
    }
    container.setVolumeMounts(volumeMounts);
    List<KubernetesEnvVar> envVars = new ArrayList<>();
    settings.getEnv().forEach((k, v) -> {
        KubernetesEnvVar envVar = new KubernetesEnvVar();
        envVar.setName(k);
        envVar.setValue(v);
        envVars.add(envVar);
    });
    configSources.forEach(c -> {
        c.getEnv().entrySet().forEach(envEntry -> {
            KubernetesEnvVar envVar = new KubernetesEnvVar();
            envVar.setName(envEntry.getKey());
            envVar.setValue(envEntry.getValue());
            envVars.add(envVar);
        });
    });
    container.setEnvVars(envVars);
    return container;
}
Also used : ArrayList(java.util.ArrayList) KubernetesProbe(com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesProbe) KubernetesHandler(com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesHandler) KubernetesVolumeMount(com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesVolumeMount) KubernetesContainerDescription(com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesContainerDescription) ConfigSource(com.netflix.spinnaker.halyard.deploy.spinnaker.v1.service.ConfigSource) KubernetesImageDescription(com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesImageDescription) KubernetesContainerPort(com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesContainerPort) KubernetesTcpSocketAction(com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesTcpSocketAction) KubernetesHttpGetAction(com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesHttpGetAction) KubernetesEnvVar(com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesEnvVar)

Aggregations

KubernetesContainerDescription (com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesContainerDescription)1 KubernetesContainerPort (com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesContainerPort)1 KubernetesEnvVar (com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesEnvVar)1 KubernetesHandler (com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesHandler)1 KubernetesHttpGetAction (com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesHttpGetAction)1 KubernetesImageDescription (com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesImageDescription)1 KubernetesProbe (com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesProbe)1 KubernetesTcpSocketAction (com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesTcpSocketAction)1 KubernetesVolumeMount (com.netflix.spinnaker.clouddriver.kubernetes.v1.deploy.description.servergroup.KubernetesVolumeMount)1 ConfigSource (com.netflix.spinnaker.halyard.deploy.spinnaker.v1.service.ConfigSource)1 ArrayList (java.util.ArrayList)1