Mirantis / Mirantis/cri-dockerd

Provide hooks to configure `cri-dockerd` via a configuration file

Open
#102 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
1.4k
Forks
356
Avg merge
4d 4h
Merged PRs (30d)
3

Description

Similar to other CRI and CNI providers, the amount of possible churn in cri-dockerd in keeping up with upstream k8s may become a lot, and shifting around defaults in command-line args is not a great experience for consumers.

viper is already part of the deptree (though we'll pull a new version), and we can relatively easily expose NetworkPluginSettings, ContainerRuntimeOptions, and the small amount of daemon-specific options while keeping reasonable defaults.

Additionally, this would allow for all of these to easily be set/tweaked via environment variables if desired.

TOML is not the greatest format in the world, but it's reasonably well supported by burntsushi/toml into viper, with headings as above (daemon-specific options as top-level/without subkey).

@afbjorklund input?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with config/types.go, config/options.go, and cmd/cri/options/options.go to map the existing option structs and defaults. Review how viper and TOML support fit the dependency tree, then define configuration loading and environment-variable behavior while preserving defaults. Done means the daemon-specific, network-plugin, and container-runtime options can be configured as proposed and are covered by tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go, kubernetes
Domain
devops, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.