diff options
| author | zhangjie <iamkadisi@163.com> | 2020-01-15 10:27:56 +0800 |
|---|---|---|
| committer | zhangjie <iamkadisi@163.com> | 2020-01-19 17:26:26 +0800 |
| commit | 972da4e0b60176246468c11d04e01a68c26097fa (patch) | |
| tree | b782120766655d5181d3cb4f2cdfcc071539a6d0 /edgesite | |
| parent | process dbm register (diff) | |
| download | kubeedge-972da4e0b60176246468c11d04e01a68c26097fa.tar.gz | |
edgesite add --config flags
Signed-off-by: zhangjie <iamkadisi@163.com>
Diffstat (limited to 'edgesite')
| -rw-r--r-- | edgesite/cmd/app/options/options.go | 35 | ||||
| -rw-r--r-- | edgesite/cmd/app/server.go | 23 |
2 files changed, 52 insertions, 6 deletions
diff --git a/edgesite/cmd/app/options/options.go b/edgesite/cmd/app/options/options.go index 59d16fb43..3031d493e 100644 --- a/edgesite/cmd/app/options/options.go +++ b/edgesite/cmd/app/options/options.go @@ -17,19 +17,46 @@ limitations under the License. package options import ( + "fmt" + "path" + + "k8s.io/apimachinery/pkg/util/validation/field" cliflag "k8s.io/component-base/cli/flag" + + "github.com/kubeedge/kubeedge/common/constants" + "github.com/kubeedge/kubeedge/pkg/apis/edgesite/v1alpha1" + "github.com/kubeedge/kubeedge/pkg/util/validation" ) -// TODO set edgesite config type EdgeSiteOptions struct { + ConfigFile string } func NewEdgeSiteOptions() *EdgeSiteOptions { - return &EdgeSiteOptions{} + return &EdgeSiteOptions{ + ConfigFile: path.Join(constants.DefaultConfigDir, "edgesite.yaml"), + } } func (o *EdgeSiteOptions) Flags() (fss cliflag.NamedFlagSets) { - // TODO set EdgeSiteOptions field - //fs := fss.FlagSet("general") + fs := fss.FlagSet("global") + fs.StringVar(&o.ConfigFile, "config", o.ConfigFile, "The path to the configuration file. Flags override values in this file.") return } + +func (c *EdgeSiteOptions) Validate() []error { + var errs []error + if !validation.FileIsExist(c.ConfigFile) { + errs = append(errs, field.Required(field.NewPath("config"), + fmt.Sprintf("config file %v not exist. For the configuration file format, please refer to --minconfig and --defaultconfig command", c.ConfigFile))) + } + return errs +} + +func (c *EdgeSiteOptions) Config() (*v1alpha1.EdgeSiteConfig, error) { + cfg := v1alpha1.NewDefaultEdgeSiteConfig() + if err := cfg.Parse(c.ConfigFile); err != nil { + return nil, err + } + return cfg, nil +} diff --git a/edgesite/cmd/app/server.go b/edgesite/cmd/app/server.go index 8a5e9417d..6b1c69a69 100644 --- a/edgesite/cmd/app/server.go +++ b/edgesite/cmd/app/server.go @@ -2,8 +2,10 @@ package app import ( "fmt" + "os" "github.com/spf13/cobra" + utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apiserver/pkg/util/term" cliflag "k8s.io/component-base/cli/flag" "k8s.io/component-base/cli/globalflag" @@ -16,6 +18,7 @@ import ( "github.com/kubeedge/kubeedge/edge/pkg/metamanager" "github.com/kubeedge/kubeedge/edgesite/cmd/app/options" "github.com/kubeedge/kubeedge/pkg/apis/edgesite/v1alpha1" + "github.com/kubeedge/kubeedge/pkg/apis/edgesite/v1alpha1/validation" "github.com/kubeedge/kubeedge/pkg/util/flag" "github.com/kubeedge/kubeedge/pkg/version" "github.com/kubeedge/kubeedge/pkg/version/verflag" @@ -36,10 +39,26 @@ runs on edge nodes and manages containerized applications.`, flag.PrintDefaultConfigAndExitIfRequested(v1alpha1.NewDefaultEdgeSiteConfig()) flag.PrintFlags(cmd.Flags()) + if errs := opts.Validate(); len(errs) > 0 { + fmt.Fprintf(os.Stderr, "%v\n", utilerrors.NewAggregate(errs)) + os.Exit(1) + } + + c, err := opts.Config() + if err != nil { + fmt.Fprintf(os.Stderr, "%v\n", err) + os.Exit(1) + } + + if errs := validation.ValidateEdgeSiteConfiguration(c); len(errs) > 0 { + fmt.Fprintf(os.Stderr, "%v\n", errs) + os.Exit(1) + } + // To help debugging, immediately log version klog.Infof("Version: %+v", version.Get()) - registerModules() + registerModules(c) // start all modules core.Run() }, @@ -68,7 +87,7 @@ runs on edge nodes and manages containerized applications.`, } // registerModules register all the modules started in edgesite -func registerModules() { +func registerModules(c *v1alpha1.EdgeSiteConfig) { edged.Register() edgecontroller.Register() metamanager.Register() |
