Skip to content

Instantly share code, notes, and snippets.

@josephtate
Created February 6, 2025 20:26
Show Gist options
  • Select an option

  • Save josephtate/686d34789b7edd4a24a9a5258760dbc2 to your computer and use it in GitHub Desktop.

Select an option

Save josephtate/686d34789b7edd4a24a9a5258760dbc2 to your computer and use it in GitHub Desktop.
A YAML file to describe the pulp setup for a release workflow with multiple sources(remotes) and protected final stage.
peridot_config: &peridot_src
base_url: https://mtnrepo.ciq.dev
use_hashed_repo: false
credentials:
username: depot-sync
password: arglebarglemarglefargle
pulp_config:
remote_defaults: &pulp_remote_defaults
# These settings are used as default values for the remotes that are created using it.
# Any of the fields can be overridden by merging.
pulp_labels:
# Serialized as a json object to the database. Pulp tracks this, but doesn't use it for anything internally.
product: $product
product_group: $product_group
repository: $repository
releasever: $releasever
arch: $arch
source: $source
os-id: rocky
repository_defaults: &pulp_repository_defaults
# These settings are used as default values for the repositories that are created using it.
# Any of the fields can be overridden by merging.
retain_repo_versions: 0 # infinite
retain_package_versions: 1 # only keep the latest version (release stages should override this to 0)
auto_publish: true
repo_config: |-
priority=50
pulp_labels:
# Serialized as a json object to the database. Pulp tracks this, but doesn't use it for anything internally.
product: $product
product_group: $product_group
repository: $repository
releasever: $releasever
arch: $arch
source: $source
stage: $stage
os-id: rocky
distribution_defaults: &pulp_distribution_defaults
# content_guard: null
hidden: false
pulp_labels:
# Serialized as a json object to the database. Pulp tracks this, but doesn't use it for anything internally.
product: $product
product_group: $product_group
repository: $repository
releasever: $releasever
arch: $arch
source: $source
stage: $stage
os-id: rocky
product_groups:
sig-cloud-next: # set as $product_group
products:
scn-8: # set as $product
# Note that the stage is prepended (with a dash) to this name template according to CIQ's naming convention
repository_name_template: '$product_group-$repository-$releasever.$arch'
distribution_basepath: "$stage/$product_group/$releasever/$repository/$arch"
releasever: 8
arch: ['x86_64', 'aarch64']
# TODO: gpg keys?
stages:
# A list. Each stage name can be either a string or an object containing settings for remotes, repositories,
# and distributions. If the name is a string, all default values are used.
# The first stage is the collection stage, and uses the sources as the upstreams. Stages named "release",
# "prod" or "final" are treated as final stages, and $stage is omitted from pulp object names.
- dev
- test
- release:
repository:
<<: *pulp_repository_defaults
# name can be overridden here if the template doesn't fit, or your release stage is not one of the known
# final stage names
retain_package_versions: 0
repositories:
free: # set as $repository
debug: true # if set, the debug repositories will automatically be created for each architecture
source: true # if set, the src repository will be automatically created
internal: true # if set, repositories will be set up. If false, no action will be taken
sources:
peridot: # set as $source
name: source-$source-$product_group-$repository-$releasever.$arch
type: remote:peridot
peridot_repo:
<<: *peridot_src
project_id: 4d95ae1b-e545-4dc9-8655-caf0ececb8b5
repo_name: cloud
priority: 50
enabled: true
secureboot:
name: source-$source-$product_group-$repository-$relesever.$arch
type: post
priority: 30
nonfree:
just_like: free # just_like is used to inherit the configuration from another key in the same parent.
sources:
peridot:
peridot_repo:
project_id: 4b5b15ea-c832-4ef1-a728-89297eb5b9a4
scn-9:
# just_like is used to inherit the configuration from another key in the same parent.
just_like: scn-8
releasever: 9
repositories:
free:
sources:
peridot:
peridot_repo:
project_id: 9b5a1007-9064-488a-9932-6c993bcf3b6f
nonfree:
sources:
peridot:
peridot_repo:
project_id: f998d0c3-6d65-4bb3-88e8-a2b1961a5e90
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment