Skip to content

Python Library - API Reference ​

Detailed documentation for all Python modules and classes in the Garden Linux Python Library

gardenlinux.apt ​

APT module

class gardenlinux.apt.Debsrc(deb_source: str, deb_version: str) ​

Class to reflect deb sources.

class gardenlinux.apt.DebsrcFile ​

Class to represent deb sources loaded and parsed as dict.

read(f: TextIO) → None ​

Read and parse the given TextIO data to extract deb sources.

  • Parameters:f – TextIO data to parse
  • Since: 0.7.0

class gardenlinux.apt.GardenLinuxRepo(dist: str, url: str | None = 'http://packages.gardenlinux.io/gardenlinux', components: list[str] | None = ['main']) ​

Class to reflect APT based GardenLinux repositories.

get_package_version_by_name(name: str) → list[tuple[str, str]] ​

Returns the package version matching the given name.

  • Parameters:name – name of package to find
  • Returns: (list) Packages matching the input name
  • Since: 0.7.0

get_packages_versions() → list[tuple[str, str]] ​

Returns list of (package, version) tuples

  • Returns: (list) Packages versions
  • Since: 0.7.0

gardenlinux.features ​

Features module

class gardenlinux.features.ArtifactBaseName(artifact: str) ​

Class to represent an artifact base name (ABN). It can be parsed from any file type.

property commit_hash : str | None ​

Returns the commit hash if part of the ABN parsed.

  • Returns: (str) Commit hash
  • Since: 1.0.0

property commit_id : str ​

Returns the commit ID if part of the ABN parsed.

  • Returns: (str) Commit ID
  • Since: 1.0.0

static get_version_and_commit_id_from_files(gardenlinux_root: Path | str) → tuple[str | None, str | None] ​

Returns the version and commit ID based on files in the GardenLinux root directory.

  • Parameters:gardenlinux_root – GardenLinux root directory
  • Returns: (tuple) Version and commit ID if readable; None for both values otherwise
  • Since: 1.0.0

load_from_release_file(release_file: PathLike[str] | str) → None ​

Loads and parses a release metadata file.

  • Parameters:release_file – Release metadata file
  • Since: 1.0.0

static new_from_release_file(release_file: PathLike[str] | str) → ArtifactBaseName ​

Loads and parses a release metadata file to return a new ABN instance.

  • Parameters:release_file – Release metadata file
  • Returns: (object) ABN instance
  • Since: 1.0.0

static new_instance(artifact_base_name: str | None = None, versioned_flavor: str | None = None, flavor: str | None = None, cname: str | None = None, arch: str | None = None, version: str | None = None, commit_id_or_hash: str | None = None) → ArtifactBaseName ​

Returns a new ABN instance based on various input data available.

  • Parameters:
    • artifact_base_name – Artifact base name
    • versioned_flavor – Garden Linux versioned flavor
    • flavor – Garden Linux flavor
    • cname – Garden Linux Ccanonical Name
    • arch – Artifact architecture
    • version – Artifact version
    • commit_id_or_hash – Artifact commit ID or hash
  • Returns: (object) ABN instance
  • Since: 1.0.0

property release_metadata_string : str ​

Returns the release metadata describing the given ABN instance.

  • Returns: (str) Release metadata
  • Since: 1.0.0

save_to_release_file(release_file: PathLike[str] | str, overwrite: bool | None = False) → None ​

Saves the release metadata file.

  • Parameters:release_file – Release metadata file
  • Since: 1.0.0

property version_and_commit_id : str ​

Returns the version and commit ID of the ABN parsed.

  • Returns: (str) Version and commit ID
  • Since: 1.0.0

class gardenlinux.features.CName(cname: str) ​

Class to represent a Garden Linux Canonical Name (CName).

property cname : str ​

Returns the CName parsed.

  • Returns: (str) CName
  • Since: 0.7.0

property feature_set : str ​

Returns the feature set for the CName parsed.

  • Returns: (str) Feature set of the CName
  • Since: 0.7.0

property feature_set_element : str ​

Returns the feature set of type “element” for the CName parsed.

  • Returns: (str) Feature set elements
  • Since: 1.0.0

