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)
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)
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)
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", ) ), )
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
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"}', )
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)