kubernetes.core
kubernetes.core copied to clipboard
query('kubernetes.core.k8s', kind='Secret', xxx) Does Not Return Results Inside Loop
SUMMARY
ISSUE TYPE
- Bug Report
COMPONENT NAME
Ansible Collection's query/lookup
ANSIBLE VERSION
ansible [core 2.13.4]
config file = None
configured module search path = ['/Users/bellds/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/Cellar/ansible/6.4.0/libexec/lib/python3.10/site-packages/ansible
ansible collection location = /Users/bellds/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.10.7 (main, Sep 15 2022, 01:51:29) [Clang 14.0.0 (clang-1400.0.29.102)]
jinja version = 3.1.2
libyaml = True
COLLECTION VERSION
bellds@bellds ~ % ansible-galaxy collection list kubernetes.core
# /Users/bellds/.ansible/collections/ansible_collections
Collection Version
--------------- -------
kubernetes.core 2.3.2
# /usr/local/Cellar/ansible/6.4.0/libexec/lib/python3.10/site-packages/ansible_collections
Collection Version
--------------- -------
kubernetes.core 2.3.2
CONFIGURATION
Nothing printed out
bellds@bellds ~ % ansible-config dump --only-changed
bellds@bellds ~ %
OS / ENVIRONMENT
macOS Montegrey
STEPS TO REPRODUCE
The first query in the block never succeeds (e.g. never find the created OCP Secret). I can make the loop retry 100 times and the query will not find the resource. However, if I add a sleep and then do the query again then query passes on the first execution.
- name: Wait for and Get ftm-ssl-cert-secret-db2u to be Provisioned
block:
# For some reason a loop of a hundred will fail but we loop some and then sleep and try again the query will pass.
- name: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret
set_fact:
query_ftm_ssl_cert_secret_db2u: "{{ query('kubernetes.core.k8s', kind='Secret', namespace=k8s_namespace, resource_name='ftm-ssl-cert-secret-db2u') }}"
until: query_ftm_ssl_cert_secret_db2u | length > 0
retries: 20
delay: 10
ignore_errors: yes
- name: Work around for Query Not Finding Secret
command: "sleep 10"
when: query_ftm_ssl_cert_secret_db2u is not defined
- name: 2nd Try - Query for ftm-ssl-cert-secret-db2u Secret
when: query_ftm_ssl_cert_secret_db2u is not defined
set_fact:
query_ftm_ssl_cert_secret_db2u: "{{ query('kubernetes.core.k8s', kind='Secret', namespace=k8s_namespace, resource_name='ftm-ssl-cert-secret-db2u') }}"
until: query_ftm_ssl_cert_secret_db2u | length > 0
retries: 20
delay: 10
EXPECTED RESULTS
I would expect the query in the loop to find the resource (other kubernetes queries work inside loops). I have only seen the happen with Secrets, but not all Secrets.
ACTUAL RESULTS
TASK [1st Try - Query for ftm-ssl-cert-secret-db2u Secret] ***********************************************************************************************************************
task path: /Users/Shared/workspaces/ftm-v4/crc/ansible/playbooks/provisionFtmBaseSampleApps.yaml:42
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (20 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 1,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (19 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 2,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (18 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 3,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (17 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 4,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (16 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 5,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (15 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 6,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (14 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 7,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (13 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 8,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (12 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 9,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (11 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 10,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (10 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 11,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (9 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 12,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (8 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 13,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (7 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 14,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (6 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 15,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (5 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 16,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (4 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 17,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (3 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 18,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (2 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 19,
"changed": false,
"retries": 21
}
FAILED - RETRYING: [localhost]: 1st Try - Query for ftm-ssl-cert-secret-db2u Secret (1 retries left).Result was: {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 20,
"changed": false,
"retries": 21
}
fatal: [localhost]: FAILED! => {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": []
},
"attempts": 20,
"changed": false
}
...ignoring
Read vars_file '../variables.yaml'
TASK [Work around for Query Not Finding Secret] **********************************************************************************************************************************
task path: /Users/Shared/workspaces/ftm-v4/crc/ansible/playbooks/provisionFtmBaseSampleApps.yaml:50
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: bellds
<127.0.0.1> EXEC /bin/sh -c 'echo ~bellds && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /Users/bellds/.ansible/tmp `"&& mkdir "` echo /Users/bellds/.ansible/tmp/ansible-tmp-1666336698.10533-91645-144741221599467 `" && echo ansible-tmp-1666336698.10533-91645-144741221599467="` echo /Users/bellds/.ansible/tmp/ansible-tmp-1666336698.10533-91645-144741221599467 `" ) && sleep 0'
Using module file /usr/local/Cellar/ansible/6.4.0/libexec/lib/python3.10/site-packages/ansible/modules/command.py
<127.0.0.1> PUT /Users/bellds/.ansible/tmp/ansible-local-91307a4nfhq0k/tmph5al7bs8 TO /Users/bellds/.ansible/tmp/ansible-tmp-1666336698.10533-91645-144741221599467/AnsiballZ_command.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /Users/bellds/.ansible/tmp/ansible-tmp-1666336698.10533-91645-144741221599467/ /Users/bellds/.ansible/tmp/ansible-tmp-1666336698.10533-91645-144741221599467/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/local/Cellar/ansible/6.4.0/libexec/bin/python3.10 /Users/bellds/.ansible/tmp/ansible-tmp-1666336698.10533-91645-144741221599467/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /Users/bellds/.ansible/tmp/ansible-tmp-1666336698.10533-91645-144741221599467/ > /dev/null 2>&1 && sleep 0'
changed: [localhost] => {
"changed": true,
"cmd": [
"sleep",
"10"
],
"delta": "0:00:10.014842",
"end": "2022-10-21 08:18:28.481048",
"invocation": {
"module_args": {
"_raw_params": "sleep 10",
"_uses_shell": false,
"argv": null,
"chdir": null,
"creates": null,
"executable": null,
"removes": null,
"stdin": null,
"stdin_add_newline": true,
"strip_empty_ends": true,
"warn": false
}
},
"msg": "",
"rc": 0,
"start": "2022-10-21 08:18:18.466206",
"stderr": "",
"stderr_lines": [],
"stdout": "",
"stdout_lines": []
}
Read vars_file '../variables.yaml'
TASK [2nd Try - Query for ftm-ssl-cert-secret-db2u Secret] ***********************************************************************************************************************
task path: /Users/Shared/workspaces/ftm-v4/crc/ansible/playbooks/provisionFtmBaseSampleApps.yaml:54
ok: [localhost] => {
"ansible_facts": {
"query_ftm_ssl_cert_secret_db2u": [
{
"apiVersion": "v1",
"data": {
REDACTED
},
"type": "kubernetes.io/tls"
}
]
},
"attempts": 1,
"changed": false
}
Read vars_file '../variables.yaml'
TASK [Work around for Query Not Finding Secret] **********************************************************************************************************************************
task path: /Users/Shared/workspaces/ftm-v4/crc/ansible/playbooks/provisionFtmBaseSampleApps.yaml:63
skipping: [localhost] => {
"changed": false,
"skip_reason": "Conditional result was False"
}
Read vars_file '../variables.yaml'
TASK [3rd Try - Query for ftm-ssl-cert-secret-db2u Secret] ***********************************************************************************************************************
task path: /Users/Shared/workspaces/ftm-v4/crc/ansible/playbooks/provisionFtmBaseSampleApps.yaml:67
skipping: [localhost] => {
"changed": false,
"skip_reason": "Conditional result was False"
}
Read vars_file '../variables.yaml'