I have been using the config as code to setup my orgs instance of awx and manage all the objects in a git repo. Awesome project and i thank all the contributors for all the options. Its exciting to see releases with meaningful features. I’m not sure if i have been around too many paint fumes, but i’m stuck on some basic functionality of the drop diff.
Summary of my problem is that i created an environment with the basic playbook of
- role: infra.controller_configuration.filetree_read
- role: infra.controller_configuration.dispatch
Everything created fine and i have a config the way i like it for testing. After this environment exists and is functional, i added the below roles to playbook
- role: infra.controller_configuration.object_diff
vars:
controller_api_plugin: awx.awx.controller_api
drop_user_external_accounts: false
protect_not_empty_orgs: true
controller_configuration_object_diff_tasks:
- {name: organizations, var: controller_organizations, tags: organizations}
- {name: projects, var: controller_projects, tags: projects}
- {name: credential_types, var: controller_credential_types, tags: credential_types}
- {name: inventories, var: controller_inventories, tags: inventories}
- {name: inventory_sources, var: controller_inventory_sources, tags: inventory_sources}
- {name: job_templates, var: controller_templates, tags: job_templates}
- {name: workflow_job_templates, var: controller_workflows, tags: workflow_job_templates}
# - {name: user_accounts, var: controller_user_accounts, tags: users}
# - {name: groups, var: controller_groups, tags: groups}
# - {name: hosts, var: controller_hosts, tags: hosts}
- {name: credentials, var: controller_credentials, tags: credentials}
Below are the logs from this. The ansible fact that is getting set to be used by the dispatch role is showing no objects to change. If i comment out the job template diff task, dispatch picks up all my job template yml files and adds the missing item. I have bolded below the template (ApplyFileTreeCommon) that it sees in the diff task, but it doesn’t recognize it in compare. I have tried to add “state: “present”” to the yml file to see if it made any difference. Strangely, if i add an additional object to AWX through the API, object_diff detects it and adds it for removal on the dispatch task.
TASK [infra.controller_configuration.object_diff : Find the difference of Job Templates between what is on the Controller versus CasC on SCM] ***
compare_list_reduced: [{'name': 'AWXDevAddCreds', 'organization': 'contoso'}, {'name': 'AWXDevCreate_Update', 'organization': 'contoso'}, {'name': 'AWXFileTreeExportArtifactory', 'organization': 'contoso'}, {'name': 'AWXPRDKCCreate_Update', 'organization': 'contoso'}, {'name': 'AWXPRDSTLCreate_Update', 'organization': 'contoso'}, {'name': 'awxprdstlAddCreds', 'organization': 'contoso'}, {'name': 'ApplyFileTreeCommon', 'organization': 'contoso'}]
api_list_reduced: [{'name': 'AWXDevAddCreds', 'organization': 'contoso'}, {'name': 'AWXDevCreate_Update', 'organization': 'contoso'}, {'name': 'AWXFileTreeExportArtifactory', 'organization': 'contoso'}, {'name': 'AWXPRDKCCreate_Update', 'organization': 'contoso'}, {'name': 'awxprdstlAddCreds', 'organization': 'contoso'}, {'name': 'AWXPRDSTLCreate_Update', 'organization': 'contoso'}]
ok: [awxdev.ssnc-corp.cloud] => {"ansible_facts": {"__job_templates_difference": []}, "changed": false}
TASK [infra.controller_configuration.object_diff : Set job_template's list to be configured] ***
ok: [awxdev.ssnc-corp.cloud] => {"ansible_facts": {"controller_templates": []}, "changed": false}
I appreciate any help that someone has to offer.