Project

General

Profile

Pulp 3 Integration » History » Version 48

Samir Jha, 03/09/2020 03:32 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 41 Justin Sherrill
17 42 Justin Sherrill
h2. Adding the yum plugin:
18 40 Samir Jha
<pre>
19
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
20
sudo pip3 install scikit-build nose
21
sudo pip3 install pulp-rpm==3.0.0
22
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
* Refresh the smart proxy 
27
# login to katello/foreman
28
# navigate to infrastructure > smart proxies
29
# click 'refresh' in the list of actions beside your smart proxy
30
31 45 Samir Jha
You should now see file, docker and yum as supported content type under pulpcore in the *Services tab*
32 40 Samir Jha
33 44 Samir Jha
h2. Katello Dev box with pulp3 on master:
34 1 Justin Sherrill
35 44 Samir Jha
On a devel box provisioned with steps above, run :
36
37
<pre>
38
cd /usr/lib/python3.6/site-packages/
39
sudo pip3 install "git+https://github.com/pulp/pulpcore.git"
40
sudo pip3 install scikit-build nose
41
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
42
sudo pip3 install "git+https://github.com/pulp/pulp_file.git"
43
sudo pip3 install "git+https://github.com/pulp/pulp_rpm.git"
44 1 Justin Sherrill
sudo pip3 install "git+https://github.com/pulp/pulp_container.git"
45 45 Samir Jha
sudo pip3 install "git+https://github.com/pulp/pulp-2to3-migration.git"
46 44 Samir Jha
sudo rm -rf pulpcore*
47
sudo rm -rf pulp_*
48 47 Samir Jha
sudo rm -rf redis*
49 46 Samir Jha
sudo mv /usr/local/lib/python3.6/site-packages/pulp* /usr/lib/python3.6/site-packages/
50 47 Samir Jha
sudo mv /usr/local/lib/python3.6/site-packages/redis* /usr/lib/python3.6/site-packages/
51 44 Samir Jha
cd ~/foreman
52
bundle exec rails katello:reset
53
</pre>
54 40 Samir Jha
55 48 Samir Jha
56
Add the following to your /etc/pulp/settings.py
57
58
<pre>
59
AUTHENTICATION_BACKENDS = ['pulpcore.app.authentication.PulpNoCreateRemoteUserBackend']
60
61
REST_FRAMEWORK__DEFAULT_AUTHENTICATION_CLASSES = (
62
    'rest_framework.authentication.SessionAuthentication',
63
    'pulpcore.app.authentication.PulpRemoteUserAuthentication'
64
)
65
66
</pre>
67
68
69
70
71 41 Justin Sherrill
h2. Old (ansible-based) way to deploy pulp3:
72 2 Justin Sherrill
73 15 Justin Sherrill
* Install a katello dev environment with forklift
74 32 Ian Ballou
* Install the following packages in your dev box: 
75 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>
76
<pre>sudo yum -y install https://people.redhat.com/iballou/python3-libcomps-0.1.12-1.git.0.937a666.el7.x86_64.rpm</pre>
77 15 Justin Sherrill
* checkout this forklift pr if its not merged: https://github.com/theforeman/forklift/pull/980
78
* setup ansible-pulp:
79
<pre>
80
cd forklift
81
git clone https://github.com/pulp/ansible-pulp.git
82 1 Justin Sherrill
cd ansible-pulp
83 15 Justin Sherrill
ansible-galaxy install -r requirements.yml -p ./roles
84 29 Justin Sherrill
ansible-galaxy install pulp.pulp_rpm_prerequisites -p ./roles
85 15 Justin Sherrill
</pre>
86 24 Samir Jha
87
88 15 Justin Sherrill
* within forkflift run:
89
<pre>
90
ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel
91
</pre>
92 1 Justin Sherrill
93 15 Justin Sherrill
* Refresh the smart proxy: 
94
95
  1. login to katello/foreman
96
  2. navigate to infrastructure > smart proxies
97
  3. click 'refresh' in the list of actions beside your smart proxy
98
You're now rockin' Pulp3
99 18 Partha Aji
100
101 22 Samir Jha
* *Known Issue:* Can't seem to use pulp3 on the box since pulp-api.service fails to start.
102
<pre>
103
sudo chmod -R 777 /etc/pki/pulp/
104 30 John Mitsch
sudo systemctl restart pulpcore-api.service
105 22 Samir Jha
</pre>
106 18 Partha Aji
107 33 Chris Roberts
* Reset the Katello Pulp 3 Dev Environment
108
From within the Foreman directory:
109
<pre>bundle exec rake katello:reset</pre>
110
111 23 Samir Jha
h2. Smart Proxy Setup:
112
113
* Install a smart proxy to point to your pulp3_dev box
114
* ssh into the smart proxy
115
* sudo mkdir /etc/httpd/conf.d/05-foreman-ssl.d
116
* sudo vi /etc/httpd/conf/httpd.conf
117
* Add IncludeOptional "/etc/httpd/conf.d/05-foreman-ssl.d/*.conf to the end of the file and save
118
* In forklift > Run ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-proxy-devel
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