Skip to content

Import Content

Create a new repository by running:

pulp ostree repository create --name fedora-iot

Import a Commit

First, build an image representing one OSTree commit and wait until the process finishes:

echo """name = \"fishy-commit\"
description = \"Fishy OSTree commit\"
version = \"0.0.1\"

[[packages]]
name = \"fish\"
version = \"*\"""" > fishy.toml

sudo composer-cli blueprints push fishy.toml
sudo composer-cli compose start-ostree fishy-commit fedora-iot-commit --ref fedora/stable/x86_64/iot
sudo composer-cli compose status

Download the result from the server by issuing:

sudo composer-cli compose image ${COMPOSER_TASK_UUID}

Ensure that the downloaded tarball is readable by Pulp and import it:

pulp ostree repository import-all --name fedora-iot --file ${IMAGE_TARBALL_C1} --repository_name repo

Note

The argument repository_name describes the name of a root directory containing the OSTree repository after untarring the tarball. For example, the name of the root directory created by composer-cli defaults to repo, which contains the repository itself.

Import more Commits

If there is a need to import additional commits, one can do so by attaching new commits to the last commit in the existing repository:

echo """name = \"vim-commit\"
description = \"Vim OSTree commit\"
version = \"0.0.2\"

[[packages]]
name = \"vim\"
version = \"*\"""" > vim.toml

sudo composer-cli blueprints push vim.toml

Note

Through this step, the reader should have distributed the imported repository to enable the composer-cli utility to download a parent commit to which more commits are going to be attached. Follow the publish workflow <publish-workflow> to learn how to distribute a repository.

Set the reference to the parent commit, the URL of a Pulp repository to verify the parent against, and monitor the status of the build:

sudo composer-cli compose start-ostree vim-commit fedora-iot-commit --ref fedora/stable/x86_64/iot --parent fedora/stable/x86_64/iot --url ${DISTRIBUTION_BASE_URL}
sudo composer-cli compose status

Download the result from the server by issuing:

sudo composer-cli compose image ${TASK_UUID}

Import the downloaded tarball into Pulp:

pulp ostree repository import-commits --name fedora-iot --file ${IMAGE_TARBALL_C2} --repository_name repo --ref fedora/stable/x86_64/iot

Note

The OSTree plugin currently supports only repositories with the modern archive format. The repository's config file still uses the historical term archive-z2 to signify such a format.