Commits settings.DEFAULT_EXECUTION_ENVIRONMENTS updates into the database SUMMARY Fixes: ansible/awx-operator#256 cc: @shanemcd Cannot update execution environment version in place by updating the AWX spec via awx-operator. For example, consider the scenario below: spec: tower_ee_images: - image: registry.tatu.home/ansible/awx-ee:0.1.0 name: My Custom Execution Environment The expectation would be once you modify the AWX spec to the version below, the EE should reflect this change once the awx-operator finishes its reconciliation. After: spec: tower_ee_images: - image: registry.tatu.home/ansible/awx-ee:0.2.0 name: My Custom Execution Environment -- deployment got updated - args: - receptor - --config - /etc/receptor.conf image: registry.tatu.home/ansible/awx-ee:0.2.0 imagePullPolicy: IfNotPresent name: awx-devel-ee-ee Besides the awx-operator updated the YAML deployment as expected, the change did not hit the database. awx=# select * from main_executionenvironment; id | created | modified | description | image | managed_by_tower | created_by_id | credential_id | modified_by_id | organization_id | name | pull ----+---------------+---------------+-------------+----------------+------------------+---------------+---------------+----------------+-----------------+----------------+------ 1 | 2021-05-11 15.| 2021-05-11 15.| | registry.tatu..| t | 1 | | 1 | | My Custom Exec.| |.:24:02.674302.|.:24:02.674327.| |.home/ansible/a.| | | | | |.ution Environm.| |.+00 |.+00 | |.wx-ee:0.1.0 | | | | | |.ent | (1 row) ISSUE TYPE Bugfix Pull Request COMPONENT NAME API AWX VERSION devel ADDITIONAL INFORMATION Quick proof of concept >>> settings.DEFAULT_EXECUTION_ENVIRONMENTS [{'name': 'My Custom Execution Environment', 'image': 'registry.tatu.home/ansible/awx-ee:0.2.0'}] >>> [a.name for a in ExecutionEnvironment.objects.all()] ['My Custom Execution Environment'] >>> [a.image for a in ExecutionEnvironment.objects.all()] ['registry.tatu.home/ansible/awx-ee:0.2.0'] *** updating to new but keeping name >>> _, created = ExecutionEnvironment.objects.update_or_create(name='My Custom Execution Environment', defaults={'image': 'registry.tatu.home/ansible/awx-ee:0.3.0', 'managed_by_tower': True}) >>> [a.name for a in ExecutionEnvironment.objects.all()] ['My Custom Execution Environment'] >>> [a.image for a in ExecutionEnvironment.objects.all()] ['registry.tatu.home/ansible/awx-ee:0.3.0'] *** adding a new name >>> _, created = ExecutionEnvironment.objects.update_or_create(name='My Custom Execution Environment2', defaults={'image': 'registry.tatu.home/ansible/awx-ee:0.3.0', 'managed_by_tower': True}) >>> [a.name for a in ExecutionEnvironment.objects.all()] ['My Custom Execution Environment2', 'My Custom Execution Environment'] >>> [a.image for a in ExecutionEnvironment.objects.all()] ['registry.tatu.home/ansible/awx-ee:0.3.0', 'registry.tatu.home/ansible/awx-ee:0.3.0'] Reviewed-by: Christian Adams <rooftopcellist@gmail.com> Reviewed-by: Shane McDonald <me@shanemcd.com>
AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is one of the upstream projects for Red Hat Ansible Automation Platform.
To install AWX, please view the Install guide.
To learn more about using AWX, and Tower, view the Tower docs site.
The AWX Project Frequently Asked Questions can be found here.
The AWX logos and branding assets are covered by our trademark guidelines.
Contributing
- Refer to the Contributing guide to get started developing, testing, and building AWX.
- All code submissions are made through pull requests against the
develbranch. - All contributors must use git commit --signoff for any commit to be merged and agree that usage of --signoff constitutes agreement with the terms of DCO 1.1
- Take care to make sure no merge commits are in the submission, and use
git rebasevs.git mergefor this reason. - If submitting a large code change, it's a good idea to join the
#ansible-awxchannel on webchat.freenode.net and talk about what you would like to do or add first. This not only helps everyone know what's going on, but it also helps save time and effort if the community decides some changes are needed.
Reporting Issues
If you're experiencing a problem that you feel is a bug in AWX or have ideas for improving AWX, we encourage you to open an issue and share your feedback. But before opening a new issue, we ask that you please take a look at our Issues guide.
Code of Conduct
We ask all of our community members and contributors to adhere to the Ansible code of conduct. If you have questions or need assistance, please reach out to our community team at codeofconduct@ansible.com
Get Involved
We welcome your feedback and ideas. Here's how to reach us with feedback and questions:
- Join the
#ansible-awxchannel on webchat.freenode.net - Join the mailing list