property feature_set_flag : str ​

Returns the feature set of type “flag” for the CName parsed.

  • Returns: (str) Feature set flags
  • Since: 1.0.0

property feature_set_list : List[str] ​

Returns the feature set for the CName parsed.

  • Returns: (list) Feature set list of the CName
  • Since: 0.10.12

property feature_set_platform : str ​

Returns the feature set of type “platform” for the CName parsed.

  • Returns: (str) Feature set platform
  • Since: 1.0.0

property features : Dict[str, Any] ​

Returns the features for the CName parsed.

  • Returns: (dict) Features of the CName
  • Since: 0.10.14

property platform : str ​

Returns the platform for the CName parsed.

  • Returns: (str) Platform
  • Since: 0.7.0

property platform_variant : str | None ​

Returns the platform variant for the CName parsed.

  • Returns: (str) Platform variant
  • Since: 1.0.0

class gardenlinux.features.Flavor(cname: str, arch: str) ​

Class to represent a Garden Linux flavor.

property arch : str ​

Returns the architecture for the CName parsed.

  • Returns: (str) CName architecture
  • Since: 0.7.0

property flavor : str ​

Returns the Garden Linux flavor parsed.

  • Returns: (str) Flavor
  • Since: 0.7.0

class gardenlinux.features.Parser(gardenlinux_root: str | None = None, feature_dir_name: str = 'features', logger: Logger | None = None) ​

Parser for GardenLinux features.

filter(cname: str, ignore_excludes: bool = False, additional_filter_func: Callable[[str], bool] | None = None) → networkx.Graph ​

Filters the features graph.

  • Parameters:
    • cname – Canonical name to filter
    • ignore_excludes – Ignore exclude feature files
    • additional_filter_func – Additional filter function
  • Returns: (networkx.Graph) Filtered features graph
  • Since: 0.7.0

filter_as_dict(cname: str, ignore_excludes: bool = False, additional_filter_func: Callable[[str], bool] | None = None) → Dict[str, List[str]] ​

Filters the features graph and returns it as a dict.

  • Parameters:
    • cname – Canonical name to filter
    • ignore_excludes – Ignore exclude feature files
    • additional_filter_func – Additional filter function
  • Returns: (dict) List of features for a given cname, split into platform, element and flag
  • Since: 0.7.0

filter_as_list(cname: str, ignore_excludes: bool = False, additional_filter_func: Callable[[str], bool] | None = None) → List[str] ​

Filters the features graph and returns it as a list.

  • Parameters:
    • cname – Canonical name to filter
    • ignore_excludes – Ignore exclude feature files
    • additional_filter_func – Additional filter function
  • Returns: (list) Features list for a given cname
  • Since: 0.7.0

filter_as_string(cname: str, ignore_excludes: bool = False, additional_filter_func: Callable[[str], bool] | None = None) → str ​

Filters the features graph and returns it as a string.

  • Parameters:
    • cname – Canonical name to filter
    • ignore_excludes – Ignore exclude feature files
    • additional_filter_func – Additional filter function
  • Returns: (str) Comma separated string with the expanded feature set for the cname
  • Since: 0.7.0

filter_based_on_feature_set(feature_set: List[str], ignore_excludes: bool = False, additional_filter_func: Callable[[str], bool] | None = None) → networkx.Graph ​

Filters the features graph based on a feature set given.

  • Parameters:
    • feature_set – Feature set to filter
    • ignore_excludes – Ignore exclude feature files
    • additional_filter_func – Additional filter function
  • Returns: (networkx.Graph) Filtered features graph
  • Since: 0.9.2

filter_graph_as_dict(graph: networkx.Graph) → Dict[str, List[str]] ​

Filters the features graph and returns it as a dict.

  • Parameters:graph – Features graph
  • Returns: (dict) List of features for a given cname, split into platform, element and flag
  • Since: 0.9.2

filter_graph_as_list(graph: networkx.Graph) → List[str] ​

Filters the features graph and returns it as a list.

  • Parameters:graph – Features graph
  • Returns: (list) Features list for a given cname
  • Since: 0.9.2

filter_graph_as_string(graph: networkx.Graph) → str ​

