Files
git.stella-ops.org/docs/features/unchecked/zastava/zastava-runtime-observer.md

2.9 KiB

Zastava Runtime Observer (CRI Container Lifecycle Tracking)

Module

Zastava

Status

IMPLEMENTED

Description

Full CRI-based container runtime observer with lifecycle tracking, state tracking, and polling. Supports both CRI (Linux) and Docker Windows runtimes.

Implementation Details

  • Observer Program: src/Zastava/StellaOps.Zastava.Observer/Program.cs -- CRI-based observer entry point
  • CRI runtime: src/Zastava/StellaOps.Zastava.Observer/ContainerRuntime/Cri/ -- CriRuntimeClient.cs, CriRuntimeClientFactory.cs, CriModels.cs, CriConversions.cs for CRI socket-based container monitoring
  • ContainerStateTracker: src/Zastava/StellaOps.Zastava.Observer/ContainerRuntime/ContainerStateTracker.cs -- tracks container lifecycle state transitions
  • ContainerLifecycleHostedService: src/Zastava/StellaOps.Zastava.Observer/Worker/ContainerLifecycleHostedService.cs -- background service for lifecycle event processing
  • ContainerRuntimePoller: src/Zastava/StellaOps.Zastava.Observer/Worker/ContainerRuntimePoller.cs -- polls container runtime for state changes
  • RuntimeEventBuffer: src/Zastava/StellaOps.Zastava.Observer/Runtime/RuntimeEventBuffer.cs -- buffers events before dispatch
  • RuntimeEventDispatchService: src/Zastava/StellaOps.Zastava.Observer/Worker/RuntimeEventDispatchService.cs -- dispatches events to backend
  • RuntimeEventFactory: src/Zastava/StellaOps.Zastava.Observer/Worker/RuntimeEventFactory.cs -- creates typed runtime events
  • ObserverBootstrapService: src/Zastava/StellaOps.Zastava.Observer/Worker/ObserverBootstrapService.cs -- observer startup and initialization
  • BackoffCalculator: src/Zastava/StellaOps.Zastava.Observer/Worker/BackoffCalculator.cs -- exponential backoff for retry logic
  • RuntimeFactsClient: src/Zastava/StellaOps.Zastava.Observer/Backend/RuntimeFactsClient.cs -- client for posting runtime facts to backend
  • RuntimeEventsClient: src/Zastava/StellaOps.Zastava.Observer/Backend/RuntimeEventsClient.cs -- client for posting runtime events
  • ZastavaObserverOptions: src/Zastava/StellaOps.Zastava.Observer/Configuration/ZastavaObserverOptions.cs -- observer configuration
  • Tests: src/Zastava/__Tests/StellaOps.Zastava.Observer.Tests/ -- ContainerRuntimePollerTests.cs, Runtime/RuntimeEventBufferTests.cs, Worker/RuntimeEventFactoryTests.cs, Backend/RuntimeEventsClientTests.cs
  • Source: Feature matrix scan

E2E Test Plan

  • Verify CRI runtime client connects to CRI socket and lists containers
  • Test container state tracker detects start/stop/restart lifecycle events
  • Verify runtime event buffer batches and dispatches events efficiently
  • Test both Linux CRI and Windows Docker runtime support
  • Verify observer bootstrap initializes and recovers from failures with backoff
  • Test runtime facts and events are posted to backend clients