Chapter 4. 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 Red Hat build of MicroShift cluster in air-gapped, disconnected, or offline environments.
4.1. Embedding workload container images for offline use Copy linkLink copied to clipboard!
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.
-
You installed the OpenShift CLI (
oc
).
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
$ oc kustomize ~/manifests | grep "image:" | grep -oE '[^ ]+$' | while read line; do echo -e "[[containers]]\nsource = \"${line}\"\n"; done >><my_blueprint>.toml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Push the updated blueprint to image builder by running the following command:
sudo composer-cli blueprints push <my_blueprint>.toml
$ sudo composer-cli blueprints push <my_blueprint>.toml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 in the/etc/osbuild-worker/osbuild-worker.toml
configuration 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"
[containers] auth_file_path = "/<path>/pull-secret.json"
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
$ sudo composer-cli compose start-ostree <my_blueprint> edge-commit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
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.