Project

Profile

Help

Refactor #2789

closed

Make a clearer separation between Ansible and Vagrant

Added by amacdona@redhat.com almost 7 years ago. Updated almost 5 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Platform Release:
2.14.0
Groomed:
No
Sprint Candidate:
No
Tags:
Dev Environment, Pulp 2
Sprint:
Quarter:

Description

These changes will make the development environment easier to work with, especially for non-Vagrant users.

  • Rather than setting playbook variables in the Vagrantfile, Vagrant users should modify playbooks directly.
  • Add an example playbook for Ansible users
  • roles should be more granular
  • remove unnecessary/dead code and yml
  • default to a minimal install
  • Variables should have clear definitions and defaults
Actions #1

Updated by bmbouter almost 7 years ago

I want to make a case to have Vagrant stop installing plugins or even knowing about them. Vagrant installing plugins creates several problems:

1) A contributor rarely needs more than 1 plugin yet they have to wait for N plugins to install at vagrant up time. This makes Vagrant up take significantly longer without a good reason. The core devs have many plugins checked out so core devs are the most affected.

2) The maintenance of maintaining Ansible machinery to perform plugin installation takes effort which doesn't make sense to me considering you can install any plugin you want with 1 setup.py or dnf command. Also it's more flexible to install it manually because there are multiple ways to install a plugin.

3) Plugins that don't have 'Vagrant support' need additional work from a plugin author which we could avoid entirely. This would let the plugin development process have less friction and steps. For example, pulp_deb recently had to "add vagrant support". Plugin authors should not have to do that. All plugins should just be manually installed after Vagrant is done.

4) Currently Vagrant auto-detects the checkouts which is great for core devs, but for a new contributor who didn't check out the plugins correctly their Vagrant box comes out broken. We see this problem on IRC now and then, and it could be avoided with this adjustment also. Vagrant would not run migrations anymore and would not start Pulp, so when the new contributor's checkouts aren't right their box core would finish installing and everything would be fine even though their checkouts are not correct. They would still need to install the plugin which is their next step in all cases anyway.

I'm hoping that for Pulp3 we can have the Vagrant env only install core and have any contributor manually install the plugin they want. Specifically the manual parts would be three commands:

1) Install with pip, setup.py, or rpm
2) Run migraitons
3) start services with `pstart`

Also the installer for Core would no longer:
1) run migrations
2) start pulp services (only the message bus and mongodb would be auto-started)

Added by amacdona@redhat.com almost 7 years ago

Revision cd4abc09 | View on GitHub

Separate roles, flatten variables

Actions #2

Updated by amacdona@redhat.com almost 7 years ago

  • Status changed from ASSIGNED to MODIFIED
Actions #3

Updated by bmbouter almost 7 years ago

  • Tags Dev Environment added
Actions #4

Updated by bmbouter almost 7 years ago

  • Subject changed from [dev env] Make a clearer separation between Ansible and Vagrant to Make a clearer separation between Ansible and Vagrant

We have a tag for dev environment so I'm removing from the title.

Actions #5

Updated by pcreech over 6 years ago

  • Platform Release set to 2.14.0
Actions #6

Updated by pcreech over 6 years ago

  • Status changed from MODIFIED to 5
Actions #7

Updated by pcreech over 6 years ago

  • Status changed from 5 to CLOSED - CURRENTRELEASE
Actions #8

Updated by bmbouter almost 5 years ago

  • Tags Pulp 2 added

Also available in: Atom PDF