Project

General

Profile

Pulp 3 Integration » History » Version 62

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