Chapter 1. Provisioning devices


  • You can provision devices with the Red Hat Edge Manager in different environments. Use the operating system image or disk image that you built for use with the Red Hat Edge Manager and depending on your target environment, provision a physical or virtual device.

Required access: Cluster administrator

See the following documentation:

1.1. Provisioning physical devices

  • When you build an ISO disk image from an operating system image by using the
    bootc-image-builder
    tool, the image is similar to the RHEL ISOs available for download. However, your operating system image content is embedded in the ISO disk image.

To install the ISO disk image to a bare metal system without having access to the network, see Deploying a custom ISO container image.

For information about installing the ISO through the network, see Deploying an ISO bootc image over PXE boot.

  • You can provision a virtual machine on OpenShift Virtualization by using a QCoW2 container disk image that is hosted on an OCI container registry.

If your operating system image does not already contain the Red Hat Edge Manager agent enrollment configuration, you can inject the configuration through the

cloud-init
user data at provisioning.

For more information, see the Additional resources section.

1.2.1. Prerequisites

  • You installed the
    flightctl
    CLI and logged in to your Red Hat Edge Manager service instance.
  • You installed the
    oc
    CLI, used it to log in to your OpenShift cluster instance, and changed to the project in which you want to create your virtual machine.

1.2.2. Creating the cloud-init configuration

To create the

cloud-init
configuration, complete the following steps:

  1. Request a new Red Hat Edge Manager agent enrollment configuration and store it in a file called

    config.yaml
    . Run the following command:

    flightctl certificate request --signer=enrollment --expiration=365d --output=embedded > config.yaml
  2. Create a cloud configuration user data file called

    cloud-config.yaml
    that places the agent configuration in the correct location on the first boot. Run the following command:

    cat <<EOF > cloud-config.yaml
    #cloud-config
    write_files:
    - path: /etc/flightctl/config.yaml
      content: $(cat config.yaml | base64 -w0)
      encoding: b64
    EOF
  3. Create a Kubernetes

    Secret
    that contains the cloud configuration user data file:

    oc create secret generic enrollment-secret --from-file=userdata=cloud-config.yaml

1.2.3. Creating the virtual machine

Create a virtual machine that has its primary disk populated from your QCoW2 container disk image and a

cloud-init
configuration drive that is populated from your enrollment secret. Complete the following steps:

  1. Create a file that contains a the

    VirtualMachine
    resource manifest by running the following command:

    cat <<EOF > my-bootc-vm.yaml
    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: my-bootc-vm
    spec:
      runStrategy: RerunOnFailure
      template:
        spec:
          domain:
            cpu:
              cores: 1
            memory:
              guest: 1024M
            devices:
              disks:
                - name: containerdisk
                  disk:
                    bus: virtio
                - name: cloudinitdisk
                  disk:
                    bus: virtio
          volumes:
            - name: containerdisk
              containerDisk:
                image: ${OCI_DISK_IMAGE_REPO}:${OCI_IMAGE_TAG}
            - name: cloudinitdisk
              cloudInitConfigDrive:
                secretRef:
                  name: enrollment-secret
    EOF
  2. Apply the resource manifest to your cluster by running the following command:

    oc apply -f my-bootc-vm.yaml

1.2.4. Additional resources

Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2026 Red Hat
Back to top