Use the Export function to generate the incremental bundle in an internet-accessible environment, copy the bundle file to the existing airgap server and run the Import function to update the harbor, helm charts, and photon repositories on the server. The export operation does run on an existing airgap server as all the data under /photon-reps is deleted after the incremental bundle is created. Run the export command on a Photon OS VM with internet accessibility. The hardware configuration of the photon VM should be the same as the airgap server.

You can perform the resize disk operation before the upgrade if the storage capacity of the airgap server is lesser than the recommended storage. Resizing the disk operation is supported only for multi-disk airgap servers. For more information, see Troubleshooting Airgap Server Setup.


Install the following tools:


  1. Export images to the tar package.
    1. Download Airgap Script Package from

      The package name is VMware-Telco-Cloud-Automation-airgap-files-[release]-[build].tar.gz.

    2. Extract the Airgap Script Package to the /root folder
    3. Copy setup-user-inputs.yml to user-inputs.yml under ~/airgap/scripts/vars in the {root-dir} folder. Edit user-inputs.yml and uncomment row of name: photon and baseline: 2.1.0 as example below:
        - name: "tca"
          versions: "2.2.0"
        - name: "photon"
          baseline: "2.1.0"
    4. Run the Ansible playbook to download and export images to the tar package.
      root@photon-machine [ ~/airgap ]# scripts/bin/ export
    5. To check the image download status, run the command status or go to the folder {root-dir}/airgap/logs and monitor the log files, export-images.log and export-helm.log.
      root@photon-machine [ ~/airgap ]# scripts/bin/ status
      tail -f {root-dir}/airgap/logs/export-images.log
      tail -f {root-dir}/airgap/logs/export-helm.log
  2. Copy the incremental bundle to the Airgap environment.

    All the downloaded files are packaged into a tar.gz bundle file along with the airgap scripts. After the incremental bundle is generated, copy the bundle to the Airgap server's "/photon-reps" folder. The overall size of the bundle file is around 35GB, including Kubernetes images, helm charts, Photon packages, and airgap scripts.

  3. Import tar packages to the Airgap server's harbor.
    root@photon-machine [ ~/airgap ]# docker login [airgap-FQDN/registry] 
    root@photon-machine [ ~/airgap ]# scripts/bin/ import

    Before you import the tar packages, ensure that /photon-reps partition of airgap server has 110GB free space, user-inputs.yml is available under ~/airgap/scripts/vars folder and server_fqdn has the correct airgap FQDN. If no sufficient space available please extend VM's photon disk size and use resize to extend the space then try export operation.

  4. To check the image import status, either to check with command status or go to the import-images.log and import-helm.log files in the {root-dir}/airgap/logs folder.
    root@photon-machine [ ~/airgap ]# scripts/bin/ status
    tail -f {root-dir}/airgap/logs/import-images.log
    tail -f {root-dir}/airgap/logs/import-helm.log
  5. (Optional) upgrade Photon OS of airgap server.
    root@photon-machine [ ~/airgap ]# scripts/bin/ upgrade