summaryrefslogtreecommitdiff
path: root/edgesite
diff options
context:
space:
mode:
authorKubeEdge Bot <48982446+kubeedge-bot@users.noreply.github.com>2020-01-20 12:17:16 +0800
committerGitHub <noreply@github.com>2020-01-20 12:17:16 +0800
commit69039b40dccefbb8509c38c7e5656e7628a8177c (patch)
treef7358e8b721fc7903b9ed51c10e545a1b8978c88 /edgesite
parentMerge pull request #1414 from zhuguihua/clean_up_edged_startup (diff)
parentintegelengent test error (diff)
downloadkubeedge-69039b40dccefbb8509c38c7e5656e7628a8177c.tar.gz
Merge pull request #1393 from kadisi/component_use_new_config
KubeEdge Component use new config api
Diffstat (limited to 'edgesite')
-rw-r--r--edgesite/cmd/app/options/options.go35
-rw-r--r--edgesite/cmd/app/server.go32
2 files changed, 57 insertions, 10 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..6c106e5d3 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)
+ }
+
+ config, err := opts.Config()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "%v\n", err)
+ os.Exit(1)
+ }
+
+ if errs := validation.ValidateEdgeSiteConfiguration(config); 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(config)
// start all modules
core.Run()
},
@@ -68,9 +87,10 @@ runs on edge nodes and manages containerized applications.`,
}
// registerModules register all the modules started in edgesite
-func registerModules() {
- edged.Register()
- edgecontroller.Register()
- metamanager.Register()
- dbm.InitDBManager()
+func registerModules(c *v1alpha1.EdgeSiteConfig) {
+ edged.Register(c.Modules.Edged)
+ edgecontroller.Register(c.Modules.EdgeController, c.KubeAPIConfig, c.Modules.Edged.HostnameOverride, true)
+ metamanager.Register(c.Modules.MetaManager)
+ // Nodte: Need to put it to the end, and wait for all models to register before executing
+ dbm.InitDBConfig(c.DataBase.DriverName, c.DataBase.AliasName, c.DataBase.DataSource)
}