Preparing the Container Images with Podman

Getting Started with Napatech Link-Virtualization™ Software

Platform
Napatech SmartNIC
Content Type
Getting Started Guide
Capture Software Version
Link-Virtualization™ Software 4.4

The container images must be modified with OpenStack patches for overcloud deployment using Podman.

About this task

The script will download, build and upload the container images using Podman. Podman is designed by Red Hat to build, manage and run containers. See https://docs.podman.io/en/latest/ for more information.

Before you begin

The prepare_podman_images.sh script must be executed from the directory containing:
  • The custom_files directory with the files to be used for generating Dockerfiles and installing the containers using Podman.
  • The default_images.txt file with a list of container images to be used by OpenStack without any customization.
  • The custom_images.txt file with a list of images to be customized.

Procedure

  1. Go the podman directory and run the prepare_podman_images.sh to download, build and upload the container images. This script must run as root.
    cd tripleo/podman
    ./prepare_podman_images.sh
    Note: This process takes about an hour. If this process has been interrupted, run the script again. It will automatically rewrite the existing containers.
    Note: If you have the prebuilt container images, run the following script to upload images to Podman. This script must run as root in the directory containing the custom_images and the default_images directories.
    ./push_podman.sh
    The following command displays the container images that are pushed to Podman.
    sudo podman image list
  2. Run the following script to push all images from Podman to the local undercloud registry. This script must run as root.
    ./push_registry.sh
    An output example:
    ...
    /containers/storage/overlay-layers/0eac50d24f1b4004689a764f9b221005e5c54da6314b1a4e6f0af569da51651f.tar-split.gz (wrote 370295808 bytes)
    + echo '... END ...'
    ... END ...
    + sudo openstack tripleo container image list
    +----------------------------------------------------------------------------------------+
    | Image Name                                                                             |
    +----------------------------------------------------------------------------------------+
    | docker://director.ctlplane.localdomain:8787/openstack-neutron-openvswitch-agent:custom |
    | docker://director.ctlplane.localdomain:8787/openstack-nova-scheduler:custom            |
    | docker://director.ctlplane.localdomain:8787/openstack-nova-libvirt:custom              |
    | docker://director.ctlplane.localdomain:8787/openstack-nova-conductor:custom            |
    | docker://director.ctlplane.localdomain:8787/openstack-nova-compute:custom              |
    | docker://director.ctlplane.localdomain:8787/openstack-nova-api:custom                  |
    | docker://director.ctlplane.localdomain:8787/openstack-neutron-metadata-agent:custom    |
    | docker://director.ctlplane.localdomain:8787/openstack-neutron-l3-agent:custom          |
    | docker://director.ctlplane.localdomain:8787/openstack-neutron-dhcp-agent:custom        |
    | docker://director.ctlplane.localdomain:8787/openstack-neutron-server:custom            |
    | docker://director.ctlplane.localdomain:8787/openstack-nova-novncproxy:default          |
    | docker://director.ctlplane.localdomain:8787/openstack-heat-engine:default              |
    | docker://director.ctlplane.localdomain:8787/openstack-heat-api-cfn:default             |
    | docker://director.ctlplane.localdomain:8787/openstack-heat-api:default                 |
    | docker://director.ctlplane.localdomain:8787/openstack-tempest:default                  |
    | docker://director.ctlplane.localdomain:8787/openstack-glance-api:default               |
    | docker://director.ctlplane.localdomain:8787/openstack-keystone:default                 |
    | docker://director.ctlplane.localdomain:8787/openstack-horizon:default                  |
    | docker://director.ctlplane.localdomain:8787/openstack-placement-api:default            |
    | docker://director.ctlplane.localdomain:8787/openstack-iscsid:default                   |
    | docker://director.ctlplane.localdomain:8787/openstack-mariadb:default                  |
    | docker://director.ctlplane.localdomain:8787/openstack-collectd:default                 |
    | docker://director.ctlplane.localdomain:8787/openstack-haproxy:default                  |
    | docker://director.ctlplane.localdomain:8787/openstack-etcd:default                     |
    | docker://director.ctlplane.localdomain:8787/openstack-memcached:default                |
    | docker://director.ctlplane.localdomain:8787/openstack-rabbitmq:default                 |
    | docker://director.ctlplane.localdomain:8787/openstack-redis:default                    |
    | docker://director.ctlplane.localdomain:8787/openstack-qdrouterd:default                |
    | docker://director.ctlplane.localdomain:8787/openstack-multipathd:default               |
    | docker://director.ctlplane.localdomain:8787/openstack-cron:default                     |
    | docker://director.ctlplane.localdomain:8787/openstack-rsyslog:default                  |
    +----------------------------------------------------------------------------------------+