Ejemplo n.º 1
0
def get_from_secret(key_name: str, secret_key_name: str,
                    secret_ref_name: str) -> k8s_schemas.V1EnvVar:
    secret_ref_name = secret_ref_name
    secret_key_ref = k8s_schemas.V1SecretKeySelector(name=secret_ref_name,
                                                     key=secret_key_name)
    value_from = k8s_schemas.V1EnvVarSource(secret_key_ref=secret_key_ref)
    return k8s_schemas.V1EnvVar(name=key_name, value_from=value_from)
Ejemplo n.º 2
0
def get_from_config_map(key_name: str, config_map_key_name: str,
                        config_map_ref_name: str) -> k8s_schemas.V1EnvVar:
    config_map_ref_name = config_map_ref_name
    config_map_key_ref = k8s_schemas.V1ConfigMapKeySelector(
        name=config_map_ref_name, key=config_map_key_name)
    value_from = k8s_schemas.V1EnvVarSource(
        config_map_key_ref=config_map_key_ref)
    return k8s_schemas.V1EnvVar(name=key_name, value_from=value_from)
Ejemplo n.º 3
0
def get_env_var(name: str, value: Any) -> k8s_schemas.V1EnvVar:
    if not isinstance(value, str):
        try:
            value = json.dumps(value)
        except (ValueError, TypeError) as e:
            raise PolypodException(e)

    return k8s_schemas.V1EnvVar(name=name, value=value)
Ejemplo n.º 4
0
    def test_sanitize_container_env_value_from_obj(self):
        value = MagicMock(env=[
            k8s_schemas.V1EnvVar(
                name="secret-name",
                value_from=k8s_schemas.V1EnvVarSource(
                    config_map_key_ref=k8s_schemas.V1ConfigMapKeySelector(
                        key="my-key",
                        name="my-secret",
                    )
                ),
            ),
        ])
        assert sanitize_container_env(value).env[0] == k8s_schemas.V1EnvVar(
            name="secret-name",
            value_from=k8s_schemas.V1EnvVarSource(
                config_map_key_ref=k8s_schemas.V1ConfigMapKeySelector(
                    key="my-key",
                    name="my-secret",
                )
            ),
        )

        value = MagicMock(env=[
            k8s_schemas.V1EnvVar(
                name="secret-name",
                value_from=k8s_schemas.V1EnvVarSource(
                    config_map_key_ref=k8s_schemas.V1SecretKeySelector(
                        key="my-key",
                        name="my-secret",
                    )
                ),
            ),
        ])
        assert sanitize_container_env(value).env[0] == k8s_schemas.V1EnvVar(
            name="secret-name",
            value_from=k8s_schemas.V1EnvVarSource(
                config_map_key_ref=k8s_schemas.V1SecretKeySelector(
                    key="my-key",
                    name="my-secret",
                )
            ),
        )
Ejemplo n.º 5
0
def get_resources_env_vars(
    resources: k8s_schemas.V1ResourceRequirements,
) -> List[k8s_schemas.V1EnvVar]:
    env_vars = []
    has_gpu = requests_gpu(resources)

    # Fix https://github.com/kubernetes/kubernetes/issues/59629
    # When resources.gpu.limits is not set or set to 0, we explicitly
    # pass NVIDIA_VISIBLE_DEVICES=none into container to avoid exposing GPUs.
    if not has_gpu:
        env_vars.append(
            k8s_schemas.V1EnvVar(name="NVIDIA_VISIBLE_DEVICES", value="none"))

    return env_vars
Ejemplo n.º 6
0
    def test_sanitize_container_env_value_obj(self):
        value = MagicMock(env=[
            k8s_schemas.V1EnvVar(
                name="secret-name",
                value=True,
            ),
        ])
        assert sanitize_container_env(value).env[0] == k8s_schemas.V1EnvVar(
            name="secret-name",
            value="true",
        )

        value = MagicMock(env=[
            k8s_schemas.V1EnvVar(
                name="secret-name",
                value=1,
            ),
        ])
        assert sanitize_container_env(value).env[0] == k8s_schemas.V1EnvVar(
            name="secret-name",
            value="1",
        )

        value = MagicMock(env=[
            k8s_schemas.V1EnvVar(
                name="secret-name",
                value="test",
            ),
        ])
        assert sanitize_container_env(value).env[0] == k8s_schemas.V1EnvVar(
            name="secret-name",
            value="test",
        )

        value = MagicMock(env=[
            k8s_schemas.V1EnvVar(
                name="secret-name",
                value={"foo": "bar"},
            ),
        ])
        assert sanitize_container_env(value).env[0] == k8s_schemas.V1EnvVar(
            name="secret-name",
            value='{"foo": "bar"}',
        )
Ejemplo n.º 7
0
def get_from_field_ref(name: str, field_path: str) -> k8s_schemas.V1EnvVar:
    field_ref = k8s_schemas.V1ObjectFieldSelector(field_path=field_path)
    value_from = k8s_schemas.V1EnvVarSource(field_ref=field_ref)
    return k8s_schemas.V1EnvVar(name=name, value_from=value_from)