Filters the features graph and returns it as a string.

  • Parameters:graph – Features graph
  • Returns: (str) Comma separated string with the expanded feature set for the cname
  • Since: 0.9.2

static get_cname_as_feature_set(cname: str) → List[str] ​

Returns the features of a given canonical name.

  • Parameters:cname – Canonical name
  • Returns: (list) Features of the cname
  • Since: 1.0.0

static get_cname_from_graph(graph: networkx.Graph) → str ​

Get the base cname for the feature graph given.

  • Parameters:graph – Graph to generate cname for
  • Returns: (str) Garden Linux canonical name
  • Since: 1.0.0

static get_minimal_feature_set(graph: networkx.Graph) → Set[str] ​

Returns the minimal set of features described by the given graph.

  • Parameters:graph – networkx.Graph
  • Returns: (set) Minimal set of features
  • Since: 1.0.0

property graph : networkx.Graph ​

Returns the features graph based on the GardenLinux features directory.

  • Returns: (networkx.Graph) Features graph
  • Since: 0.7.0

static set_default_gardenlinux_root_dir(root_dir: str) → None ​

Sets the default GardenLinux root directory used.

  • Parameters:root_dir – GardenLinux root directory
  • Since: 0.7.0

static sort_graph_nodes(graph: networkx.Graph) → List[str] ​

Sorts graph nodes by feature type.

  • Parameters:graph – Graph to sort
  • Returns: (list) Sorted feature set
  • Since: 0.7.0

static sort_reversed_graph_nodes(graph: networkx.Graph) → List[str] ​

Sorts graph nodes by feature type.

  • Parameters:graph – Graph to reverse and sort
  • Returns: (list) Reversed and sorted feature set
  • Since: 0.7.0

static subset(input_set: Set[str], order_list: List[str]) → List[str] ​

Returns items from order_list if given in input_set.

  • Parameters:
    • input_set – Set of values for filtering
    • order_list – Set of values to be filtered
  • Returns: (list) Subset
  • Since: 1.0.0

class gardenlinux.features.VersionedFlavor(flavor: str, arch: str, version: str) ​

Class to represent a Garden Linux versioned flavor.

property version : str ​

Returns the version.

  • Returns: (str) Version
  • Since: 0.7.0

property version_epoch : int | None ​

Returns the Garden Linux version epoch.

  • Returns: (str) Garden Linux version epoch
  • Since: 1.0.0

gardenlinux.flavors ​

Flavors module

class gardenlinux.flavors.Parser(data: str, logger: Logger | None = None) ​

Parser for GardenLinux flavors.yaml.

filter(include_only_patterns: List[str] = [], wildcard_excludes: List[str] = [], only_build: bool = False, only_test: bool = False, only_test_platform: bool = False, only_publish: bool = False, filter_categories: List[str] = [], exclude_categories: List[str] = []) → List[Tuple[Any, str]] ​

Filters flavors data and generates combinations.

  • Parameters:
    • include_only_patterns – Include pattern list
    • wildcard_excludes – Exclude wildcard list
    • only_build – Return only build-enabled flavors
    • only_test – Return only test-enabled flavors
    • only_test_platform – Return only platform-test-enabled flavors
    • only_publish – Return only flavors to be published
    • filter_categories – List of categories to include
    • exclude_categories – List of categories to exclude
  • Returns: (list) Filtered flavors
  • Since: 0.7.0

static group_by_arch(combinations: List[Tuple[Any, str]]) → Dict[str, List[str]] ​

Groups combinations by architecture into a dictionary.

  • Parameters:combinations – Flavor combinations to group
  • Returns: (list) Grouped flavor combinations
  • Since: 0.7.0

static remove_arch(combinations: List[Tuple[Any, str]]) → List[str] ​

Removes the architecture from combinations.

  • Parameters:combinations – Flavor combinations to remove the architecture
  • Returns: (list) Changed flavor combinations
  • Since: 0.7.0

static should_exclude(combination: str, excludes: List[str], wildcard_excludes: List[str]) → bool ​

Checks if a combination should be excluded based on exact match or wildcard patterns.

  • Parameters:
    • combination – Feature
    • excludes – List of features to exclude
    • wildcard_excludes – List of feature wildcards to exclude
  • Returns: (bool) True if excluded
  • Since: 0.7.0

