Пример #1
0
    def test_sanitize_resources_containing_ints(self):
        resources = sanitize_resources(
            {"requests": {
                "cpu": 1,
                "memory": "100Mi",
                "nvidia.com/gpu": 1
            }})
        assert resources.limits is None
        assert resources.requests == {
            "cpu": "1",
            "memory": "100Mi",
            "nvidia.com/gpu": "1",
        }

        resources = sanitize_resources(
            {"limits": {
                "cpu": "1",
                "memory": "100Mi",
                "nvidia.com/gpu": "1"
            }})
        assert resources.limits == {
            "cpu": "1",
            "memory": "100Mi",
            "nvidia.com/gpu": "1",
        }
        assert resources.requests is None

        resources = sanitize_resources({
            "requests": {
                "cpu": "1",
                "memory": "100Mi",
                "nvidia.com/gpu": "1"
            },
            "limits": {
                "cpu": "1",
                "memory": "100Mi",
                "nvidia.com/gpu": "1"
            },
        })
        assert resources.limits == {
            "cpu": "1",
            "memory": "100Mi",
            "nvidia.com/gpu": "1",
        }
        assert resources.requests == {
            "cpu": "1",
            "memory": "100Mi",
            "nvidia.com/gpu": "1",
        }
Пример #2
0
def patch_container(
    container: k8s_schemas.V1Container,
    name: str = None,
    command: List[str] = None,
    args: List[str] = None,
    image: str = None,
    image_pull_policy: str = None,
    env: List[k8s_schemas.V1EnvVar] = None,
    env_from: List[k8s_schemas.V1EnvFromSource] = None,
    volume_mounts: List[k8s_schemas.V1VolumeMount] = None,
    ports: List[k8s_schemas.V1ContainerPort] = None,
    resources: k8s_schemas.V1ResourceRequirements = None,
) -> k8s_schemas.V1Container:
    container.name = name or container.name
    container.env = to_list(container.env, check_none=True) + to_list(
        env, check_none=True)
    container.env_from = to_list(container.env_from,
                                 check_none=True) + to_list(env_from,
                                                            check_none=True)
    container.volume_mounts = to_list(
        container.volume_mounts, check_none=True) + to_list(volume_mounts,
                                                            check_none=True)
    container.ports = to_list(container.ports, check_none=True) + to_list(
        ports, check_none=True)
    container.resources = container.resources or resources
    container.resources = sanitize_resources(container.resources)
    container.image_pull_policy = container.image_pull_policy or image_pull_policy
    container.image = container.image or image

    if not any([container.command, container.args]):
        container.command = command
        container.args = args

    return sanitize_container_command_args(container)
Пример #3
0
 def test_empty_dict_sanitize_resources(self):
     resources = sanitize_resources({})
     assert resources is None
Пример #4
0
 def test_empty_sanitize_resources(self):
     resources = sanitize_resources(None)
     assert resources is None
Пример #5
0
def sanitize_container(
    container: k8s_schemas.V1Container, ) -> k8s_schemas.V1Container:
    container = sanitize_container_command_args(container)
    container.resources = sanitize_resources(container.resources)
    return sanitize_container_env(container)