이 콘텐츠는 선택한 언어로 제공되지 않습니다.

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은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동