static should_include_only(combination: str, include_only_patterns: List[str]) → bool ​

Checks if a combination should be included based on –include-only wildcard patterns. If no patterns are provided, all combinations are included by default.

  • Parameters:
    • combination – Feature
    • include_only_patterns – List of features to include
  • Returns: (bool) True if included
  • Since: 0.7.0

gardenlinux.git ​

Git module

class gardenlinux.git.Repository(git_directory: PathLike[str] | str = '.', logger: Logger | None = None, **kwargs: Any) ​

Repository operations handler based on the given Git directory.

static checkout_repo(git_directory: PathLike[str] | str, repo_url: str = 'https://github.com/gardenlinux/gardenlinux', branch: str = 'main', commit: str | None = None, pathspecs: List[str] | None = None, logger: Logger | None = None, **kwargs: Any) → Any ​

Returns the root Git Repo instance.

  • Returns: (object) Git Repo instance
  • Since: 0.10.0

static checkout_repo_sparse(git_directory: PathLike[str] | str, pathspecs: List[str] = [], repo_url: str = 'https://github.com/gardenlinux/gardenlinux', branch: str = 'main', commit: str | None = None, logger: Logger | None = None, **kwargs: Any) → Any ​

Sparse checkout given Git repository and return the Repository instance.

  • Returns: (object) Git Repository instance
  • Since: 0.10.0

property commit_id : str ​

Returns the commit ID for Git HEAD.

  • Returns: (str) Git commit ID
  • Since: 0.10.0

property root : Path ​

Returns the root directory of the current Git repository.

  • Returns: (object) Git root directory
  • Since: 0.10.0

property root_repo : Any ​

Returns the root Git Repository instance.

  • Returns: (object) Git root Repository instance
  • Since: 0.10.0

gardenlinux.oci ​

OCI module

class gardenlinux.oci.Image(image: Image, logger: Logger | None = None) ​

Podman image class with extended API features support.

get_filesystem_changes(podman: PodmanContext, parent_layer_image_id: str | None = None) → Dict[str, List[str]] ​

Returns the underlying podman image object.

  • Parameters:podman – Podman context
  • Returns: (_Image) Podman image object
  • Since: 1.0.0

property id : str ​

Returns the identifier for the object.

  • Returns: (str) Identifier for the object
  • Since: 1.0.0
  • Type: podman-py.readthedocs.io

static import_plain_tar(tar_file_name: str | PathLike[str], , podman: PodmanContext) → str ​

Import a plain filesystem tar archive into an OCI image.

  • Parameters:
    • tar_file_name – Plain filesystem tar archive
    • podman – Podman context
  • Returns: (str) Podman image ID
  • Since: 1.0.0

property labels : Dict[str, str] ​

Return labels associated with Image.

  • Returns: (dict) Labels dict
  • Since: 1.0.0
  • Type: podman-py.readthedocs.io

property layer_image_ids : List[str] ​

Returns the podman image IDs of all parent layers.

  • Parameters:podman – Podman context
  • Returns: (list) Podman layer image IDs
  • Since: 1.0.0

save_oci_archive(podman: PodmanContext, chunk_size: int | None = 2097152, named: str | bool = False) → Iterator[bytes] ​

Returns image as an OCI archive.

This code copies Podman Image.save() method to generate OCI archives.

  • Parameters:
    • chunk_size – If None, data will be streamed in received buffer size. If not None, data will be returned in sized buffers. Default: 2MB
    • named – If False (default), the tarball will not retain repository and tag information for this image. If set to True, the first tag in the tags list will be used to identify the image. Alternatively, any element of the tags list can be used as an argument to use that specific tag as the saved identifier.
    • podman – Podman context
  • Returns: (object) Image data iterator
  • Since: 1.0.0

property tags : Dict[str, str] ​

Return tags from Image.

  • Returns: (list) Tags
  • Since: 1.0.0
  • Type: podman-py.readthedocs.io

class gardenlinux.oci.ImageManifest(*args: Any, **kwargs: Any) ​

OCI image manifest

