Hi folks,

The 2022.04 tag has been pushed to master on git.lavasoftware.org.
.deb packages have been built in GitLab CI and are published at

  https://apt.lavasoftware.org/release

Docker images for amd64 and arm64 have been built in GitLab CI and
are available from

  https://hub.lavasoftware.org/

and

  https://hub.docker.com/u/lavasoftware


Changes in this release
==================

# Device-types

## New device-types

New supported devices:

* morello

# Authentications

Allow to enable login with multiple social accounts at once. The login page will display the available options with logos.

# Environment

The dispatcher IP is now available in the test shell actions as `LAVA_DISPATCHER_IP`.

# Git authentication

LAVA can now clone from authenticated git repositories. The credentials should be present in the local environment variable, for example via the `secrets` dictionary. LAVA dispatcher now expands environment variables in git urls:

```yaml
actions:
- test:
    definitions:
    - repository: https://${USER}:${TOKEN}@example.com/definitions.git
      from: git
[...]
secrets:
  USER: MY_USER
  TOKEN: MY_TOKEN
```

# lava-docker-worker

The LAVA team advice to replace `lava-worker` by `lava-docker-worker` as this daemon will automatically upgrade and downgrade the local lava-woker container to match the remote server version.
For this release, the `lava-docker-worker` daemon stability as been improve a lot in this release. This is now used in production at Linaro.

# Overlays

The lava dispatcher is now able to run `img2simg` after applying the overlays. Users should add `spare: true`:

```yaml
rootfs:
  url: "http://example.com/rootfs.ext4.xz"
  format: ext4
  sparse: true
  overlays:
    modules:
      url: "http://example.com/modules.tar.xz"
[...]
```

# Server performances

## logging interval

Starting from this release, the default logging interval is set to 5s. lava-run will now send the job logs every 5s, instead of every seconds. This should decrease the load on the LAVA server.

## Scheduler lock

Prior to this release, the lava-scheduler process was locking the worker table during the scheduling. On large instances, this would prevent the workers to update their status.
Starting from this release, lava-scheduler is not locking the worker table anymore.

# XML-RPC API

## Device-types

The XML-RPC API is now returning the `health_denominator` and `health_frequency` when calling `scheduler.device_types.show`. This function will also return a boolean (`default_template`) indicating if this device-type is using a custom templare or the default one.

## Devices

The XML-RPC API allows to change the device-type of a specific device when calling `scheduler.devices.update`.

## workers

The XML-RPC API call `scheduler.workers.show` is now returning booleans (`default_config`, `default_env` and `default_env_dut`) to indicate if the worker is using a custom config (env or env-dut) file.


Rgds

--
Rémi Duraffort
LAVA and Tux Architect
Linaro