Skip to content

Add etcd-backed durable cluster state #100

Description

@halfcyan

Summary

Store Odorobo's desired cluster state in etcd so manager restarts and cluster outages do not cause VM definitions or placement data to be lost.

Scope

  • Add an etcd client abstraction behind a trait.
  • Define key prefixes and serialized records for VM manifests, placement, node state, and operations.
  • Add endpoint, TLS, and authentication configuration.
  • Add connectivity/health diagnostics.

Tasks

  • Select and add a compatible etcd client dependency.
  • Define the storage trait used by the scheduler and reconciliation code.
  • Define key prefixes for VM manifests, placement, node state, and operations.
  • Define serialized record versions and migration behavior.
  • Add endpoint, TLS, authentication, timeout, and retry configuration.
  • Implement read/write/delete operations for VM state.
  • Add connectivity and health diagnostics.
  • Add mock-client or isolated-etcd tests.
  • Document behavior when etcd is temporarily unavailable.

What this should do

  • VM state can be written and read through the abstraction.
  • Key layout and serialization are documented.
  • Connection failures are surfaced clearly.
  • Tests use a mock client or isolated etcd environment.
  • No destructive behavior occurs when etcd is temporarily unavailable.

Rationale

Use etcd as the initial source of truth instead of making the DHT a prerequisite for the MVP.

Issue links

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions