Hello all,

I have to implement a logic where I need to create a few secrets in 
kubernetes cluster using ansible. The login I am trying to implement is to 
get registered all the secrets in a namepsapce first, then create the 
secrets if that not present. I specifically want to know how I can validate 
the secret already present. 

- name: Get all insights secrets in namespace '{{ 
ansible_operator_meta.namespace }}'
  community.kubernetes.k8s_info:
    api_version: "v1"
    kind: "secrets"
    namespace: "{{ ansible_operator_meta.namespace }}"
    label_selectors: 
      - project=myproject
  register: secrets_register
 when: debug is not defined

This will register all the secrets with specific label from the namespace. 
This will be dictionary with lists as given below. 

secrets_register:
        resources:
          - apiVersion: v1
            data:
              
_DATA_ENCRYPTION_PASSWORD:VTJGc2RHVmtYMS82b2EyOW9CZXNBY3lWTmI4QzBEclZKaW40U2haQ3hTMGl6bUxXMmFmamVVMXNPRC9kQ05kcA==
            kind: Secret
            metadata:
              labels:
              name: data-encryption-password
              namespace: test
          - apiVersion: v1
            data:
              
_DATA_ADMIN:VTJGc2RHVmtYMS82b2EyOW9CZXNBY3lWTmI4QzBEclZKaW40U2haQ3hTMGl6bUxXMmFmamVVMXNPRC9kQ05kcA==
            kind: Secret
            metadata:
              labels:
              name: mongodb-authsecret
              namespace: test
          - apiVersion: v1
            data:
              
_DATA_TEST:VTJGc2RHVmtYMS82b2EyOW9CZXNBY3lWTmI4QzBEclZKaW40U2haQ3hTMGl6bUxXMmFmamVVMXNPRC9kQ05kcA==
            kind: Secret
            metadata:
              labels:
              name: ingressca
              namespace: test

And then I need to create secrets with a logic when secret_name not in 
secrets_register.resources[*].metadata.name is in secrets_register 
something like below. 

- name: Create secret
  k8s:
      state: present
      definition: 
        apiVersion: v1
        kind: Secret
        type: Opaque             
        metadata:
          name: "{{ secret_name }}"
          namespace: "{{ project_name | lower }}"     
        data:
          config_data.json: "{{ lookup('template', 
mongo_conn_templates_path + '/config_data.json' ) | tojson | b64encode }}"
  when: >
    debug is not defined
    and secret_name not in secrets_register.resources[*].metadata.name is 
in secrets_register

But unfortunately I can't get this statement "secret_name not in 
secrets_register.resources[*].metadata.name is in" working as I am not able 
to figure out how to check existence of a value in a dictionary of lists in 
ansible. Can someone help?

Thanks in advance,
Rijesh.

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-devel/3486baf4-d8c6-4107-bd15-060d36668073n%40googlegroups.com.

Reply via email to