Project

General

Profile

Pulp 3 Integration » History » Version 80

Justin Sherrill, 10/06/2021 01:05 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 62 Justin Sherrill
Dev boxes are deployed with pulp3 by default, via an rpm installation
14 40 Samir Jha
* vagrant up katello-dev-box
15 1 Justin Sherrill
* vagrant ssh katello-dev-box
16 40 Samir Jha
17 44 Samir Jha
h2. Katello Dev box with pulp3 on master:
18 1 Justin Sherrill
19 69 Samir Jha
Dev boxes come installed and configured to use yum, docker and files on pulp3. 
20
To enable ansible collection content type, you need to perform the following steps on the devel box:
21 1 Justin Sherrill
22 69 Samir Jha
#  <pre>
23 71 Samir Jha
#  sudo pip3 install pulp-ansible==0.7.0
24 72 Samir Jha
#  sudo mv /usr/local/lib/python3.6/site-packages/pulp_ansibl* /usr/lib/python3.6/site-packages/
25 70 Samir Jha
#  sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' python3-django-admin migrate --no-input
26 69 Samir Jha
#  </pre>
27
#  In file ~/foreman/config/settings.plugins.d/katello.yaml, 
28
#  Add :ansible_collection: true to the dict of content types.
29 70 Samir Jha
#  Restart foreman server and refresh smart proxy features.
30 1 Justin Sherrill
31
h2. Updating to a New Pulp Version in master & nightly:
32
33 74 Justin Sherrill
1.  Request build of new version via the discourse Development discussion unless its already built: http://yum.theforeman.org/pulpcore/  (https://github.com/theforeman/pulpcore-packaging).  List the plugin versions you would like (usually the latest of them all) and request a time frame (try to give ~2 weeks). Example: https://community.theforeman.org/t/request-for-pulpcore-3-13-builds/23855
34 73 Justin Sherrill
1.  Send an email to satellite-delivery@redhat.com and link to the discourse thread.
35
2.  Once the new yum repo is available, update your pulp packages locally on your devel environment.  If you are wanting to jump ahead, try to pip3 install the new versions and pray.
36 63 Justin Sherrill
3.  Identify any installer changes, open installer PRs
37
4.  Identify katello updates:
38 48 Samir Jha
* Updating pulp client gem bindings in katello.gemspec 
39 1 Justin Sherrill
* re-record vcr cassettes
40 48 Samir Jha
* Identify any katello code changes needed to fix test cases
41 1 Justin Sherrill
* open katello PR with changes
42 67 Justin Sherrill
43 66 Justin Sherrill
5. Update katello-repos in https://github.com/theforeman/foreman-packaging to point to the new version
44
6. Update forklift to deploy with the new version: https://github.com/theforeman/forklift/blob/master/vagrant/config/versions.yaml
45 48 Samir Jha
46 63 Justin Sherrill
5. Update client binding rpms at foreman-packaging
47
48 1 Justin Sherrill
49 75 Justin Sherrill
h2. Using a 2nd server as a pulp server, for use in development.
50 76 Justin Sherrill
51 75 Justin Sherrill
If you have a devel environment and want to spin up a 2nd dev box via pulp_installer to test with, for example to dev or test against a pulp version that doesn't have rpm builds yet.
52
53
1.  Spinup a fresh dev environment, or reset your old one with 'bundle exec rake katello:reset'
54
2.  On your hypervisor, setup pulp-installer:
55 1 Justin Sherrill
<pre>
56 75 Justin Sherrill
git clone https://github.com/pulp/pulp_installer
57
cd pulp_installer
58
git clone  https://github.com/theforeman/forklift.git
59 1 Justin Sherrill
</pre>
60 75 Justin Sherrill
3.  edit pulp_installer/example.user-config.yml  uncomment plugins to install
61
4.  Spin up PULP3 Box:
62 1 Justin Sherrill
<pre>
63 75 Justin Sherrill
vagrant up pulp3-sandbox-centos7
64
vagant ssh pulp3-sandbox-centos7
65 1 Justin Sherrill
</pre>
66 75 Justin Sherrill
5.  grab the ip address and hostname of the PULP3 box:
67 1 Justin Sherrill
<pre>
68 75 Justin Sherrill
sudo yum install net-tools
69
hostname
70
ifconfig
71 1 Justin Sherrill
</pre>
72 75 Justin Sherrill
6.  Add hostname/ipaddress to /etc/hosts on the KATELLO server, as root:
73 60 Samir Jha
<pre>
74 75 Justin Sherrill
   echo "192.168.0.8  pulp3-sandbox-centos7.example.com" >> /etc/hosts
75
</pre> 
76 80 Justin Sherrill
7.  Reset the admin password on the PULP3 Box (as root, run):
77 75 Justin Sherrill
<pre>
78 80 Justin Sherrill
DJANGO_SETTINGS_MODULE='pulpcore.app.settings' PULP_SETTINGS='/etc/pulp/settings.py'  /usr/local/lib/pulp/bin/pulpcore-manager  reset-admin-password --password password
79 64 Samir Jha
</pre>
80
81 75 Justin Sherrill
8.  copy contents of  /etc/pulp/certs/root.crt on PULP box to the KATELLO box in file: /etc/pki/ca-trust/source/anchors/pulpcore.crt
82
9.  Update ca trust:
83
<pre>
84
update-ca-trust
85
</pre>
86 62 Justin Sherrill
87 75 Justin Sherrill
10. On the KATELLO box, reconfigure the smart proxy plugin, edit  /etc/foreman-proxy/settings.d/pulpcore.yml  replace contents with (Substituting correct hostname):
88
<pre>
89
---
90
:enabled: https
91
:pulp_url: https://pulp3-sandbox-centos7.balmora.example.com
92
:content_app_url: https://pulp3-sandbox-centos7.balmora.example.com/pulp/content
93
:mirror: false
94
:username: admin
95 1 Justin Sherrill
:password: password
96
</pre>
97
98
11.  restart the foreman-proxy:
99
<pre>
100
systemctl restart foreman-proxy
101
</pre>
102
12.  Navigate to Infrastructure > Smart proxies and refresh the smart proxy features
103 78 Ryan Verdile
104 79 Ryan Verdile
h3. To pip install a pulp plugin on the new pulp server:
105 78 Ryan Verdile
106
Make sure to use the pip executable found in the same bin directory that the pulp service executables are found. For example, '/usr/local/lib/pulp/bin/pip'.
107
108
To find this location run: 
109
<pre>
110
systemctl status "pulp*"
111
</pre> 
112
Then look under the CGroup of one of the pulp services.
113 59 Ian Ballou
114
h2. Example for querying the Pulp 3 API in a development environment:
115 68 Ian Ballou
<pre>
116
curl https://`hostname`/pulp/api/v3/status/   --cert /etc/pki/katello/certs/pulp-client.crt  --key /etc/pki/katello/private/pulp-client.key
117 25 Justin Sherrill
</pre>
118
119
Recommendation: try the pulp-cli: https://github.com/pulp/pulp-cli#katello
120
121
h3. Other Resources
122 1 Justin Sherrill
123
* pulp3 gap analysis wiki https://projects.theforeman.org/projects/katello/wiki/PulpV3GapAnalysis
124
* pulp3 gap analysis etherpad https://etherpad.net/p/pulp3_container
125
* pulp3 docker roadmap https://pulp.plan.io/projects/pulp/wiki/Pulp_Docker_Roadmap