У меня есть следующая переменная:
secureVar:
cosmosconstr: ""
postgresUrl: ""
, которая может быть либо пустой, либо содержать URL базы данных, в зависимости от того, что мне нужно условно создавать внешние службы в kubernetes:
- name: Get DB data
when: (secureVars | from_json)['cosmosconstr'] | length == 0 and (secureVars | from_json)['postgresUrl'] | length == 0
shell: ./python/db_credentials.py -dp {{ deploymentPrefix }}
register: dbData
- name: Generate external services templates
when: (secureVars | from_json)['cosmosconstr'] | length == 0 and (secureVars | from_json)['postgresUrl'] | length == 0
action: template src=k8s/common/external-services.j2 dest=/tmp/k8s-external-svc.yml
vars:
cosmosUrl: "{{ dbData.stdout_lines[0] | urlsplit('hostname') }}"
postgresUrl: "{{ dbData.stdout_lines[1] }}"
- name: Generate external services templates
when: (secureVars | from_json)['cosmosconstr'] | length > 0 and (secureVars | from_json)['postgresUrl'] | length > 0
action: template src=k8s/common/external-services.j2 dest=/tmp/k8s-external-svc.yml
vars:
cosmosUrl: "{{ ( secureVars | from_json )['cosmosconstr'] | urlsplit('hostname') }}"
postgresUrl: "{{ ( secureVars | from_json )['postgresUrl'] }}"
это то, что я делаю сейчас, я хотел бы установить условие, чтобы в случае пропуска dbData я использовал secureVars
, а если он не пропущен, я использовал dbData, проблема в том, что я не могу проверить,dbData.skipped
равно true, потому что, если оно не пропущено, оно не содержит skipped
свойство