-
Notifications
You must be signed in to change notification settings - Fork 898
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
Don't create the embedded ansible default project #19056
Don't create the embedded ansible default project #19056
Conversation
We don't currently provide any playbooks so we don't need this. We do provide roles so we still need to gather up the content provided by the plugins when the embedded_ansible role is enabled on an appliance. So we still call Ansible::Content.consolidate_plugin_playbooks here. Making the roles accessible to other playbook runs is done by altering the roles search path here: https://github.com/ManageIQ/manageiq-appliance/blob/9f0e0ed0381785387207343867173888e0b60788/LINK/root/.ansible.cfg#L3 Creating this project will cause an issue when we need to run the embedded ansible role on multiple appliances. Each appliance would have created the source SCM locally and the git shas would not match between the different appliances which would cause issues with the GitRepository model we use for managing ConfigurationScriptSources. In the future if we do choose to provide playbooks out of the box from plugins we can re-evaluate how to deal with this scenario at that time.
Not sure what the thoughts are here on a data migration. I think we might run into a related issue for upgrades because the previous location of this project was not the same one we have here. Previously we used |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Heh, find it a bit funny that this chunk of code got added and removed within the same release, but I think the reasoning behind removing it makes sense.
👍
Checked commit carbonin@195a04f with ruby 2.4.6, rubocop 0.69.0, haml-lint 0.20.0, and yamllint 1.10.0 |
Okay, after just seeing this comment: I am going to remove my approval as I am less certain of the overall effects of making this change when doing an upgrade. |
Don't have enough grasp on the usage of manageiq-content
to be objective here.
To be clear. We might need the migration either way to make sure we don't have a repo hanging around with the old path. So that might be a good place to get rid of repos with either of these paths. |
I agree with your analysis here. If we don't need the default project it's better to drop it, but I definitely think we need a data migration to remove it from an existing embedded ansible provider. cc @agrare @gmcculloug @gtanzillo @jrafanie This removes the ability to provide playbooks from a plugin repo, but it wasn't being used and we can add it back in later in a better way. At present only the roles for manageiq's API access were in the content repo, and we haven't change the part where those roles are available. I just want to check, but were provider playbooks expected to be accessible from EmbeddedAnsible (i.e. via services or automate)? |
AFAIK The playbooks in the provider repos e.g. If you wanted to create a nuage subnet from a service or automate it is expected that you would queue a |
Yeah, @agrare there are two different ways for plugins to provide ansible content. One is as you describe, the other got shoved into a "project" for the AWX-based embedded ansible. |
Lines 37 to 55 in 7146738
|
@carbonin correct, that was my long winded way of saying we dont' need to worry about the provider playbooks in this context. |
Don't create the embedded ansible default project (cherry picked from commit 564a6be)
Ivanchuk backport details:
|
We stopped creating these in ManageIQ/manageiq#19056
We stopped creating these in ManageIQ/manageiq#19056
We stopped creating these in ManageIQ/manageiq#19056
We stopped creating these in ManageIQ/manageiq#19056
We don't currently provide any playbooks so we don't need this.
We do provide roles so we still need to gather up the content
provided by the plugins when the embedded_ansible role is enabled
on an appliance. So we still call
Ansible::Content.consolidate_plugin_playbooks here.
Making the roles accessible to other playbook runs is done by altering
the roles search path here:
https://github.com/ManageIQ/manageiq-appliance/blob/9f0e0ed0381785387207343867173888e0b60788/LINK/root/.ansible.cfg#L3
Creating this project will cause an issue when we need to run the
embedded ansible role on multiple appliances. Each appliance would
have created the source SCM locally and the git shas would not match
between the different appliances which would cause issues with the
GitRepository model we use for managing ConfigurationScriptSources.
In the future if we do choose to provide playbooks out of the box
from plugins we can re-evaluate how to deal with this scenario at
that time.