Pulp 3 Integration » History » Version 70
Samir Jha, 04/09/2021 06:13 PM
| 1 | 1 | Justin Sherrill | h1. Pulp 3 Integration |
|---|---|---|---|
| 2 | |||
| 3 | This page is meant to capture links to various resources around pulp3 integration |
||
| 4 | |||
| 5 | * Initial Integration Document: https://docs.google.com/document/d/1eFM4H9BteA_nTDbUkRJgEiqSttXfAtB9-51a_OuwVJw/edit?usp=sharing |
||
| 6 | * Initial Community Post: https://community.theforeman.org/t/pulp-3-migration/10474 |
||
| 7 | * Youtube Videos: https://www.youtube.com/playlist?list=PL59WSIBtIpv7tbjnsEAWNcdiOKAmjjgqE |
||
| 8 | * Tasks List: https://docs.google.com/spreadsheets/d/1PFx-VAEXlivlqDYR9INMW26AUWtuMS_XtEnwhFVP5Rc/edit?usp=sharing |
||
| 9 | 17 | John Mitsch | * Main Tracker: https://projects.theforeman.org/issues/26987 |
| 10 | 2 | Justin Sherrill | |
| 11 | 41 | Justin Sherrill | h2. Katello Dev box with pulp3: |
| 12 | 40 | Samir Jha | |
| 13 | 62 | Justin Sherrill | Dev boxes are deployed with pulp3 by default, via an rpm installation |
| 14 | 40 | Samir Jha | * vagrant up katello-dev-box |
| 15 | 1 | Justin Sherrill | * vagrant ssh katello-dev-box |
| 16 | 40 | Samir Jha | |
| 17 | 44 | Samir Jha | h2. Katello Dev box with pulp3 on master: |
| 18 | 1 | Justin Sherrill | |
| 19 | 69 | Samir Jha | Dev boxes come installed and configured to use yum, docker and files on pulp3. |
| 20 | To enable ansible collection content type, you need to perform the following steps on the devel box: |
||
| 21 | 1 | Justin Sherrill | |
| 22 | 69 | Samir Jha | # <pre> |
| 23 | # sudo pip3 install pulp-ansible==0.5.8 |
||
| 24 | # sudo mv /usr/local/lib/python3.6/site-packages/pulp_ansibl* /usr/local/lib/python3.6/site-packages/ |
||
| 25 | 70 | Samir Jha | # sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' python3-django-admin migrate --no-input |
| 26 | 69 | Samir Jha | # </pre> |
| 27 | # In file ~/foreman/config/settings.plugins.d/katello.yaml, |
||
| 28 | # Add :ansible_collection: true to the dict of content types. |
||
| 29 | 70 | Samir Jha | # Restart foreman server and refresh smart proxy features. |
| 30 | 1 | Justin Sherrill | |
| 31 | h2. Updating to a New Pulp Version in master & nightly: |
||
| 32 | |||
| 33 | 66 | Justin Sherrill | 1. Request build of new version from build team unless its already built: http://yum.theforeman.org/pulpcore/ (https://github.com/theforeman/pulpcore-packaging) |
| 34 | 63 | Justin Sherrill | 2. Install new version locally on top of existing version with a pip3 install command, or use rpms if they are built |
| 35 | 3. Identify any installer changes, open installer PRs |
||
| 36 | 4. Identify katello updates: |
||
| 37 | 48 | Samir Jha | * Updating pulp client gem bindings in katello.gemspec |
| 38 | 1 | Justin Sherrill | * re-record vcr cassettes |
| 39 | 48 | Samir Jha | * Identify any katello code changes needed to fix test cases |
| 40 | 1 | Justin Sherrill | * open katello PR with changes |
| 41 | 67 | Justin Sherrill | |
| 42 | 66 | Justin Sherrill | 5. Update katello-repos in https://github.com/theforeman/foreman-packaging to point to the new version |
| 43 | 6. Update forklift to deploy with the new version: https://github.com/theforeman/forklift/blob/master/vagrant/config/versions.yaml |
||
| 44 | 48 | Samir Jha | |
| 45 | 63 | Justin Sherrill | 5. Update client binding rpms at foreman-packaging |
| 46 | |||
| 47 | 62 | Justin Sherrill | h2. Installing on a smart proxy: The old (ansible-based) way to deploy pulp3: |
| 48 | 1 | Justin Sherrill | |
| 49 | 62 | Justin Sherrill | * vagrant up centos7-proxy-devel |
| 50 | 1 | Justin Sherrill | * Install the following packages in your dev box: |
| 51 | 62 | Justin Sherrill | * checkout this forklift pr: https://github.com/theforeman/forklift/pull/980 |
| 52 | 49 | Justin Sherrill | * setup ansible-pulp: |
| 53 | <pre> |
||
| 54 | cd forklift |
||
| 55 | git clone https://github.com/pulp/ansible-pulp.git |
||
| 56 | cd ansible-pulp |
||
| 57 | ansible-galaxy install -r requirements.yml -p ./roles |
||
| 58 | ansible-galaxy install pulp.pulp_rpm_prerequisites -p ./roles |
||
| 59 | </pre> |
||
| 60 | |||
| 61 | |||
| 62 | * within forkflift run: |
||
| 63 | <pre> |
||
| 64 | ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel |
||
| 65 | 48 | Samir Jha | </pre> |
| 66 | |||
| 67 | 62 | Justin Sherrill | * if this fails, run on the capsule: |
| 68 | <pre> |
||
| 69 | rm -rf /usr/lib/python3.6/site-packages/setuptools* -rf |
||
| 70 | </pre> |
||
| 71 | and re-run: |
||
| 72 | <pre> |
||
| 73 | ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel |
||
| 74 | </pre> |
||
| 75 | |||
| 76 | 61 | Samir Jha | * Refresh the smart proxy: |
| 77 | |||
| 78 | 1 | Justin Sherrill | 1. login to katello/foreman |
| 79 | 61 | Samir Jha | 2. navigate to infrastructure > smart proxies |
| 80 | 60 | Samir Jha | 3. click 'refresh' in the list of actions beside your smart proxy |
| 81 | You're now rockin' Pulp3 |
||
| 82 | |||
| 83 | *To revert to pulp2 on smart proxy:* |
||
| 84 | 64 | Samir Jha | |
| 85 | 65 | Samir Jha | vi /etc/foreman-proxy/settings.d/pulpcore.yml |
| 86 | 64 | Samir Jha | set enabled to false |
| 87 | sudo systemctl restart foreman-proxy |
||
| 88 | Refresh features of proxy |
||
| 89 | 60 | Samir Jha | |
| 90 | 62 | Justin Sherrill | h2. Reset the Katello Pulp 3 Dev Environment |
| 91 | From within the Foreman directory this will take care of it: |
||
| 92 | 60 | Samir Jha | <pre>bundle exec rake katello:reset</pre> |
| 93 | |||
| 94 | 62 | Justin Sherrill | To ONLY reset the pulp3 db (if you know what your doing): |
| 95 | 60 | Samir Jha | <pre> |
| 96 | 62 | Justin Sherrill | sudo systemctl stop pulpcore* |
| 97 | sudo su - postgres |
||
| 98 | dropdb pulp -p 7878 |
||
| 99 | createdb pulp -p 7878 |
||
| 100 | exit |
||
| 101 | cd /usr/local/lib/pulp/src/pulpcore/ |
||
| 102 | 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 |
||
| 103 | 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 |
||
| 104 | Copy /etc/httpd/conf.d/05-foreman-ssl.d/pulpcore.conf from your dev box to proxy |
||
| 105 | sudo systemctl restart pulpcore* |
||
| 106 | 60 | Samir Jha | </pre> |
| 107 | |||
| 108 | 59 | Ian Ballou | h2. Example for querying the Pulp 3 API in a development environment: |
| 109 | <pre> |
||
| 110 | curl https://`hostname`/pulp/api/v3/status/ --cert /etc/pki/katello/certs/pulp-client.crt --key /etc/pki/katello/private/pulp-client.key |
||
| 111 | </pre> |
||
| 112 | |||
| 113 | 68 | Ian Ballou | Recommendation: try the pulp-cli: https://github.com/pulp/pulp-cli#katello |
| 114 | |||
| 115 | 25 | Justin Sherrill | h3. Other Resources |
| 116 | |||
| 117 | * pulp3 gap analysis wiki https://projects.theforeman.org/projects/katello/wiki/PulpV3GapAnalysis |
||
| 118 | * pulp3 gap analysis etherpad https://etherpad.net/p/pulp3_container |
||
| 119 | * pulp3 docker roadmap https://pulp.plan.io/projects/pulp/wiki/Pulp_Docker_Roadmap |