summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKubeEdge Bot <48982446+kubeedge-bot@users.noreply.github.com>2023-09-22 10:12:54 +0800
committerGitHub <noreply@github.com>2023-09-22 10:12:54 +0800
commitf7105461ecacc35d89d92ca03601a155a68a6944 (patch)
tree5751fad0c7024e98d89224431ff49d8309da3d84
parentMerge pull request #5025 from wbc6080/update-docker (diff)
parentchore: update import sort (diff)
downloadkubeedge-f7105461ecacc35d89d92ca03601a155a68a6944.tar.gz
Merge pull request #4967 from wujunyi792/feat/windows-nodes-edgecore
Feat/windows nodes edgecore
-rw-r--r--common/constants/default.go40
-rw-r--r--common/constants/default_others.go33
-rw-r--r--common/constants/default_windows.go36
-rw-r--r--edge/cmd/edgecore/app/server.go3
-rw-r--r--edge/pkg/devicetwin/dmiserver/const_others.go7
-rw-r--r--edge/pkg/devicetwin/dmiserver/const_windows.go7
-rw-r--r--edge/pkg/devicetwin/dmiserver/server.go22
-rw-r--r--edge/pkg/devicetwin/dmiserver/server_others.go26
-rw-r--r--edge/pkg/devicetwin/dmiserver/server_windows.go22
-rw-r--r--edge/pkg/edged/config/config.go3
-rw-r--r--pkg/apis/componentconfig/edgecore/v1alpha2/default.go12
-rw-r--r--pkg/apis/componentconfig/edgecore/v1alpha2/default_kubelet_configuration.go21
-rw-r--r--pkg/apis/componentconfig/edgecore/v1alpha2/default_others.go25
-rw-r--r--pkg/apis/componentconfig/edgecore/v1alpha2/default_windows.go23
-rw-r--r--pkg/apis/componentconfig/edgecore/v1alpha2/types.go7
-rw-r--r--pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation.go24
-rw-r--r--pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation_others.go33
-rw-r--r--pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation_windows.go27
18 files changed, 270 insertions, 101 deletions
diff --git a/common/constants/default.go b/common/constants/default.go
index f42b3873f..cb7231078 100644
--- a/common/constants/default.go
+++ b/common/constants/default.go
@@ -28,38 +28,17 @@ const (
// Resources
const (
- // Certificates
- DefaultConfigDir = "/etc/kubeedge/config/"
- DefaultCAFile = "/etc/kubeedge/ca/rootCA.crt"
- DefaultCAKeyFile = "/etc/kubeedge/ca/rootCA.key"
- DefaultCertFile = "/etc/kubeedge/certs/server.crt"
- DefaultKeyFile = "/etc/kubeedge/certs/server.key"
+ DefaultCAURL = "/ca.crt"
+ DefaultCertURL = "/edge.crt"
+ DefaultNodeUpgradeURL = "/nodeupgrade"
DefaultServiceAccountIssuer = "https://kubernetes.default.svc.cluster.local"
- DefaultCAURL = "/ca.crt"
- DefaultCertURL = "/edge.crt"
- DefaultNodeUpgradeURL = "/nodeupgrade"
-
- DefaultStreamCAFile = "/etc/kubeedge/ca/streamCA.crt"
- DefaultStreamCertFile = "/etc/kubeedge/certs/stream.crt"
- DefaultStreamKeyFile = "/etc/kubeedge/certs/stream.key"
-
- DefaultMqttCAFile = "/etc/kubeedge/ca/rootCA.crt"
- DefaultMqttCertFile = "/etc/kubeedge/certs/server.crt"
- DefaultMqttKeyFile = "/etc/kubeedge/certs/server.key"
-
- // Bootstrap file, contains token used by edgecore to apply for ca/cert
- BootstrapFile = "/etc/kubeedge/bootstrap-edgecore.conf"
-
// Edged
- DefaultRootDir = "/var/lib/edged"
- DefaultDockerAddress = "unix:///var/run/docker.sock"
- DefaultRuntimeType = "remote"
- DefaultDockershimRootDir = "/var/lib/dockershim"
- DefaultEdgedMemoryCapacity = 7852396000
- DefaultRemoteRuntimeEndpoint = "unix:///run/containerd/containerd.sock"
- DefaultRemoteImageEndpoint = "unix:///run/containerd/containerd.sock"
- DefaultMosquittoImage = "eclipse-mosquitto:1.6.15"
+ DefaultDockerAddress = "unix:///var/run/docker.sock"
+ DefaultDockershimRootDir = "/var/lib/dockershim"
+ DefaultRuntimeType = "remote"
+ DefaultEdgedMemoryCapacity = 7852396000
+ DefaultMosquittoImage = "eclipse-mosquitto:1.6.15"
// update PodSandboxImage version when bumping k8s vendor version, consistent with vendor/k8s.io/kubernetes/cmd/kubelet/app/options/container_runtime.go defaultPodSandboxImageVersion
// When this value are updated, also update comments in pkg/apis/componentconfig/edgecore/v1alpha1/types.go
DefaultPodSandboxImage = "kubeedge/pause:3.6"
@@ -69,9 +48,6 @@ const (
DefaultMaximumDeadContainersPerPod = 1
DefaultHostnameOverride = "default-edge-node"
DefaultRegisterNodeNamespace = "default"
- DefaultCNIConfDir = "/etc/cni/net.d"
- DefaultCNIBinDir = "/opt/cni/bin"
- DefaultCNICacheDir = "/var/lib/cni/cache"
DefaultNetworkPluginMTU = 1500
DefaultConcurrentConsumers = 5
DefaultCgroupRoot = ""
diff --git a/common/constants/default_others.go b/common/constants/default_others.go
new file mode 100644
index 000000000..20defe4a7
--- /dev/null
+++ b/common/constants/default_others.go
@@ -0,0 +1,33 @@
+//go:build !windows
+
+package constants
+
+// Resources
+const (
+ // Certificates
+ DefaultConfigDir = "/etc/kubeedge/config/"
+ DefaultCAFile = "/etc/kubeedge/ca/rootCA.crt"
+ DefaultCAKeyFile = "/etc/kubeedge/ca/rootCA.key"
+ DefaultCertFile = "/etc/kubeedge/certs/server.crt"
+ DefaultKeyFile = "/etc/kubeedge/certs/server.key"
+
+ DefaultStreamCAFile = "/etc/kubeedge/ca/streamCA.crt"
+ DefaultStreamCertFile = "/etc/kubeedge/certs/stream.crt"
+ DefaultStreamKeyFile = "/etc/kubeedge/certs/stream.key"
+
+ DefaultMqttCAFile = "/etc/kubeedge/ca/rootCA.crt"
+ DefaultMqttCertFile = "/etc/kubeedge/certs/server.crt"
+ DefaultMqttKeyFile = "/etc/kubeedge/certs/server.key"
+
+ // Bootstrap file, contains token used by edgecore to apply for ca/cert
+ BootstrapFile = "/etc/kubeedge/bootstrap-edgecore.conf"
+
+ // Edged
+ DefaultRootDir = "/var/lib/edged"
+ DefaultRemoteRuntimeEndpoint = "unix:///run/containerd/containerd.sock"
+ DefaultRemoteImageEndpoint = "unix:///run/containerd/containerd.sock"
+ DefaultCNIConfDir = "/etc/cni/net.d"
+ DefaultCNIBinDir = "/opt/cni/bin"
+ DefaultCNICacheDir = "/var/lib/cni/cache"
+ DefaultVolumePluginDir = "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/"
+)
diff --git a/common/constants/default_windows.go b/common/constants/default_windows.go
new file mode 100644
index 000000000..021ed739c
--- /dev/null
+++ b/common/constants/default_windows.go
@@ -0,0 +1,36 @@
+//go:build windows
+
+package constants
+
+// Module name and group name
+const ()
+
+// Resources
+const (
+ // Certificates
+ DefaultConfigDir = "c:\\etc\\kubeedge\\config\\"
+ DefaultCAFile = "c:\\etc\\kubeedge\\ca\\rootCA.crt"
+ DefaultCAKeyFile = "c:\\etc\\kubeedge\\ca\\rootCA.key"
+ DefaultCertFile = "c:\\etc\\kubeedge\\certs\\server.crt"
+ DefaultKeyFile = "c:\\etc\\kubeedge\\certs\\server.key"
+
+ DefaultStreamCAFile = "c:\\etc\\kubeedge\\ca\\streamCA.crt"
+ DefaultStreamCertFile = "c:\\etc\\kubeedge\\certs\\stream.crt"
+ DefaultStreamKeyFile = "c:\\etc\\kubeedge\\certs\\stream.key"
+
+ DefaultMqttCAFile = "c:\\etc\\kubeedge\\ca\\rootCA.crt"
+ DefaultMqttCertFile = "c:\\etc\\kubeedge\\certs\\server.crt"
+ DefaultMqttKeyFile = "c:\\etc\\kubeedge\\certs\\server.key"
+
+ // Bootstrap file, contains token used by edgecore to apply for ca/cert
+ BootstrapFile = "c:\\etc\\kubeedge\\bootstrap-edgecore.conf"
+
+ // Edged
+ DefaultRootDir = "c:\\var\\lib\\edged"
+ DefaultRemoteRuntimeEndpoint = "npipe://./pipe/containerd-containerd"
+ DefaultRemoteImageEndpoint = "npipe://./pipe/containerd-containerd"
+ DefaultCNIConfDir = "c:\\etc\\cni\\net.d"
+ DefaultCNIBinDir = "c:\\opt\\cni\\bin"
+ DefaultCNICacheDir = "c:\\var\\lib\\cni\\cache"
+ DefaultVolumePluginDir = "C:\\usr\\libexec\\kubernetes\\kubelet-plugins\\volume\\exec\\"
+)
diff --git a/edge/cmd/edgecore/app/server.go b/edge/cmd/edgecore/app/server.go
index 0438829f1..e3ad3429e 100644
--- a/edge/cmd/edgecore/app/server.go
+++ b/edge/cmd/edgecore/app/server.go
@@ -176,7 +176,8 @@ func environmentCheck() error {
for _, process := range processes {
processName, err := process.Name()
if err != nil {
- return err
+ // err usually cant be fixed by user, so just skip it instead of return error (we only check named process)
+ continue
}
switch processName {
case "kubelet": // if kubelet is running, return error
diff --git a/edge/pkg/devicetwin/dmiserver/const_others.go b/edge/pkg/devicetwin/dmiserver/const_others.go
new file mode 100644
index 000000000..f06eb0b58
--- /dev/null
+++ b/edge/pkg/devicetwin/dmiserver/const_others.go
@@ -0,0 +1,7 @@
+//go:build !windows
+
+package dmiserver
+
+const (
+ SockPath = "/etc/kubeedge/dmi.sock"
+)
diff --git a/edge/pkg/devicetwin/dmiserver/const_windows.go b/edge/pkg/devicetwin/dmiserver/const_windows.go
new file mode 100644
index 000000000..9f68fd48f
--- /dev/null
+++ b/edge/pkg/devicetwin/dmiserver/const_windows.go
@@ -0,0 +1,7 @@
+//go:build windows
+
+package dmiserver
+
+const (
+ SockPath = "c:\\etc\\kubeedge\\dmi.sock"
+)
diff --git a/edge/pkg/devicetwin/dmiserver/server.go b/edge/pkg/devicetwin/dmiserver/server.go
index a63d20ae8..83eee807f 100644
--- a/edge/pkg/devicetwin/dmiserver/server.go
+++ b/edge/pkg/devicetwin/dmiserver/server.go
@@ -21,7 +21,6 @@ import (
"encoding/json"
"fmt"
"net"
- "os"
"sync"
"time"
@@ -46,9 +45,8 @@ import (
)
const (
- SockPath = "/etc/kubeedge/dmi.sock"
- Limit = 1000
- Burst = 100
+ Limit = 1000
+ Burst = 100
)
type server struct {
@@ -179,22 +177,6 @@ func CreateMessageTwinUpdate(name, valueType, value string) ([]byte, error) {
return msg, err
}
-func initSock(sockPath string) error {
- klog.Infof("init uds socket: %s", sockPath)
- _, err := os.Stat(sockPath)
- if err == nil {
- err = os.Remove(sockPath)
- if err != nil {
- return err
- }
- return nil
- } else if os.IsNotExist(err) {
- return nil
- } else {
- return fmt.Errorf("fail to stat uds socket path")
- }
-}
-
func StartDMIServer(cache *DMICache) {
err := initSock(SockPath)
if err != nil {
diff --git a/edge/pkg/devicetwin/dmiserver/server_others.go b/edge/pkg/devicetwin/dmiserver/server_others.go
new file mode 100644
index 000000000..48f9b3c0a
--- /dev/null
+++ b/edge/pkg/devicetwin/dmiserver/server_others.go
@@ -0,0 +1,26 @@
+//go:build !windows
+
+package dmiserver
+
+import (
+ "fmt"
+ "os"
+
+ "k8s.io/klog/v2"
+)
+
+func initSock(sockPath string) error {
+ klog.Infof("init uds socket: %s", sockPath)
+ _, err := os.Stat(sockPath)
+ if err == nil {
+ err = os.Remove(sockPath)
+ if err != nil {
+ return err
+ }
+ return nil
+ } else if os.IsNotExist(err) {
+ return nil
+ } else {
+ return fmt.Errorf("fail to stat uds socket path")
+ }
+}
diff --git a/edge/pkg/devicetwin/dmiserver/server_windows.go b/edge/pkg/devicetwin/dmiserver/server_windows.go
new file mode 100644
index 000000000..28a398c9c
--- /dev/null
+++ b/edge/pkg/devicetwin/dmiserver/server_windows.go
@@ -0,0 +1,22 @@
+//go:build windows
+
+package dmiserver
+
+import (
+ "fmt"
+ "os"
+
+ "k8s.io/klog/v2"
+)
+
+func initSock(sockPath string) error {
+ klog.Infof("init uds socket: %s", sockPath)
+ err := os.Remove(sockPath)
+ if os.IsNotExist(err) {
+ return nil
+ } else if err != nil {
+ klog.Error(err)
+ return fmt.Errorf("fail to stat uds socket path")
+ }
+ return nil
+}
diff --git a/edge/pkg/edged/config/config.go b/edge/pkg/edged/config/config.go
index 975b34442..52228dbad 100644
--- a/edge/pkg/edged/config/config.go
+++ b/edge/pkg/edged/config/config.go
@@ -184,6 +184,9 @@ func ConvertConfigEdgedFlagToConfigKubeletFlag(in *v1alpha2.TailoredKubeletFlag,
out.RegisterSchedulable = in.RegisterSchedulable
out.KeepTerminatedPodVolumes = in.KeepTerminatedPodVolumes
out.SeccompDefault = in.SeccompDefault
+ out.WindowsPriorityClass = in.WindowsPriorityClass
+ // out.WindowsService may always be false, or kubelet will try to install itself as a windows service.
+ // out.WindowsService = in.WindowsService
// container-runtime-specific options
out.ContainerRuntime = in.ContainerRuntime
diff --git a/pkg/apis/componentconfig/edgecore/v1alpha2/default.go b/pkg/apis/componentconfig/edgecore/v1alpha2/default.go
index 97a761157..8924ebfa5 100644
--- a/pkg/apis/componentconfig/edgecore/v1alpha2/default.go
+++ b/pkg/apis/componentconfig/edgecore/v1alpha2/default.go
@@ -30,14 +30,14 @@ import (
)
// NewDefaultEdgeCoreConfig returns a full EdgeCoreConfig object
-func NewDefaultEdgeCoreConfig() *EdgeCoreConfig {
+func NewDefaultEdgeCoreConfig() (config *EdgeCoreConfig) {
hostnameOverride := util.GetHostname()
localIP, _ := util.GetLocalIP(hostnameOverride)
defaultTailedKubeletConfig := TailoredKubeletConfiguration{}
SetDefaultsKubeletConfiguration(&defaultTailedKubeletConfig)
- return &EdgeCoreConfig{
+ config = &EdgeCoreConfig{
TypeMeta: metav1.TypeMeta{
Kind: Kind,
APIVersion: path.Join(GroupName, APIVersion),
@@ -67,6 +67,7 @@ func NewDefaultEdgeCoreConfig() *EdgeCoreConfig {
NodeLabels: make(map[string]string),
RegisterNode: true,
RegisterSchedulable: true,
+ WindowsPriorityClass: DefaultWindowsPriorityClass,
},
CustomInterfaceName: "",
RegisterNodeNamespace: constants.DefaultRegisterNodeNamespace,
@@ -158,17 +159,18 @@ func NewDefaultEdgeCoreConfig() *EdgeCoreConfig {
},
},
}
+ return
}
// NewMinEdgeCoreConfig returns a common EdgeCoreConfig object
-func NewMinEdgeCoreConfig() *EdgeCoreConfig {
+func NewMinEdgeCoreConfig() (config *EdgeCoreConfig) {
hostnameOverride := util.GetHostname()
localIP, _ := util.GetLocalIP(hostnameOverride)
defaultTailedKubeletConfig := TailoredKubeletConfiguration{}
SetDefaultsKubeletConfiguration(&defaultTailedKubeletConfig)
- return &EdgeCoreConfig{
+ config = &EdgeCoreConfig{
TypeMeta: metav1.TypeMeta{
Kind: Kind,
APIVersion: path.Join(GroupName, APIVersion),
@@ -196,6 +198,7 @@ func NewMinEdgeCoreConfig() *EdgeCoreConfig {
NodeLabels: make(map[string]string),
RegisterNode: true,
RegisterSchedulable: true,
+ WindowsPriorityClass: DefaultWindowsPriorityClass,
},
CustomInterfaceName: "",
RegisterNodeNamespace: constants.DefaultRegisterNodeNamespace,
@@ -231,4 +234,5 @@ func NewMinEdgeCoreConfig() *EdgeCoreConfig {
},
},
}
+ return
}
diff --git a/pkg/apis/componentconfig/edgecore/v1alpha2/default_kubelet_configuration.go b/pkg/apis/componentconfig/edgecore/v1alpha2/default_kubelet_configuration.go
index b80888583..5207d5550 100644
--- a/pkg/apis/componentconfig/edgecore/v1alpha2/default_kubelet_configuration.go
+++ b/pkg/apis/componentconfig/edgecore/v1alpha2/default_kubelet_configuration.go
@@ -1,5 +1,5 @@
/*
-Copyright 2022 The KubeEdge Authors.
+Copyright 2023 The KubeEdge Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -32,18 +32,11 @@ import (
configv1beta1 "k8s.io/kubernetes/pkg/kubelet/apis/config/v1beta1"
"k8s.io/kubernetes/pkg/kubelet/eviction"
"k8s.io/kubernetes/pkg/kubelet/qos"
- kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
utilpointer "k8s.io/utils/pointer"
"github.com/kubeedge/kubeedge/common/constants"
)
-var (
- // TODO: Move these constants to k8s.io/kubelet/config/v1beta1 instead?
- // Refer to [Node Allocatable](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md) doc for more information.
- DefaultNodeAllocatableEnforcement = []string{"pods"}
-)
-
// SetDefaultsKubeletConfiguration sets defaults for tailored kubelet configuration
func SetDefaultsKubeletConfiguration(obj *TailoredKubeletConfiguration) {
obj.SyncFrequency = metav1.Duration{Duration: 1 * time.Minute}
@@ -63,8 +56,6 @@ func SetDefaultsKubeletConfiguration(obj *TailoredKubeletConfiguration) {
obj.ImageGCHighThresholdPercent = utilpointer.Int32Ptr(constants.DefaultImageGCHighThreshold)
obj.ImageGCLowThresholdPercent = utilpointer.Int32Ptr(constants.DefaultImageGCLowThreshold)
obj.VolumeStatsAggPeriod = metav1.Duration{Duration: time.Minute}
- obj.CgroupsPerQOS = utilpointer.BoolPtr(true)
- obj.CgroupDriver = "cgroupfs"
obj.CPUManagerPolicy = "none"
// Keep the same as default NodeStatusUpdateFrequency
obj.CPUManagerReconcilePeriod = metav1.Duration{Duration: 10 * time.Second}
@@ -76,8 +67,6 @@ func SetDefaultsKubeletConfiguration(obj *TailoredKubeletConfiguration) {
obj.MaxPods = 110
// default nil or negative value to -1 (implies node allocatable pid limit)
obj.PodPidsLimit = utilpointer.Int64(-1)
- obj.ResolverConfig = utilpointer.String(kubetypes.ResolvConfDefault)
- obj.CPUCFSQuota = utilpointer.BoolPtr(true)
obj.CPUCFSQuotaPeriod = &metav1.Duration{Duration: 100 * time.Millisecond}
obj.NodeStatusMaxImages = utilpointer.Int32Ptr(0)
obj.MaxOpenFiles = 1000000
@@ -94,7 +83,7 @@ func SetDefaultsKubeletConfiguration(obj *TailoredKubeletConfiguration) {
obj.ContainerLogMaxFiles = utilpointer.Int32Ptr(5)
obj.ConfigMapAndSecretChangeDetectionStrategy = kubeletconfigv1beta1.GetChangeDetectionStrategy
obj.EnforceNodeAllocatable = DefaultNodeAllocatableEnforcement
- obj.VolumePluginDir = configv1beta1.DefaultVolumePluginDir
+ obj.VolumePluginDir = constants.DefaultVolumePluginDir
// Use the Default LoggingConfiguration option
logsapi.SetRecommendedLoggingConfiguration(&obj.Logging)
obj.EnableSystemLogHandler = utilpointer.BoolPtr(true)
@@ -103,4 +92,10 @@ func SetDefaultsKubeletConfiguration(obj *TailoredKubeletConfiguration) {
obj.SeccompDefault = utilpointer.BoolPtr(false)
obj.MemoryThrottlingFactor = utilpointer.Float64Ptr(configv1beta1.DefaultMemoryThrottlingFactor)
obj.RegisterNode = utilpointer.BoolPtr(true)
+
+ obj.EnforceNodeAllocatable = DefaultNodeAllocatableEnforcement
+ obj.CgroupDriver = DefaultCgroupDriver
+ obj.CgroupsPerQOS = utilpointer.Bool(DefaultCgroupsPerQOS)
+ obj.ResolverConfig = utilpointer.String(DefaultResolverConfig)
+ obj.CPUCFSQuota = utilpointer.Bool(DefaultCPUCFSQuota)
}
diff --git a/pkg/apis/componentconfig/edgecore/v1alpha2/default_others.go b/pkg/apis/componentconfig/edgecore/v1alpha2/default_others.go
new file mode 100644
index 000000000..ba7dbb6c0
--- /dev/null
+++ b/pkg/apis/componentconfig/edgecore/v1alpha2/default_others.go
@@ -0,0 +1,25 @@
+//go:build !windows
+
+package v1alpha2
+
+import kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
+
+const (
+ CGroupDriverCGroupFS = "cgroupfs"
+ CGroupDriverSystemd = "systemd"
+
+ // DataBaseDataSource is edge.db
+ DataBaseDataSource = "/var/lib/kubeedge/edgecore.db"
+
+ DefaultCgroupDriver = "cgroupfs"
+ DefaultCgroupsPerQOS = true
+ DefaultResolverConfig = kubetypes.ResolvConfDefault
+ DefaultCPUCFSQuota = true
+ DefaultWindowsPriorityClass = ""
+)
+
+var (
+ // TODO: Move these constants to k8s.io/kubelet/config/v1beta1 instead?
+ // Refer to [Node Allocatable](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md) doc for more information.
+ DefaultNodeAllocatableEnforcement = []string{"pods"}
+)
diff --git a/pkg/apis/componentconfig/edgecore/v1alpha2/default_windows.go b/pkg/apis/componentconfig/edgecore/v1alpha2/default_windows.go
new file mode 100644
index 000000000..4ff62fdef
--- /dev/null
+++ b/pkg/apis/componentconfig/edgecore/v1alpha2/default_windows.go
@@ -0,0 +1,23 @@
+//go:build windows
+
+package v1alpha2
+
+const (
+ CGroupDriverCGroupFS = "-"
+ CGroupDriverSystemd = ""
+
+ // DataBaseDataSource is edge.db
+ DataBaseDataSource = "C:\\var\\lib\\kubeedge\\edgecore.db"
+
+ DefaultCgroupDriver = ""
+ DefaultCgroupsPerQOS = false
+ DefaultResolverConfig = ""
+ DefaultCPUCFSQuota = false
+ DefaultWindowsPriorityClass = "NORMAL_PRIORITY_CLASS"
+)
+
+var (
+ // TODO: Move these constants to k8s.io/kubelet/config/v1beta1 instead?
+ // Refer to [Node Allocatable](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md) doc for more information.
+ DefaultNodeAllocatableEnforcement = []string{}
+)
diff --git a/pkg/apis/componentconfig/edgecore/v1alpha2/types.go b/pkg/apis/componentconfig/edgecore/v1alpha2/types.go
index e82660aed..0628649ad 100644
--- a/pkg/apis/componentconfig/edgecore/v1alpha2/types.go
+++ b/pkg/apis/componentconfig/edgecore/v1alpha2/types.go
@@ -33,17 +33,10 @@ const (
)
const (
- CGroupDriverCGroupFS = "cgroupfs"
- CGroupDriverSystemd = "systemd"
-)
-
-const (
// DataBaseDriverName is sqlite3
DataBaseDriverName = "sqlite3"
// DataBaseAliasName is default
DataBaseAliasName = "default"
- // DataBaseDataSource is edge.db
- DataBaseDataSource = "/var/lib/kubeedge/edgecore.db"
)
type ProtocolName string
diff --git a/pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation.go b/pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation.go
index cda0c581d..76ef74a2e 100644
--- a/pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation.go
+++ b/pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation.go
@@ -22,8 +22,6 @@ import (
"path"
"k8s.io/apimachinery/pkg/util/validation/field"
- "k8s.io/klog/v2"
- "k8s.io/kubernetes/pkg/apis/core/validation"
"github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2"
utilvalidation "github.com/kubeedge/kubeedge/pkg/util/validation"
@@ -57,28 +55,6 @@ func ValidateDataBase(db v1alpha2.DataBase) field.ErrorList {
return allErrs
}
-// ValidateModuleEdged validates `e` and returns an errorList if it is invalid
-func ValidateModuleEdged(e v1alpha2.Edged) field.ErrorList {
- if !e.Enable {
- return field.ErrorList{}
- }
- allErrs := field.ErrorList{}
- messages := validation.ValidateNodeName(e.HostnameOverride, false)
- for _, msg := range messages {
- allErrs = append(allErrs, field.Invalid(field.NewPath("HostnameOverride"), e.HostnameOverride, msg))
- }
- if e.NodeIP == "" {
- klog.Warningf("NodeIP is empty , use default ip which can connect to cloud.")
- }
- switch e.TailoredKubeletConfig.CgroupDriver {
- case v1alpha2.CGroupDriverCGroupFS, v1alpha2.CGroupDriverSystemd:
- default:
- allErrs = append(allErrs, field.Invalid(field.NewPath("CGroupDriver"), e.TailoredKubeletConfig.CgroupDriver,
- "CGroupDriver value error"))
- }
- return allErrs
-}
-
// ValidateModuleEdgeHub validates `h` and returns an errorList if it is invalid
func ValidateModuleEdgeHub(h v1alpha2.EdgeHub) field.ErrorList {
if !h.Enable {
diff --git a/pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation_others.go b/pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation_others.go
new file mode 100644
index 000000000..9c88befe9
--- /dev/null
+++ b/pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation_others.go
@@ -0,0 +1,33 @@
+//go:build !windows
+
+package validation
+
+import (
+ "k8s.io/apimachinery/pkg/util/validation/field"
+ "k8s.io/klog/v2"
+ "k8s.io/kubernetes/pkg/apis/core/validation"
+
+ "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2"
+)
+
+// ValidateModuleEdged validates `e` and returns an errorList if it is invalid
+func ValidateModuleEdged(e v1alpha2.Edged) field.ErrorList {
+ if !e.Enable {
+ return field.ErrorList{}
+ }
+ allErrs := field.ErrorList{}
+ messages := validation.ValidateNodeName(e.HostnameOverride, false)
+ for _, msg := range messages {
+ allErrs = append(allErrs, field.Invalid(field.NewPath("HostnameOverride"), e.HostnameOverride, msg))
+ }
+ if e.NodeIP == "" {
+ klog.Warningf("NodeIP is empty , use default ip which can connect to cloud.")
+ }
+ switch e.TailoredKubeletConfig.CgroupDriver {
+ case v1alpha2.CGroupDriverCGroupFS, v1alpha2.CGroupDriverSystemd:
+ default:
+ allErrs = append(allErrs, field.Invalid(field.NewPath("CGroupDriver"), e.TailoredKubeletConfig.CgroupDriver,
+ "CGroupDriver value error"))
+ }
+ return allErrs
+}
diff --git a/pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation_windows.go b/pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation_windows.go
new file mode 100644
index 000000000..ba5d7dee5
--- /dev/null
+++ b/pkg/apis/componentconfig/edgecore/v1alpha2/validation/validation_windows.go
@@ -0,0 +1,27 @@
+//go:build windows
+
+package validation
+
+import (
+ "k8s.io/apimachinery/pkg/util/validation/field"
+ "k8s.io/klog/v2"
+ "k8s.io/kubernetes/pkg/apis/core/validation"
+
+ "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha2"
+)
+
+// ValidateModuleEdged validates `e` and returns an errorList if it is invalid
+func ValidateModuleEdged(e v1alpha2.Edged) field.ErrorList {
+ if !e.Enable {
+ return field.ErrorList{}
+ }
+ allErrs := field.ErrorList{}
+ messages := validation.ValidateNodeName(e.HostnameOverride, false)
+ for _, msg := range messages {
+ allErrs = append(allErrs, field.Invalid(field.NewPath("HostnameOverride"), e.HostnameOverride, msg))
+ }
+ if e.NodeIP == "" {
+ klog.Warningf("NodeIP is empty , use default ip which can connect to cloud.")
+ }
+ return allErrs
+}