This is an automated email from the ASF dual-hosted git repository.
dstandish pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 20ecefa416 KPO should use hook's get namespace method to get namespace
(#27516)
20ecefa416 is described below
commit 20ecefa416640bc9a3afc2c86848ca2e2436f6a4
Author: Daniel Standish <[email protected]>
AuthorDate: Sat Nov 5 21:18:21 2022 -0700
KPO should use hook's get namespace method to get namespace (#27516)
Recently hook was updated to allow non-prefixed extra fields. So we need
to check non-prefixed also. Best to use the hook's "get namespace" method.
But the public one has a problem; it defaults to `default`, so we don't know if
it was set to that intentionally. So we use the "protected" method
`_get_namespace`, which doesn't return a default. This allows us, in this case
to check if we can derive from cluster, and only _then_ default to `default`.
In 6.0, get_namespace will have the correct behavior, and we'll update this
again to use it instead.
---
airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py
b/airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py
index 666eb23e96..bf9d229486 100644
--- a/airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py
+++ b/airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py
@@ -571,7 +571,9 @@ class KubernetesPodOperator(BaseOperator):
pod.metadata.name =
PodGenerator.make_unique_pod_id(pod.metadata.name)
if not pod.metadata.namespace:
- hook_namespace =
self.hook.conn_extras.get("extra__kubernetes__namespace")
+ # todo: replace with call to `hook.get_namespace` in 6.0, when it
doesn't default to `default`.
+ # if namespace not actually defined in hook, we want to check k8s
if in cluster
+ hook_namespace = self.hook._get_namespace()
pod_namespace = self.namespace or hook_namespace or
self._incluster_namespace or "default"
pod.metadata.namespace = pod_namespace