Project

General

Profile

Pulp 3 Integration » History » Version 68

Ian Ballou, 02/08/2021 06:16 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
18 44 Samir Jha
h2. Katello Dev box with pulp3 on master:
19 1 Justin Sherrill
20 44 Samir Jha
On a devel box provisioned with steps above, run :
21
22
<pre>
23 1 Justin Sherrill
sudo pip3 install scikit-build nose
24
sudo yum install -y gcc make cmake bzip2-devel expat-devel file-devel glib2-devel libcurl-devel libmodulemd2-devel ninja-build libxml2-devel python36-devel python36-gobject rpm-devel openssl-devel sqlite-devel xz-devel zchunk-devel zlib-devel swig3
25 55 Justin Sherrill
26
sudo pip3 install "git+https://github.com/pulp/pulpcore.git" \
27
  "git+https://github.com/pulp/pulp_file.git" \
28
  "git+https://github.com/pulp/pulp_rpm.git" \
29
  "git+https://github.com/pulp/pulp_container.git" \
30 1 Justin Sherrill
  "git+https://github.com/pulp/pulp-2to3-migration.git"
31 55 Justin Sherrill
32 1 Justin Sherrill
cd /tmp
33 55 Justin Sherrill
sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py'  /usr/local/bin/pulpcore-manager migrate
34 56 Justin Sherrill
35 55 Justin Sherrill
cd ~/foreman
36
bundle exec rails katello:reset
37
</pre>
38 44 Samir Jha
39 1 Justin Sherrill
40
h2. Updating to a New Pulp Version in master & nightly:
41
42 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)
43 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
44
3.  Identify any installer changes, open installer PRs
45
4.  Identify katello updates:
46 48 Samir Jha
* Updating pulp client gem bindings in katello.gemspec 
47 1 Justin Sherrill
* re-record vcr cassettes
48 48 Samir Jha
* Identify any katello code changes needed to fix test cases
49 1 Justin Sherrill
* open katello PR with changes
50 67 Justin Sherrill
51 66 Justin Sherrill
5. Update katello-repos in https://github.com/theforeman/foreman-packaging to point to the new version
52
6. Update forklift to deploy with the new version: https://github.com/theforeman/forklift/blob/master/vagrant/config/versions.yaml
53 48 Samir Jha
54 63 Justin Sherrill
5. Update client binding rpms at foreman-packaging
55
56 62 Justin Sherrill
h2. Installing on a smart proxy:  The old (ansible-based) way to deploy pulp3:
57 1 Justin Sherrill
58 62 Justin Sherrill
* vagrant up centos7-proxy-devel
59 1 Justin Sherrill
* Install the following packages in your dev box: 
60 62 Justin Sherrill
* checkout this forklift pr: https://github.com/theforeman/forklift/pull/980
61 49 Justin Sherrill
* setup ansible-pulp:
62
<pre>
63
cd forklift
64
git clone https://github.com/pulp/ansible-pulp.git
65
cd ansible-pulp
66
ansible-galaxy install -r requirements.yml -p ./roles
67
ansible-galaxy install pulp.pulp_rpm_prerequisites -p ./roles
68
</pre>
69
70
71
* within forkflift run:
72
<pre>
73
ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel
74 48 Samir Jha
</pre>
75
76 62 Justin Sherrill
* if this fails, run on the capsule:
77
<pre>
78
rm -rf /usr/lib/python3.6/site-packages/setuptools* -rf
79
</pre>
80
 and re-run:
81
<pre>
82
ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel
83
</pre>
84
85 61 Samir Jha
* Refresh the smart proxy: 
86
87 1 Justin Sherrill
  1. login to katello/foreman
88 61 Samir Jha
  2. navigate to infrastructure > smart proxies
89 60 Samir Jha
  3. click 'refresh' in the list of actions beside your smart proxy
90
You're now rockin' Pulp3
91
92
*To revert to pulp2 on smart proxy:*
93 64 Samir Jha
94 65 Samir Jha
vi /etc/foreman-proxy/settings.d/pulpcore.yml 
95 64 Samir Jha
set enabled to false
96
sudo systemctl restart foreman-proxy
97
Refresh features of proxy
98 60 Samir Jha
99 62 Justin Sherrill
h2. Reset the Katello Pulp 3 Dev Environment
100
From within the Foreman directory this will take care of it:
101 60 Samir Jha
<pre>bundle exec rake katello:reset</pre>
102
103 62 Justin Sherrill
To ONLY reset the pulp3 db (if you know what your doing):
104 60 Samir Jha
<pre>
105 62 Justin Sherrill
sudo systemctl stop pulpcore*
106
sudo su - postgres
107
dropdb pulp -p 7878
108
createdb pulp -p 7878
109
exit
110
cd /usr/local/lib/pulp/src/pulpcore/
111
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
112
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
113
Copy /etc/httpd/conf.d/05-foreman-ssl.d/pulpcore.conf  from your dev box to proxy
114
sudo systemctl restart pulpcore*
115 60 Samir Jha
</pre>
116
117 59 Ian Ballou
h2. Example for querying the Pulp 3 API in a development environment:
118
<pre>
119
curl https://`hostname`/pulp/api/v3/status/   --cert /etc/pki/katello/certs/pulp-client.crt  --key /etc/pki/katello/private/pulp-client.key
120
</pre>
121
122 68 Ian Ballou
Recommendation: try the pulp-cli: https://github.com/pulp/pulp-cli#katello
123
124 25 Justin Sherrill
h3. Other Resources
125
126
* pulp3 gap analysis wiki https://projects.theforeman.org/projects/katello/wiki/PulpV3GapAnalysis
127
* pulp3 gap analysis etherpad https://etherpad.net/p/pulp3_container
128
* pulp3 docker roadmap https://pulp.plan.io/projects/pulp/wiki/Pulp_Docker_Roadmap