Chapter 3. Embedding applications for offline use
You can embed microservices-based workloads and applications in a Red Hat Enterprise Linux for Edge (RHEL for Edge) image. Embedding means you can run a MicroShift cluster in air-gapped, disconnected, or offline environments.
3.1. Embedding workload container images for offline use
To embed container images in devices at the edge that do not have any network connection, you must create a new container, mount the ISO, and then copy the contents into the file system.
Prerequisites
- You have root access to the host.
- Application RPMs have been added to a blueprint.
Procedure
Render the manifests, extract all of the container image references, and translate the application image to blueprint container sources by running the following command:
$ oc kustomize ~/manifests | grep "image:" | grep -oE '[^ ]+$' | while read line; do echo -e "[[containers]]\nsource = \"${line}\"\n"; done >><my_blueprint>.toml
Push the updated blueprint to Image Builder by running the following command:
$ sudo composer-cli blueprints push <my_blueprint>.toml
If your workload containers are located in a private repository, you must provide Image Builder with the necessary pull secrets:
-
Set the
auth_file_path
in the[containers]
section of theosbuilder worker
configuration in the/etc/osbuild-worker/osbuild-worker.toml
file to point to the pull secret. If needed, create a directory and file for the pull secret, for example:
Example directory and file
[containers] auth_file_path = "/<path>/pull-secret.json" 1
- 1
- Use the custom location previously set for copying and retrieving images.
-
Set the
Build the container image by running the following command:
$ sudo composer-cli compose start-ostree <my_blueprint> edge-commit
-
Proceed with your preferred
rpm-ostree
image flow, such as waiting for the build to complete, exporting the image and integrating it into yourrpm-ostree
repository or creating a bootable ISO.