def test_populate_job_yaml_multiple_image_secrets(): environment = DaskKubernetesEnvironment( image_pull_secret="good-secret,dangerous-secret") file_path = os.path.dirname( prefect.environments.execution.dask.k8s.__file__) with open(path.join(file_path, "job.yaml")) as job_file: job = yaml.safe_load(job_file) with set_temporary_config({ "cloud.graphql": "gql_test", "cloud.auth_token": "auth_test", "logging.extra_loggers": ["test_logger"], }): with prefect.context(flow_run_id="id_test", namespace="namespace_test"): yaml_obj = environment._populate_job_yaml( yaml_obj=job, docker_name="test1/test2:test3") expected_secrets = [ dict(name="good-secret"), dict(name="dangerous-secret") ] assert yaml_obj["spec"]["template"]["spec"][ "imagePullSecrets"] == expected_secrets
def test_populate_job_yaml(): environment = DaskKubernetesEnvironment(work_stealing=True, scheduler_logs=True) file_path = os.path.dirname(prefect.environments.execution.dask.k8s.__file__) with open(path.join(file_path, "job.yaml")) as job_file: job = yaml.safe_load(job_file) with set_temporary_config( { "cloud.graphql": "gql_test", "cloud.auth_token": "auth_test", "logging.extra_loggers": ["test_logger"], } ): with prefect.context(flow_run_id="id_test", namespace="namespace_test"): yaml_obj = environment._populate_job_yaml( yaml_obj=job, docker_name="test1/test2:test3" ) assert yaml_obj["metadata"]["name"] == "prefect-dask-job-{}".format( environment.identifier_label ) assert ( yaml_obj["metadata"]["labels"]["prefect.io/identifier"] == environment.identifier_label ) assert yaml_obj["metadata"]["labels"]["prefect.io/flow_run_id"] == "id_test" assert ( yaml_obj["spec"]["template"]["metadata"]["labels"]["prefect.io/identifier"] == environment.identifier_label ) env = yaml_obj["spec"]["template"]["spec"]["containers"][0]["env"] assert env[0]["value"] == "gql_test" assert env[1]["value"] == "auth_test" assert env[2]["value"] == "id_test" assert env[3]["value"] == "namespace_test" assert env[4]["value"] == "test1/test2:test3" assert env[12]["value"] == "True" assert ( env[14]["value"] == "['test_logger', 'dask_kubernetes.core', 'distributed.deploy.adaptive', 'kubernetes', 'distributed.scheduler']" ) assert ( yaml_obj["spec"]["template"]["spec"]["containers"][0]["image"] == "test1/test2:test3" )
def test_populate_job_yaml(): environment = DaskKubernetesEnvironment() file_path = os.path.dirname(prefect.environments.execution.dask.k8s.__file__) with open(path.join(file_path, "job.yaml")) as job_file: job = yaml.safe_load(job_file) with set_temporary_config( {"cloud.graphql": "gql_test", "cloud.auth_token": "auth_test"} ): with prefect.context(flow_run_id="id_test", namespace="namespace_test"): yaml_obj = environment._populate_job_yaml( yaml_obj=job, docker_name="test1/test2:test3", flow_file_path="test4" ) assert yaml_obj["metadata"]["name"] == "prefect-dask-job-{}".format( environment.identifier_label ) assert yaml_obj["metadata"]["labels"]["identifier"] == environment.identifier_label assert yaml_obj["metadata"]["labels"]["flow_run_id"] == "id_test" assert ( yaml_obj["spec"]["template"]["metadata"]["labels"]["identifier"] == environment.identifier_label ) env = yaml_obj["spec"]["template"]["spec"]["containers"][0]["env"] assert env[0]["value"] == "gql_test" assert env[1]["value"] == "auth_test" assert env[2]["value"] == "id_test" assert env[3]["value"] == "namespace_test" assert env[4]["value"] == "test1/test2:test3" assert env[5]["value"] == "test4" assert ( yaml_obj["spec"]["template"]["spec"]["containers"][0]["image"] == "test1/test2:test3" )