Summary
- Scope:
spec
- Level: Developer Goal
- Actors: Dev-Ops Engineer
- Brief: This use case introduces a enum 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
log level in the dockerd configuration.
- The configuration key is
log/level.
- The configuration key uses
description, default and enum as metakeys.
- The specification strictly defines all enum values
debug, info, warn, error and fatal.
- The keys are all stored for the
spec namespace.
- Alternative scenario: None.
- 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 log level configuration for the dockerd could look like:
[log/level]
meta:/description = Set the logging level
meta:/enum/check = #4
meta:/enum/check/#0 = debug
meta:/enum/check/#1 = info
meta:/enum/check/#2 = warn
meta:/enum/check/#3 = error
meta:/enum/check/#4 = fatal
meta:/default = info
In case the key log/level does not exist, spec plugin creates a default key with value info in the default namespace.
For the full specification of the dockerd configuration file see dockerd-spec.