Skip to main content
Redhat Developers  Logo
  • Products

    Platforms

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat AI
      Red Hat AI
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • See all Red Hat products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat Developer Hub
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat OpenShift Local
    • Red Hat Developer Sandbox

      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Red Hat OpenShift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • See all technologies
    • Programming languages & frameworks

      • Java
      • Python
      • JavaScript
    • System design & architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer experience

      • Productivity
      • Tools
      • GitOps
    • Automated data processing

      • AI/ML
      • Data science
      • Apache Kafka on Kubernetes
    • Platform engineering

      • DevOps
      • DevSecOps
      • Red Hat Ansible Automation Platform for applications and services
    • Secure development & architectures

      • Security
      • Secure coding
  • Learn

    Featured

    • Kubernetes & cloud native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • AI/ML
      AI/ML Icon
    • See all learning resources

    E-books

    • GitOps cookbook
    • Podman in action
    • Kubernetes operators
    • The path to GitOps
    • See all e-books

    Cheat sheets

    • Linux commands
    • Bash commands
    • Git
    • systemd commands
    • See all cheat sheets

    Documentation

    • Product documentation
    • API catalog
    • Legacy documentation
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore the Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

How to auto-register Red Hat Edge Manager with MicroShift

Enable auto-registration between Red Hat Edge Manager and Red Hat Advanced Cluster Management for simplified edge fleet management

