Skip to content

Deploying sample applications in containers

Deploying sample applications in containers

The Automotive SIG repo contains containerized sample applications that you can use to learn how to deploy applications in containers in your AutoSD image.

Use the quadlet_radio_engine.aib.yml manifest to build a virtual machine OS image that includes containerized sample applications.

The sample applications include two SOME/IP services:

  • radio-service, which simulates a radio
  • engine-service that simulates other parts of the car.

There is also a command line application radio-client, which talks to the services displaying the current status and allowing you to control the radio. For more information, see the sample-apps README.

The image uses the COVESA vsomeip implementation of SOME/IP as packaged in Fedora, and rebuilt in COPR. In particular, the image starts the vsomeip routing manager (non-contained), using systemd socket activation with a custom SELinux policy that controls access.

After you boot the OS image, two container-based systemd sample services are running: radio.service and engine.service.

Prerequisites

Procedure

  1. Create and go to a new directory called sample-auto-apps:

    console $ mkdir sample-auto-apps && cd sample-auto-apps

  2. Create and save a file called radio.container that contains the following code:

    console --8<-- "demos/radio.container"

  3. Create and save a file called engine.container that contains the following code:

    console --8<-- "demos/engine.container"

  4. Create and go to a new subdirectory called quadlet_radio_engine:

    console $ mkdir quadlet_radio_engine && cd quadlet_radio_engine

  5. Create and save a build manifest file named quadlet_radio_engine.aib.yml, that contains the following YAML code:

    console --8<-- "demos/quadlet_radio_engine/quadlet_radio_engine.aib.yml:4:46"

  6. Export the current system's CPU architecture as a variable:

    console $ arch=$(arch)

  7. Run the following command to build the OS image:

    console --8<-- "demos/quadlet_radio_engine/build.sh:20:29"

  8. Boot the OS image as a virtual machine (VM) in QEMU:

    console $ sudo automotive-image-runner --nographics quadlet_radio_engine.x86_64.img

  9. Log in to the VM as the root user with the password password.

  10. Verify that the auto-apps container exists:

    ```console

    podman image list

    ```

  11. Verify that the radio service is running:

    ```console

    systemctl status radio.service

    ```

  12. Verify that the engine service is running:

    ```console

    systemctl status engine.service

    ```

  13. When you are done, run the following command to shut down the VM and return to your local terminal:

    ```console

    poweroff

    ```