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.