publish

Publish one or more Pulp repositories to the endpoints defined by their distributors.

This command will publish the Pulp repositories provided in the request or fetched using the filters(url-regex or published-before) or an intersection of input repositories and filters.

usage: pubtools-pulp-publish [-h] [--debug] [--udcache-url UDCACHE_URL]
                             [--udcache-user UDCACHE_USER]
                             [--udcache-password UDCACHE_PASSWORD]
                             [--cdn-url CDN_URL] [--cdn-cert CDN_CERT]
                             [--cdn-key CDN_KEY] [--cdn-ca-cert CDN_CA_CERT]
                             [--cdn-arl-template [CDN_ARL_TEMPLATE [CDN_ARL_TEMPLATE ...]]]
                             [--fastpurge-host FASTPURGE_HOST]
                             [--fastpurge-client-token FASTPURGE_CLIENT_TOKEN]
                             [--fastpurge-client-secret FASTPURGE_CLIENT_SECRET]
                             [--fastpurge-access-token FASTPURGE_ACCESS_TOKEN]
                             [--fastpurge-root-url FASTPURGE_ROOT_URL]
                             [--pulp-url PULP_URL] [--pulp-user PULP_USER]
                             [--pulp-password PULP_PASSWORD]
                             [--pulp-certificate PULP_CERTIFICATE]
                             [--pulp-certificate-key PULP_CERTIFICATE_KEY]
                             [--pulp-insecure] [--pulp-throttle PULP_THROTTLE]
                             [--pulp-fake] [--clean] [--force]
                             [--repo-ids REPO_IDS]
                             [--published-before PUBLISHED_BEFORE]
                             [--repo-url-regex REPO_URL_REGEX]

Named Arguments

--debug, -d

Show debug logs; can be provided up to three times to enable more logs

Default: 0

Unified Downloads Cache environment

--udcache-url

Base URL of UD cache flush API; if omitted, UD cache flush features are disabled.

--udcache-user

Username for UD cache flush

--udcache-password

Password for UD cache flush (or set UDCACHE_PASSWORD)

Default: “”

CDN Client environment

--cdn-url

Base URL of CDN, if omitted, CDN won’t be requested for special data (e.g. headers for ARLs)

--cdn-cert

Client certificate for CDN client

--cdn-key

Client key for CDN client

--cdn-ca-cert

CA certificate for CDN

--cdn-arl-template

ARL template used for flushing cache by ARL

Default: []

Akamai FastPurge environment

--fastpurge-host

FastPurge hostname (xxx.purge.akamaiapis.net)

--fastpurge-client-token

Fast Purge client token

--fastpurge-client-secret

FastPurge client secret (or set FASTPURGE_SECRET environment variable)

Default: “”

--fastpurge-access-token

FastPurge access token

--fastpurge-root-url

Root URL of CDN for all cache purges (or set FASTPURGE_ROOT_URL environment variable). If omitted, FastPurge features are disabled.

Default: “”

Pulp environment

--pulp-url

Pulp server URL

--pulp-user

Pulp username

--pulp-password

Pulp password (or set PULP_PASSWORD environment variable)

--pulp-certificate

Pulp certificate. Can also be a single file (.pem)

--pulp-certificate-key

Pulp certificate key

--pulp-insecure

Allow unverified HTTPS connection to Pulp

Default: False

--pulp-throttle

Allows to enqueue or run only specified number of Pulp tasks at one moment (or set PULP_THROTTLE environment variable)

--pulp-fake

Use a fake in-memory Pulp client rather than interacting with a real server. For development/testing only, may have limited functionality.

Default: False

Publish options

Options affecting the behavior of Pulp repo publishes.

--clean

attempt to delete remote content not in the repo

Default: False

--force

force publish of repos even if Pulp thinks nothing has changed

Default: False

Filter options

Options affecting the selection of repos to be published.

--repo-ids

comma separated repos to be published, can be specified multiple times

Default: []

--published-before

publish the repos last published before given date e.g. 2019-08-21

--repo-url-regex

publish repos whose repo url match

Example

A typical invocation of publish would look like this:

pubtools-pulp-publish \
  --pulp-url https://pulp.example.com/ \
  --pulp-user admin \
  --pulp-password XXXXX \
  --repo-ids my-repo1,my-repo2 ...

Mentioned repositories will be published to the defined endpoints in the distributors.

Example: applying filters

Instead of providing the repositories explicitly, you can use filters i.e. url-regex and published-before to fetch the repositories and publish.

pubtools-pulp-publish \
  --pulp-url https://pulp.example.com/ \
  --pulp-user admin \
  --pulp-password XXXXX \
  --published-before 2019-09-10
  --repo-url-regex /some/url/to/match

These filters can be applied on the provided repos too and only the repos matching those filters are published.

pubtools-pulp-publish \
  --pulp-url https://pulp.example.com/ \
  --pulp-user admin \
  --pulp-password XXXXX \
  --published-before 2019-09-10
  --repo-url-regex /some/url/to/match
  --repo-ids my-repo1,my-repo2 ...

Example: with cache flush

If your Pulp server is configured to publish to an Akamai CDN, usage of the Akamai FastPurge API for cache flushing may be enabled to flush cache after publishing repositories.

This is enabled by providing a value for --fastpurge-root-url. FastPurge credentials may also be provided; if omitted, the command will attempt to use a local edgerc file for authentication.

pubtools-pulp-publish \
  --pulp-url https://pulp.example.com/ \
  --pulp-user admin \
  --pulp-password XXXXX \
  --fastpurge-root-url https://cdn.example.com/ \
  --repo-ids my-repo1,my-repo2 ...