def test_get_init_resources(self): assert get_init_resources() == k8s_schemas.V1ResourceRequirements( limits={ "cpu": "1", "memory": "200Mi" }, requests={ "cpu": "0.1", "memory": "20Mi" }, )
def test_get_auth_context_container(self): container = get_auth_context_container( polyaxon_init=V1PolyaxonInitContainer( image="foo/foo", image_tag="", image_pull_policy="IfNotPresent"), env=[], ) assert container.name == INIT_AUTH_CONTAINER assert container.image == "foo/foo" assert container.image_pull_policy == "IfNotPresent" assert container.command == ["polyaxon", "initializer", "auth"] assert container.args is None assert container.env == [] assert container.resources == get_init_resources() assert container.volume_mounts == [ get_auth_context_mount(read_only=False) ]
def test_get_store_container_bucket_stores(self): mount_path = "/test-path" resource1 = V1K8sResourceType( name="non_mount_test1", schema=V1K8sResourceSchema(name="ref", items=["item1", "item2"]), is_requested=False, ) store = V1ConnectionType( name="test_gcs", kind=V1ConnectionKind.GCS, schema=V1BucketConnection(bucket="gs//:foo"), secret=resource1.schema, ) container = get_store_container( polyaxon_init=V1PolyaxonInitContainer( image="foo/foo", image_tag="", image_pull_policy="IfNotPresent"), connection=store, artifacts=None, mount_path=mount_path, ) assert container.name == generate_container_name( INIT_ARTIFACTS_CONTAINER_PREFIX, store.name) assert container.image == "foo/foo" assert container.image_pull_policy == "IfNotPresent" assert container.command == ["/bin/sh", "-c"] assert container.args == [ get_volume_args(store=store, mount_path=mount_path, artifacts=None) ] assert container.env is not None assert container.env_from == [] assert container.resources == get_init_resources() assert container.volume_mounts == [ get_connections_context_mount(name=get_volume_name(mount_path), mount_path=mount_path) ]
def test_get_git_init_container(self): connection = V1ConnectionType( name="user/foo", kind=V1ConnectionKind.GIT, schema=V1GitConnection(url="foo.com"), ) container = get_git_init_container( polyaxon_init=V1PolyaxonInitContainer(image="foo", image_tag=""), connection=connection, contexts=PluginsContextsSpec.from_config(V1Plugins(auth=True)), ) assert container.name == INIT_GIT_CONTAINER.format(connection.name) assert container.image == "foo" assert container.image_pull_policy is None assert container.command == ["polyaxon", "initializer", "git"] assert container.env == get_connection_env_var(connection=connection, secret=None) assert container.resources == get_init_resources() assert container.volume_mounts == [ get_connections_context_mount( name=constants.CONTEXT_VOLUME_ARTIFACTS, mount_path=CONTEXT_MOUNT_ARTIFACTS, ), get_auth_context_mount(read_only=True), ] container = get_git_init_container( polyaxon_init=V1PolyaxonInitContainer( image="init/init", image_tag="", image_pull_policy="IfNotPresent"), connection=connection, contexts=PluginsContextsSpec.from_config(V1Plugins(auth=True)), ) assert container.name == INIT_GIT_CONTAINER.format(connection.name) assert container.image == "init/init" assert container.image_pull_policy == "IfNotPresent" assert container.command == ["polyaxon", "initializer", "git"] assert container.args == [ "--repo_path={}/{}".format(CONTEXT_MOUNT_ARTIFACTS, connection.name), "--url={}".format(connection.schema.url), ] assert container.resources == get_init_resources() assert container.volume_mounts == [ get_connections_context_mount( name=constants.CONTEXT_VOLUME_ARTIFACTS, mount_path=CONTEXT_MOUNT_ARTIFACTS, ), get_auth_context_mount(read_only=True), ] connection = V1ConnectionType( name="user/foo", kind=V1ConnectionKind.GIT, schema=V1GitConnection( url="foo.com", revision="00b9d2ea01c40f58d6b4051319f9375675a43c02"), ) container = get_git_init_container( polyaxon_init=V1PolyaxonInitContainer( image="init/init", image_tag="", image_pull_policy="IfNotPresent"), connection=connection, mount_path="/somepath", contexts=PluginsContextsSpec.from_config(V1Plugins(auth=True)), ) assert container.name == INIT_GIT_CONTAINER.format(connection.name) assert container.image == "init/init" assert container.image_pull_policy == "IfNotPresent" assert container.command == ["polyaxon", "initializer", "git"] assert container.args == [ "--repo_path=/somepath/{}".format(connection.name), "--url={}".format(connection.schema.url), "--revision=00b9d2ea01c40f58d6b4051319f9375675a43c02", ] assert container.resources == get_init_resources() assert container.volume_mounts == [ get_connections_context_mount(name=get_volume_name("/somepath"), mount_path="/somepath"), get_auth_context_mount(read_only=True), ]
def test_get_dockerfile_init_container(self): dockerfile_args = V1DockerfileType(image="test/test") container = get_dockerfile_init_container( polyaxon_init=V1PolyaxonInitContainer(image="foo", image_tag=""), dockerfile_args=dockerfile_args, env=None, contexts=PluginsContextsSpec.from_config(V1Plugins()), run_path="test", ) assert INIT_DOCKERFILE_CONTAINER.format("") in container.name assert container.image == "foo" assert container.image_pull_policy is None assert container.command == ["polyaxon", "docker", "generate"] assert container.args == [ "--build-context={}".format(dockerfile_args.to_dict(dump=True)), "--destination={}".format(CONTEXT_MOUNT_ARTIFACTS), "--copy-path={}".format( CONTEXT_MOUNT_RUN_OUTPUTS_FORMAT.format("test")), ] assert container.env == [get_run_instance_env_var()] assert container.resources == get_init_resources() assert container.volume_mounts == [ get_connections_context_mount( name=constants.CONTEXT_VOLUME_ARTIFACTS, mount_path=CONTEXT_MOUNT_ARTIFACTS, ), get_auth_context_mount(read_only=True), ] dockerfile_args = V1DockerfileType( image="test/test", lang_env="LANG", run=["step1", "step2"], env=[["key1", "val1"], ["key2", "val2"]], uid=2222, gid=2222, ) container = get_dockerfile_init_container( polyaxon_init=V1PolyaxonInitContainer( image="init/init", image_tag="", image_pull_policy="IfNotPresent"), env=[], dockerfile_args=dockerfile_args, mount_path="/somepath", contexts=PluginsContextsSpec.from_config(V1Plugins()), run_path="test", ) assert INIT_DOCKERFILE_CONTAINER.format("") in container.name assert container.image == "init/init" assert container.image_pull_policy == "IfNotPresent" assert container.command == ["polyaxon", "docker", "generate"] assert container.args == [ "--build-context={}".format(dockerfile_args.to_dict(dump=True)), "--destination=/somepath", "--copy-path={}".format( CONTEXT_MOUNT_RUN_OUTPUTS_FORMAT.format("test")), ] assert container.env == [get_run_instance_env_var()] assert container.resources == get_init_resources() assert container.volume_mounts == [ get_connections_context_mount(name=get_volume_name("/somepath"), mount_path="/somepath"), get_auth_context_mount(read_only=True), ]