Project

General

Profile

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