def test_env_vars(self): # WHEN env_vars = [ k8s.V1EnvVar(name="ENV1", value="val1"), k8s.V1EnvVar(name="ENV2", value="val2"), k8s.V1EnvVar( name="ENV3", value_from=k8s.V1EnvVarSource(field_ref=k8s.V1ObjectFieldSelector(field_path="status.podIP")), ), ] k = KubernetesPodOperator( namespace='default', image="ubuntu:16.04", cmds=["bash", "-cx"], arguments=["echo 10"], env_vars=env_vars, labels={"foo": "bar"}, name="test-" + str(random.randint(0, 1000000)), task_id="task" + self.get_current_task_name(), in_cluster=False, do_xcom_push=False, ) context = create_context(k) k.execute(context) # THEN actual_pod = self.api_client.sanitize_for_serialization(k.pod) self.expected_pod['spec']['containers'][0]['env'] = [ {'name': 'ENV1', 'value': 'val1'}, {'name': 'ENV2', 'value': 'val2'}, {'name': 'ENV3', 'valueFrom': {'fieldRef': {'fieldPath': 'status.podIP'}}}, ] assert self.expected_pod == actual_pod
def to_k8s_client_obj(self) -> k8s.V1EnvVar: """:return: kubernetes.client.models.V1EnvVar""" return k8s.V1EnvVar( name=self.name, value_from=k8s.V1EnvVarSource(field_ref=k8s.V1ObjectFieldSelector( field_path=self.field_path)), )