Updating the Air-gapped Repository

Describes the procedure to update the air-gapped repository with latest patches and/or release versions of HPE Data Fabric.

Prerequisites

  • Run the commands on the local mirror host with the existing managed serving container running. If the air-gapped repository container is stopped, start it before the update.
    NOTE
    Do not stop the repository before update. The update command requires the serving container to be running. It uses the same persistent host mount as the serving container.
  • Restore access to the official HPE Data Fabric package repository with the repository credentials.
  • Reuse the same persistent data directory and custom container name.
  • Provide at least one component to synchronize. Core and DEP each require a complete version/OS pair only, when selected. Include --installer-os only for an Installer update.
  • Check disk usage and available space using status, and allow capacity for the candidate and new downloads.

About this task

When you update an existing air-gapped repository:
  • Existing branches omitted from the update remain unchanged in the published state.

  • Valid archives in the persistent cache are reused

  • Only the missing or invalid archives are downloaded

  • The current repository remains active while the new publication is prepared

  • The publication switch is atomic

The previous inactive publication is removed after a successful update.
For an existing repository, an update temporarily needs enough space for the following:
  • stable archive cache
  • current active publication
  • candidate publication
  • configured minimum free-space headroom

Cache and publication behavior

  • The current published content is copied into a candidate publication.
  • Branches omitted from the request remain in the cumulative publication. A selected branch is refreshed from the selected upstream archive; this is not a package-by-package union or a guarantee that withdrawn packages remain inside that refreshed branch.
  • Existing Core, DEP, and Installer branches are preserved across cumulative updates.
  • The synchronization helper uses the stable archive cache at <data-dir>/downloads/cache. The cache is intended to let the downloader reuse valid TGZ archives and download missing or invalid archives again. Actual archive validation and reuse depend on the supplied mapr-setup.sh.
  • The current repository remains active while the air-gapped repository is being updated.
    NOTE
    Only one publication is active at a time. Partial staging data must be manually cleaned up.

The airgap-repository update command updates an existing air-gapped repository.

Command Syntax

./airgap-repository update \
  [--core-versions VER [VER...] --core-os OS [OS...]] \
  [--mep-versions VER [VER...] --mep-os OS [OS...]] \
  [--installer-os OS [OS...]] \
  REPOSITORY_SOURCE [OPTIONS]

Select at least one of the following groups. Although each group is independently optional, an empty selection is rejected:

Component Selection
Core --core-versions VER [VER...] --core-os OS [OS...]
DEP --mep-versions VER [VER...] --mep-os OS [OS...]
Installer --installer-os OS [OS...]

REPOSITORY_SOURCE means exactly one of --repo-config-file FILE, --repo-url URL, --repo-url-file FILE, or --repo-url-stdin.