ANNOTATION_ARCH_KEY = 'org.opencontainers.image.architecture' ​

OCI image manifest architecture annotation

ANNOTATION_ARTIFACT_BASE_NAME_KEY = 'io.gardenlinux.image.artifact-base-name' ​

OCI image manifest Garden Linux artifact base name annotation

ANNOTATION_CNAME_DEPRECATED_KEY = 'cname' ​

OCI image manifest Garden Linux canonical name deprecated annotation

ANNOTATION_CNAME_KEY = 'io.gardenlinux.image.cname' ​

OCI image manifest Garden Linux canonical name annotation

ANNOTATION_COMMIT_KEY = 'org.opencontainers.image.revision' ​

OCI image manifest GardenLinux commit hash annotation

ANNOTATION_DESCRIPTION_KEY = 'org.opencontainers.image.description' ​

OCI image manifest description annotation

ANNOTATION_FEATURE_SET_DEPRECATED_KEY = 'feature_set' ​

OCI image manifest Garden Linux feature set deprecated annotation

ANNOTATION_FEATURE_SET_KEY = 'io.gardenlinux.image.feature-set' ​

OCI image manifest Garden Linux feature set annotation

ANNOTATION_SOURCE_REPO_KEY = 'org.opencontainers.image.source' ​

OCI image manifest Garden Linux source repository URL annotation

ANNOTATION_TITLE_KEY = 'org.opencontainers.image.title' ​

OCI image manifest title annotation

ANNOTATION_VERSION_KEY = 'org.opencontainers.image.version' ​

OCI image manifest GardenLinux version annotation

append_layer(layer: Layer | Dict[str, Any]) → None ​

Appends the given OCI image manifest layer to the manifest

  • Parameters:layer – OCI image manifest layer
  • Since: 0.7.0

property arch : str ​

Returns the architecture of the OCI image manifest.

  • Returns: (str) OCI image architecture
  • Since: 0.7.0

property artifact_base_name : str ​

Returns the Garden Linux artifact base name of the OCI image manifest.

  • Returns: (str) OCI image Garden Linux artifact base name
  • Since: 1.0.0

property cname : str ​

Returns the Garden Linux canonical name of the OCI image manifest.

  • Returns: (str) OCI image Garden Linux canonical name
  • Since: 0.7.0

property extended_dict : Dict[str, Any] ​

Returns the final parsed and extended OCI manifest dictionary

  • Returns: (dict) OCI manifest dictionary
  • Since: 1.0.0

property feature_set : str ​

Returns the Garden Linux feature set of the OCI image manifest.

  • Returns: (str) OCI image Garden Linux feature set
  • Since: 0.7.0

property flavor : str ​

Returns the Garden Linux flavor of the OCI image manifest.

  • Returns: (str) OCI image Garden Linux flavor
  • Since: 0.7.0

property layers_as_dict : Dict[str, Any] ​

Returns the OCI image manifest layers as a dictionary.

  • Returns: (dict) OCI image manifest layers with title as key
  • Since: 0.7.0

write_metadata_file(manifest_file_path_name: PathLike[str] | str) → None ​

Create OCI image manifest metadata and write it to the file given.

  • Parameters:manifest_file_path_name – OCI image manifest metadata file
  • Since: 0.7.0

class gardenlinux.oci.Index(*args: Any, **kwargs: Any) ​

OCI image index

append_manifest(manifest: Dict[str, Any]) → None ​

Appends the given OCI image manifest to the index

  • Parameters:manifest – OCI image manifest
  • Since: 0.7.0

property extended_dict : Dict[str, Any] ​

Returns the final parsed and extended OCI image index dictionary

  • Returns: (dict) OCI image index dictionary
  • Since: 1.0.0

property json : bytes ​

Returns the OCI image index as a JSON

  • Returns: (bytes) OCI image index as JSON
  • Since: 0.7.0

property manifests_as_dict : Dict[str, Dict[str, Any]] ​

Returns the OCI image manifests of the index

  • Returns: (dict) OCI image manifests with CNAME or digest as key
  • Since: 0.7.0

class gardenlinux.oci.Layer(blob_path: PathLike[str] | str, media_type: str | None = None, is_dir: bool = False) ​

