diff --git a/.github/workflows/integration-tests.yaml b/.github/workflows/integration-tests.yaml index be1cc93aa3..4323bf87d9 100644 --- a/.github/workflows/integration-tests.yaml +++ b/.github/workflows/integration-tests.yaml @@ -132,6 +132,8 @@ jobs: - name: create kubernetes cluster uses: helm/kind-action@v1.8.0 + with: + node_image: "kindest/node:v1.29.2" - name: Run integration tests uses: ansible-network/github_actions/.github/actions/ansible_test_integration@main diff --git a/changelogs/fragments/20240222-Collections-util-resource-discovery-fails-when-complex-subresources-present.yml b/changelogs/fragments/20240222-Collections-util-resource-discovery-fails-when-complex-subresources-present.yml new file mode 100644 index 0000000000..d422127aa2 --- /dev/null +++ b/changelogs/fragments/20240222-Collections-util-resource-discovery-fails-when-complex-subresources-present.yml @@ -0,0 +1,3 @@ +--- +bugfixes: + - Resolve Collections util resource discovery fails when complex subresources present (https://github.com/ansible-collections/kubernetes.core/pull/676). diff --git a/plugins/module_utils/client/discovery.py b/plugins/module_utils/client/discovery.py index 848d4bdbcd..44cdb1f699 100644 --- a/plugins/module_utils/client/discovery.py +++ b/plugins/module_utils/client/discovery.py @@ -113,7 +113,7 @@ def get_resources_for_api_version(self, prefix, group, version, preferred): filter(lambda resource: "/" in resource["name"], resources_response) ) for subresource in subresources_raw: - resource, name = subresource["name"].split("/") + resource, name = subresource["name"].split("/", 1) subresources[resource][name] = subresource for resource in resources_raw: diff --git a/tests/integration/targets/k8s_info/tasks/discovery.yml b/tests/integration/targets/k8s_info/tasks/discovery.yml new file mode 100644 index 0000000000..36c01bec4b --- /dev/null +++ b/tests/integration/targets/k8s_info/tasks/discovery.yml @@ -0,0 +1,32 @@ +--- +# Testing fix for issue https://github.com/ansible-collections/kubernetes.core/pull/676 +- vars: + kubevirt_release: "v1.1.1" + block: + - name: Delete existing namespace + kubernetes.core.k8s: + kind: namespace + namespace: kubevirt + state: absent + + - name: Create kubevirt resources + kubernetes.core.k8s: + state: present + apply: true + src: "{{ item }}" + with_items: + - "https://github.com/kubevirt/kubevirt/releases/download/{{ kubevirt_release }}/kubevirt-operator.yaml" + - "https://github.com/kubevirt/kubevirt/releases/download/{{ kubevirt_release }}/kubevirt-cr.yaml" + + - name: Read kubevirt Deployment + k8s_info: + kind: Deployment + namespace: kubevirt + always: + - name: Delete existing namespace + kubernetes.core.k8s: + kind: namespace + namespace: kubevirt + state: absent + wait: true + ignore_errors: true diff --git a/tests/integration/targets/k8s_info/tasks/main.yml b/tests/integration/targets/k8s_info/tasks/main.yml index f15274a58a..7235564033 100644 --- a/tests/integration/targets/k8s_info/tasks/main.yml +++ b/tests/integration/targets/k8s_info/tasks/main.yml @@ -3,3 +3,4 @@ with_items: - wait - api-server-caching + - discovery