use of io.fabric8.kubernetes.api.model.EnvVar in project zalenium by zalando.
the class KubernetesContainerClient method createContainer.
@Override
public ContainerCreationStatus createContainer(String zaleniumContainerName, String image, Map<String, String> envVars, String nodePort) {
String containerIdPrefix = String.format("%s-%s-", zaleniumAppName, nodePort);
// Convert the environment variables into the Kubernetes format.
List<EnvVar> flattenedEnvVars = envVars.entrySet().stream().map(e -> new EnvVar(e.getKey(), e.getValue(), null)).collect(Collectors.toList());
Map<String, String> podSelector = new HashMap<>();
PodConfiguration config = new PodConfiguration();
config.setNodePort(nodePort);
config.setClient(client);
config.setContainerIdPrefix(containerIdPrefix);
config.setImage(image);
config.setEnvVars(flattenedEnvVars);
Map<String, String> labels = new HashMap<>();
labels.putAll(createdByZaleniumMap);
labels.putAll(appLabelMap);
labels.putAll(podSelector);
config.setLabels(labels);
config.setMountedSharedFoldersMap(mountedSharedFoldersMap);
config.setHostAliases(hostAliases);
config.setNodeSelector(nodeSelector);
config.setPodLimits(seleniumPodLimits);
config.setPodRequests(seleniumPodRequests);
DoneablePod doneablePod = createDoneablePod.apply(config);
// Create the container
Pod createdPod = doneablePod.done();
String containerName = createdPod.getMetadata() == null ? containerIdPrefix : createdPod.getMetadata().getName();
return new ContainerCreationStatus(true, containerName, nodePort);
}
use of io.fabric8.kubernetes.api.model.EnvVar in project keycloak by keycloak.
the class PodTemplateTest method testEnvVarsAreMerged.
@Test
public void testEnvVarsAreMerged() {
// Arrange
var env = "KC_SOMETHING";
var value = "some-value";
var additionalPodTemplate = new PodTemplateSpecBuilder().withNewSpec().addNewContainer().addNewEnv().withName(env).withValue(value).endEnv().endContainer().endSpec().build();
// Act
var podTemplate = getDeployment(additionalPodTemplate).getSpec().getTemplate();
// Assert
var envVar = podTemplate.getSpec().getContainers().get(0).getEnv().stream().filter(e -> e.getName().equals(env)).findFirst().get();
assertEquals(env, envVar.getName());
assertEquals(value, envVar.getValue());
}
use of io.fabric8.kubernetes.api.model.EnvVar in project kubernetes by ballerinax.
the class EnvVarTest method combinedTest.
/**
* Build bal file with deployment having a combination of environment variables.
* @throws IOException Error when loading the generated yaml.
* @throws InterruptedException Error when compiling the ballerina file.
* @throws KubernetesPluginException Error when deleting the generated artifacts folder.
*/
@Test
public void combinedTest() throws IOException, InterruptedException, KubernetesPluginException, DockerTestException {
Assert.assertEquals(KubernetesTestUtils.compileBallerinaFile(BAL_DIRECTORY, "combination.bal"), 0);
// Check if docker image exists and correct
validateDockerfile();
validateDockerImage();
// Validate deployment yaml
File deploymentYAML = KUBERNETES_TARGET_PATH.resolve("combination_deployment.yaml").toFile();
Assert.assertTrue(deploymentYAML.exists());
Deployment deployment = KubernetesTestUtils.loadYaml(deploymentYAML);
List<EnvVar> envVars = deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getEnv();
Assert.assertEquals(envVars.size(), 5, "Invalid number of environment variables found.");
Assert.assertEquals(envVars.get(0).getName(), "SPECIAL_LEVEL_KEY", "Invalid environment variable name found.");
Assert.assertEquals(envVars.get(0).getValueFrom().getConfigMapKeyRef().getName(), "special-config", "Invalid environment variable value found.");
Assert.assertEquals(envVars.get(0).getValueFrom().getConfigMapKeyRef().getKey(), "special.how", "Invalid environment variable value found.");
Assert.assertEquals(envVars.get(1).getName(), "MY_NODE_NAME", "Invalid environment variable name found.");
Assert.assertEquals(envVars.get(1).getValueFrom().getFieldRef().getFieldPath(), "spec.nodeName", "Invalid environment variable value found.");
Assert.assertEquals(envVars.get(2).getName(), "location", "Invalid environment variable name found.");
Assert.assertEquals(envVars.get(2).getValue(), "SL", "Invalid environment variable value found.");
Assert.assertEquals(envVars.get(3).getName(), "MY_CPU_REQUEST", "Invalid environment variable name found.");
Assert.assertEquals(envVars.get(3).getValueFrom().getResourceFieldRef().getContainerName(), "client", "Invalid environment variable value found.");
Assert.assertEquals(envVars.get(3).getValueFrom().getResourceFieldRef().getResource(), "requests.cpu", "Invalid environment variable value found.");
Assert.assertEquals(envVars.get(4).getName(), "SECRET_PASSWORD", "Invalid environment variable name found.");
Assert.assertEquals(envVars.get(4).getValueFrom().getSecretKeyRef().getName(), "test-secret", "Invalid environment variable value found.");
Assert.assertEquals(envVars.get(4).getValueFrom().getSecretKeyRef().getKey(), "password", "Invalid environment variable value found.");
KubernetesUtils.deleteDirectory(KUBERNETES_TARGET_PATH);
KubernetesUtils.deleteDirectory(DOCKER_TARGET_PATH);
KubernetesTestUtils.deleteDockerImage(DOCKER_IMAGE);
}
use of io.fabric8.kubernetes.api.model.EnvVar in project kubernetes by ballerinax.
the class EnvVarTest method resourceFieldRefTest.
/**
* Build bal file with deployment having name and configMapKeyRef environment variables.
* @throws IOException Error when loading the generated yaml.
* @throws InterruptedException Error when compiling the ballerina file.
* @throws KubernetesPluginException Error when deleting the generated artifacts folder.
*/
@Test
public void resourceFieldRefTest() throws IOException, InterruptedException, KubernetesPluginException, DockerTestException {
Assert.assertEquals(KubernetesTestUtils.compileBallerinaFile(BAL_DIRECTORY, "resource_field_ref_value.bal"), 0);
// Check if docker image exists and correct
validateDockerfile();
validateDockerImage();
// Validate deployment yaml
File deploymentYAML = KUBERNETES_TARGET_PATH.resolve("resource_field_ref_value_deployment.yaml").toFile();
Assert.assertTrue(deploymentYAML.exists());
Deployment deployment = KubernetesTestUtils.loadYaml(deploymentYAML);
List<EnvVar> envVars = deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getEnv();
Assert.assertEquals(envVars.size(), 2, "Invalid number of environment variables found.");
Assert.assertEquals(envVars.get(0).getName(), "MY_CPU_REQUEST", "Invalid environment variable name found.");
Assert.assertEquals(envVars.get(0).getValueFrom().getResourceFieldRef().getContainerName(), "client", "Invalid environment variable value found.");
Assert.assertEquals(envVars.get(0).getValueFrom().getResourceFieldRef().getResource(), "requests.cpu", "Invalid environment variable value found.");
Assert.assertEquals(envVars.get(1).getName(), "MY_CPU_LIMIT", "Invalid environment variable name found.");
Assert.assertEquals(envVars.get(1).getValueFrom().getResourceFieldRef().getResource(), "limits.cpu", "Invalid environment variable value found.");
KubernetesUtils.deleteDirectory(KUBERNETES_TARGET_PATH);
KubernetesUtils.deleteDirectory(DOCKER_TARGET_PATH);
KubernetesTestUtils.deleteDockerImage(DOCKER_IMAGE);
}
use of io.fabric8.kubernetes.api.model.EnvVar in project kubernetes by ballerinax.
the class EnvVarTest method nameValueTest.
/**
* Build bal file with deployment having name value environment variables.
* @throws IOException Error when loading the generated yaml.
* @throws InterruptedException Error when compiling the ballerina file.
* @throws KubernetesPluginException Error when deleting the generated artifacts folder.
*/
@Test
public void nameValueTest() throws IOException, InterruptedException, KubernetesPluginException, DockerTestException {
Assert.assertEquals(KubernetesTestUtils.compileBallerinaFile(BAL_DIRECTORY, "name_value.bal"), 0);
// Check if docker image exists and correct
validateDockerfile();
validateDockerImage();
// Validate deployment yaml
File deploymentYAML = KUBERNETES_TARGET_PATH.resolve("name_value_deployment.yaml").toFile();
Assert.assertTrue(deploymentYAML.exists());
Deployment deployment = KubernetesTestUtils.loadYaml(deploymentYAML);
List<EnvVar> envVars = deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getEnv();
Assert.assertEquals(envVars.size(), 2, "Invalid number of environment variables found.");
Assert.assertEquals(envVars.get(0).getName(), "location", "Invalid environment variable name found.");
Assert.assertEquals(envVars.get(0).getValue(), "SL", "Invalid environment variable value found.");
Assert.assertEquals(envVars.get(1).getName(), "city", "Invalid environment variable name found.");
Assert.assertEquals(envVars.get(1).getValue(), "COLOMBO", "Invalid environment variable value found.");
KubernetesUtils.deleteDirectory(KUBERNETES_TARGET_PATH);
KubernetesUtils.deleteDirectory(DOCKER_TARGET_PATH);
KubernetesTestUtils.deleteDockerImage(DOCKER_IMAGE);
}
Aggregations