// Run executes the stage of the given name. It returns true if the stage // successfully ran and false if there were any errors. func (e Engine) Run(stageName string) bool { cfg, err := e.acquireConfig() switch err { case config.ErrEmpty, nil: e.Logger.PushPrefix(stageName) defer e.Logger.PopPrefix() return stages.Get(stageName).Create(e.Logger, e.Root).Run(config.Append(config.Append(baseConfig, e.OemConfig), cfg)) case config.ErrCloudConfig, config.ErrScript: e.Logger.Info("%v: ignoring and exiting...", err) return true default: e.Logger.Crit("failed to acquire config: %v", err) return false } }
// Run executes the stage of the given name. It returns true if the stage // successfully ran and false if there were any errors. func (e Engine) Run(stageName string) bool { cfg, err := e.acquireConfig() switch err { case nil: case config.ErrCloudConfig, config.ErrScript, config.ErrEmpty: e.Logger.Info("%v: ignoring user-provided config", err) cfg = e.DefaultUserConfig default: e.Logger.Crit("failed to acquire config: %v", err) return false } e.Logger.PushPrefix(stageName) defer e.Logger.PopPrefix() return stages.Get(stageName).Create(e.Logger, e.Root).Run(config.Append(baseConfig, config.Append(e.OemBaseConfig, cfg))) }
// renderConfig evaluates "ignition.config.replace" and "ignition.config.append" // in the given config and returns the result. If "ignition.config.replace" is // set, the referenced and evaluted config will be returned. Otherwise, if // "ignition.config.append" is set, each of the referenced configs will be // evaluated and appended to the provided config. If neither option is set, the // provided config will be returned unmodified. func (e Engine) renderConfig(cfg types.Config) (types.Config, error) { if cfgRef := cfg.Ignition.Config.Replace; cfgRef != nil { return e.fetchReferencedConfig(*cfgRef) } appendedCfg := cfg for _, cfgRef := range cfg.Ignition.Config.Append { newCfg, err := e.fetchReferencedConfig(cfgRef) if err != nil { return newCfg, err } appendedCfg = config.Append(appendedCfg, newCfg) } return appendedCfg, nil }