OCI image layer

ANNOTATION_ARCH_KEY = 'io.gardenlinux.image.layer.architecture' ​

OCI image layer architecture annotation

ANNOTATION_TITLE_KEY = 'org.opencontainers.image.title' ​

OCI image layer title annotation

property dict : Dict[Any, Any] ​

Return a dictionary representation of the layer

  • Returns: (dict) OCI manifest layer metadata dictionary
  • Since: 0.7.2

static generate_metadata_from_file_name(file_name: PathLike[str] | str, arch: str) → Dict[str, Any] ​

Generates OCI manifest layer metadata for the given file path and name.

  • Parameters:
    • file_name – File path and name of the target layer
    • arch – The arch of the target image
  • Returns: (dict) OCI manifest layer metadata dictionary
  • Since: 0.7.0

static lookup_media_type_for_file_name(file_name: PathLike[str] | str) → str ​

Looks up the media type based on file name or extension.

  • Parameters:file_name – File path and name of the target layer
  • Returns: (str) Media type
  • Since: 0.7.0

class gardenlinux.oci.Manifest(*args: Any, **kwargs: Any) ​

OCI manifest

ANNOTATION_COMMIT_DEPRECATED_KEY = 'commit' ​

OCI image manifest GardenLinux commit hash deprecated annotation

ANNOTATION_COMMIT_KEY = 'io.gardenlinux.manifest.commit' ​

OCI image manifest GardenLinux commit hash annotation

ANNOTATION_VERSION_DEPRECATED_KEY = 'version' ​

OCI image manifest GardenLinux version deprecated annotation

ANNOTATION_VERSION_KEY = 'io.gardenlinux.manifest.version' ​

OCI image manifest GardenLinux version annotation

property commit : str ​

Returns the GardenLinux Git commit ID of the OCI manifest.

  • Returns: (str) OCI GardenLinux Git commit ID
  • Since: 0.7.0

config_from_dict(config: Dict[str, Any], annotations: Dict[str, Any]) → None ​

Write a new OCI configuration to file, and generate oci metadata for it.

For reference see https://github.com/opencontainers/image-spec/blob/main/config.md annotations, mediatype, size, digest are not part of digest and size calculation, and therefore must be attached to the output dict and not written to the file.

  • Parameters:
    • config – dict with custom configuration (the payload of the configuration)
    • annotations – dict with custom annotations to be attached to metadata part of config
  • Since: 0.7.0

property config_json : bytes ​

Returns the OCI image manifest config.

  • Returns: (bytes) OCI image manifest config
  • Since: 0.7.0

property digest : str ​

Returns the OCI image manifest digest.

  • Returns: (str) OCI image manifest digest
  • Since: 0.7.0

property extended_dict : Dict[str, Any] ​

Returns the final parsed and extended OCI manifest dictionary

  • Returns: (dict) OCI manifest dictionary
  • Since: 1.0.0

property json : bytes ​

Returns the OCI image manifest as a JSON

  • Returns: (bytes) OCI image manifest as JSON
  • Since: 0.7.0

property size : int ​

Returns the OCI image manifest JSON size in bytes.

  • Returns: (int) OCI image manifest JSON size in bytes
  • Since: 0.7.0

property version : str ​

Returns the GardenLinux version of the OCI image manifest.

  • Returns: (str) OCI image GardenLinux version
  • Since: 0.7.0

class gardenlinux.oci.Podman(insecure: bool | None = False, logger: Logger | None = None) ​

OCI podman provides access to an local podman installation.

build(build_path: str, , podman: PodmanContext, platform: str | None = None, build_args: Dict[str, str] | None = None, oci_tag: str | None = None, log_build_output: bool = False, **kwargs: Any) → str ​

Build a image.

  • Since: 1.0.0

build_and_save_oci_archive(build_path: str, oci_archive_file_name: str | PathLike[str], , podman: PodmanContext, platform: str | None = None, build_args: Dict[str, str] | None = None, oci_tag: str | None = None, log_build_output: bool = False, **kwargs: Any) → Dict[str, str] ​

Build a image and save the result as an OCI archive with the given path and file name.

  • Since: 1.0.0

get_image(image: str, , podman: PodmanContext, oci_tag: str | None = None) → Image ​

Returns the Podman image ID for a given OCI image tag.

  • Since: 1.0.0

get_image_id(image: str, , podman: PodmanContext, oci_tag: str | None = None) → str ​

Returns the Podman image ID for a given OCI image tag.

  • Since: 1.0.0

static get_image_tag_list(image: str, tag_list: Sequence[str]) → List[str] ​

Returns a list of “image:tag” values.

  • Since: 1.0.0

load_oci_archive(oci_archive_file_name: str | PathLike[str], , podman: PodmanContext) → str ​

Load OCI archives from the given directory.

  • Since: 1.0.0

load_oci_archives_from_directory(oci_dir: str | PathLike[str], , podman: PodmanContext) → Dict[str, str] ​

Load OCI archives from the given directory.

  • Since: 1.0.0

static parse_build_args_list(args_list: List[str]) → Dict[str, str] ​

Returns a mapping of build arguments based on the given list.

  • Since: 1.0.0

pull(image: str, podman: PodmanContext, platform: str | None = None, oci_tag: str | None = None) → str ​

Pulls a given OCI image.

  • Since: 1.0.0

push(image: str, , podman: PodmanContext, destination: str | None = None, oci_tag: str | None = None) → None ​

Pushs a given OCI image.

  • Since: 1.0.0

save_oci_archive(image_id: str, oci_archive_file_name: str | PathLike[str], , podman: PodmanContext, oci_tag: str | None = None) → None ​

Save the given Podman image ID as an OCI archive with the given path and file name.

  • Since: 1.0.0

tag(image_id: str, oci_tag: str, , podman: PodmanContext) → None ​

Tags a given Podman image ID with the image tag given.

  • Since: 1.0.0

tag_list(image_id: str, oci_tags_list: List[str], podman: PodmanContext) → None ​

Tags a given Podman image ID with the list of image tags given.

  • Since: 1.0.0

class gardenlinux.oci.PodmanContext(logger: Logger | None = None) ​

OCI podman context provides a context manager to be used to interact with the podman API from Python.

static wrap(f: Any) → Any ​

Wraps the given function to provide access to a podman client.

  • Since: 1.0.0

class gardenlinux.oci.Repository(repository_url: str, insecure: bool = False, token: str | None = None, logger: Logger | None = None) ​

OCI repository instance to provide methods for interaction.

generate_image_manifest(cname: str, architecture: str | None, version: str | None, commit: str | None, feature_set: str | None = None) → ImageManifest ​

Generates an OCI image manifest

  • Parameters:
    • cname – Canonical name of the manifest
    • architecture – Target architecture of the manifest
    • version – Artifacts version of the manifest
    • commit – The commit hash of the manifest
    • feature_set – The expanded list of the included features of this manifest
  • Returns: (object) OCI image manifest
  • Since: 0.10.0

generate_index() → Index ​

Generates an OCI image index

  • Returns: (object) OCI image index
  • Since: 0.7.0

generate_manifest(version: str | None = None, commit: str | None = None) → Manifest ​

Generates an OCI manifest

  • Parameters:
    • version – Artifacts version of the manifest
    • commit – The commit hash of the manifest
  • Returns: (object) OCI manifest
  • Since: 0.9.2

static get_artifacts_metadata_from_files(files: List[str], arch: str) → List[Dict[str, Any]] ​

Returns OCI layer metadata for the given list of files.

  • Parameters:
    • files – a list of filenames (not paths) to set oci_metadata for
    • arch – arch of the target image
  • Returns: (list) List of dicts, where each dict represents a layer
  • Since: 0.7.0

push_index(index: Index, tag: str | None = None) → None ​

Replaces an old manifest entries with new ones

  • Parameters:
    • manifests_dir – Directory where the manifest entries are read from
    • additional_tags – Additional tags to push the index with
  • Since: 1.0.0

push_index_for_tags(index: Index, tags: List[str]) → None ​

Push tags for an given OCI image index.

  • Parameters:
    • index – OCI image index
    • tags – List of tags to push the index for
  • Since: 0.7.0

