Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

k8s_log module traceback when no resource found #479

Closed
tardis4500 opened this issue Jun 15, 2022 · 2 comments · Fixed by #493
Closed

k8s_log module traceback when no resource found #479

tardis4500 opened this issue Jun 15, 2022 · 2 comments · Fixed by #493
Labels
has_pr type/bug Something isn't working

Comments

@tardis4500
Copy link

SUMMARY

When no pod is found, the k8s_log module fails with a Python traceback from the module rather than some kind of "resource not found' error

ISSUE TYPE
  • Bug Report
COMPONENT NAME

k8s_log

ANSIBLE VERSION
ansible [core 2.12.6]
  config file = /home/jgs10292/.ansible.cfg
  configured module search path = ['/home/jgs10292/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/ansible
  ansible collection location = /home/jgs10292/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/jgs10292/.virtualenvs/tntmgr-apg/bin/ansible
  python version = 3.9.13 (main, May 31 2022, 10:51:09) [GCC 9.4.0]
  jinja version = 3.1.2
  libyaml = True
COLLECTION VERSION
kubernetes.core 2.3.1
CONFIGURATION
(Intentionally left blank)
OS / ENVIRONMENT
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
STEPS TO REPRODUCE

You will need an appropriate values.yml file for your local values.

- name: Test Bug
  hosts: localhost
  gather_facts: false
  vars_files:
    - values.yml
  tasks:
    - name: Get the logs from a pod by name
      kubernetes.core.k8s_log:
        kubeconfig: "{{ kubeconfig }}"
        context: "{{ context }}"
        namespace: "{{ namespace }}"
        name: "{{ pod_name }}"
      environment:
        GOOGLE_APPLICATION_CREDENTIALS: "{{ gke_key }}"

    - name: Get the logs from a non-existent pod by name
      kubernetes.core.k8s_log:
        kubeconfig: "{{ kubeconfig }}"
        context: "{{ context }}"
        namespace: "{{ namespace }}"
        name: "{{ pod_name }}-bogus"
      environment:
        GOOGLE_APPLICATION_CREDENTIALS: "{{ gke_key }}"
EXPECTED RESULTS

The second task should fail with an error similar to that returned by kubectl

Error from server (NotFound): pods "podname-bogus" not found
ACTUAL RESULTS

There is an internal traceback from the module.

TASK [Get the logs from a non-existent pod by name] ************************************************************************************************************************task path: /mnt/c/Users/jgs10292/Downloads/playbook.yml:16
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: jgs10292
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /tmp/jgs10292_ansible_tmp `"&& mkdir "` echo /tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691 `" && echo ansible-tmp-1655303065.76282-5459-109273293688691="` echo /tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691 `" ) && sleep 0'  
Using module file /home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/ansible_collections/kubernetes/core/plugins/modules/k8s_log.py
<127.0.0.1> PUT /home/jgs10292/.ansible/tmp/ansible-local-5431_t_epbiv/tmp4qavnorc TO /tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691/AnsiballZ_k8s_log.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691/ /tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691/AnsiballZ_k8s_log.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'GOOGLE_APPLICATION_CREDENTIALS=/home/jgs10292/.ssh/dbmanager_gcp_val.json /home/jgs10292/.virtualenvs/tntmgr-apg/bin/python /tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691/AnsiballZ_k8s_log.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py", line 55, in inner
    resp = func(self, *args, **kwargs)
  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py", line 247, in request
    return self.client.call_api(
  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py", line 348, in call_api
    return self.__call_api(resource_path, method,
  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py", line 180, in __call_api
    response_data = self.request(
  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py", line 373, in request
    return self.rest_client.GET(url,
  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/rest.py", line 239, in GET
    return self.request("GET", url,
  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/rest.py", line 233, in request
    raise ApiException(http_resp=r)
kubernetes.client.exceptions.ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Audit-Id': '0b118845-1475-4b47-a829-9769d8afc22e', 'Cache-Control': 'no-cache, private', 'Content-Type': 'application/json', 'Date': 'Wed, 15 Jun 2022 14:24:26 GMT', 'Content-Length': '250'})
HTTP response body: b'{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"pods \\"tenantmanager-test-6bc88d7649-hml6s-bogus\\" not found","reason":"NotFound","details":{"name":"tenantmanager-test-6bc88d7649-hml6s-bogus","kind":"pods"},"code":404}\n'


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691/AnsiballZ_k8s_log.py", line 107, in <module>
    _ansiballz_main()
  File "/tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691/AnsiballZ_k8s_log.py", line 99, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691/AnsiballZ_k8s_log.py", line 47, in invoke_module
    runpy.run_module(mod_name='ansible_collections.kubernetes.core.plugins.modules.k8s_log', init_globals=dict(_module_fqn='ansible_collections.kubernetes.core.plugins.modules.k8s_log', _modlib_path=modlib_path),
  File "/usr/local/lib/python3.9/runpy.py", line 225, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/local/lib/python3.9/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_kubernetes.core.k8s_log_payload_rf22kuup/ansible_kubernetes.core.k8s_log_payload.zip/ansible_collections/kubernetes/core/plugins/modules/k8s_log.py", line 263, in <module>
  File "/tmp/ansible_kubernetes.core.k8s_log_payload_rf22kuup/ansible_kubernetes.core.k8s_log_payload.zip/ansible_collections/kubernetes/core/plugins/modules/k8s_log.py", line 259, in main
  File "/tmp/ansible_kubernetes.core.k8s_log_payload_rf22kuup/ansible_kubernetes.core.k8s_log_payload.zip/ansible_collections/kubernetes/core/plugins/modules/k8s_log.py", line 189, in execute_module
  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py", line 107, in get
    return self.request('get', path, **kwargs)
  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py", line 57, in inner
    raise api_exception(e)
kubernetes.dynamic.exceptions.NotFoundError: 404
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Audit-Id': '0b118845-1475-4b47-a829-9769d8afc22e', 'Cache-Control': 'no-cache, private', 'Content-Type': 'application/json', 'Date': 'Wed, 15 Jun 2022 14:24:26 GMT', 'Content-Length': '250'})
HTTP response body: b'{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"pods \\"tenantmanager-test-6bc88d7649-hml6s-bogus\\" not found","reason":"NotFound","details":{"name":"tenantmanager-test-6bc88d7649-hml6s-bogus","kind":"pods"},"code":404}\n'
Original traceback: 
  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py", line 55, in inner
    resp = func(self, *args, **kwargs)

  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py", line 247, in request
    return self.client.call_api(

  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py", line 348, in call_api
    return self.__call_api(resource_path, method,

  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py", line 180, in __call_api
    response_data = self.request(

  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py", line 373, in request
    return self.rest_client.GET(url,

  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/rest.py", line 239, in GET
    return self.request("GET", url,

  File "/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/rest.py", line 233, in request
    raise ApiException(http_resp=r)

fatal: [localhost]: FAILED! => {
    "changed": false,
    "invocation": {
        "context": "k8s_gke_ssa_val",
        "kubeconfig": "/tenantmanager/cfg/kubeconfig.yml",
        "module_args": {
            "context": "k8s_gke_ssa_val",
            "kubeconfig": "/tenantmanager/cfg/kubeconfig.yml",
            "name": "tenantmanager-test-6bc88d7649-hml6s-bogus",
            "namespace": "tenantmanager-devops"
        },
        "name": "tenantmanager-test-6bc88d7649-hml6s-bogus",
        "namespace": "tenantmanager-devops"
    },
    "module_stderr": "Traceback (most recent call last):\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py\", line 55, in inner\n    resp = func(self, *args, **kwargs)\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py\", line 247, in request\n    return self.client.call_api(\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py\", line 348, in call_api\n    return self.__call_api(resource_path, method,\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py\", line 180, in __call_api\n    response_data = self.request(\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py\", line 373, in request\n    return self.rest_client.GET(url,\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/rest.py\", line 239, in GET\n    return self.request(\"GET\", url,\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/rest.py\", line 233, in request\n    raise ApiException(http_resp=r)\nkubernetes.client.exceptions.ApiException: (404)\nReason: Not Found\nHTTP response headers: HTTPHeaderDict({'Audit-Id': '0b118845-1475-4b47-a829-9769d8afc22e', 'Cache-Control': 'no-cache, private', 'Content-Type': 'application/json', 'Date': 'Wed, 15 Jun 2022 14:24:26 GMT', 'Content-Length': '250'})\nHTTP response body: b'{\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Failure\",\"message\":\"pods \\\\\"tenantmanager-test-6bc88d7649-hml6s-bogus\\\\\" not found\",\"reason\":\"NotFound\",\"details\":{\"name\":\"tenantmanager-test-6bc88d7649-hml6s-bogus\",\"kind\":\"pods\"},\"code\":404}\\n'\n\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691/AnsiballZ_k8s_log.py\", line 107, in <module>\n    _ansiballz_main()\n  File \"/tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691/AnsiballZ_k8s_log.py\", line 99, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/tmp/jgs10292_ansible_tmp/ansible-tmp-1655303065.76282-5459-109273293688691/AnsiballZ_k8s_log.py\", line 47, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.kubernetes.core.plugins.modules.k8s_log', init_globals=dict(_module_fqn='ansible_collections.kubernetes.core.plugins.modules.k8s_log', _modlib_path=modlib_path),\n  File \"/usr/local/lib/python3.9/runpy.py\", line 225, in run_module\n    
return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/local/lib/python3.9/runpy.py\", line 97, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/local/lib/python3.9/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_kubernetes.core.k8s_log_payload_rf22kuup/ansible_kubernetes.core.k8s_log_payload.zip/ansible_collections/kubernetes/core/plugins/modules/k8s_log.py\", line 263, in <module>\n  File \"/tmp/ansible_kubernetes.core.k8s_log_payload_rf22kuup/ansible_kubernetes.core.k8s_log_payload.zip/ansible_collections/kubernetes/core/plugins/modules/k8s_log.py\", line 259, in main\n  File \"/tmp/ansible_kubernetes.core.k8s_log_payload_rf22kuup/ansible_kubernetes.core.k8s_log_payload.zip/ansible_collections/kubernetes/core/plugins/modules/k8s_log.py\", line 189, in execute_module\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py\", line 107, in get\n    return self.request('get', path, **kwargs)\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py\", line 57, in inner\n    raise api_exception(e)\nkubernetes.dynamic.exceptions.NotFoundError: 404\nReason: Not Found\nHTTP response headers: HTTPHeaderDict({'Audit-Id': '0b118845-1475-4b47-a829-9769d8afc22e', 'Cache-Control': 'no-cache, private', 'Content-Type': 'application/json', 'Date': 'Wed, 15 Jun 2022 14:24:26 GMT', 'Content-Length': '250'})\nHTTP response body: b'{\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Failure\",\"message\":\"pods \\\\\"tenantmanager-test-6bc88d7649-hml6s-bogus\\\\\" not found\",\"reason\":\"NotFound\",\"details\":{\"name\":\"tenantmanager-test-6bc88d7649-hml6s-bogus\",\"kind\":\"pods\"},\"code\":404}\\n'\nOriginal traceback: \n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py\", line 55, in inner\n    resp = func(self, *args, **kwargs)\n\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/dynamic/client.py\", line 247, in request\n    return self.client.call_api(\n\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py\", line 348, in call_api\n    return self.__call_api(resource_path, method,\n\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py\", line 180, in __call_api\n    response_data = self.request(\n\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/api_client.py\", line 373, in request\n    return self.rest_client.GET(url,\n\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/rest.py\", line 239, in GET\n    return self.request(\"GET\", url,\n\n  File \"/home/jgs10292/.virtualenvs/tntmgr-apg/lib/python3.9/site-packages/kubernetes/client/rest.py\", line 233, in request\n    raise ApiException(http_resp=r)\n\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}
@gravesm
Copy link
Member

gravesm commented Jun 27, 2022

Thanks for filing the issue @tardis4500.

@abikouo
Copy link
Contributor

abikouo commented Jul 22, 2022

@tardis4500 could you please test using #493? Thanks

softwarefactory-project-zuul bot pushed a commit that referenced this issue Jul 28, 2022
k8s_log - fix module traceback when resource not found

Depends-on: #495
SUMMARY

closes #479

ISSUE TYPE


Bugfix Pull Request

COMPONENT NAME

k8s_log

Reviewed-by: Mike Graves <[email protected]>
StinkyBenji referenced this issue in StinkyBenji/ansible-tekton-demo Nov 1, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[kubernetes.core](https://togithub.com/ansible-collections/kubernetes.core)
| galaxy-collection | minor | `2.2.3` -> `2.4.0` |

---

### Release Notes

<details>
<summary>ansible-collections/kubernetes.core (kubernetes.core)</summary>

###
[`v2.4.0`](https://togithub.com/ansible-collections/kubernetes.core/blob/HEAD/CHANGELOG.rst#v240)

[Compare
Source](https://togithub.com/ansible-collections/kubernetes.core/compare/2.3.2...2.4.0)

\======

## Major Changes

- refactor K8sAnsibleMixin into module_utils/k8s/
([https://github.com/ansible-collections/kubernetes.core/pull/481](https://togithub.com/ansible-collections/kubernetes.core/pull/481)).

## Minor Changes

- Adjust k8s_user_impersonation tests to be compatible with Kubernetes
1.24
([https://github.com/ansible-collections/kubernetes.core/pull/520](https://togithub.com/ansible-collections/kubernetes.core/pull/520)).
- add support for dry run with kubernetes client version >=18.20
([https://github.com/ansible-collections/kubernetes.core/pull/245](https://togithub.com/ansible-collections/kubernetes.core/pull/245)).
-   added ignore.txt for Ansible 2.14 devel branch.
- fixed module_defaults by removing routing hacks from runtime.yml
([https://github.com/ansible-collections/kubernetes.core/pull/347](https://togithub.com/ansible-collections/kubernetes.core/pull/347)).
- helm - add support for -set-file, -set-json, -set and -set-string
options when running helm install
([https://github.com/ansible-collections/kubernetes.core/issues/533](https://togithub.com/ansible-collections/kubernetes.core/issues/533)).
- helm - add support for helm dependency update
([https://github.com/ansible-collections/kubernetes.core/pull/208](https://togithub.com/ansible-collections/kubernetes.core/pull/208)).
- helm - add support for post-renderer flag
([https://github.com/ansible-collections/kubernetes.core/issues/30](https://togithub.com/ansible-collections/kubernetes.core/issues/30)).
- helm - add support for timeout cli parameter to allow setting Helm
timeout independent of wait
([https://github.com/ansible-collections/kubernetes.core/issues/67](https://togithub.com/ansible-collections/kubernetes.core/issues/67)).
- helm - add support for wait parameter for helm uninstall command.
(https://github.com/ansible-collections/kubernetes/core/issues/33).
- helm - support repo location for helm diff
([https://github.com/ansible-collections/kubernetes.core/issues/174](https://togithub.com/ansible-collections/kubernetes.core/issues/174)).
- helm - when ansible is executed in check mode, return the diff between
what's deployed and what will be deployed.
- helm, helm_plugin, helm_info, helm_plugin_info, kubectl - add support
for in-memory kubeconfig.
([https://github.com/ansible-collections/kubernetes.core/issues/492](https://togithub.com/ansible-collections/kubernetes.core/issues/492)).
- helm_info - add hooks, notes and manifest as part of returned
information
([https://github.com/ansible-collections/kubernetes.core/pull/546](https://togithub.com/ansible-collections/kubernetes.core/pull/546)).
- helm_info - add release state as a module argument
([https://github.com/ansible-collections/kubernetes.core/issues/377](https://togithub.com/ansible-collections/kubernetes.core/issues/377)).
- helm_info - added possibility to get all values by adding
get_all_values parameter
([https://github.com/ansible-collections/kubernetes.core/pull/531](https://togithub.com/ansible-collections/kubernetes.core/pull/531)).
- helm_plugin - Add plugin_version parameter to the helm_plugin module
([https://github.com/ansible-collections/kubernetes.core/issues/157](https://togithub.com/ansible-collections/kubernetes.core/issues/157)).
-   helm_plugin - Add support for helm plugin update using state=update.
- helm_repository - Ability to replace (overwrite) the repo if it
already exists by forcing
([https://github.com/ansible-collections/kubernetes.core/issues/491](https://togithub.com/ansible-collections/kubernetes.core/issues/491)).
- helm_repository - add support for pass-credentials cli parameter
([https://github.com/ansible-collections/kubernetes.core/pull/282](https://togithub.com/ansible-collections/kubernetes.core/pull/282)).
- helm_repository - added support for `host`, `api_key`,
`validate_certs`, and `ca_cert`.
- helm_repository - mark `pass_credentials` as no_log=True to silence
false warning
([https://github.com/ansible-collections/kubernetes.core/issues/412](https://togithub.com/ansible-collections/kubernetes.core/issues/412)).
- helm_template - add name (NAME of release) and disable_hook as
optional module arguments
([https://github.com/ansible-collections/kubernetes.core/issues/313](https://togithub.com/ansible-collections/kubernetes.core/issues/313)).
- helm_template - add show_only and release_namespace as module
arguments
([https://github.com/ansible-collections/kubernetes.core/issues/313](https://togithub.com/ansible-collections/kubernetes.core/issues/313)).
- helm_template - add support for -set-file, -set-json, -set and
-set-string options when running helm template
([https://github.com/ansible-collections/kubernetes.core/pull/546](https://togithub.com/ansible-collections/kubernetes.core/pull/546)).
- k8s - add no_proxy support to k8s\*
[https://github.com/ansible-collections/kubernetes.core/pull/272](https://togithub.com/ansible-collections/kubernetes.core/pull/272)2).
- k8s - add support for server_side_apply.
([https://github.com/ansible-collections/kubernetes.core/issues/87](https://togithub.com/ansible-collections/kubernetes.core/issues/87)).
- k8s - add support for user impersonation.
(https://github.com/ansible-collections/kubernetes/core/issues/40).
- k8s - allow resource definition using metadata.generateName
([https://github.com/ansible-collections/kubernetes.core/issues/35](https://togithub.com/ansible-collections/kubernetes.core/issues/35)).
- k8s lookup plugin - Enable turbo mode via environment variable
([https://github.com/ansible-collections/kubernetes.core/issues/291](https://togithub.com/ansible-collections/kubernetes.core/issues/291)).
- k8s, k8s_scale, k8s_service - add support for resource definition as
manifest via.
([https://github.com/ansible-collections/kubernetes.core/issues/451](https://togithub.com/ansible-collections/kubernetes.core/issues/451)).
- k8s_cp - remove dependency with 'find' executable on remote pod when
state=from_pod
([https://github.com/ansible-collections/kubernetes.core/issues/486](https://togithub.com/ansible-collections/kubernetes.core/issues/486)).
- k8s_drain - Adds `delete_emptydir_data` option to
`k8s_drain.delete_options` to evict pods with an `emptyDir` volume
attached
([https://github.com/ansible-collections/kubernetes.core/pull/322](https://togithub.com/ansible-collections/kubernetes.core/pull/322)).
- k8s_exec - select first container from the pod if none specified
([https://github.com/ansible-collections/kubernetes.core/issues/358](https://togithub.com/ansible-collections/kubernetes.core/issues/358)).
- k8s_exec - update deprecation warning for `return_code`
([https://github.com/ansible-collections/kubernetes.core/issues/417](https://togithub.com/ansible-collections/kubernetes.core/issues/417)).
- k8s_json_patch - minor typo fix in the example section
([https://github.com/ansible-collections/kubernetes.core/issues/411](https://togithub.com/ansible-collections/kubernetes.core/issues/411)).
- k8s_log - add the `all_containers` for retrieving all containers' logs
in the pod(s).
- k8s_log - added the `previous` parameter for retrieving the previously
terminated pod logs
([https://github.com/ansible-collections/kubernetes.core/issues/437](https://togithub.com/ansible-collections/kubernetes.core/issues/437)).
- k8s_log - added the `tail_lines` parameter to limit the number of
lines to be retrieved from the end of the logs
([https://github.com/ansible-collections/kubernetes.core/issues/488](https://togithub.com/ansible-collections/kubernetes.core/issues/488)).
- k8s_rollback - add support for check_mode.
(https://github.com/ansible-collections/kubernetes/core/issues/243).
- k8s_scale - add support for check_mode.
(https://github.com/ansible-collections/kubernetes/core/issues/244).
- kubectl - wait for dd command to complete before proceeding
([https://github.com/ansible-collections/kubernetes.core/pull/321](https://togithub.com/ansible-collections/kubernetes.core/pull/321)).
- kubectl.py - replace distutils.spawn.find_executable with shutil.which
in the kubectl connection plugin
([https://github.com/ansible-collections/kubernetes.core/pull/456](https://togithub.com/ansible-collections/kubernetes.core/pull/456)).

## Bugfixes

- Fix dry_run logic - Pass the value dry_run=All instead of dry_run=True
to the client, add conditional check on kubernetes client version as
this feature is supported only for kubernetes >= 18.20.0
([https://github.com/ansible-collections/kubernetes.core/pull/561](https://togithub.com/ansible-collections/kubernetes.core/pull/561)).
- Fix kubeconfig parameter when multiple config files are provided
([https://github.com/ansible-collections/kubernetes.core/issues/435](https://togithub.com/ansible-collections/kubernetes.core/issues/435)).
- Helm - Fix issue with alternative kubeconfig provided with
validate_certs=False
([https://github.com/ansible-collections/kubernetes.core/issues/538](https://togithub.com/ansible-collections/kubernetes.core/issues/538)).
- Various modules and plugins - use vendored version of
`distutils.version` instead of the deprecated Python standard library
`distutils`
([https://github.com/ansible-collections/kubernetes.core/pull/314](https://togithub.com/ansible-collections/kubernetes.core/pull/314)).
- add missing documentation for filter plugin
kubernetes.core.k8s_config_resource_name
([https://github.com/ansible-collections/kubernetes.core/issues/558](https://togithub.com/ansible-collections/kubernetes.core/issues/558)).
- common - Ensure the label_selectors parameter of \_wait_for method is
optional.
-   common - handle `aliases` passed from inventory and lookup plugins.
- helm_template - evaluate release_values after values_files, insuring
highest precedence (now same behavior as in helm module).
([https://github.com/ansible-collections/kubernetes.core/pull/348](https://togithub.com/ansible-collections/kubernetes.core/pull/348))
-   import exception from `kubernetes.client.rest`.
- k8s - Fix issue with check_mode when using server side apply
([https://github.com/ansible-collections/kubernetes.core/issues/547](https://togithub.com/ansible-collections/kubernetes.core/issues/547)).
- k8s - Fix issue with server side apply with kubernetes release
'25.3.0'
([https://github.com/ansible-collections/kubernetes.core/issues/548](https://togithub.com/ansible-collections/kubernetes.core/issues/548)).
- k8s_cp - add support for check_mode
([https://github.com/ansible-collections/kubernetes.core/issues/380](https://togithub.com/ansible-collections/kubernetes.core/issues/380)).
- k8s_drain - fix error caused by accessing an undefined variable when
pods have local storage
([https://github.com/ansible-collections/kubernetes.core/issues/292](https://togithub.com/ansible-collections/kubernetes.core/issues/292)).
- k8s_info - don't wait on empty List resources
([https://github.com/ansible-collections/kubernetes.core/pull/253](https://togithub.com/ansible-collections/kubernetes.core/pull/253)).
- k8s_info - fix issue when module returns successful true after the
resource cache has been established during periods where communication
to the api-server is not possible
([https://github.com/ansible-collections/kubernetes.core/issues/508](https://togithub.com/ansible-collections/kubernetes.core/issues/508)).
- k8s_log - Fix module traceback when no resource found
([https://github.com/ansible-collections/kubernetes.core/issues/479](https://togithub.com/ansible-collections/kubernetes.core/issues/479)).
- k8s_log - fix exception raised when the name is not provided for
resources requiring.
([https://github.com/ansible-collections/kubernetes.core/issues/514](https://togithub.com/ansible-collections/kubernetes.core/issues/514))
- k8s_scale - fix waiting on statefulset when scaled down to 0 replicas
([https://github.com/ansible-collections/kubernetes.core/issues/203](https://togithub.com/ansible-collections/kubernetes.core/issues/203)).
- module_utils.common - change default opening mode to read-bytes to
avoid bad interpretation of non ascii characters and strings, often
present in 3rd party manifests.
- module_utils/k8s/client.py - fix issue when trying to authenticate
with host, client_cert and client_key parameters only.
- remove binary file from k8s_cp test suite
([https://github.com/ansible-collections/kubernetes.core/pull/298](https://togithub.com/ansible-collections/kubernetes.core/pull/298)).
- use resource prefix when finding resource and apiVersion is v1
([https://github.com/ansible-collections/kubernetes.core/issues/351](https://togithub.com/ansible-collections/kubernetes.core/issues/351)).

## New Modules

- helm_pull - download a chart from a repository and (optionally) unpack
it in local directory.

###
[`v2.3.2`](https://togithub.com/ansible-collections/kubernetes.core/compare/2.3.1...2.3.2)

[Compare
Source](https://togithub.com/ansible-collections/kubernetes.core/compare/2.3.1...2.3.2)

###
[`v2.3.1`](https://togithub.com/ansible-collections/kubernetes.core/blob/HEAD/CHANGELOG.rst#v231)

[Compare
Source](https://togithub.com/ansible-collections/kubernetes.core/compare/2.3.0...2.3.1)

\======

## Bugfixes

- Catch exception raised when the process is waiting for resources
([https://github.com/ansible-collections/kubernetes.core/issues/407](https://togithub.com/ansible-collections/kubernetes.core/issues/407)).
- Remove `omit` placeholder when defining resource using template
parameter
([https://github.com/ansible-collections/kubernetes.core/issues/431](https://togithub.com/ansible-collections/kubernetes.core/issues/431)).
- k8s - fix the issue when trying to delete resources using
label_selectors options
([https://github.com/ansible-collections/kubernetes.core/issues/433](https://togithub.com/ansible-collections/kubernetes.core/issues/433)).
- k8s_cp - fix issue when using parameter local_path with file on
managed node.
([https://github.com/ansible-collections/kubernetes.core/issues/421](https://togithub.com/ansible-collections/kubernetes.core/issues/421)).
- k8s_drain - fix error occurring when trying to drain node with
disable_eviction set to yes
([https://github.com/ansible-collections/kubernetes.core/issues/416](https://togithub.com/ansible-collections/kubernetes.core/issues/416)).

###
[`v2.3.0`](https://togithub.com/ansible-collections/kubernetes.core/blob/HEAD/CHANGELOG.rst#v230)

[Compare
Source](https://togithub.com/ansible-collections/kubernetes.core/compare/2.2.3...2.3.0)

\======

## Minor Changes

- add support for dry run with kubernetes client version >=18.20
([https://github.com/ansible-collections/kubernetes.core/pull/245](https://togithub.com/ansible-collections/kubernetes.core/pull/245)).
- fixed module_defaults by removing routing hacks from runtime.yml
([https://github.com/ansible-collections/kubernetes.core/pull/347](https://togithub.com/ansible-collections/kubernetes.core/pull/347)).
- helm - add support for timeout cli parameter to allow setting Helm
timeout independent of wait
([https://github.com/ansible-collections/kubernetes.core/issues/67](https://togithub.com/ansible-collections/kubernetes.core/issues/67)).
- helm - add support for wait parameter for helm uninstall command.
(https://github.com/ansible-collections/kubernetes/core/issues/33).
- helm - support repo location for helm diff
([https://github.com/ansible-collections/kubernetes.core/issues/174](https://togithub.com/ansible-collections/kubernetes.core/issues/174)).
- helm - when ansible is executed in check mode, return the diff between
what's deployed and what will be deployed.
- helm_info - add release state as a module argument
([https://github.com/ansible-collections/kubernetes.core/issues/377](https://togithub.com/ansible-collections/kubernetes.core/issues/377)).
- helm_plugin - Add plugin_version parameter to the helm_plugin module
([https://github.com/ansible-collections/kubernetes.core/issues/157](https://togithub.com/ansible-collections/kubernetes.core/issues/157)).
-   helm_plugin - Add support for helm plugin update using state=update.
- helm_repository - add support for pass-credentials cli parameter
([https://github.com/ansible-collections/kubernetes.core/pull/282](https://togithub.com/ansible-collections/kubernetes.core/pull/282)).
- helm_repository - added support for `host`, `api_key`,
`validate_certs`, and `ca_cert`.
- helm_template - add show_only and release_namespace as module
arguments
([https://github.com/ansible-collections/kubernetes.core/issues/313](https://togithub.com/ansible-collections/kubernetes.core/issues/313)).
- k8s - add no_proxy support to k8s\*
[https://github.com/ansible-collections/kubernetes.core/pull/272](https://togithub.com/ansible-collections/kubernetes.core/pull/272)2).
- k8s - add support for server_side_apply.
([https://github.com/ansible-collections/kubernetes.core/issues/87](https://togithub.com/ansible-collections/kubernetes.core/issues/87)).
- k8s - add support for user impersonation.
(https://github.com/ansible-collections/kubernetes/core/issues/40).
- k8s - allow resource definition using metadata.generateName
([https://github.com/ansible-collections/kubernetes.core/issues/35](https://togithub.com/ansible-collections/kubernetes.core/issues/35)).
- k8s lookup plugin - Enable turbo mode via environment variable
([https://github.com/ansible-collections/kubernetes.core/issues/291](https://togithub.com/ansible-collections/kubernetes.core/issues/291)).
- k8s_drain - Adds `delete_emptydir_data` option to
`k8s_drain.delete_options` to evict pods with an `emptyDir` volume
attached
([https://github.com/ansible-collections/kubernetes.core/pull/322](https://togithub.com/ansible-collections/kubernetes.core/pull/322)).
- k8s_exec - select first container from the pod if none specified
([https://github.com/ansible-collections/kubernetes.core/issues/358](https://togithub.com/ansible-collections/kubernetes.core/issues/358)).
- k8s_rollback - add support for check_mode.
(https://github.com/ansible-collections/kubernetes/core/issues/243).
- k8s_scale - add support for check_mode.
(https://github.com/ansible-collections/kubernetes/core/issues/244).
- kubectl - wait for dd command to complete before proceeding
([https://github.com/ansible-collections/kubernetes.core/pull/321](https://togithub.com/ansible-collections/kubernetes.core/pull/321)).

## Bugfixes

- Various modules and plugins - use vendored version of
`distutils.version` instead of the deprecated Python standard library
`distutils`
([https://github.com/ansible-collections/kubernetes.core/pull/314](https://togithub.com/ansible-collections/kubernetes.core/pull/314)).
- common - Ensure the label_selectors parameter of \_wait_for method is
optional.
- helm_template - evaluate release_values after values_files, insuring
highest precedence (now same behavior as in helm module).
([https://github.com/ansible-collections/kubernetes.core/pull/348](https://togithub.com/ansible-collections/kubernetes.core/pull/348))
-   import exception from `kubernetes.client.rest`.
- k8s_drain - fix error caused by accessing an undefined variable when
pods have local storage
([https://github.com/ansible-collections/kubernetes.core/issues/292](https://togithub.com/ansible-collections/kubernetes.core/issues/292)).
- k8s_info - don't wait on empty List resources
([https://github.com/ansible-collections/kubernetes.core/pull/253](https://togithub.com/ansible-collections/kubernetes.core/pull/253)).
- k8s_scale - fix waiting on statefulset when scaled down to 0 replicas
([https://github.com/ansible-collections/kubernetes.core/issues/203](https://togithub.com/ansible-collections/kubernetes.core/issues/203)).
- module_utils.common - change default opening mode to read-bytes to
avoid bad interpretation of non ascii characters and strings, often
present in 3rd party manifests.
- remove binary file from k8s_cp test suite
([https://github.com/ansible-collections/kubernetes.core/pull/298](https://togithub.com/ansible-collections/kubernetes.core/pull/298)).
- use resource prefix when finding resource and apiVersion is v1
([https://github.com/ansible-collections/kubernetes.core/issues/351](https://togithub.com/ansible-collections/kubernetes.core/issues/351)).

## New Modules

-   k8s_taint - Taint a node in a Kubernetes/OpenShift cluster

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/StinkyBenji/ansible-tekton-demo).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
has_pr type/bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants