mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-05-13 13:02:01 +00:00
lookup: return list even if single item found (#117)
Always return list from k8s lookup plugin Fixes: #9 Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
This commit is contained in:
3
changelogs/fragments/9_lookup_k8s.yml
Normal file
3
changelogs/fragments/9_lookup_k8s.yml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
bugfixes:
|
||||||
|
- k8s - lookup should return list even if single item is found (https://github.com/ansible-collections/kubernetes.core/issues/9).
|
||||||
@@ -156,6 +156,14 @@
|
|||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
|
- name: Include lookup_k8s.yml
|
||||||
|
include_tasks:
|
||||||
|
file: tasks/lookup_k8s.yml
|
||||||
|
apply:
|
||||||
|
tags: [ lookup, k8s ]
|
||||||
|
tags:
|
||||||
|
- always
|
||||||
|
|
||||||
roles:
|
roles:
|
||||||
- role: helm
|
- role: helm
|
||||||
tags:
|
tags:
|
||||||
|
|||||||
54
molecule/default/tasks/lookup_k8s.yml
Normal file
54
molecule/default/tasks/lookup_k8s.yml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
---
|
||||||
|
- block:
|
||||||
|
# https://github.com/ansible-collections/kubernetes.core/issues/9
|
||||||
|
- name: Create a namespace with label
|
||||||
|
kubernetes.core.k8s:
|
||||||
|
definition:
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: "app-development-one"
|
||||||
|
labels:
|
||||||
|
namespace_label: "app_development"
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
namespace_info: "{{ lookup('kubernetes.core.k8s', kind='Namespace', label_selector='namespace_label=app_development') }}"
|
||||||
|
|
||||||
|
- name: Check if the returned value is list with a single element
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- namespace_info is iterable
|
||||||
|
- not namespace_info is string
|
||||||
|
- not namespace_info is mapping
|
||||||
|
- namespace_info | length == 1
|
||||||
|
|
||||||
|
- name: Create another namespace with label
|
||||||
|
kubernetes.core.k8s:
|
||||||
|
definition:
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: "app-development-two"
|
||||||
|
labels:
|
||||||
|
namespace_label: "app_development"
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
namespace_info: "{{ lookup('kubernetes.core.k8s', kind='Namespace', label_selector='namespace_label=app_development') }}"
|
||||||
|
|
||||||
|
- name: Check if the returned value is list with 2 elements
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- namespace_info is iterable
|
||||||
|
- not namespace_info is string
|
||||||
|
- not namespace_info is mapping
|
||||||
|
- namespace_info | length == 2
|
||||||
|
|
||||||
|
always:
|
||||||
|
- name: Ensure that namespace is removed
|
||||||
|
k8s:
|
||||||
|
kind: Namespace
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: absent
|
||||||
|
with_items:
|
||||||
|
- app-development-one
|
||||||
|
- app-development-two
|
||||||
@@ -1,20 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Copyright 2018 Red Hat | Ansible
|
# Copyright 2018 Red Hat | Ansible
|
||||||
#
|
#
|
||||||
# This file is part of Ansible
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
#
|
|
||||||
# Ansible is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# Ansible is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
from __future__ import (absolute_import, division, print_function)
|
from __future__ import (absolute_import, division, print_function)
|
||||||
|
|
||||||
@@ -277,7 +264,7 @@ class KubernetesLookup(K8sAnsibleMixin):
|
|||||||
if self.name:
|
if self.name:
|
||||||
return [k8s_obj.to_dict()]
|
return [k8s_obj.to_dict()]
|
||||||
|
|
||||||
return k8s_obj.to_dict().get('items')
|
return [k8s_obj.to_dict().get('items')]
|
||||||
|
|
||||||
|
|
||||||
class LookupModule(LookupBase):
|
class LookupModule(LookupBase):
|
||||||
|
|||||||
Reference in New Issue
Block a user