Skip to main content

DCI Downloader

dci-downloader is a useful tool for downloading the latest versions of Red Hat products.

TLDR

$ sudo dnf -y install https://packages.distributed-ci.io/dci-release.el8.noarch.rpm
$ sudo dnf -y install dci-downloader
$ source ~/dcirc.sh
$ dci-downloader RHEL-9.2 /tmp/repo

Requirements

Red Hat SSO

DCI is connected to the Red Hat SSO. You will need a Red Hat account.

Remoteci

A remoteci is a Virtual Machine or a baremetal server running RHEL. You should check that your remoteci:

  • Is running the latest RHEL 8 release.
  • Has enough free space in the destination folder.
  • Should be able to reach:
    • https://api.distributed-ci.io (443).
    • https://repo.distributed-ci.io (443).
    • https://registry.distributed-ci.io (443).

Installation

The dci-downloader is packaged and available as a RPM files.

$ sudo dnf -y install https://packages.distributed-ci.io/dci-release.el8.noarch.rpm
$ sudo dnf -y install dci-downloader

Configuration

Remoteci creation

DCI is connected to the Red Hat SSO. You need to log in https://www.distributed-ci.io with your redhat.com SSO account. Your user account will be created in our database the first time you connect.

After the first connection you can create a remoteci. Go to https://www.distributed-ci.io/remotecis and click Create a new remoteci button. Once your remoteci is created, you can retrieve the connection information in the Authentication column. Save those information in ~/dcirc.sh file.

At this point, you can validate your credentials with the following commands:

$ source ~/dcirc.sh
$ dcictl remoteci-list

If you see your remoteci in the list, everything is working great so far.

Topic access

Before using dci-downloader, we need to check the list of topic (version of the product) you have access to:

$ source ~/dcirc.sh
$ dcictl topic-list

If you don't see any topic then you should contact your EPM at Red Hat which will give you access to the topic you need.

Usage

You can now download the latest version of a product using dci-downloader.

RHEL examples

Example command to download the latest RHEL-9.2 components into /tmp/repo folder.

$ dci-downloader RHEL-9.2 /tmp/repo

RHOSP examples

$ dci-downloader OSP16.1 /tmp/repo

dci-downloader also allows to mirror the container images associated with the component to a local anonymous registry.

$ dci-downloader OSP16.1 /tmp/repo --registry local_registry_host:5000

ℹ NOTE: except when using dci-openstack-agent, it's the user's responsibility to provide a working anonymous registry. If needed a simple way to setup one is by using Docker Distribution registry in a container

$ podman run --rm -p 5000:5000 registry:2

ℹ NOTE: dci-downloader does not currently clean/purge/untag any image on the registry, leaving this responsibility to the the user until a suitable solution is provided.

Options

By default dci-downloader will download all variants for x86_64 architecture without debug RPMs.

Download other architectures

To download other architectures you can specify those using --arch option

Download x86_64 and ppc64le architectures for RHEL-9.2 topic:

$ dci-downloader RHEL-9.2 /tmp/repo --arch x86_64 --arch ppc64le

Specific variants

To download only specific variants you can specify those using --variant

Download only AppStream and BaseOS variants:

$ dci-downloader RHEL-9.2 /tmp/repo --variant AppStream --variant BaseOS

Filters

By default dci-downloader download the latest components attached to a topic. But if you want to filter those component, you can use the --filter <type> or --filter <type>:<tag> option.

Download only the latest RHEL-9.2 compose

$ dci-downloader RHEL-9.2 /tmp/repo --filter=compose

Download only the latest RHEL-9.2 compose with tag nightly

$ dci-downloader RHEL-9.2 /tmp/repo --filter=compose:nightly

Download the whole compose

To download everything you can add the --all flag

$ dci-downloader RHEL-9.2 /tmp/repo --all

Debug RPMs

To download debug RPMs you can add the --debug flag

Download RHEL-9.2 compose with debug rpms

$ dci-downloader RHEL-9.2 /tmp/repo --debug

Download only specified packages

To download packages specified on the command line, use the --package-filter flag

Download all kernel and glibc packages for RHEL-8.8 for the ppc64le architecture

$ dci-downloader RHEL-8.8 /tmp --variant BaseOS --arch ppc64le --package-filter=kernel --package-filter=glibc

Settings file

You can use a settings file to send parameters to parameterize dci-downloader.

Use --settings parameter:

$ dci-downloader --settings "/etc/dci-rhel-agent/settings.yml"

All settings from settings.yml file will overwrite cli parameters.

Examples of a settings file:

download_folder: /tmp/repo
topics:
  - name: RHEL-9.2
    filters:
      - type: compose
        tag: nightly
  - name: RHEL-8.6
    filters:
      - type: compose
        tag: milestone
    archs:
      - ppc64le
    variants:
      - AppStream
      - name: BaseOS
        with_debug: true

Proxy

If you are using a proxy, just add HTTP_PROXY or HTTPS_PROXY env variable pointing to your proxy.

License

Apache License, Version 2.0 (see LICENSE file)

Help

If something is not working correctly, ensure you have the latest version installed

$ dci-downloader --version
$ dci-downloader --help

To contact DCI see Questions and help

Metadata

Release files for dci-downloader 3.2.0.post202409120927

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dci-downloader 3.2.0.post202409120927
File Size Uploaded
dci-downloader-3.2.0.post202409120927.tar.gz 20.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dci-downloader 3.2.0.post202409120927
File Interpreter ABI Platform
dci_downloader-3.2.0.post202409120927-py3-none-any.whl Python 3 none any Details

Total release size: 41.4 kB

Release files / dci-downloader-3.2.0.post202409120927.tar.gz

Download URL dci-downloader-3.2.0.post202409120927.tar.gz
Size 20.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3769f83da4be44a4929486e25c8116e04199fa8da66f570d61b285a4f06b17b6
BLAKE2b-256 checksum
How to use checksums
f18ad7e27de3d13c3bda77ae878fa99fcc783ec19048524244ab9cd60386136c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.6

Release files / dci_downloader-3.2.0.post202409120927-py3-none-any.whl

Download URL dci_downloader-3.2.0.post202409120927-py3-none-any.whl
Size 21.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0c767fce3f37c2567c703529b06cf68a617f27c8547c76c6d9d6b387c7f9009
BLAKE2b-256 checksum
How to use checksums
2d3b8fdfa7a19a8c2e813be776de3bf0a3f193e149c4f8ff763b743ec9a277f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.6
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page