diff options
| author | micplus <ain01a@outlook.com> | 2024-04-07 10:53:55 +0800 |
|---|---|---|
| committer | micplus <ain01a@outlook.com> | 2024-04-07 14:17:38 +0800 |
| commit | 52cfef8d757e5273d58490a74e9e52d8472f3997 (patch) | |
| tree | 5923b2f6a8ec876a08dfd8e2e6bc3e38a7f41c81 | |
| parent | feat: improve edged init logic (diff) | |
| download | kubeedge-52cfef8d757e5273d58490a74e9e52d8472f3997.tar.gz | |
feat: add feature
Signed-off-by: micplus <ain01a@outlook.com>
| -rw-r--r-- | edge/cmd/edgecore/app/server.go | 3 | ||||
| -rw-r--r-- | edge/pkg/edged/edged.go | 5 | ||||
| -rw-r--r-- | pkg/features/features.go | 8 | ||||
| -rw-r--r-- | staging/src/github.com/kubeedge/beehive/pkg/core/module.go | 2 |
4 files changed, 14 insertions, 4 deletions
diff --git a/edge/cmd/edgecore/app/server.go b/edge/cmd/edgecore/app/server.go index 128bfdbfc..5e77c0bb7 100644 --- a/edge/cmd/edgecore/app/server.go +++ b/edge/cmd/edgecore/app/server.go @@ -34,6 +34,7 @@ import ( "github.com/kubeedge/kubeedge/pkg/util/flag" utilvalidation "github.com/kubeedge/kubeedge/pkg/util/validation" "github.com/kubeedge/kubeedge/pkg/version" + kefeatures "github.com/kubeedge/kubeedge/pkg/features" ) // NewEdgeCoreCommand create edgecore cmd @@ -123,7 +124,7 @@ offering HTTP client capabilities to components of cloud to reach HTTP servers r registerModules(config) // enable module auto-restart feature - if config.FeatureGates[options.FeatureModuleAutoStart] { + if kefeatures.DefaultFeatureGate.Enabled(kefeatures.ModuleRestart) { core.EnableModuleRestart() } diff --git a/edge/pkg/edged/edged.go b/edge/pkg/edged/edged.go index 8290c91c9..1f81fce9f 100644 --- a/edge/pkg/edged/edged.go +++ b/edge/pkg/edged/edged.go @@ -61,6 +61,7 @@ import ( "github.com/kubeedge/kubeedge/edge/pkg/metamanager/dao" "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2" "github.com/kubeedge/kubeedge/pkg/version" + kefeatures "github.com/kubeedge/kubeedge/pkg/features" ) // GetKubeletDeps returns a Dependencies suitable for lite kubelet being run. @@ -139,13 +140,13 @@ func (e *edged) Start() { go func() { err := DefaultRunLiteKubelet(e.context, e.KubeletServer, e.KubeletDeps, e.FeatureGate) if err != nil { - if !core.IsModuleRestartEnabled() { + if !kefeatures.DefaultFeatureGate.Enabled(kefeatures.ModuleRestart) { klog.Errorf("Start edged failed, err: %v", err) os.Exit(1) } klErrChan <- err // send empty message to wakeup syncPod loop - nilMsg := model.NewMessage("").BuildRouter(e.Name(), e.Group(), e.namespace+"/"+model.ResourceTypePod, "") + nilMsg := model.NewMessage("").BuildRouter(e.Name(), e.Group(), "", "") beehiveContext.Send(modules.EdgedModuleName, *nilMsg) } }() diff --git a/pkg/features/features.go b/pkg/features/features.go index 896acf4a0..bb95785ba 100644 --- a/pkg/features/features.go +++ b/pkg/features/features.go @@ -26,6 +26,13 @@ const ( // alpha: v1.12 // owner: @vincentgoat RequireAuthorization featuregate.Feature = "requireAuthorization" + // ModuleRestart supports automatic restarting for modules. + // If a module exits when running because of uncaught or external errors, BeeHive will try to keep the module running by restarting it. + // If moduleRestart enabled, modules will be kept running forever. The interval between starting a module increases whenever it exits, + // with maximum of 30s. + // alpha: v1.17 + // owner: @micplus + ModuleRestart featuregate.Feature = "moduleRestart" ) // defaultFeatureGates consists of all known Kubeedge-specific feature keys. @@ -33,4 +40,5 @@ const ( // available throughout Kubeedge binaries. var defaultFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{ RequireAuthorization: {Default: false, PreRelease: featuregate.Alpha}, + ModuleRestart: {Default: false, PreRelease: featuregate.Alpha}, } diff --git a/staging/src/github.com/kubeedge/beehive/pkg/core/module.go b/staging/src/github.com/kubeedge/beehive/pkg/core/module.go index 618b099ca..178ae88e2 100644 --- a/staging/src/github.com/kubeedge/beehive/pkg/core/module.go +++ b/staging/src/github.com/kubeedge/beehive/pkg/core/module.go @@ -86,7 +86,7 @@ func GetModuleExchange() *socket.ModuleExchange { return &exchange } -// EnableModuleRestart enable new feature for auto restarting modules +// EnableModuleRestart enable feature for auto restarting modules func EnableModuleRestart() { moduleRestartEnabled = true } |
