Akri Bug Bash - October 2024

tags: Bug Bash

The goal of this bug bash is to discover any bugs before Akri creates a new release (v0.13.1). This release contains changes for agent/controller refactoring and directly using kube-rs client structure in the agent.

Please leave a comment in the scenario outcomes section with the scenario's you tested and whether it was successful. If you find issues, please create an issue on Akri's GitHub and comment it in the discovered issues section.

As always, feel free to post any questions on Akri's Slack.

Background

Akri is an Open Source project that automates the discovery and usage of IoT devices around Kubernetes clusters on the Edge. Akri can automatically deploy user-provided workloads to the discovered devices. It handles device appearance and disappearance, allowing device deployments to expand and contract and enabling high resource utilization.

Setting Up an Environment

Akri is regularly tested on K3s, MicroK8s, and standard Kubernetes clusters versioned 1.28-1.31 (see previous release for list of exact versions tested) with Ubuntu 20.04 node. While we only test on these K8s distributions, feel free to try it out on the distribution and Linux OS of your choice. Here are some examples of what you can do:

  • Hyper-V Ubuntu 20.04 VM
  • Set up Linux VM with cloud provider
  • Try out Akri on a managed Kubernetes service

It is recommmended to setup a muli-node cluster as your test environment. The following bug bash scenarios are using 3-node cluster as an example.

Scenarios

Choose any of the following scenarios (none are pre-requisite of the others). Make sure to use the akri-dev chart (helm install akri akri-helm-charts/akri-dev) when installing Akri with Helm. If you have previously installed akri, be sure to run helm repo update.

Scenario A: Slot reclaim

For this scenario, we want to test the new slot reclaim mecanism. Deploy akri and use the Debug echo example without broker pods.

Deploy a pod using the manual way to request a resource, check it gets reflected in
the Akri Instance (akrii).
Delete the pod and check it gets reflected in the Instance as well.

Scenario B: Device discovery on multiple nodes

For this scenario, we want to test discovering a device on a multi-node cluster in order to test the behavior of the agent and controller.

Please use a multi-node cluster and deploy Akri. From there, you can use any of the protocols/samples we have to test that it is working properly:

Scenario C: Test the Kube-RS client

For this scenario, we want to test the latest version of the KubeRS client used in Akri. In order to do this, please try applying/deleting/updating Akri configurations akric to see how Agent+Controller handle state changes.

You can follow these guidelines for generating, modifying and applying different configurations.

Scenario D: Documentation Walkthrough

It would be great to walk through the documentation with the bug bash and note which changes to docs we would need to make. There are some pending PRs on the documentations as well that go with the release.

Discovered Issues or Enhancements

Scenario Outcomes

Please write the environment you used (Kubernetes distro/version and VM), the scenarios you tested, and whether it was a success or had issues.

Environment Scenario Success/Issue
K3s Baseline Issue https://github.com/project-akri/akri/issues/705
K3s Baseline Issue https://github.com/project-akri/akri/issues/706
K3s Baseline Issue https://github.com/project-akri/akri/issues/707
K3s Baseline Issue https://github.com/project-akri/akri/issues/708
AKS A Success
AKS B Success
AKS C Success
Select a repo