Project

General

Profile

Pulp 3 Integration » History » Version 63

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