Pulp 3 Integration » History » Revision 74
Revision 73 (Justin Sherrill, 05/04/2021 02:38 PM) → Revision 74/86 (Justin Sherrill, 06/03/2021 03:06 PM)
h1. Pulp 3 Integration
This page is meant to capture links to various resources around pulp3 integration
* Initial Integration Document: https://docs.google.com/document/d/1eFM4H9BteA_nTDbUkRJgEiqSttXfAtB9-51a_OuwVJw/edit?usp=sharing
* Initial Community Post: https://community.theforeman.org/t/pulp-3-migration/10474
* Youtube Videos: https://www.youtube.com/playlist?list=PL59WSIBtIpv7tbjnsEAWNcdiOKAmjjgqE
* Tasks List: https://docs.google.com/spreadsheets/d/1PFx-VAEXlivlqDYR9INMW26AUWtuMS_XtEnwhFVP5Rc/edit?usp=sharing
* Main Tracker: https://projects.theforeman.org/issues/26987
h2. Katello Dev box with pulp3:
Dev boxes are deployed with pulp3 by default, via an rpm installation
* vagrant up katello-dev-box
* vagrant ssh katello-dev-box
h2. Katello Dev box with pulp3 on master:
Dev boxes come installed and configured to use yum, docker and files on pulp3.
To enable ansible collection content type, you need to perform the following steps on the devel box:
# <pre>
# sudo pip3 install pulp-ansible==0.7.0
# sudo mv /usr/local/lib/python3.6/site-packages/pulp_ansibl* /usr/lib/python3.6/site-packages/
# sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' python3-django-admin migrate --no-input
# </pre>
# In file ~/foreman/config/settings.plugins.d/katello.yaml,
# Add :ansible_collection: true to the dict of content types.
# Restart foreman server and refresh smart proxy features.
h2. Updating to a New Pulp Version in master & nightly:
1. Request build of new version via the discourse Development discussion unless its already built: http://yum.theforeman.org/pulpcore/ (https://github.com/theforeman/pulpcore-packaging). List the plugin versions you would like (usually the latest of them all) and request a time frame (try to give ~2 weeks). Example: https://community.theforeman.org/t/request-for-pulpcore-3-13-builds/23855
1. Send an email to satellite-delivery@redhat.com and link to the discourse thread.
2. Once the new yum repo is available, update your pulp packages locally on your devel environment. If you are wanting to jump ahead, try to pip3 install the new versions and pray.
3. Identify any installer changes, open installer PRs
4. Identify katello updates:
* Updating pulp client gem bindings in katello.gemspec
* re-record vcr cassettes
* Identify any katello code changes needed to fix test cases
* open katello PR with changes
5. Update katello-repos in https://github.com/theforeman/foreman-packaging to point to the new version
6. Update forklift to deploy with the new version: https://github.com/theforeman/forklift/blob/master/vagrant/config/versions.yaml
5. Update client binding rpms at foreman-packaging
h2. Installing on a smart proxy: The old (ansible-based) way to deploy pulp3:
* vagrant up centos7-proxy-devel
* Install the following packages in your dev box:
* checkout this forklift pr: https://github.com/theforeman/forklift/pull/980
* setup ansible-pulp:
<pre>
cd forklift
git clone https://github.com/pulp/ansible-pulp.git
cd ansible-pulp
ansible-galaxy install -r requirements.yml -p ./roles
ansible-galaxy install pulp.pulp_rpm_prerequisites -p ./roles
</pre>
* within forkflift run:
<pre>
ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel
</pre>
* if this fails, run on the capsule:
<pre>
rm -rf /usr/lib/python3.6/site-packages/setuptools* -rf
</pre>
and re-run:
<pre>
ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel
</pre>
* Refresh the smart proxy:
1. login to katello/foreman
2. navigate to infrastructure > smart proxies
3. click 'refresh' in the list of actions beside your smart proxy
You're now rockin' Pulp3
*To revert to pulp2 on smart proxy:*
vi /etc/foreman-proxy/settings.d/pulpcore.yml
set enabled to false
sudo systemctl restart foreman-proxy
Refresh features of proxy
h2. Reset the Katello Pulp 3 Dev Environment
From within the Foreman directory this will take care of it:
<pre>bundle exec rake katello:reset</pre>
To ONLY reset the pulp3 db (if you know what your doing):
<pre>
sudo systemctl stop pulpcore*
sudo su - postgres
dropdb pulp -p 7878
createdb pulp -p 7878
exit
cd /usr/local/lib/pulp/src/pulpcore/
sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' /usr/local/lib/pulp/bin/django-admin migrate --no-input
sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' /usr/local/lib/pulp/bin/django-admin reset-admin-password --password password
Copy /etc/httpd/conf.d/05-foreman-ssl.d/pulpcore.conf from your dev box to proxy
sudo systemctl restart pulpcore*
</pre>
h2. Example for querying the Pulp 3 API in a development environment:
<pre>
curl https://`hostname`/pulp/api/v3/status/ --cert /etc/pki/katello/certs/pulp-client.crt --key /etc/pki/katello/private/pulp-client.key
</pre>
Recommendation: try the pulp-cli: https://github.com/pulp/pulp-cli#katello
h3. Other Resources
* pulp3 gap analysis wiki https://projects.theforeman.org/projects/katello/wiki/PulpV3GapAnalysis
* pulp3 gap analysis etherpad https://etherpad.net/p/pulp3_container
* pulp3 docker roadmap https://pulp.plan.io/projects/pulp/wiki/Pulp_Docker_Roadmap