Skip to content

Commit 53fc1a9

Browse files
Change KPO node_selectors warning to proper deprecationwarning (#15507)
Changes the warning KPO raises when `node_selectors` is used into a `DeprecationWarning` and also simplifies that code path.
1 parent 344e829 commit 53fc1a9

File tree

4 files changed

+25
-17
lines changed

4 files changed

+25
-17
lines changed

airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -250,12 +250,14 @@ def __init__( # pylint: disable=too-many-arguments,too-many-locals
250250
self.image_pull_policy = image_pull_policy
251251
if node_selectors:
252252
# Node selectors is incorrect based on k8s API
253-
warnings.warn("node_selectors is deprecated. Please use node_selector instead.")
254-
self.node_selector = node_selectors or {}
253+
warnings.warn(
254+
"node_selectors is deprecated. Please use node_selector instead.", DeprecationWarning
255+
)
256+
self.node_selector = node_selectors
255257
elif node_selector:
256-
self.node_selector = node_selector or {}
258+
self.node_selector = node_selector
257259
else:
258-
self.node_selector = None
260+
self.node_selector = {}
259261
self.annotations = annotations or {}
260262
self.affinity = convert_affinity(affinity) if affinity else k8s.V1Affinity()
261263
self.k8s_resources = convert_resources(resources) if resources else {}

kubernetes_tests/test_kubernetes_pod_operator.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ def setUp(self):
105105
'hostNetwork': False,
106106
'imagePullSecrets': [],
107107
'initContainers': [],
108+
'nodeSelector': {},
108109
'restartPolicy': 'Never',
109110
'securityContext': {},
110111
'serviceAccountName': 'default',
@@ -914,6 +915,7 @@ def test_pod_template_file(
914915
'hostNetwork': False,
915916
'imagePullSecrets': [],
916917
'initContainers': [],
918+
'nodeSelector': {},
917919
'restartPolicy': 'Never',
918920
'securityContext': {},
919921
'serviceAccountName': 'default',

kubernetes_tests/test_kubernetes_pod_operator_backcompat.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ def setUp(self):
103103
'hostNetwork': False,
104104
'imagePullSecrets': [],
105105
'initContainers': [],
106+
'nodeSelector': {},
106107
'restartPolicy': 'Never',
107108
'securityContext': {},
108109
'serviceAccountName': 'default',

tests/providers/cncf/kubernetes/operators/test_kubernetes_pod.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -563,19 +563,22 @@ def test_node_selector(self):
563563
assert sanitized_pod["spec"]["nodeSelector"] == node_selector
564564

565565
# repeat tests using deprecated parameter
566-
k = KubernetesPodOperator(
567-
namespace="default",
568-
image="ubuntu:16.04",
569-
cmds=["bash", "-cx"],
570-
arguments=["echo 10"],
571-
labels={"foo": "bar"},
572-
name="name",
573-
task_id="task",
574-
in_cluster=False,
575-
do_xcom_push=False,
576-
cluster_context="default",
577-
node_selectors=node_selector,
578-
)
566+
with pytest.warns(
567+
DeprecationWarning, match="node_selectors is deprecated. Please use node_selector instead."
568+
):
569+
k = KubernetesPodOperator(
570+
namespace="default",
571+
image="ubuntu:16.04",
572+
cmds=["bash", "-cx"],
573+
arguments=["echo 10"],
574+
labels={"foo": "bar"},
575+
name="name",
576+
task_id="task",
577+
in_cluster=False,
578+
do_xcom_push=False,
579+
cluster_context="default",
580+
node_selectors=node_selector,
581+
)
579582

580583
pod = k.create_pod_request_obj()
581584
sanitized_pod = self.sanitize_for_serialization(pod)

0 commit comments

Comments
 (0)