Project

General

Profile

Pulp 3 Integration » History » Version 57

Samir Jha, 06/03/2020 08:39 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
* vagrant up katello-dev-box
14 1 Justin Sherrill
* vagrant ssh katello-dev-box
15
16 42 Justin Sherrill
h2. Adding the yum plugin:
17 40 Samir Jha
<pre>
18 53 James Jeffers
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
19 40 Samir Jha
sudo pip3 install scikit-build nose
20 1 Justin Sherrill
sudo pip3 install pulp-rpm==3.0.0
21 50 Samir Jha
cd /usr/lib/python3.6/site-packages/pulpcore
22 40 Samir Jha
sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' python3-django-admin migrate --no-input
23
sudo systemctl restart pulpcore-resource-manager pulpcore-content pulpcore-api pulpcore-worker@1 pulpcore-worker@2
24
</pre>
25
26 57 Samir Jha
h2. Adding the certguard plugin:
27
<pre>
28
sudo pip3 install pulp_certguard
29
sudo pip3 install python-dateutil
30
sudo pip3 install rhsm
31
sudo systemctl restart pulpcore*
32
</pre>
33
34 40 Samir Jha
* Refresh the smart proxy 
35
# login to katello/foreman
36
# navigate to infrastructure > smart proxies
37
# click 'refresh' in the list of actions beside your smart proxy
38
39 45 Samir Jha
You should now see file, docker and yum as supported content type under pulpcore in the *Services tab*
40 40 Samir Jha
41 44 Samir Jha
h2. Katello Dev box with pulp3 on master:
42 1 Justin Sherrill
43 44 Samir Jha
On a devel box provisioned with steps above, run :
44
45
<pre>
46 1 Justin Sherrill
sudo pip3 install scikit-build nose
47
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
48 55 Justin Sherrill
49
sudo pip3 install "git+https://github.com/pulp/pulpcore.git" \
50
  "git+https://github.com/pulp/pulp_file.git" \
51
  "git+https://github.com/pulp/pulp_rpm.git" \
52
  "git+https://github.com/pulp/pulp_container.git" \
53
  "git+https://github.com/pulp/pulp-2to3-migration.git"
54
55 56 Justin Sherrill
cd /tmp
56 55 Justin Sherrill
sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py'  /usr/local/bin/pulpcore-manager migrate
57
58
59 44 Samir Jha
cd ~/foreman
60
bundle exec rails katello:reset
61
</pre>
62 40 Samir Jha
63 48 Samir Jha
64
Add the following to your /etc/pulp/settings.py
65
66
<pre>
67
AUTHENTICATION_BACKENDS = ['pulpcore.app.authentication.PulpNoCreateRemoteUserBackend']
68
69
REST_FRAMEWORK__DEFAULT_AUTHENTICATION_CLASSES = (
70
    'rest_framework.authentication.SessionAuthentication',
71
    'pulpcore.app.authentication.PulpRemoteUserAuthentication'
72
)
73
74
</pre>
75
76
77 49 Justin Sherrill
h2. Updating to a New Pulp Version in master & nightly:
78
79
1.  Install new version locally ontop of existing version with a pip3 install command
80
2.  Identify any installer changes, open installer PRs
81
3.  Identify katello updates:
82
* Updating pulp client gem bindings in katello.gemspec 
83
* re-record vcr cassettes
84
* Identify any katello code changes needed to fix test cases
85
* open katello PR with changes
86
87
4. Update client binding rpms at foreman-packaging
88
5.  Request rpm builds email satellite6-build@redhat.com or open a pr ourselves: https://github.com/evgeni/pulpcore-packaging#build
89
90
91
92
93
94 48 Samir Jha
95
96 41 Justin Sherrill
h2. Old (ansible-based) way to deploy pulp3:
97 2 Justin Sherrill
98 15 Justin Sherrill
* Install a katello dev environment with forklift
99 32 Ian Ballou
* Install the following packages in your dev box: 
100 34 Ian Ballou
<pre>sudo yum -y install https://people.redhat.com/iballou/libcomps-0.1.12-1.git.0.937a666.el7.x86_64.rpm</pre>
101
<pre>sudo yum -y install https://people.redhat.com/iballou/python3-libcomps-0.1.12-1.git.0.937a666.el7.x86_64.rpm</pre>
102 15 Justin Sherrill
* checkout this forklift pr if its not merged: https://github.com/theforeman/forklift/pull/980
103
* setup ansible-pulp:
104
<pre>
105
cd forklift
106
git clone https://github.com/pulp/ansible-pulp.git
107 1 Justin Sherrill
cd ansible-pulp
108 15 Justin Sherrill
ansible-galaxy install -r requirements.yml -p ./roles
109 29 Justin Sherrill
ansible-galaxy install pulp.pulp_rpm_prerequisites -p ./roles
110 15 Justin Sherrill
</pre>
111 24 Samir Jha
112
113 15 Justin Sherrill
* within forkflift run:
114
<pre>
115
ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel
116
</pre>
117 1 Justin Sherrill
118 15 Justin Sherrill
* Refresh the smart proxy: 
119
120
  1. login to katello/foreman
121
  2. navigate to infrastructure > smart proxies
122
  3. click 'refresh' in the list of actions beside your smart proxy
123
You're now rockin' Pulp3
124 18 Partha Aji
125
126 22 Samir Jha
* *Known Issue:* Can't seem to use pulp3 on the box since pulp-api.service fails to start.
127
<pre>
128
sudo chmod -R 777 /etc/pki/pulp/
129 30 John Mitsch
sudo systemctl restart pulpcore-api.service
130 22 Samir Jha
</pre>
131 18 Partha Aji
132 33 Chris Roberts
* Reset the Katello Pulp 3 Dev Environment
133
From within the Foreman directory:
134
<pre>bundle exec rake katello:reset</pre>
135
136 23 Samir Jha
h2. Smart Proxy Setup:
137
138
* Install a smart proxy to point to your pulp3_dev box
139
* ssh into the smart proxy
140
* sudo mkdir /etc/httpd/conf.d/05-foreman-ssl.d
141
* sudo vi /etc/httpd/conf/httpd.conf
142
* Add IncludeOptional "/etc/httpd/conf.d/05-foreman-ssl.d/*.conf to the end of the file and save
143
* In forklift > Run ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-proxy-devel
144
145 25 Justin Sherrill
h3. Other Resources
146
147
* pulp3 gap analysis wiki https://projects.theforeman.org/projects/katello/wiki/PulpV3GapAnalysis
148
* pulp3 gap analysis etherpad https://etherpad.net/p/pulp3_container
149
* pulp3 docker roadmap https://pulp.plan.io/projects/pulp/wiki/Pulp_Docker_Roadmap