Pulp 3 Integration » History » Version 73
Justin Sherrill, 05/04/2021 02:38 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 | 71 | Samir Jha | # sudo pip3 install pulp-ansible==0.7.0 |
24 | 72 | Samir Jha | # sudo mv /usr/local/lib/python3.6/site-packages/pulp_ansibl* /usr/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 | 73 | Justin Sherrill | 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). |
34 | 1. Send an email to satellite-delivery@redhat.com and link to the discourse thread. |
||
35 | 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. |
||
36 | 63 | Justin Sherrill | 3. Identify any installer changes, open installer PRs |
37 | 4. Identify katello updates: |
||
38 | 48 | Samir Jha | * Updating pulp client gem bindings in katello.gemspec |
39 | 1 | Justin Sherrill | * re-record vcr cassettes |
40 | 48 | Samir Jha | * Identify any katello code changes needed to fix test cases |
41 | 1 | Justin Sherrill | * open katello PR with changes |
42 | 67 | Justin Sherrill | |
43 | 66 | Justin Sherrill | 5. Update katello-repos in https://github.com/theforeman/foreman-packaging to point to the new version |
44 | 6. Update forklift to deploy with the new version: https://github.com/theforeman/forklift/blob/master/vagrant/config/versions.yaml |
||
45 | 48 | Samir Jha | |
46 | 63 | Justin Sherrill | 5. Update client binding rpms at foreman-packaging |
47 | |||
48 | 62 | Justin Sherrill | h2. Installing on a smart proxy: The old (ansible-based) way to deploy pulp3: |
49 | 1 | Justin Sherrill | |
50 | 62 | Justin Sherrill | * vagrant up centos7-proxy-devel |
51 | 1 | Justin Sherrill | * Install the following packages in your dev box: |
52 | 62 | Justin Sherrill | * checkout this forklift pr: https://github.com/theforeman/forklift/pull/980 |
53 | 49 | Justin Sherrill | * setup ansible-pulp: |
54 | <pre> |
||
55 | cd forklift |
||
56 | git clone https://github.com/pulp/ansible-pulp.git |
||
57 | cd ansible-pulp |
||
58 | ansible-galaxy install -r requirements.yml -p ./roles |
||
59 | ansible-galaxy install pulp.pulp_rpm_prerequisites -p ./roles |
||
60 | </pre> |
||
61 | |||
62 | |||
63 | * within forkflift run: |
||
64 | <pre> |
||
65 | ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel |
||
66 | 48 | Samir Jha | </pre> |
67 | |||
68 | 62 | Justin Sherrill | * if this fails, run on the capsule: |
69 | <pre> |
||
70 | rm -rf /usr/lib/python3.6/site-packages/setuptools* -rf |
||
71 | </pre> |
||
72 | and re-run: |
||
73 | <pre> |
||
74 | ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel |
||
75 | </pre> |
||
76 | |||
77 | 61 | Samir Jha | * Refresh the smart proxy: |
78 | |||
79 | 1 | Justin Sherrill | 1. login to katello/foreman |
80 | 61 | Samir Jha | 2. navigate to infrastructure > smart proxies |
81 | 60 | Samir Jha | 3. click 'refresh' in the list of actions beside your smart proxy |
82 | You're now rockin' Pulp3 |
||
83 | |||
84 | *To revert to pulp2 on smart proxy:* |
||
85 | 64 | Samir Jha | |
86 | 65 | Samir Jha | vi /etc/foreman-proxy/settings.d/pulpcore.yml |
87 | 64 | Samir Jha | set enabled to false |
88 | sudo systemctl restart foreman-proxy |
||
89 | Refresh features of proxy |
||
90 | 60 | Samir Jha | |
91 | 62 | Justin Sherrill | h2. Reset the Katello Pulp 3 Dev Environment |
92 | From within the Foreman directory this will take care of it: |
||
93 | 60 | Samir Jha | <pre>bundle exec rake katello:reset</pre> |
94 | |||
95 | 62 | Justin Sherrill | To ONLY reset the pulp3 db (if you know what your doing): |
96 | 60 | Samir Jha | <pre> |
97 | 62 | Justin Sherrill | sudo systemctl stop pulpcore* |
98 | sudo su - postgres |
||
99 | dropdb pulp -p 7878 |
||
100 | createdb pulp -p 7878 |
||
101 | exit |
||
102 | cd /usr/local/lib/pulp/src/pulpcore/ |
||
103 | 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 |
||
104 | 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 |
||
105 | Copy /etc/httpd/conf.d/05-foreman-ssl.d/pulpcore.conf from your dev box to proxy |
||
106 | sudo systemctl restart pulpcore* |
||
107 | 60 | Samir Jha | </pre> |
108 | |||
109 | 59 | Ian Ballou | h2. Example for querying the Pulp 3 API in a development environment: |
110 | <pre> |
||
111 | curl https://`hostname`/pulp/api/v3/status/ --cert /etc/pki/katello/certs/pulp-client.crt --key /etc/pki/katello/private/pulp-client.key |
||
112 | </pre> |
||
113 | |||
114 | 68 | Ian Ballou | Recommendation: try the pulp-cli: https://github.com/pulp/pulp-cli#katello |
115 | |||
116 | 25 | Justin Sherrill | h3. Other Resources |
117 | |||
118 | * pulp3 gap analysis wiki https://projects.theforeman.org/projects/katello/wiki/PulpV3GapAnalysis |
||
119 | * pulp3 gap analysis etherpad https://etherpad.net/p/pulp3_container |
||
120 | * pulp3 docker roadmap https://pulp.plan.io/projects/pulp/wiki/Pulp_Docker_Roadmap |