删除k8s-agent的NAT相关代码

This commit is contained in:
panshuxiao
2025-06-17 13:15:06 +08:00
repo.diff.parent 72a526c65a
repo.diff.commit f69aaa099d

repo.diff.view_file

@@ -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")
}
}
}
}