このコンテンツは選択した言語では利用できません。

Chapter 1. Managing applications on an edge device


You can deploy, update, or remove applications on a device by updating the list of applications in the device specification. When the Red Hat Edge Manager agent checks in and detects the change in the specification, the agent downloads any new or updated application packages and images from an Open Container Initiative (OCI)-compatible registry. Then, the agent deploys the packages to the appropriate application runtime or removes them from that runtime.

1.1. Prerequisites

Before getting started, ensure your environment meets the following requirements:

Local Machine Requirements:

  • Flight Control CLI: The flightctl CLI must be installed and authenticated with the Flight Control service.
  • Helm CLI: Version 3.8+ is required (needed for OCI registry support and chart management).
  • Kubernetes Tooling: Either kubectl or oc (OpenShift CLI) must be installed.
  • Container Tools: crictl must be available for container runtime interactions.

Device & Environment Requirements:

  • Podman: Version 5.0 or above is required for quadlet and container applications.
  • Podman Compose: The device’s operating system image must have the podman-compose tool pre-installed.
  • Network Configuration: Ensure that your pull-timeout settings are configured to allow for full image downloads based on your network speed.

1.2. Building an application package image

Red Hat Edge Manager uses a 1:1 mapping between OpenShift namespaces and Organizations. By leveraging this structure, you can package and deploy workloads using various native formats. Red Hat Edge Manager downloads these application packages from an Open Container Initiative (OCI) compatible registry.

To deploy an application, you must build an OCI "wrapper" image that includes your configuration files and a specific label identifying the application type.

Red Hat Edge Manager supports four application types:

  • compose
  • quadlet
  • container
  • helm

Procedure

  1. Prepare your application configuration. Create the configuration file required for your chosen format. For example, if using quadlet, create a file named application.container with your Podman systemd specifications.
  2. Create a Containerfile. Use the following template, replacing the COPY path and appType label based on your specific application:

    FROM scratch 
    1
    
    COPY application.container /application.container
    LABEL appType=<application_type> 
    2
    Copy to Clipboard Toggle word wrap
    1
    Embed the configuration file in a scratch container to keep the image size minimal.
    2
    Set the appType label to either compose, quadlet, container, or helm.
  3. Define the image destination. Run the following commands to set your repository and versioning:

    OCI_IMAGE_REPO=quay.io/<your_org>/<your_image_name>
    OCI_IMAGE_TAG=v1
    Copy to Clipboard Toggle word wrap
  4. Build the application container image. Run the build command from the directory containing your Containerfile:

    podman build -t ${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG} .
    Copy to Clipboard Toggle word wrap
  5. Push the container image to your registry.

    podman push ${OCI_IMAGE_REPO}:${OCI_IMAGE_TAG}
    Copy to Clipboard Toggle word wrap

1.3. Deploying applications to a device using the Flight Control CLI

Once you have built and pushed your application package image, you can deploy it to a device. When deploying via the Flight Control CLI, you must ensure that any persistent data requirements are defined using volumes within your chosen application format.

1.3.1. Adding volumes to your configuration

To ensure data persists across container restarts or updates, define volumes in your configuration file before building your image:

Complete the following steps:

  1. Specify the application package that you want to deploy in the spec.applications field in the Device resource:

    apiVersion: flightctl.io/v1alpha1
    kind: Device
    metadata:
      name: <device_name>
    spec:
    [id="..."]
      applications:
      - name: wordpress 
    1
    
        image: quay.io/rhem-demos/wordpress-app:latest 
    2
    
        envVars: 
    3
    
          WORDPRESS_DB_HOST: <database_host>
          WORDPRESS_DB_USER: <user_name>
          WORDPRESS_DB_PASSWORD: <password>
    [id="..."]
    Copy to Clipboard Toggle word wrap
    1
    A user-defined name for the application that is used when the web console and the CLI list applications.
    2
    A reference to an application package in an OCI registry.
    3
    Optional. A list of key-value pairs that are passed to the deployment tool as environment variables or command line flags.

    For each application in the applications section of the device specification, you can find the corresponding device status information.

  2. Verify the status of an application deployment on a device by inspecting the device status information. Run the following command:

    flightctl get device/<your_device_id> -o yaml
    Copy to Clipboard Toggle word wrap

    See the following example output:

    [id="..."]
    spec:
      applications:
      - name: example-app
        image: quay.io/flightctl-demos/example-app:v1
    status:
      applications:
      - name: example-app
        ready: 3/3
        restarts: 0
        status: Running
      applicationsSummary:
        info: All application workloads are healthy.
        status: Healthy
    [id="..."]
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る