Skip to content

examples: show centrs consuming a quickchr machine #73

Description

@mobileskyfi

Context

A runnable example should show the intended project boundary: quickchr creates/provisions the CHR and owns the VM lifecycle; centrs then uses the quickchr target to perform validated RouterOS operations.

This is separate from the lightweight help/setup/docs discovery issue (#72) because it depends on the centrs --quickchr surface from tikoci/centrs#134.

Strawman

Add either a new examples/centrs/ example or extend examples/harness/ with a centrs-specific sibling:

  • boot or start a named quickchr machine;
  • run a centrs command such as centrs retrieve --quickchr <name> /system/resource and centrs execute --quickchr <name> -- :put [/system/identity/get name];
  • demonstrate that consumer code never reads machine.json; it goes through the public quickchr handoff / centrs --quickchr path;
  • show the “after create/provisioning, use centrs for validated RouterOS work” workflow;
  • clean up the machine in finally / existing example helper style.

Verification shape

Because this example depends on an external package and centrs#134, decide whether the quickchr smoke harness should:

  • skip when centrs is not installed;
  • gate only in an extended examples job; or
  • use a repo-adjacent centrs checkout/package during local development.

Do not add a flaky example to the normal quickchr smoke set before the dependency shape is settled.

Dependencies

Done-when

The example is runnable, documented in examples coverage, and verifies the intended quickchr→centrs workflow without direct state-file reads.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P4examples, polish, follow-upsarea:docsREADME/MANUAL/DESIGN/instructions/skillsarea:examplesexamples/ runnable scripts + coverageconsumer:centrsWork needed by centrs integration or handoff surfaces

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions