Global Variables Reference
Complete reference for global configuration settings that apply to all container images.
Overview
The images/variables.yml file contains global configuration that applies to
all container images in the repository. These settings define project-wide
defaults, security parameters, and variant-specific behavior.
Location: images/variables.yml (in the containers repository root)
Scope: All images inherit these settings unless overridden in
image-specific properties.yml
Configuration Reference
cpe
- Type: String (CPE 2.2 formatted string)
- Default:
"cpe:/a:redhat:hummingbird:1" - Description: Common Platform Enumeration (CPE) identifier for all Hummingbird containers.
- Usage: Automatically added as a label to all generated container images
and passed to
inject-source-infoduring the build process. - Format: CPE 2.2 URI format:
cpe:/part:vendor:product:version
default_user
- Type: String (numeric UID)
- Default:
"65532" - Description: The default unprivileged user ID that all containers run as.
- Usage: Referenced by the
{{ set_user() }}macro whenuser: defaultis specified (or whenuser:is omitted, asdefaultis the default value). - Value:
65532is chosen as a high, non-conflicting UID that:- Avoids conflicts with system users (typically < 1000)
- Avoids conflicts with regular users (typically 1000-60000)
default_distros
- Type: Array of strings
- Default:
["rawhide", "hummingbird"] - Description: Defines the distribution variants (distros) for which images are built. Each distro represents a different base package source.
- Directory Structure: Images are organized as
images/<name>/<distro>/<variant>/ - Common Values:
rawhide- Uses Fedora Rawhide repositories onlyhummingbird- Uses both Fedora Rawhide and Hummingbird repositories
- Usage: Scripts iterate over distros and variants to find all image variants to build. Each distro/variant combination produces a separate container image.
- See Also: default_variant_repos for repository configuration per distro
default_variants
- Type: Array of strings
- Default:
["default", "builder"] - Description: Defines the default set of variants to generate for each
image within each distro when not explicitly specified in the image’s
properties.yml. - Directory Structure: Variants are subdirectories within each distro:
images/<name>/<distro>/<variant>/ - Common Values:
default- The minimal runtime variantbuilder- Extended variant with build tools and package managers
- Extending: Images can use
additional_variantsinproperties.ymlto add extra variants while keeping the defaults (preferred approach) - Override: Images can specify
variantsinproperties.ymlto replace these defaults entirely (use when you need to exclude default variants) - See Also: Image Configuration Reference - variants
default_rpm_packages
-
Type: Object with variant names as keys, arrays of package names as values
-
Default:
default_rpm_packages: builder: - bash - dnf5 - shadow-utils -
Description: Defines packages that are automatically included in specific variants across all images. These are added in addition to packages defined in image-specific
properties.yml. -
Variants: Currently only
builderis defined, but other variants can be added -
Usage: Use this to provide variant-specific packages that should be available in all images using that variant. For example, builder variants include package management tools for development workflows.
default_variant_repos
-
Type: Object with distro names as keys, arrays of repository filenames as values
-
Default:
default_variant_repos: rawhide: - fedora-44.repo hummingbird: - fedora-43.repo - hummingbird.repo -
Description: Defines which yum repositories each distro uses by default for package installation and lockfile generation. The Rawhide distro uses the latest branched Fedora development repo, while Hummingbird uses a stable Fedora release plus the Hummingbird package repository.
-
Repository Files: References files in the
yum-repos/directory -
Usage: This allows different distros to use different package sources. The
hummingbirddistro includes additional repositories that provide Hummingbird-specific packages. -
Override: Image-specific
additional_reposinproperties.ymlare appended to the distro-specific repos
readme_targets
-
Type: Object with target names as keys, configuration objects as values
-
Default: See the actual file
-
Description: Defines target-specific configuration for generating multiple README files from a single template. Each target represents a different build/distribution channel (e.g., Hummingbird project vs Red Hat product).
-
Target Configuration Fields:
filename- Output filename for this target’s READMEregistry- Container registry URL for image referencesproduct_name- Full product name for documentationproduct_name_short- Short product name for headings and titlesdoc_base_url- Base URL for documentation links
-
Usage: Templates access these values via
{{ readme_targets[target].registry }}and similar expressions. The build system generates one README file per target from the sameREADME.md.j2template. -
See Also: Image Pipeline - README Generation
Next Steps
- Image Configuration Reference - Per-image configuration
- Image Variants - Understanding variant types
- Adding Images - How to add a new container image