meta-digi-containers: dey-image-container: add DRM support for DCP

Add the support to enable DRM support on the DCP artifact.

https://onedigi.atlassian.net/browse/DEL-10035

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
This commit is contained in:
Isaac Hermida 2026-04-15 20:01:23 +02:00
parent 6a75e08023
commit 6d29433642
3 changed files with 25 additions and 1 deletions

View File

@ -91,6 +91,24 @@ This generates:
- `./flutter-demo_artifact_podman_ccmp25-dvk.tar.gz`
## Digi Remote Manager metrics support
`dey-image-container-manager` includes `cc-container-mng` that has the capability to
publish container statistics through the local CCCS Python API.
For generated DCPs, per-container DRM sampling is enabled
through `registration_defaults.stats_publish` in the artifact manifest.
The image recipe generates the DCP automatically from the following variables:
- `CONTAINER_STATS_PUBLISH_ENABLED`
- `CONTAINER_STATS_PUBLISH_SAMPLE_INTERVAL`
Example:
```conf
CONTAINER_STATS_PUBLISH_ENABLED = "true"
CONTAINER_STATS_PUBLISH_SAMPLE_INTERVAL = "30"
```
## Layer Scope
Main recipes:
@ -267,6 +285,8 @@ Relevant variables:
- `CONTAINER_PACKAGE_ID`
- `CONTAINER_ARTIFACT_VERSION`
- `CONTAINER_CREATE_ARGS_PODMAN`
- `CONTAINER_STATS_PUBLISH_ENABLED`
- `CONTAINER_STATS_PUBLISH_SAMPLE_INTERVAL`
- `CONTAINER_FIRMWARE_VERSIONS`
- `CONTAINER_DEVICE_TYPES_JSON`
- `CONTAINER_ARTIFACT_DESCRIPTION`

View File

@ -53,6 +53,8 @@ do_image_container_artifacts() {
CREATE_ARGS="${create_args}" \
AUTOSTART="${CONTAINER_AUTOSTART}" \
MONITOR="${CONTAINER_MONITOR}" \
STATS_PUBLISH_ENABLED="${CONTAINER_STATS_PUBLISH_ENABLED}" \
STATS_PUBLISH_SAMPLE_INTERVAL="${CONTAINER_STATS_PUBLISH_SAMPLE_INTERVAL}" \
RESTART_ENABLED="${CONTAINER_RESTART_ENABLED}" \
RESTART_MAX_RETRIES="${CONTAINER_RESTART_MAX_RETRIES}" \
RESTART_WINDOW="${CONTAINER_RESTART_WINDOW}" \
@ -64,7 +66,7 @@ do_image_container_artifacts() {
LABELS_JSON="${CONTAINER_ARTIFACT_LABELS_JSON}" \
python3 -c 'import json, os, sys; \
parse_bool = lambda name: os.environ[name].strip().lower() == "true"; \
payload = {"package_id": os.environ["PACKAGE_ID"], "version": os.environ["VERSION"], "runtime": os.environ["RUNTIME"], "registration_defaults": {"autostart": parse_bool("AUTOSTART"), "monitor": parse_bool("MONITOR"), "restart": {"enabled": parse_bool("RESTART_ENABLED"), "max_retries": int(os.environ["RESTART_MAX_RETRIES"]), "window": int(os.environ["RESTART_WINDOW"]), "retry_delay": int(os.environ["RESTART_RETRY_DELAY"]) } }, "device_types": json.loads(os.environ["DEVICE_TYPES_JSON"]), "firmware_versions": os.environ["FIRMWARE_VERSIONS"], "build_id": os.environ["BUILD_ID"], "description": os.environ["DESCRIPTION"], "labels": json.loads(os.environ["LABELS_JSON"])}; \
payload = {"package_id": os.environ["PACKAGE_ID"], "version": os.environ["VERSION"], "runtime": os.environ["RUNTIME"], "registration_defaults": {"autostart": parse_bool("AUTOSTART"), "monitor": parse_bool("MONITOR"), "stats_publish": {"enabled": parse_bool("STATS_PUBLISH_ENABLED"), "sample_interval_s": int(os.environ["STATS_PUBLISH_SAMPLE_INTERVAL"])}, "restart": {"enabled": parse_bool("RESTART_ENABLED"), "max_retries": int(os.environ["RESTART_MAX_RETRIES"]), "window": int(os.environ["RESTART_WINDOW"]), "retry_delay": int(os.environ["RESTART_RETRY_DELAY"]) } }, "device_types": json.loads(os.environ["DEVICE_TYPES_JSON"]), "firmware_versions": os.environ["FIRMWARE_VERSIONS"], "build_id": os.environ["BUILD_ID"], "description": os.environ["DESCRIPTION"], "labels": json.loads(os.environ["LABELS_JSON"])}; \
create_args = os.environ["CREATE_ARGS"].strip(); \
payload.update({"create_args": create_args} if create_args else {}); \
open(sys.argv[1], "w", encoding="utf-8").write(json.dumps(payload, indent=2) + "\n")' \

View File

@ -69,6 +69,8 @@ CONTAINER_ARTIFACT_LABELS_JSON ?= "{}"
# monitor and (auto/re)start configuration
CONTAINER_AUTOSTART ?= "true"
CONTAINER_MONITOR ?= "true"
CONTAINER_STATS_PUBLISH_ENABLED ?= "true"
CONTAINER_STATS_PUBLISH_SAMPLE_INTERVAL ?= "30"
CONTAINER_RESTART_ENABLED ?= "true"
CONTAINER_RESTART_MAX_RETRIES ?= "3"
CONTAINER_RESTART_WINDOW ?= "60"