August 21, 2025
Hui Chen Zhao Xue Jacob Berger
Related topics:
ContainersEdge computingKubernetes
Related products:
Red Hat Advanced Cluster Management for KubernetesRed Hat build of MicroshiftRed Hat OpenShift

    Available as a Technology Preview, Red Hat Edge Manager is a fleet management solution that provides comprehensive security, simplified management, and real-time visibility for thousands of edge devices and applications. You define the required state of your edge devices, including operating system versions, host configurations, and application deployments. Then, Red Hat Edge Manager automatically implements and maintains these configurations across your entire fleet of devices. 

    When you register Edge Manager, you also have access to Red Hat build of MicroShift, a lightweight Kubernetes container orchestration solution built from the edge capabilities of Red Hat OpenShift. 

    Red Hat Advanced Cluster Management for Kubernetes 2.13 provides Technology Preview support to help you manage edge devices on Red Hat Advanced Cluster Management for Kubernetes.

    In this article, you will learn how to auto-register Red Hat Edge Manager with Red Hat MicroShift into Red Hat Advanced Cluster Management for Kubernetes. 

    Enable Red Hat Edge Manager with Red Hat Advanced Cluster Management for Kubernetes 

    You can enable Red Hat Edge Manager with your Red Hat Advanced Cluster Management for Kubernetes namespace. If you are using a version earlier than Red Hat Advanced Cluster Management for Kubernetes 2.13, enable Edge Manager by completing the following steps: 

    1. Go to your open-cluster-management namespace in Red Hat Advanced Cluster Management for Kubernetes.
    2. To enable the edge-manager-preview, update the multiclusterhub customer resource by running the following command: 
    oc patch mch multiclusterhub -n open-cluster-management \
           --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"edge-manager-preview","enabled":true}}]'

    Set up the flightctl command in Red Hat Advanced Cluster Management for Kubernetes 

    After enabling Red Hat Edge Manager, you can set up the flightctl command. To do so, you must first install Flight Control locally.

    After installing the Flight Control CLI, set up the flightctl command in Red Hat Advanced Cluster Management for Kubernetes as follows: 

    1. Get your OpenShift cluster token by running the following command:
    oc whoami -t
    1. Get your flightctl API route address by navigating to your installed Red Hat Advanced Cluster Management for Kubernetes namespace.
    2. In your CLI, run the flightctl command to log in to Red Hat Edge Manager.
    3. Verify that your login worked by confirming that the status of the flightctl repository shows ACCESSIBLE: True. 

    Enable auto-registration for Red Hat Edge Manager with Red Hat MicroShift 

    To enable auto-registration for Red Hat Edge Manager with Red Hat MicroShift, complete these steps: 

    1. Change the value of the image name for your os.image by building your own os.image. 
    2. Run the flightctl command to add the following configuration file to your device template:
    apiVersion: flightctl.io/v1alpha1
    kind: Fleet
    metadata:
      name: fleet-acm
    spec:
      selector:
        matchLabels:
          fleet: acm
      template:
        spec:
          os:
            image: quay.io/hchenxa/centos-bootc-flightctl:test
          config:
          - name: acm-crd
            httpRef:
              filePath: /var/local/acm-import/crd.yaml
              repository: acm-registration
              suffix: /agent-registration/crds/v1
          - name: acm-import
            httpRef:
              filePath: /var/local/acm-import/import.yaml
              repository: acm-registration
              suffix: /agent-registration/manifests/{{.metadata.name}}
          - name: pull-secret
            inline:
            - path: "/etc/crio/openshift-pull-secret"
              content: "{\"auths\":{...}}"
          - name: apply-acm-manifests
            inline:
            - path: "/etc/flightctl/hooks.d/afterupdating/50-acm-registration.yaml"
              content: |
                - if:
                  - path: /var/local/acm-import/crd.yaml
                    op: [created]
                  run: kubectl apply -f /var/local/acm-import/crd.yaml
                  envVars:
                    KUBECONFIG: /var/lib/microshift/resources/kubeadmin/kubeconfig
                - if:
                  - path: /var/local/acm-import/import.yaml
                    op: [created]
                  run: kubectl apply -f /var/local/acm-import/import.yaml
                  envVars:
                    KUBECONFIG: /var/lib/microshift/resources/kubeadmin/kubeconfig

    The items for .spec.template.spec.config have the following functions:

    • acm-crd uses the HTTP Configuration Provider to query the ACM agent-registration server for the Kubernetes manifests that contain the custom resource definition (CRD) for the ACM agent.
    • acm-import queries the server once more to receive the import manifests for a cluster whose name is the same as the device's name so that both can be more easily correlated later.
    • pull-secret is optionally used to pull images from the image registry. You must manually configure the pull-secret to pull the images.
    • apply-acm-manifests is used to install an afterUpdating device lifecycle hook. 

    Build images for Red Hat Edge Manager 

    Now that you have auto-registered Edge Manager into Red Hat Advanced Cluster Management for Kubernetes, you can build images for the former We will use bootc images for this demonstration. 

    If you want more details on building images and the tools used in this demonstration, see the following resources: 

    • Building OS images
    • Podman setup rootful 

    Before you begin the building images for Red Hat Edge Manager, complete the following prerequisites:

    1. In your CLI, confirm you have Podman version 5 by running podman -v.
    2. In your CLI, confirm you have flightctl version 5 by running flightctl version.

    Build bootc images for Red Hat Edge Manager by completing the following steps: 

    1. Add the following Dockerfile sample: 
    hchenxa@huichen1-mac flightctl % cat Containerfile
    FROM quay.io/centos-bootc/centos-bootc:stream9
    
    RUN dnf -y copr enable @redhat-et/flightctl-dev centos-stream-9-x86_64 && \
        dnf -y install flightctl-agent; \
        dnf -y clean all; \
        systemctl enable flightctl-agent.service
    
    COPY id_rsa.pub /usr/etc-system/root.keys
    RUN touch /etc/ssh/sshd_config.d/30-auth-system.conf; \
        mkdir -p /usr/etc-system/; \
        echo 'AuthorizedKeysFile /usr/etc-system/%u.keys' >> /etc/ssh/sshd_config.d/30-auth-system.conf; \
        chmod 0600 /usr/etc-system/root.keys
    VOLUME /var/roothome
    
    ADD config.yaml /etc/flightctl/config.yaml
    
    RUN dnf -y install epel-release epel-next-release && \
        dnf -y install podman-compose && \
        systemctl enable podman.service
    ADD etc etc
    RUN rm -rf /opt && \
        mkdir -p /opt/crio
    RUN dnf install -y microshift && \
        systemctl enable microshift.service
    RUN rm -rf /opt && ln -s /var /opt
    1. Create the config.yaml file by creating a device certificate from the flightctl server. Run the following command:
    flightctl certificate request --signer=enrollment --expiration=365d --output=embedded > config.yaml
    1. Create a bootc image with this config.yaml file.
    2. Install the Red Hat build of MicroShift service into your bootc image. Run the following command: 
    RUN dnf install -y microshift && \
    systemctl enable microshift.service .
    1. After the images successfully build, push the image to your private registry and provide the pull secret that gets configured into your YAML content. 

    Create a virtual machine with the bootc image 

    After building the bootc image, you can create a virtual machine (VM) for it. For this example, we will use the qemu-system-aarch64 system to create the VM. Complete the following steps:

    1. Create a VM using your bootc image by running the following command:
    flightctl % sudo qemu-system-aarch64 \ 
    -M accel-hvf \
    -cup host \
    -smp 2 \
    -m 4096 \
    -bios /opt/homebrew/Cellar/qemu/9.2.2/share/qemu/edk2-aarch64-code.fd \
    -serial stdio \
    -machine virt \
    -snapshot /Users/<your username>/Documents/<your username>/src/daily_work/redaht/flightctl/output/qcow2/disk.qcow2 \ 
    1. Verify that you created your VM by confirming that your CLI shows an output similar to the following: 
    Your device is enrolled to flightctl. 
    You can manage your device by scanning the above QR coce or folloiwng this URL: <the provided URL> 

    Conclusion 

    When you auto-register Red Hat Edge Manager with Red Hat Advanced Cluster Management for Kubernetes, you can build images and automatically implement and maintain these images across your entire fleet of devices. You can continue to explore how these products help your development needs by using a virtual machine build images. 

    Stay tuned for upcoming Technology Preview features in Red Hat Advanced Cluster Management or Kubernetes 2.14 that further enhance your experience! 

    Related Posts

    • Introducing incident detection in Red Hat Advanced Cluster Management for Kubernetes 2.14

    • Deploy computer vision applications at the edge with MicroShift

    • Monitor OpenShift Virtualization at scale with Red Hat Advanced Cluster Management for Kubernetes: Part 1

    • How to run MicroShift with OpenShift Local and Podman Desktop

    • How to run MicroShift as a container using MINC

    • Why developers should use MicroShift

    Recent Posts

    • What you need to know about Red Hat's .NET container images

    • How to set up Red Hat Lightspeed Model Context Protocol

    • Lift and shift a .NET application to OpenShift

    • Run Ruby applications in FIPS mode on Red Hat Enterprise Linux

    • Use NetApp to run SAP on OpenShift Virtualization with a dual boot on bare metal

    What’s up next?

    Learn how Red Hat technologies combine with open source tools to achieve resiliency when employing multi-cluster applications across diverse environments. 

    Start the activity
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer tools
    • Interactive tutorials
    • API catalog

    Quicklinks

    • Learning resources
    • E-books
    • Cheat sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Site status dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2025 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue