Project

General

Profile

Pulp 3 Integration » History » Version 36

Samir Jha, 02/18/2020 09:25 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
In forklift, on branch with https://github.com/theforeman/forklift/pull/980 apply patch https://drive.google.com/file/d/1lWe6Aw2zLJRIUl3LvLFpsI1xKlAWhsEh/view?usp=sharing
85
cd ansible-pulp
86
Apply patch https://drive.google.com/file/d/1hqbQi7E_hPeFsJJImCxYR4dfctpAVB4n/view?usp=sharing
87
vagrant ssh into devel box
88
run 
89
sudo ln -s /opt/rh/rh-postgresql12/root/usr/bin/pg_config /usr/sbin/pg_config
90
sudo ln -s /opt/rh/rh-postgresql12/root/usr/lib64/libpq.so.rh-postgresql12-5 /usr/lib64/libpq.so.rh-postgresql12-5
91
exit
92
Run the playbook.
93
It might fail with postmaster.pid exists. In which case, ssh into dev box. 
94
sudo systemctl stop *postgresql*
95 36 Samir Jha
find / -name postmaster.pid
96
rm -f ^^
97 35 Samir Jha
re-run the playbook.
98
99
Candlepin will probably stop working at this point. To fix this:
100
sudo vi /var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
101
in the file set all the auth from peer to trust.
102
sudo systemctl restart *postgres*
103
104 25 Justin Sherrill
h3. Updating of pulp client binding Gems
105
106
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.
107
108
Example PR: https://github.com/Katello/katello/pull/8294
109
110
If there are test failures, investigate and attempt to fix them.  VCR re-recording may be necessary. 
111
112
If there is some expected change, this process can be done more often.
113
114
We will ask for a volunteer the thursday prior to each friday.  Current Schedule:
115
116
Sept 6th
117
Sept 20th
118
Oct  4th
119
Oct 18th