diff --git a/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.search.yaml b/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.search.yaml index 3f8e653ee9..c672460d5d 100644 --- a/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.search.yaml +++ b/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.search.yaml @@ -36,7 +36,7 @@ services: - live-video-network vss-ui: - image: ${REGISTRY:-}vss-ui:${TAG:-latest} + image: ${REGISTRY:-}vss-ui:${VSS_STACK_TAG:-${TAG:-latest}} ipc: host ports: - "${UI_HOST_PORT}:8080" @@ -60,7 +60,7 @@ services: - live-video-network pipeline-manager: - image: ${REGISTRY:-}pipeline-manager:${TAG:-latest} + image: ${REGISTRY:-}pipeline-manager:${VSS_STACK_TAG:-${TAG:-latest}} ports: - "${PM_HOST_PORT}:3000" ipc: host @@ -149,7 +149,7 @@ services: - live-video-network video-search: - image: ${REGISTRY:-}video-search:${TAG:-latest} + image: ${REGISTRY:-}video-search:${VSS_STACK_TAG:-${TAG:-latest}} # user root to make it equivalent permission to frigate to w/r shared volume user: "0:0" depends_on: @@ -202,7 +202,7 @@ services: - live-video-network vdms-dataprep: - image: ${REGISTRY:-}vdms-dataprep:${TAG:-latest} + image: ${REGISTRY:-}vdms-dataprep:${VSS_STACK_TAG:-${TAG:-latest}} hostname: vdms-dataprep environment: no_proxy: ${no_proxy},${VDMS_VDB_HOST},${MULTIMODAL_EMBEDDING_HOST},${MINIO_HOST},localhost @@ -271,7 +271,7 @@ services: - live-video-network multimodal-embedding-serving: - image: ${REGISTRY:-}multimodal-embedding-serving:${TAG:-latest} + image: ${REGISTRY:-}multimodal-embedding-serving:${VSS_STACK_TAG:-${TAG:-latest}} container_name: multimodal-embedding-serving ports: - "${EMBEDDING_SERVER_PORT:-9777}:8000" diff --git a/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.smart-nvr.yaml b/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.smart-nvr.yaml index f5aa84e165..7640ea7382 100644 --- a/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.smart-nvr.yaml +++ b/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.smart-nvr.yaml @@ -42,7 +42,7 @@ services: nvr-event-router: container_name: nvr-event-router - image: ${REGISTRY}nvr-event-router:${TAG} + image: ${REGISTRY}nvr-event-router:${SMART_NVR_STACK_TAG:-${TAG:-latest}} restart: unless-stopped networks: - live-video-network diff --git a/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.telemetry.yaml b/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.telemetry.yaml index fa67dda685..5cf5196eec 100644 --- a/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.telemetry.yaml +++ b/metro-ai-suite/live-video-analysis/live-video-search/docker/compose.telemetry.yaml @@ -3,7 +3,7 @@ services: vss-collector: - image: docker.io/intel/vippet-collector:2025.2.0 + image: docker.io/intel/vippet-collector:2026.0.0-20260217-weekly container_name: vss-collector ports: - '9273:9273' diff --git a/metro-ai-suite/live-video-analysis/live-video-search/docs/user-guide/get-started.md b/metro-ai-suite/live-video-analysis/live-video-search/docs/user-guide/get-started.md index 381d2dc631..75c8d14b4c 100644 --- a/metro-ai-suite/live-video-analysis/live-video-search/docs/user-guide/get-started.md +++ b/metro-ai-suite/live-video-analysis/live-video-search/docs/user-guide/get-started.md @@ -37,9 +37,33 @@ Before running the application, you need to set several environment variables: ```bash export REGISTRY_URL=intel - export TAG=1.3.2-rc1 + export TAG=1.0.0-rc1 ``` + In most cases, `TAG=latest` works out of the box. Set a specific tag only when you need to pin to a particular release/version. + + **Override tags per stack (recommended for mixed release cycles):** + + Live Video Search combines two stacks that can be released on different cadences: + - **VSS Search stack** (`compose.search.yaml`) + - **Smart NVR stack** (`compose.smart-nvr.yaml`) + + Use stack-specific tag overrides when you need different image versions for each stack: + + ```bash + export TAG=1.0.0-rc1 + export VSS_STACK_TAG=1.3.2-rc1 + export SMART_NVR_STACK_TAG=1.2.4-rc1 + ``` + + Why this is needed: a single shared `TAG` forces both stacks to use the same version, which does not match independent VSS and Smart NVR release cycles. + + Note: `setup.sh` includes a release mapping for `TAG=1.0.0-rc1` and automatically sets: + - `VSS_STACK_TAG=1.3.2-rc1` + - `SMART_NVR_STACK_TAG=1.2.4-rc1` + + You can still explicitly export `VSS_STACK_TAG` and `SMART_NVR_STACK_TAG` to override those defaults. + 2. **Set required credentials for some services**: Following variables **MUST** be set on your current shell before running the setup script: diff --git a/metro-ai-suite/live-video-analysis/live-video-search/setup.sh b/metro-ai-suite/live-video-analysis/live-video-search/setup.sh index babf7b6507..80d8dc299d 100644 --- a/metro-ai-suite/live-video-analysis/live-video-search/setup.sh +++ b/metro-ai-suite/live-video-analysis/live-video-search/setup.sh @@ -105,6 +105,20 @@ export APP_HOST_PORT=${APP_HOST_PORT:-12345} export HOST_IP=$(get_host_ip) export TAG=${TAG:-latest} +# Stack-specific image tags (override-able via env vars) +export VSS_STACK_TAG=${VSS_STACK_TAG:-$TAG} +export SMART_NVR_STACK_TAG=${SMART_NVR_STACK_TAG:-$TAG} + +# Release-specific tag mapping for Live Video Search 1.0.0-rc1 +if [ "$TAG" = "1.0.0-rc1" ]; then + if [ -z "$VSS_STACK_TAG" ] || [ "$VSS_STACK_TAG" = "$TAG" ]; then + export VSS_STACK_TAG="1.3.2-rc1" + fi + if [ -z "$SMART_NVR_STACK_TAG" ] || [ "$SMART_NVR_STACK_TAG" = "$TAG" ]; then + export SMART_NVR_STACK_TAG="1.2.4-rc1" + fi +fi + [[ -n "$REGISTRY_URL" ]] && REGISTRY_URL="${REGISTRY_URL%/}/" [[ -n "$PROJECT_NAME" ]] && PROJECT_NAME="${PROJECT_NAME%/}/" export REGISTRY="${REGISTRY_URL}${PROJECT_NAME}" diff --git a/metro-ai-suite/smart-nvr/charts/Chart.yaml b/metro-ai-suite/smart-nvr/charts/Chart.yaml index a732bfffac..087d4b0c5c 100644 --- a/metro-ai-suite/smart-nvr/charts/Chart.yaml +++ b/metro-ai-suite/smart-nvr/charts/Chart.yaml @@ -1,20 +1,20 @@ apiVersion: v2 name: smart-nvr description: A Helm chart for Smart NVR -version: 1.2.3 +version: 1.2.4-rc1 dependencies: - name: frigate - version: 1.2.3 + version: 1.2.4-rc1 repository: "file://subchart/frigate" - name: nvr-event-router - version: 1.2.3 + version: 1.2.4-rc1 repository: "file://subchart/nvr-event-router" - name: nvr-event-router-ui - version: 1.2.3 + version: 1.2.4-rc1 repository: "file://subchart/nvr-event-router-ui" - name: mqtt-broker - version: 1.2.3 + version: 1.2.4-rc1 repository: "file://subchart/mqtt-broker" - name: redis - version: 1.2.3 + version: 1.2.4-rc1 repository: "file://subchart/redis" \ No newline at end of file diff --git a/metro-ai-suite/smart-nvr/charts/subchart/frigate/Chart.yaml b/metro-ai-suite/smart-nvr/charts/subchart/frigate/Chart.yaml index a9285ffa8c..ae7c68cc25 100644 --- a/metro-ai-suite/smart-nvr/charts/subchart/frigate/Chart.yaml +++ b/metro-ai-suite/smart-nvr/charts/subchart/frigate/Chart.yaml @@ -1,4 +1,4 @@ apiVersion: v2 name: frigate description: Frigate NVR component -version: 1.2.3 \ No newline at end of file +version: 1.2.4-rc1 \ No newline at end of file diff --git a/metro-ai-suite/smart-nvr/charts/subchart/mqtt-broker/Chart.yaml b/metro-ai-suite/smart-nvr/charts/subchart/mqtt-broker/Chart.yaml index d66f3f36d0..3fbe884889 100644 --- a/metro-ai-suite/smart-nvr/charts/subchart/mqtt-broker/Chart.yaml +++ b/metro-ai-suite/smart-nvr/charts/subchart/mqtt-broker/Chart.yaml @@ -1,4 +1,4 @@ apiVersion: v2 name: mqtt-broker description: MQTT Broker service -version: 1.2.3 \ No newline at end of file +version: 1.2.4-rc1 \ No newline at end of file diff --git a/metro-ai-suite/smart-nvr/charts/subchart/mqtt-broker/templates/deployment.yaml b/metro-ai-suite/smart-nvr/charts/subchart/mqtt-broker/templates/deployment.yaml index 80327b10ca..dc170a9c81 100644 --- a/metro-ai-suite/smart-nvr/charts/subchart/mqtt-broker/templates/deployment.yaml +++ b/metro-ai-suite/smart-nvr/charts/subchart/mqtt-broker/templates/deployment.yaml @@ -90,8 +90,11 @@ spec: - sh - -c - | - touch {{ .Values.auth.passwordFilePath }} && \ - mosquitto_passwd -c -b {{ .Values.auth.passwordFilePath }} $${MQTT_USER} $${MQTT_PASSWORD} && \ + if [ ! -f {{ .Values.auth.passwordFilePath }} ]; then + mosquitto_passwd -c -b {{ .Values.auth.passwordFilePath }} $${MQTT_USER} $${MQTT_PASSWORD} + else + mosquitto_passwd -b {{ .Values.auth.passwordFilePath }} $${MQTT_USER} $${MQTT_PASSWORD} + fi && \ chmod 0700 {{ .Values.auth.passwordFilePath }} && \ chown {{ $runUser }}:{{ $runGroup }} {{ .Values.auth.passwordFilePath }} && \ mosquitto -c /mosquitto/config/mosquitto.conf diff --git a/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router-ui/Chart.yaml b/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router-ui/Chart.yaml index 4289190416..40bf2d76a9 100644 --- a/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router-ui/Chart.yaml +++ b/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router-ui/Chart.yaml @@ -1,4 +1,4 @@ apiVersion: v2 name: nvr-event-router-ui description: NVR Event Router UI -version: 1.2.3 \ No newline at end of file +version: 1.2.4-rc1 \ No newline at end of file diff --git a/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router-ui/values.yaml b/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router-ui/values.yaml index cfb81aa11b..4fe06654cb 100644 --- a/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router-ui/values.yaml +++ b/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router-ui/values.yaml @@ -1,6 +1,6 @@ image: repository: intel/nvr-event-router - tag: 1.2.3 + tag: 1.2.4-rc1 replicaCount: 1 diff --git a/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router/Chart.yaml b/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router/Chart.yaml index 9c8514f043..8da04bd633 100644 --- a/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router/Chart.yaml +++ b/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router/Chart.yaml @@ -1,4 +1,4 @@ apiVersion: v2 name: nvr-event-router description: NVR Event Router service -version: 1.2.3 \ No newline at end of file +version: 1.2.4-rc1 \ No newline at end of file diff --git a/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router/values.yaml b/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router/values.yaml index ccd4dbdb6a..88347eae84 100644 --- a/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router/values.yaml +++ b/metro-ai-suite/smart-nvr/charts/subchart/nvr-event-router/values.yaml @@ -1,6 +1,6 @@ image: repository: intel/nvr-event-router - tag: 1.2.3 + tag: 1.2.4-rc1 replicaCount: 1 diff --git a/metro-ai-suite/smart-nvr/charts/subchart/redis/Chart.yaml b/metro-ai-suite/smart-nvr/charts/subchart/redis/Chart.yaml index 85aa625ef8..7b8982ba56 100644 --- a/metro-ai-suite/smart-nvr/charts/subchart/redis/Chart.yaml +++ b/metro-ai-suite/smart-nvr/charts/subchart/redis/Chart.yaml @@ -1,4 +1,4 @@ apiVersion: v2 name: redis description: Redis cache -version: 1.2.3 \ No newline at end of file +version: 1.2.4-rc1 \ No newline at end of file diff --git a/metro-ai-suite/smart-nvr/charts/values.yaml b/metro-ai-suite/smart-nvr/charts/values.yaml index aa3703b61a..b44eefe8c6 100644 --- a/metro-ai-suite/smart-nvr/charts/values.yaml +++ b/metro-ai-suite/smart-nvr/charts/values.yaml @@ -34,7 +34,7 @@ frigate: nvr-event-router: image: repository: intel/nvr-event-router - tag: 1.2.3 + tag: 1.2.4-rc1 replicaCount: 1 @@ -66,7 +66,7 @@ nvr-event-router: nvr-event-router-ui: image: repository: intel/nvr-event-router - tag: 1.2.3 + tag: 1.2.4-rc1 env: MODE: "ui" API_BASE_URL: "http://nvr-event-router:8000" diff --git a/metro-ai-suite/smart-nvr/docs/user-guide/get-started.md b/metro-ai-suite/smart-nvr/docs/user-guide/get-started.md index 07c208ac7e..26c2c309bc 100644 --- a/metro-ai-suite/smart-nvr/docs/user-guide/get-started.md +++ b/metro-ai-suite/smart-nvr/docs/user-guide/get-started.md @@ -17,12 +17,12 @@ from your video data. Smart NVR operates in a distributed architecture requiring multiple services across 3-4 devices for optimal performance: -| Device | Service | Purpose | -|--------|---------|---------| -| Device 1 | VSS Search | Video search functionality | -| Device 2 | VSS Summary | Video summarization | -| Device 3 | VLM Microservice | AI-powered event descriptions (optional) | -| Device 3/4 | Smart NVR App | Main application interface | +| Device | Service | Purpose | +| ---------- | ---------------- | ---------------------------------------- | +| Device 1 | VSS Search | Video search functionality | +| Device 2 | VSS Summary | Video summarization | +| Device 3 | VLM Microservice | AI-powered event descriptions (optional) | +| Device 3/4 | Smart NVR App | Main application interface | ### Software Dependencies @@ -69,7 +69,7 @@ Set up the required environment variables: ```bash # Docker Registry Details export REGISTRY_URL="intel" -export TAG="1.2.3" +export TAG="1.2.4-rc1" # VSS Service Endpoints export http_proxy= @@ -144,8 +144,8 @@ Re-run the application after [configuring](#step-2-configure-environment) the re > - This feature is experimental and may be unstable due to underlying Frigate GenAI implementation. > - Requires VLM microservice to be running. > - Disabled by default for system stability. -> - SmartNVR uses either Frigate or Scenescape for GenAI capabilities. -> GenAI in both cannot be enabled at the same time. If Scenescape is enabled, +> - SmartNVR uses either Frigate or Intel® SceneScape for GenAI capabilities. +> GenAI in both cannot be enabled at the same time. If Intel® SceneScape is enabled, > its capabilities are prioritized over Frigate, with Frigate used in "dumb" mode. > - If NVR_SCENESCAPE=true. then NVR_GENAI must be set to false. Otherwise, an error is thrown. diff --git a/metro-ai-suite/smart-nvr/docs/user-guide/get-started/deploy-with-helm.md b/metro-ai-suite/smart-nvr/docs/user-guide/get-started/deploy-with-helm.md index 144c5ab8fb..124325442a 100644 --- a/metro-ai-suite/smart-nvr/docs/user-guide/get-started/deploy-with-helm.md +++ b/metro-ai-suite/smart-nvr/docs/user-guide/get-started/deploy-with-helm.md @@ -52,7 +52,7 @@ There are two options to get the charts in your workspace: Use the following command to pull the Helm chart from Docker Hub: ```bash -helm pull oci://registry-1.docker.io/intel/smart-nvr --version 1.2.3 +helm pull oci://registry-1.docker.io/intel/smart-nvr --version 1.2.4-rc1 ``` Refer to the [release notes](../release-notes.md) for details on the latest version number to @@ -63,7 +63,7 @@ use for the sample application. After pulling the chart, extract the `.tgz` file: ```bash -tar -xvf smart-nvr-1.2.3.tgz +tar -xvf smart-nvr-1.2.4-rc1.tgz ``` This will create a directory named `smart-nvr` containing the chart files. Navigate to the diff --git a/metro-ai-suite/smart-nvr/docs/user-guide/release-notes.md b/metro-ai-suite/smart-nvr/docs/user-guide/release-notes.md index 5af9c95775..49d249b3d6 100644 --- a/metro-ai-suite/smart-nvr/docs/user-guide/release-notes.md +++ b/metro-ai-suite/smart-nvr/docs/user-guide/release-notes.md @@ -1,5 +1,6 @@ # Release Notes +- [Version 1.2.4-rc1](#version-124-rc1) - [Version 1.2.3](#version-123) - [Version 1.2.2](#version-122) - [Version 1.2.1](#version-121) @@ -8,13 +9,15 @@ ## Current Release -### Version 1.2.3 +### Version 1.2.4-rc1 -**Release Date**: 24 November 2025 +**Release Date**: 17 Feb 2026 **New Features**: -- Minor Fixes +- Dependabot fixes for security vulnerabilities in dependencies. +- Documentation updates for clarity and accuracy. +- Minor bug fixes. **Known Issues**: @@ -25,6 +28,14 @@ ## Previous Releases +### Version 1.2.3 + +**Release Date**: 24 November 2025 + +**New Features**: + +- Minor Fixes + ### Version 1.2.2 **Release Date**: 14 November 2025 diff --git a/metro-ai-suite/smart-nvr/docs/user-guide/scenescape-integration.md b/metro-ai-suite/smart-nvr/docs/user-guide/scenescape-integration.md index 574a248ffa..42ee0ddc87 100644 --- a/metro-ai-suite/smart-nvr/docs/user-guide/scenescape-integration.md +++ b/metro-ai-suite/smart-nvr/docs/user-guide/scenescape-integration.md @@ -97,7 +97,7 @@ docker logs nvr-event-router -f ![SceneScape Enabled Interface](./_assets/Scenescape_enabled.png) -When Intel® SceneScape is enabled (`NVR_SCENESCAPE=true`) and scenescape source is selected: +When Intel® SceneScape is enabled (`NVR_SCENESCAPE=true`) and **"scenescape"** source is selected: - Source dropdown shows both **"frigate"** and **"scenescape"** options - **Count** field becomes visible and editable