summaryrefslogtreecommitdiff
path: root/edge
diff options
context:
space:
mode:
authorKubeEdge Bot <48982446+kubeedge-bot@users.noreply.github.com>2023-10-09 10:11:54 +0800
committerGitHub <noreply@github.com>2023-10-09 10:11:54 +0800
commit3a8f9a83b628da65feae543a6017a6dc184f4b5d (patch)
tree107e8b7442014c5375a857736bc7e87549905dac /edge
parentMerge pull request #4904 from ZhengXinwei-F/version (diff)
parentupdate resourcetype pod (diff)
downloadkubeedge-3a8f9a83b628da65feae543a6017a6dc184f4b5d.tar.gz
Merge pull request #4825 from luomengY/modify_mqtt_static
Add the function of supporting static pod on edge nodes.
Diffstat (limited to 'edge')
-rw-r--r--edge/pkg/edged/config/config.go1
-rw-r--r--edge/pkg/edged/edged.go9
-rw-r--r--edge/pkg/edged/kubeclientbridge/typed/core/v1/pod_bridge.go4
-rw-r--r--edge/pkg/metamanager/client/pod.go14
4 files changed, 27 insertions, 1 deletions
diff --git a/edge/pkg/edged/config/config.go b/edge/pkg/edged/config/config.go
index 52228dbad..7d217dbae 100644
--- a/edge/pkg/edged/config/config.go
+++ b/edge/pkg/edged/config/config.go
@@ -33,6 +33,7 @@ func InitConfigure(e *v1alpha2.Edged) {
}
func ConvertEdgedKubeletConfigurationToConfigKubeletConfiguration(in *v1alpha2.TailoredKubeletConfiguration, out *kubeletconfig.KubeletConfiguration, s conversion.Scope) error {
+ out.StaticPodPath = in.StaticPodPath
out.SyncFrequency = in.SyncFrequency
out.Address = in.Address
out.ReadOnlyPort = in.ReadOnlyPort
diff --git a/edge/pkg/edged/edged.go b/edge/pkg/edged/edged.go
index 3ca218682..66e477b72 100644
--- a/edge/pkg/edged/edged.go
+++ b/edge/pkg/edged/edged.go
@@ -170,6 +170,15 @@ func newEdged(enable bool, nodeName, namespace string) (*edged, error) {
KubeletFlags: kubeletFlags,
KubeletConfiguration: kubeletConfig,
}
+
+ if kubeletConfig.StaticPodPath != "" {
+ if err := os.MkdirAll(kubeletConfig.StaticPodPath, os.ModePerm); err != nil {
+ return nil, fmt.Errorf("create %s static pod path failed: %v", kubeletConfig.StaticPodPath, err)
+ }
+ } else {
+ klog.ErrorS(err, "static pod path is nil!")
+ }
+
nodestatus.KubeletVersion = fmt.Sprintf("%s-kubeedge-%s", constants.CurrentSupportK8sVersion, version.Get())
// use kubeletServer to construct the default KubeletDeps
kubeletDeps, err := DefaultKubeletDeps(&kubeletServer, utilfeature.DefaultFeatureGate)
diff --git a/edge/pkg/edged/kubeclientbridge/typed/core/v1/pod_bridge.go b/edge/pkg/edged/kubeclientbridge/typed/core/v1/pod_bridge.go
index 62095753b..821902fd9 100644
--- a/edge/pkg/edged/kubeclientbridge/typed/core/v1/pod_bridge.go
+++ b/edge/pkg/edged/kubeclientbridge/typed/core/v1/pod_bridge.go
@@ -47,3 +47,7 @@ func (c *PodsBridge) Patch(ctx context.Context, name string, pt types.PatchType,
func (c *PodsBridge) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
return c.MetaClient.Pods(c.ns).Delete(name, opts)
}
+
+func (c *PodsBridge) Create(ctx context.Context, pod *corev1.Pod, opts metav1.CreateOptions) (result *corev1.Pod, err error) {
+ return c.MetaClient.Pods(c.ns).Create(pod)
+}
diff --git a/edge/pkg/metamanager/client/pod.go b/edge/pkg/metamanager/client/pod.go
index d6c9218b8..ce0c851b9 100644
--- a/edge/pkg/metamanager/client/pod.go
+++ b/edge/pkg/metamanager/client/pod.go
@@ -52,7 +52,19 @@ func newPods(namespace string, s SendInterface) *pods {
}
func (c *pods) Create(cm *corev1.Pod) (*corev1.Pod, error) {
- return nil, nil
+ resource := fmt.Sprintf("%s/%s/%s", c.namespace, model.ResourceTypePod, cm.Name)
+ podMsg := message.BuildMsg(modules.MetaGroup, "", modules.EdgedModuleName, resource, model.InsertOperation, *cm)
+ resp, err := c.send.SendSync(podMsg)
+ if err != nil {
+ return nil, fmt.Errorf("create pod failed, err: %v", err)
+ }
+
+ content, err := resp.GetContentData()
+ if err != nil {
+ return nil, fmt.Errorf("parse message to pod failed, err: %v", err)
+ }
+
+ return handlePodResp(resource, content)
}
func (c *pods) Update(cm *corev1.Pod) error {