def test_kubernetes_environment_variables(self): # Tests the kubernetes environment variables get copied into the worker pods input_environment = {'ENVIRONMENT': 'prod', 'LOG_LEVEL': 'warning'} self.kube_config.kube_env_vars = input_environment worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() for key in input_environment: self.assertIn(key, env) self.assertIn(input_environment[key], env.values()) core_executor = 'AIRFLOW__CORE__EXECUTOR' input_environment = {core_executor: 'NotLocalExecutor'} self.kube_config.kube_env_vars = input_environment worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() self.assertEqual(env[core_executor], 'LocalExecutor')
def test_worker_environment_no_dags_folder(self): self.kube_config.airflow_configmap = '' self.kube_config.git_dags_folder_mount_point = '' self.kube_config.dags_folder = '' worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() self.assertNotIn('AIRFLOW__CORE__DAGS_FOLDER', env)
def test_worker_environment_no_dags_folder(self): self.kube_config.airflow_configmap = '' self.kube_config.git_dags_folder_mount_point = '' self.kube_config.dags_folder = '' worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() self.assertNotIn('AIRFLOW__CORE__DAGS_FOLDER', env)
def test_worker_environment_when_dags_folder_specified(self): dags_folder = '/workers/path/to/dags' self.kube_config.worker_dags_folder = dags_folder worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() self.assertEqual(dags_folder, env['AIRFLOW__CORE__DAGS_FOLDER'])
def test_worker_environment_when_dags_folder_specified(self): self.kube_config.airflow_configmap = 'airflow-configmap' self.kube_config.git_dags_folder_mount_point = '' dags_folder = '/workers/path/to/dags' self.kube_config.dags_folder = dags_folder worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() self.assertEqual(dags_folder, env['AIRFLOW__CORE__DAGS_FOLDER'])
def test_worker_environment_when_dags_folder_specified(self): self.kube_config.airflow_configmap = 'airflow-configmap' self.kube_config.git_dags_folder_mount_point = '' dags_folder = '/workers/path/to/dags' self.kube_config.dags_folder = dags_folder worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() self.assertEqual(dags_folder, env['AIRFLOW__CORE__DAGS_FOLDER'])
def test_kubernetes_environment_variables(self): # Tests the kubernetes environment variables get copied into the worker pods input_environment = { 'ENVIRONMENT': 'prod', 'LOG_LEVEL': 'warning' } self.kube_config.kube_env_vars = input_environment worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() for key in input_environment: self.assertIn(key, env) self.assertIn(input_environment[key], env.values()) core_executor = 'AIRFLOW__CORE__EXECUTOR' input_environment = { core_executor: 'NotLocalExecutor' } self.kube_config.kube_env_vars = input_environment worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() self.assertEqual(env[core_executor], 'LocalExecutor')
def test_worker_environment_dags_folder_using_git_sync(self): self.kube_config.airflow_configmap = 'airflow-configmap' self.kube_config.git_sync_dest = 'repo' self.kube_config.git_subpath = 'dags' self.kube_config.git_dags_folder_mount_point = '/workers/path/to/dags' dags_folder = '{}/{}/{}'.format( self.kube_config.git_dags_folder_mount_point, self.kube_config.git_sync_dest, self.kube_config.git_subpath) worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() self.assertEqual(dags_folder, env['AIRFLOW__CORE__DAGS_FOLDER'])
def test_worker_environment_dags_folder_using_git_sync(self): self.kube_config.airflow_configmap = 'airflow-configmap' self.kube_config.git_sync_dest = 'repo' self.kube_config.git_subpath = 'dags' self.kube_config.git_dags_folder_mount_point = '/workers/path/to/dags' dags_folder = '{}/{}/{}'.format(self.kube_config.git_dags_folder_mount_point, self.kube_config.git_sync_dest, self.kube_config.git_subpath) worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() self.assertEqual(dags_folder, env['AIRFLOW__CORE__DAGS_FOLDER'])
def test_kubernetes_environment_variables_for_init_container(self): self.kube_config.dags_volume_claim = None self.kube_config.dags_volume_host = None self.kube_config.dags_in_image = None # Tests the kubernetes environment variables get copied into the worker pods input_environment = { 'ENVIRONMENT': 'prod', 'LOG_LEVEL': 'warning' } self.kube_config.kube_env_vars = input_environment worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() for key in input_environment: self.assertIn(key, env) self.assertIn(input_environment[key], env.values()) init_containers = worker_config._get_init_containers() self.assertTrue(init_containers) # check not empty env = init_containers[0]['env'] self.assertTrue({'name': 'ENVIRONMENT', 'value': 'prod'} in env) self.assertTrue({'name': 'LOG_LEVEL', 'value': 'warning'} in env)
def test_worker_environment_no_dags_folder(self): self.kube_config.worker_dags_folder = '' worker_config = WorkerConfiguration(self.kube_config) env = worker_config._get_environment() self.assertNotIn('AIRFLOW__CORE__DAGS_FOLDER', env)