push_index_from_directory(manifests_dir: PathLike[str] | str, additional_tags: List[str] | None = None) → None ​

Replaces an old manifest entries with new ones

  • Parameters:
    • manifests_dir – Directory where the manifest entries are read from
    • additional_tags – Additional tags to push the index with
  • Since: 0.7.0

push_manifest(manifest: Manifest, manifest_file: str | None = None, additional_tags: List[str] | None = None) → Manifest ​

Pushes an OCI image manifest.

  • Parameters:
    • manifest – OCI image manifest
    • artifacts_with_metadata – A list of file names and their artifacts metadata
    • manifest_file – File name where the modified manifest is written to
    • additional_tags – Additional tags to push the manifest with
  • Returns: (object) OCI image manifest
  • Since: 0.7.0

push_manifest_and_artifacts(manifest: ImageManifest, artifacts_with_metadata: list[Dict[str, Any]], artifacts_dir: PathLike[str] | str = '.build', manifest_file: str | None = None, additional_tags: List[str] | None = None) → Manifest ​

Pushes an OCI image manifest and its artifacts.

  • Parameters:
    • manifest – OCI image manifest
    • artifacts_with_metadata – A list of file names and their artifacts metadata
    • artifacts_dir – Path of the image artifacts
    • manifest_file – File name where the modified manifest is written to
    • additional_tags – Additional tags to push the manifest with
  • Returns: (object) OCI image manifest
  • Since: 0.7.0

push_manifest_and_artifacts_from_directory(manifest: ImageManifest, artifacts_dir: PathLike[str] | str = '.build', manifest_file: str | None = None, additional_tags: List[str] | None = None) → Manifest ​

Pushes an OCI image manifest and its artifacts from the given directory.

  • Parameters:
    • manifest – OCI image manifest
    • artifacts_dir – Path of the image artifacts
    • manifest_file – File name where the modified manifest is written to
    • additional_tags – Additional tags to push the manifest with
  • Returns: (object) OCI image manifest
  • Since: 0.7.0

push_manifest_for_tags(manifest: Manifest, tags: List[str]) → None ​

Push tags for an given OCI image manifest.

  • Parameters:
    • manifest – OCI image manifest
    • tags – List of tags to push the index for
  • Since: 0.7.0

push_oci_archive(oci_archive_file_name: str | PathLike[str], oci_image_ref_name: str | None = None, additional_tags: List[str] | None = None) → None ​

Pushes an OCI image archive.

  • Parameters:
    • oci_archive_file_name – Path of the image artifacts
    • oci_image_ref_name – File name where the modified manifest is written to
    • additional_tags – Additional tags to push the manifest with
  • Since: 1.0.0

read_index() → Index ​

Reads the OCI image index from registry.

  • Returns: OCI image manifest
  • Since: 1.0.0

read_manifest(cname: str | None = None, architecture: str | None = None, version: str | None = None, commit: str | None = None) → Manifest ​

Reads the OCI manifest from registry.

  • Parameters:
    • cname – Canonical name of the manifest
    • architecture – Target architecture of the manifest
    • version – Artifacts version of the manifest
    • commit – The Git commit ID of the manifest
  • Returns: OCI image manifest
  • Since: 1.0.0

read_or_generate_index() → Index ​

Reads from registry or generates the OCI image index.

  • Returns: OCI image index
  • Since: 0.7.0

read_or_generate_manifest(cname: str | None = None, architecture: str | None = None, version: str | None = None, commit: str | None = None, feature_set: str | None = None) → Manifest | ImageManifest ​

Reads from registry or generates the OCI manifest.

  • Parameters:
    • cname – Canonical name of the manifest
    • architecture – Target architecture of the manifest
    • version – Artifacts version of the manifest
    • commit – The Git commit ID of the manifest
    • feature_set – The expanded list of the included features of this manifest
  • Returns: OCI image manifest
  • Since: 0.7.0

upload_manifest(manifest: Manifest, repository: Container) → Response ​

oras-project.github.io: Read a manifest file and upload it.

  • Parameters:
    • manifest – Manifest to upload
    • repository – Repository URI
  • Returns: (object) OCI manifest put response
  • Since: 1.0.0