1

I try:

# task
- name: Add ldap oauth query password
  k8s:
    state: present
    definition: "{{ lookup('file', 'openshift-config/secrets/ldap-bind-pw.yaml.j2') }}"
    kubeconfig: "{{ install_directory }}/auth/kubeconfig"


# openshift-config/secrets/ldap-bind-pw.yaml.j2
---
kind: Secret
apiVersion: v1
metadata:
  name: ldap-bind-password
  namespace: openshift-config
data:
  bindPassword: {{ vault_openshift_ldap_bind_pw | string | b64encode }} 
type: Opaque


# vault.yaml
vault_openshift_ldap_bind_pw: test1234

Error:

<os-helper71.domain.com> Failed to connect to the host via ssh: Traceback (most recent call last):
  File "<stdin>", line 102, in <module>
  File "<stdin>", line 94, in _ansiballz_main
  File "<stdin>", line 40, in invoke_module
  File "/usr/lib/python3.6/runpy.py", line 205, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/modules/clustering/k8s/k8s.py", line 279, in <module>
  File "/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/modules/clustering/k8s/k8s.py", line 275, in main
  File "/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/module_utils/k8s/raw.py", line 145, in __init__
  File "/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/module_utils/k8s/raw.py", line 145, in <listcomp>
  File "/usr/lib/python3/dist-packages/yaml/__init__.py", line 84, in load_all
    yield loader.get_data()
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 31, in get_data
    return self.construct_document(self.get_node())
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 46, in construct_document
    for dummy in generator:
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 398, in construct_yaml_map
    value = self.construct_mapping(node)
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 204, in construct_mapping
    return super().construct_mapping(node, deep=deep)
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 128, in construct_mapping
    "found unhashable key", key_node.start_mark)
yaml.constructor.ConstructorError: while constructing a mapping
  in "<unicode string>", line 8, column 17:
      bindPassword: {{ vault_openshift_ldap_bind_pw | s ... 
                    ^
found unhashable key
  in "<unicode string>", line 8, column 18:
      bindPassword: {{ vault_openshift_ldap_bind_pw | st ... 
                     ^
The full traceback is:
Traceback (most recent call last):
  File "<stdin>", line 102, in <module>
  File "<stdin>", line 94, in _ansiballz_main
  File "<stdin>", line 40, in invoke_module
  File "/usr/lib/python3.6/runpy.py", line 205, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/modules/clustering/k8s/k8s.py", line 279, in <module>
  File "/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/modules/clustering/k8s/k8s.py", line 275, in main
  File "/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/module_utils/k8s/raw.py", line 145, in __init__
  File "/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/module_utils/k8s/raw.py", line 145, in <listcomp>
  File "/usr/lib/python3/dist-packages/yaml/__init__.py", line 84, in load_all
    yield loader.get_data()
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 31, in get_data
    return self.construct_document(self.get_node())
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 46, in construct_document
    for dummy in generator:
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 398, in construct_yaml_map
    value = self.construct_mapping(node)
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 204, in construct_mapping
    return super().construct_mapping(node, deep=deep)
  File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 128, in construct_mapping
    "found unhashable key", key_node.start_mark)
yaml.constructor.ConstructorError: while constructing a mapping
  in "<unicode string>", line 8, column 17:
      bindPassword: {{ vault_openshift_ldap_bind_pw | s ... 
                    ^
found unhashable key
  in "<unicode string>", line 8, column 18:
      bindPassword: {{ vault_openshift_ldap_bind_pw | st ... 
                     ^
fatal: [os-helper71.domain.com]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"<stdin>\", line 102, in <module>\n  File \"<stdin>\", line 94, in _ansiballz_main\n  File \"<stdin>\", line 40, in invoke_module\n  File \"/usr/lib/python3.6/runpy.py\", line 205, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib/python3.6/runpy.py\", line 96, in _run_module_code\n    mod_name, mod_spec, pkg_name, script_name)\n  File \"/usr/lib/python3.6/runpy.py\", line 85, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/modules/clustering/k8s/k8s.py\", line 279, in <module>\n  File \"/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/modules/clustering/k8s/k8s.py\", line 275, in main\n  File \"/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/module_utils/k8s/raw.py\", line 145, in __init__\n  File \"/tmp/ansible_k8s_payload_osgd8_f3/ansible_k8s_payload.zip/ansible/module_utils/k8s/raw.py\", line 145, in <listcomp>\n  File \"/usr/lib/python3/dist-packages/yaml/__init__.py\", line 84, in load_all\n    yield loader.get_data()\n  File \"/usr/lib/python3/dist-packages/yaml/constructor.py\", line 31, in get_data\n    return self.construct_document(self.get_node())\n  File \"/usr/lib/python3/dist-packages/yaml/constructor.py\", line 46, in construct_document\n    for dummy in generator:\n  File \"/usr/lib/python3/dist-packages/yaml/constructor.py\", line 398, in construct_yaml_map\n    value = self.construct_mapping(node)\n  File \"/usr/lib/python3/dist-packages/yaml/constructor.py\", line 204, in construct_mapping\n    return super().construct_mapping(node, deep=deep)\n  File \"/usr/lib/python3/dist-packages/yaml/constructor.py\", line 128, in construct_mapping\n    \"found unhashable key\", key_node.start_mark)\nyaml.constructor.ConstructorError: while constructing a mapping\n  in \"<unicode string>\", line 8, column 17:\n      bindPassword: {{ vault_openshift_ldap_bind_pw | s ... \n                    ^\nfound unhashable key\n  in \"<unicode string>\", line 8, column 18:\n      bindPassword: {{ vault_openshift_ldap_bind_pw | st ... \n                     ^\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}

whats wrong?

ansible version: 2.9.9 with python 3.8.6

1 Answer 1

3

You are using

lookup('file', '/path/to/template.j2')

which is used to retrieve the raw contents of the file specified. Instead, you have to use

lookup('template', '/path/to/template.j2')

if you want jinja2 to fill your template.

Source

1
  • thanks, i thought that i just was blind i did just not see where :D, its working now :) Commented Jan 5, 2021 at 11:49

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.