summaryrefslogtreecommitdiff
path: root/edgesite
diff options
context:
space:
mode:
authorzhangjie <iamkadisi@163.com>2020-01-15 10:27:56 +0800
committerzhangjie <iamkadisi@163.com>2020-01-19 17:26:26 +0800
commit972da4e0b60176246468c11d04e01a68c26097fa (patch)
treeb782120766655d5181d3cb4f2cdfcc071539a6d0 /edgesite
parentprocess dbm register (diff)
downloadkubeedge-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.go35
-rw-r--r--edgesite/cmd/app/server.go23
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()