From f69aaa099d8f9129c80ff44b27ebfc76b8e9cd7f Mon Sep 17 00:00:00 2001 From: panshuxiao Date: Tue, 17 Jun 2025 13:15:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4k8s-agent=E7=9A=84NAT?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/devcontainer/k8s_agent.go | 92 +----------------------------- 1 file changed, 1 insertion(+), 91 deletions(-) diff --git a/services/devcontainer/k8s_agent.go b/services/devcontainer/k8s_agent.go index dbf2f22fb0..37cb9c1638 100644 --- a/services/devcontainer/k8s_agent.go +++ b/services/devcontainer/k8s_agent.go @@ -16,7 +16,6 @@ import ( "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/services/devcontainer/errors" - "code.gitea.io/gitea/services/devstar_cloud_provider" networkingv1 "k8s.io/api/networking/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -152,20 +151,6 @@ func AssignDevcontainerDeletion2K8sOperator(ctx *context.Context, devcontainersL for _, devcontainer := range *devcontainersList { opts.Name = devcontainer.Name _ = devcontainer_k8s_agent_module.DeleteDevcontainer(ctx, client, opts) - - // 删除SSH端口的NAT规则 - devcontainerNatRuleDescription := setting.DEVCONTAINER_CLOUD_NAT_RULE_DESCRIPTION_PREFIX + devcontainer.Name - err := devstar_cloud_provider.DeleteNATRulePort(devcontainerNatRuleDescription) - if err != nil { - log.Warn("[Cloud NAT DELETION Error]: " + err.Error()) - } - - // 删除ttyd端口的NAT规则 - ttydNatRuleDescription := setting.DEVCONTAINER_CLOUD_NAT_RULE_DESCRIPTION_PREFIX + devcontainer.Name + "-ttyd" - err = devstar_cloud_provider.DeleteNATRulePort(ttydNatRuleDescription) - if err != nil { - log.Warn("[Cloud ttyd NAT DELETION Error]: " + err.Error()) - } } return nil } @@ -312,9 +297,6 @@ func AssignDevcontainerCreation2K8sOperator(ctx *context.Context, newDevContaine log.Info("AssignDevcontainerCreation2K8sOperator: DevcontainerApp created successfully - Name: %s", devcontainerInCluster.Name) - // // 3. 将分配的 NodePort Service 写回 newDevcontainer,供写入数据库进行下一步操作 - // newDevContainer.DevcontainerPort = devcontainerInCluster.Status.NodePortAssigned - // 3. 处理 NodePort - 检查是否为0(尚未分配) nodePort := devcontainerInCluster.Status.NodePortAssigned @@ -342,44 +324,6 @@ func AssignDevcontainerCreation2K8sOperator(ctx *context.Context, newDevContaine newDevContainer.DevcontainerPort = nodePort log.Info("DevContainer created in cluster - Name: %s, NodePort: %d", devcontainerInCluster.Name, nodePort) - - // 创建NAT端口映射 - 使用统一的描述格式 - devcontainerNatRuleDescription := setting.DEVCONTAINER_CLOUD_NAT_RULE_DESCRIPTION_PREFIX + newDevContainer.Name - privatePort := uint64(nodePort) - publicPort := privatePort // 使用相同的端口号 - - log.Info("AssignDevcontainerCreation2K8sOperator: Creating NAT port mapping: private=%d, public=%d, desc=%s", - privatePort, publicPort, devcontainerNatRuleDescription) - - err = devstar_cloud_provider.CreateNATRulePort(privatePort, publicPort, devcontainerNatRuleDescription) - if err != nil { - log.Error("AssignDevcontainerCreation2K8sOperator: Failed to create NAT port mapping: %v", err) - // 记录错误但不中断流程 - } else { - log.Info("AssignDevcontainerCreation2K8sOperator: NAT port mapping created successfully") - } - - // 为ttyd端口创建NAT映射 - 查找extraPorts中的ttyd端口 - for _, portInfo := range devcontainerInCluster.Status.ExtraPortsAssigned { - if portInfo.Name == "ttyd" || strings.Contains(portInfo.Name, "ttyd") || - portInfo.Name == "port-7681" || portInfo.ContainerPort == 7681 { - // 找到ttyd端口,创建NAT映射 - ttydPrivatePort := uint64(portInfo.NodePort) - ttydPublicPort := ttydPrivatePort - ttydNatRuleDescription := setting.DEVCONTAINER_CLOUD_NAT_RULE_DESCRIPTION_PREFIX + newDevContainer.Name + "-ttyd" - - log.Info("AssignDevcontainerCreation2K8sOperator: Creating NAT port mapping for ttyd: private=%d, public=%d, desc=%s", - ttydPrivatePort, ttydPublicPort, ttydNatRuleDescription) - - err = devstar_cloud_provider.CreateNATRulePort(ttydPrivatePort, ttydPublicPort, ttydNatRuleDescription) - if err != nil { - log.Error("AssignDevcontainerCreation2K8sOperator: Failed to create NAT port mapping for ttyd: %v", err) - } else { - log.Info("AssignDevcontainerCreation2K8sOperator: NAT port mapping for ttyd created successfully") - } - break - } - } } log.Info("DevContainer created in cluster - Name: %s, NodePort: %d", @@ -547,45 +491,11 @@ func updateNodePortAsync(containerName string, namespace string, userId, repoId // 获取到正确的端口,更新数据库 realNodePort := devcontainer.Status.NodePortAssigned - // 创建NAT端口映射 - 使用统一的描述格式 - devcontainerNatRuleDescription := setting.DEVCONTAINER_CLOUD_NAT_RULE_DESCRIPTION_PREFIX + containerName - privatePort := uint64(realNodePort) - publicPort := privatePort // 使用相同的端口号 - - log.Info("updateNodePortAsync: Creating NAT port mapping: private=%d, public=%d, desc=%s", - privatePort, publicPort, devcontainerNatRuleDescription) - - err = devstar_cloud_provider.CreateNATRulePort(privatePort, publicPort, devcontainerNatRuleDescription) - if err != nil { - log.Error("updateNodePortAsync: Failed to create NAT port mapping: %v", err) - // 记录错误但继续更新数据库 - } else { - log.Info("updateNodePortAsync: NAT port mapping created successfully") - } - - // 记录 ttyd 端口信息到日志并创建NAT映射 + // 记录 ttyd 端口信息到日志 if len(devcontainer.Status.ExtraPortsAssigned) > 0 { for _, portInfo := range devcontainer.Status.ExtraPortsAssigned { log.Info("Found extra port for %s: name=%s, nodePort=%d, containerPort=%d", containerName, portInfo.Name, portInfo.NodePort, portInfo.ContainerPort) - - // 为ttyd端口创建NAT映射 - if portInfo.Name == "ttyd" || strings.Contains(portInfo.Name, "ttyd") || - portInfo.Name == "port-7681" || portInfo.ContainerPort == 7681 { - ttydPrivatePort := uint64(portInfo.NodePort) - ttydPublicPort := ttydPrivatePort - ttydNatRuleDescription := setting.DEVCONTAINER_CLOUD_NAT_RULE_DESCRIPTION_PREFIX + containerName + "-ttyd" - - log.Info("updateNodePortAsync: Creating NAT port mapping for ttyd: private=%d, public=%d, desc=%s", - ttydPrivatePort, ttydPublicPort, ttydNatRuleDescription) - - err := devstar_cloud_provider.CreateNATRulePort(ttydPrivatePort, ttydPublicPort, ttydNatRuleDescription) - if err != nil { - log.Error("updateNodePortAsync: Failed to create NAT port mapping for ttyd: %v", err) - } else { - log.Info("updateNodePortAsync: NAT port mapping for ttyd created successfully") - } - } } }