Add 'containerd config dump' subcommand
@@ -40,17 +40,11 @@ func (c *Config) WriteTo(w io.Writer) (int64, error) {
return 0, toml.NewEncoder(w).Encode(c)
}
-var configCommand = cli.Command{
- Name: "config",
- Usage: "information on the containerd config",
- Subcommands: []cli.Command{
- {
- Name: "default",
- Usage: "see the output of the default config",
- Action: func(context *cli.Context) error {
+func outputConfig(cfg *srvconfig.Config) error {
config := &Config{
- Config: defaultConfig(),
+ Config: cfg,
}
+
// for the time being, keep the defaultConfig's version set at 1 so that
// when a config without a version is loaded from disk and has no version
// set, we assume it's a v1 config. But when generating new configs via
@@ -77,6 +71,29 @@ var configCommand = cli.Command{
_, err = config.WriteTo(os.Stdout)
return err
+}
+
+var configCommand = cli.Command{
+ Name: "config",
+ Usage: "information on the containerd config",
+ Subcommands: []cli.Command{
+ {
+ Name: "default",
+ Usage: "see the output of the default config",
+ Action: func(context *cli.Context) error {
+ return outputConfig(defaultConfig())
+ },
+ },
+ {
+ Name: "dump",
+ Usage: "see the output of the final main config with imported in subconfig files",
+ Action: func(context *cli.Context) error {
+ config := defaultConfig()
+ if err := srvconfig.LoadConfig(context.GlobalString("config"), config); err != nil && !os.IsNotExist(err) {
+ return err
+ }
+
+ return outputConfig(config)
},
},
},