Table 1. Synchronization parameters
Parameter Required Values and use
--core-versions VER [VER...] When Core is selected One or more versions in X.Y.Z form, for example 8.1.0. Must be paired with --core-os.
--core-os OS [OS...] When Core is selected The operating system for Core: redhat, rhel9, ubuntu, ubuntu22, ubuntu24, suse, suse15.5. Must be paired with --core-versions. ubuntu24 has no additional Core-version option.
--mep-versions VER [VER...] When DEP is selected One or more DEP versions in X.Y.Z form, for example 10.1.0. Must be paired with --mep-os.
--mep-os OS [OS...] When DEP is selected Published-build values: redhat, ubuntu, suse. Must be paired with --mep-versions. There are no separate version-specific OS builds to select for DEP.
--installer-os OS [OS...] Only when Installer is selected Operating system: redhat, ubuntu, suse. No installer-version option is required. The selected upstream determines its installer archive version.
--repo-config-file FILE Exactly one source The absolute path to the repository credentials file. containing repository_url, username, and password. Use mode 0600; do not use a symlink.
--repo-url URL Exactly one source The official HPE Data Fabric repository URL
--repo-url-file FILE Exactly one source The absolute path to the file that contains the official HPE Data Fabric repository URL Use mode 0600, not a symlink.
--repo-url-stdin Exactly one source Accept input from the user on the command prompt. Mutually exclusive with the other three repository-source options.
--data-dir PATH No Absolute path to the persistent directory that hosts the downloaded air-gapped repository packages. Default: /var/lib/mapr-airgap-repository. During update, provide the previously selected directory path.
--runtime auto|docker|podman No Runtime selection. Default: auto; select docker or podman explicitly when required.
--container-name NAME No The custom name of the air-gapped repository container. Default: mapr-airgap-repository. During update, use the same name for the air-gapped repository container
--advertise-host HOST Recommended Client-reachable hostname or IP printed in the repository URL. Does not configure DNS, bind a host interface, or change the published port.
--image IMAGE No The air-gapped repository runtime image name.
--port PORT No The host HTTP port. Default 8080. The port must be available.
--mapr-setup-file PATH No Absolute path to the custom mapr-setup.sh script. Mutually exclusive with --mapr-setup-url.
--mapr-setup-url URL No Credential-free HTTP(S) URL for the the custom mapr-setup.sh script. Mutually exclusive with --mapr-setup-file.
--mapr-setup-sha256 SHA256 No SHA256 of the mapr-setup.sh that is downloaded from the official HPE Data Fabric repository.
--network-config-file FILE No The absolute path to the network config file that contains HTTP/HTTPS/NO_PROXY information.
--http-proxy URL--https-proxy URL No HTTP proxy URL to use.
--no-proxy LIST No NO_PROXY string. For example mirror.example.test,localhost,127.0.0.1.
--ca-cert FILE No Custom CA certificate file path.
--dry-run No Use the option to preview the operation without updating the repository container.
-h, --help No Display help for this command; do not perform the command.

Procedure

  1. Run the following command on the command line of the node on which your air-gapped repo has been installed:
    ./airgap-repository update \
      --runtime docker \
      --core-versions 8.1.0 \
      --core-os ubuntu22 \
      --repo-config-file /root/airgap-repository.conf \
      --data-dir /var/lib/mapr-airgap-repository \
      --advertise-host mirror.example.test

    For example:

    ./airgap-repository update \
      --local \
      --core-versions 8.1.0 \
      --core-os ubuntu22 suse15.5 \
      --mep-versions 10.1.1 \
      --mep-os ubuntu suse \
      --installer-os ubuntu suse \
      --repo-config-file /root/airgap-repository.conf \
      --data-dir /var/lib/mapr-airgap-repository \
      --advertise-host mirror.example.test

    This request synchronizes Core only. It does not select DEP or Installer again. Existing DEP, Installer and pub/ content is preserved. The same Core branch is refreshed; the command does not add a new Core version.

  2. View status and verify readiness by running the following command on the local mirror host:
    ./airgap-repository status \
      --runtime docker \
      --advertise-host mirror.example.test
  3. Check the published versions and verify each required new branch from a cluster node. An update changes repository content. Use the supported Data Fabric installation or upgrade procedure separately to apply those packages to cluster nodes. Representative output is as follows.
    INFO: Using container runtime: docker
    Container name: mapr-airgap-repository
    Runtime: docker
    Container state: running
    Health state: healthy
    Image: <selected-image-reference>
    Host port: 8080
    Advertised URL: http://mirror.example.test:8080
    Data directory: /var/lib/mapr-airgap-repository
    Active publication: repositories/<publication-id>
    Repository disk usage: <size>
    Available disk space: <free-space>
    Repository status: ready
  4. Confirm Container state: running, Health state: healthy, and Repository status: ready. Check the Core and DEP(MEP) version lists and inspect disk usage and available space.

Results

An update changes repository content. update uses an existing local helper image; it does not pull or build an image.

Use the supported Data Fabric installation or upgrade procedure separately to apply those packages to cluster nodes.

./airgap-repository update \
  --runtime docker \
  --installer-os ubuntu \
  --repo-url https://packages.example.test/repository-two \
  --mapr-setup-url https://tools.example.test/mapr-setup.sh \
  --advertise-host mirror.example.test