Project

General

Profile

Actions

Pulp 3 Integration » History » Revision 81

« Previous | Revision 81/86 (diff) | Next »
Justin Sherrill, 10/19/2021 05:04 PM


Pulp 3 Integration

This page is meant to capture links to various resources around pulp3 integration

Katello Dev box with pulp3:

Dev boxes are deployed with pulp3 by default, via an rpm installation
  • vagrant up katello-dev-box
  • vagrant ssh katello-dev-box

Katello Dev box with pulp3 on master:

Dev boxes come installed and configured to use yum, docker and files on pulp3.
To enable ansible collection content type, you need to perform the following steps on the devel box:

  1. #  sudo pip3 install pulp-ansible==0.7.0
    #  sudo mv /usr/local/lib/python3.6/site-packages/pulp_ansibl* /usr/lib/python3.6/site-packages/
    #  sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' python3-django-admin migrate --no-input
    #  
  2. In file ~/foreman/config/settings.plugins.d/katello.yaml,
  3. Add :ansible_collection: true to the dict of content types.
  4. Restart foreman server and refresh smart proxy features.

Updating to a New Pulp Version in master & nightly:

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 This command can help you get the list:
for i in pulpcore pulp-file pulp-rpm pulp-cli pulp-container pulp-ansible pulp-certguard pulp-deb pulp-python; do echo $i `curl -s https://pypi.org/pypi/pulp-file/json |jq  .info.version`; done

1. Send an email to and link to the discourse thread.
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.
3. Identify any installer changes, open installer PRs
4. Identify katello updates:
  • Updating pulp client gem bindings in katello.gemspec
  • re-record vcr cassettes
  • Identify any katello code changes needed to fix test cases
  • open katello PR with changes

5. Update katello-repos in https://github.com/theforeman/foreman-packaging to point to the new version
6. Update forklift to deploy with the new version: https://github.com/theforeman/forklift/blob/master/vagrant/config/versions.yaml

5. Update client binding rpms at foreman-packaging

Using a 2nd server as a pulp server, for use in development.

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.

1. Spinup a fresh dev environment, or reset your old one with 'bundle exec rake katello:reset'
2. On your hypervisor, setup pulp-installer:

git clone https://github.com/pulp/pulp_installer
cd pulp_installer
git clone  https://github.com/theforeman/forklift.git

3. edit pulp_installer/example.user-config.yml uncomment plugins to install
4. Spin up PULP3 Box:
vagrant up pulp3-sandbox-centos7
vagant ssh pulp3-sandbox-centos7

5. grab the ip address and hostname of the PULP3 box:
sudo yum install net-tools
hostname
ifconfig

6. Add hostname/ipaddress to /etc/hosts on the KATELLO server, as root:
   echo "192.168.0.8  pulp3-sandbox-centos7.example.com" >> /etc/hosts

7. Reset the admin password on the PULP3 Box (as root, run):
DJANGO_SETTINGS_MODULE='pulpcore.app.settings' PULP_SETTINGS='/etc/pulp/settings.py'  /usr/local/lib/pulp/bin/pulpcore-manager  reset-admin-password --password password

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
9. Update ca trust:

update-ca-trust

10. On the KATELLO box, reconfigure the smart proxy plugin, edit /etc/foreman-proxy/settings.d/pulpcore.yml replace contents with (Substituting correct hostname):

---
:enabled: https
:pulp_url: https://pulp3-sandbox-centos7.balmora.example.com
:content_app_url: https://pulp3-sandbox-centos7.balmora.example.com/pulp/content
:mirror: false
:username: admin
:password: password

11. restart the foreman-proxy:

systemctl restart foreman-proxy

12. Navigate to Infrastructure > Smart proxies and refresh the smart proxy features

To pip install a pulp plugin on the new pulp server:

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'.

To find this location run:

systemctl status "pulp*" 

Then look under the CGroup of one of the pulp services.

Example for querying the Pulp 3 API in a development environment:
curl https://`hostname`/pulp/api/v3/status/   --cert /etc/pki/katello/certs/pulp-client.crt  --key /etc/pki/katello/private/pulp-client.key

Recommendation: try the pulp-cli: https://github.com/pulp/pulp-cli#katello

Other Resources

Updated by Justin Sherrill about 3 years ago · 86 revisions