$darkmode
Elektra 0.11.0
Use Case: Create underline specification for dockerd configuration file (daemon.json)

Summary

  • Scope: spec
  • Level: Developer Goal
  • Actors: Dev-Ops Engineer
  • Brief: This use case introduces an underline specification for a part of the dockerd configuration file (daemon.json).

Scenarios

  • Precondition: The Dev-Ops Engineer has a working setup for docker and the daemon dockerd.
  • Main success scenario:
    • The Dev-Ops Engineer wants to write a specification for the runtimes in the dockerd configuration file.
    • The underline specification configuration keys are runtimes/_, runtimes/_/path, runtimes/_/runtimeArgs/#.
    • The specification uses type, description and example as metakeys.
    • The underline configuration is defined by the wildcard character _.
    • The keys are all stored for the spec namespace.
  • Alternative scenario:
    • Define the storage type with an array specification.
    • The array specification configuration keys are runtimes/#, runtimes/#/path, runtimes/#/runtimeArgs/#.
    • The configuration key runtimes/# uses array/min, description and example as metakeys.
    • The configuration key runtimes/#/path uses type, description and example.
    • The configuration key runtimes/#/runtimeArgs/# still uses array/min, description and example.
  • Error scenario:
    • Wrong metakeys are used (yielded as error to the user).
  • Postcondition: The keys are all stored for the spec namespace..
  • Non-functional Constraints: None.

Example

The runtimes configuration for the dockerd could look like:

[runtimes/_]
meta:/type = string
meta:/description = Additional OCI compatible runtime
meta:/example = custom
[runtimes/_/path]
meta:/type = string
meta:/description = The path to the OCI compatible runtime
meta:/example = /usr/local/bin/my-runc-replacement
[runtimes/_/runtimeArgs/#]
meta:/array/min = 0
meta:/description = The runtime arguments for the OCI compatible runtime
meta:/example = --debug

For the full specification of the dockerd configuration file see dockerd-spec.