Project

General

Profile

Pulp 3 Integration » History » Version 44

Samir Jha, 02/28/2020 03:57 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
You should now see file, docker and yum as supported content type under pulpcore in the *Services tab*  
32
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
sudo pip3 install "git+https://github.com/pulp/pulp_container.git"
45
sudo rm -rf pulpcore*
46
sudo rm -rf pulp_*
47
sudo mv /usr/local/lib/pyhton3.6/site-packages/pulp* /usr/lib/pyhton3.6/site-packages/
48
cd ~/foreman
49
bundle exec rails katello:reset
50
</pre>
51
52
Note that this does not install pulp_2to3_migration plugin. But the steps to enable will be similar to above when we get a new release of the same.
53 40 Samir Jha
54 41 Justin Sherrill
h2. Old (ansible-based) way to deploy pulp3:
55 2 Justin Sherrill
56 15 Justin Sherrill
* Install a katello dev environment with forklift
57 32 Ian Ballou
* Install the following packages in your dev box: 
58 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>
59
<pre>sudo yum -y install https://people.redhat.com/iballou/python3-libcomps-0.1.12-1.git.0.937a666.el7.x86_64.rpm</pre>
60 15 Justin Sherrill
* checkout this forklift pr if its not merged: https://github.com/theforeman/forklift/pull/980
61
* setup ansible-pulp:
62
<pre>
63
cd forklift
64
git clone https://github.com/pulp/ansible-pulp.git
65 1 Justin Sherrill
cd ansible-pulp
66 15 Justin Sherrill
ansible-galaxy install -r requirements.yml -p ./roles
67 29 Justin Sherrill
ansible-galaxy install pulp.pulp_rpm_prerequisites -p ./roles
68 15 Justin Sherrill
</pre>
69 24 Samir Jha
70
71 15 Justin Sherrill
* within forkflift run:
72
<pre>
73
ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel
74
</pre>
75 1 Justin Sherrill
76 15 Justin Sherrill
* Refresh the smart proxy: 
77
78
  1. login to katello/foreman
79
  2. navigate to infrastructure > smart proxies
80
  3. click 'refresh' in the list of actions beside your smart proxy
81
You're now rockin' Pulp3
82 18 Partha Aji
83
84 22 Samir Jha
* *Known Issue:* Can't seem to use pulp3 on the box since pulp-api.service fails to start.
85
<pre>
86
sudo chmod -R 777 /etc/pki/pulp/
87 30 John Mitsch
sudo systemctl restart pulpcore-api.service
88 22 Samir Jha
</pre>
89 18 Partha Aji
90 33 Chris Roberts
* Reset the Katello Pulp 3 Dev Environment
91
From within the Foreman directory:
92
<pre>bundle exec rake katello:reset</pre>
93
94 23 Samir Jha
h2. Smart Proxy Setup:
95
96
* Install a smart proxy to point to your pulp3_dev box
97
* ssh into the smart proxy
98
* sudo mkdir /etc/httpd/conf.d/05-foreman-ssl.d
99
* sudo vi /etc/httpd/conf/httpd.conf
100
* Add IncludeOptional "/etc/httpd/conf.d/05-foreman-ssl.d/*.conf to the end of the file and save
101
* In forklift > Run ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-proxy-devel
102
103 25 Justin Sherrill
h3. Other Resources
104
105
* pulp3 gap analysis wiki https://projects.theforeman.org/projects/katello/wiki/PulpV3GapAnalysis
106
* pulp3 gap analysis etherpad https://etherpad.net/p/pulp3_container
107
* pulp3 docker roadmap https://pulp.plan.io/projects/pulp/wiki/Pulp_Docker_Roadmap