Project

General

Profile

Pulp 3 Integration » History » Version 39

Jonathon Turel, 02/20/2020 09:55 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
h2. Katello Dev environment with pulp 3
12
13 15 Justin Sherrill
* Install a katello dev environment with forklift
14 32 Ian Ballou
* Install the following packages in your dev box: 
15 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>
16
<pre>sudo yum -y install https://people.redhat.com/iballou/python3-libcomps-0.1.12-1.git.0.937a666.el7.x86_64.rpm</pre>
17 15 Justin Sherrill
* checkout this forklift pr if its not merged: https://github.com/theforeman/forklift/pull/980
18
* setup ansible-pulp:
19
<pre>
20
cd forklift
21
git clone https://github.com/pulp/ansible-pulp.git
22 1 Justin Sherrill
cd ansible-pulp
23 15 Justin Sherrill
ansible-galaxy install -r requirements.yml -p ./roles
24 29 Justin Sherrill
ansible-galaxy install pulp.pulp_rpm_prerequisites -p ./roles
25 15 Justin Sherrill
</pre>
26 24 Samir Jha
27
28 15 Justin Sherrill
* within forkflift run:
29
<pre>
30
ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-katello-devel
31
</pre>
32 1 Justin Sherrill
33 15 Justin Sherrill
* Refresh the smart proxy: 
34
35
  1. login to katello/foreman
36
  2. navigate to infrastructure > smart proxies
37
  3. click 'refresh' in the list of actions beside your smart proxy
38
You're now rockin' Pulp3
39 18 Partha Aji
40
41 22 Samir Jha
* *Known Issue:* Can't seem to use pulp3 on the box since pulp-api.service fails to start.
42
<pre>
43
sudo chmod -R 777 /etc/pki/pulp/
44 30 John Mitsch
sudo systemctl restart pulpcore-api.service
45 22 Samir Jha
</pre>
46 18 Partha Aji
47 33 Chris Roberts
* Reset the Katello Pulp 3 Dev Environment
48
From within the Foreman directory:
49
<pre>bundle exec rake katello:reset</pre>
50
51 23 Samir Jha
h2. Smart Proxy Setup:
52
53
* Install a smart proxy to point to your pulp3_dev box
54
* ssh into the smart proxy
55
* sudo mkdir /etc/httpd/conf.d/05-foreman-ssl.d
56
* sudo vi /etc/httpd/conf/httpd.conf
57
* Add IncludeOptional "/etc/httpd/conf.d/05-foreman-ssl.d/*.conf to the end of the file and save
58
* In forklift > Run ansible-playbook ./playbooks/katello_pulp3.yml -l centos7-proxy-devel
59
60 15 Justin Sherrill
h3. Other Resources
61
62
* pulp3 gap analysis wiki https://projects.theforeman.org/projects/katello/wiki/PulpV3GapAnalysis
63
* pulp3 gap analysis etherpad https://etherpad.net/p/pulp3_container
64
* pulp3 docker roadmap https://pulp.plan.io/projects/pulp/wiki/Pulp_Docker_Roadmap
65
66
67 16 Ian Ballou
h3. Old way to deploy pulp3 on other box
68 2 Justin Sherrill
* <pre>yum install vagrant-sshfs</pre>
69
* Checkout pulplift: https://github.com/pulp/pulplift 
70 6 Justin Sherrill
* Follow pulplift readme instructions, copy the centos7-pulp3-github box definition from vagrant/boxes.d/99-local.yaml.example 
71 2 Justin Sherrill
* vagrant up centos7-pulp3-github
72
* On katello dev env, edit /etc/foreman-proxy/settings.d/pulp3.yml    
73
** add/edit options (replacing dev.pulp3 with ip address or hostname of pulplift box):
74
<pre>
75 12 John Mitsch
:enabled: true
76
:pulp_url: http://dev.pulp3/pulp/
77
</pre> 
78
* restart foreman-proxy:  systemctl restart foreman-proxy
79 13 John Mitsch
* refresh your smart proxy, from the Infrastructure > Smart Proxies page
80 14 John Mitsch
* Confirm that you see 'pulp3' show up in the list of features for that smart proxy
81 25 Justin Sherrill
82 35 Samir Jha
h3. Deploying pulp3 on new dev boxes with postgres12:
83
84 38 Samir Jha
In forklift, on branch with https://github.com/theforeman/forklift/pull/980 apply patch https://gist.github.com/sjha4/5d4189eae804bd2b3229c10870f56ac2#file-forklift-patch
85
86 1 Justin Sherrill
cd ansible-pulp
87 38 Samir Jha
Apply patch https://gist.github.com/sjha4/5d4189eae804bd2b3229c10870f56ac2#file-0001-psql12-patch 
88
89 35 Samir Jha
vagrant ssh into devel box
90
run 
91
sudo ln -s /opt/rh/rh-postgresql12/root/usr/bin/pg_config /usr/sbin/pg_config
92
sudo ln -s /opt/rh/rh-postgresql12/root/usr/lib64/libpq.so.rh-postgresql12-5 /usr/lib64/libpq.so.rh-postgresql12-5
93
exit
94
Run the playbook.
95
It might fail with postmaster.pid exists. In which case, ssh into dev box. 
96
sudo systemctl stop *postgresql*
97 36 Samir Jha
find / -name postmaster.pid
98
rm -f ^^
99 35 Samir Jha
re-run the playbook.
100
101
Candlepin will probably stop working at this point. To fix this:
102
sudo vi /var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
103
in the file set all the auth from peer to trust.
104
sudo systemctl restart *postgres*
105
106 25 Justin Sherrill
h3. Updating of pulp client binding Gems
107
108
Every two weeks on a Friday, a PR should be open against katello to bump the client gems.  A script is provided https://gist.githubusercontent.com/jlsherrill/836268d9ee9b33fc1fff06e9061db4f4/raw/7a1044725b00c44246fd241e9bed644c5fab6321/generate_pulp3_deps.rb to output the relevant requirements that can be put into katello.gemspec.
109
110
Example PR: https://github.com/Katello/katello/pull/8294
111
112
If there are test failures, investigate and attempt to fix them.  VCR re-recording may be necessary. 
113
114
If there is some expected change, this process can be done more often.
115
116
We will ask for a volunteer the thursday prior to each friday.  Current Schedule:
117
118
Sept 6th
119
Sept 20th
120
Oct  4th
121
Oct 18th