-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run inventory updates using containerized execution #7061
Comments
I can see this having several pre-requisites. See #6911. Because in the containerized model, we don't have the inventory scripts folder, but we do have collections. While collections do have inventory scripts, several don't work right now, and we would rather not make adjustments to get them working. |
Trying to break this up into sub-tasks, @blomquisg @jladdjr. My preferred approach would be to start with some general refactoring. Not all may be required, depending on the tech debt we accept. General refactoring to pave the way:
Direct feature work:
The only thing blocked by other development is the final item. Not all of these may be needed, I'm just saying out loud what seems like the best approach. Some of these can be worked on in parallel, and it doesn't have to be me who does it. Because I have some context, I want to help point out old gunk that we don't need to keep as this new system is developed. There's also a lot of exciting testing possibilities as parts of this become a reality. |
The first part of this is started in #8323 |
There is a request in #8494 to essentially delegate the inventory update to a node in the execution plane. Hanging off here in case it could be a potential use case. |
Just to give a general update on things here: With Alan out, I've picked up #8323. We've been testing those changes and I just had a chance to review the results with @shanemcd. We came up with a few remaining todo items:
Alan's PR, once merged, should take us one step closer to being able to run inventory updates in a container. His work basically helps separate database updates (won't be able to run inside a container) from the actual work of updating an inventory with ansible-inventory (the part that we do want to happen inside the container). |
Restored the proot code on Alan's refactor PR. Confirmed that inv. update jobs create a separate folder for isolation and that sensitive files aren't present. Details here. |
Restored venv's for project updates as well: |
^ yes, that was necessary and I believe you fully finished it. To my knowledge, we're stuck on just the 1 blocker for #8323, where, for some reason, it leaves around stale settings (for Recap of the plan - assuming that gets resolved, then we merge PR 8323, and then rebase the So we merge the 3rd one there, then the 2nd one, then rebase the 1st one, then merge it into Then after that, we start on the actual containerization of inventory updates. Hopefully, that task shouldn't be too bad. |
We have merged things for the first part of this. Next part is that |
^ that was done a while ago, this is finished and working rather well in the |
This is done from QE perspective because all regression tests are passing. There are a couple items that were not done on alan's checklist:
but those appear to be internal refactors that would have no user facing component, so I'm going to leave it up to devs to address them later at their own pace. Thanks! |
This is a subtask of a larger enhancement/initiative surrounding execution environments: #5157
Specifically, it is a component of the work described in #7060
Today, inventory updates operate by spawning an
awx-manage
command that:bubblewrap
andsubprocess.Popen
to fork anansible-inventory
invocation.ansible-inventory
process.Under a containerized model (as described in #7060), we'd need to rethink how we accomplish this.
The text was updated successfully, but these errors were encountered: