Compare commits

...

11 Commits

Author SHA1 Message Date
2850fc7cd8 1
All checks were successful
全局K3s部署 / deploy (push) Successful in 5s
2026-05-22 14:34:13 +08:00
df59ebf0b4 1
Some checks failed
全局K3s部署 / deploy (push) Failing after 0s
2026-05-22 14:32:14 +08:00
74a06e9982 1
Some checks failed
全局K3s部署 / deploy (push) Failing after 1s
2026-05-22 14:31:23 +08:00
caf99f962e 1
Some checks failed
全局K3s部署 / deploy (push) Failing after 30s
2026-05-22 14:30:02 +08:00
f11eadb0e8 1
Some checks failed
全局K3s部署 / deploy (push) Failing after 1s
2026-05-22 14:29:01 +08:00
ed87f5a72e 1
Some checks failed
全局K3s部署 / deploy (push) Failing after 1m31s
2026-05-22 14:26:40 +08:00
e00b0be83d 更新common版本 2026-04-29 11:41:20 +08:00
cbf98bf556 common版本更新 2026-04-24 08:57:28 +08:00
qhd
b648ee3d92 fix: 修正用户信息获取失败时的状态码 2026-04-23 18:29:30 +08:00
907980c85c common版本更新 2026-04-22 18:00:32 +08:00
75b8c315db 注释ip替换代码,这个代码会导致服务器环境访问不到下游服务 2026-04-22 17:50:14 +08:00
5 changed files with 60 additions and 26 deletions

View File

@@ -0,0 +1,34 @@
name: 全局K3s部署
on:
push:
branches: [master]
jobs:
deploy:
runs-on: ubuntu-latest
env:
# 从组织级Secrets读取不用在仓库重复配置
K3S_HOST: ${{ secrets.K3S_HOST }}
APP_NAME: ${{ gitea.repo_name }}
steps:
- name: 拉取代码
uses: actions/checkout@v4
- name: SSH部署K3s
run: |
mkdir -p ~/.ssh
# 写入组织配置的SSH私钥
echo "${{ secrets.K3S_SSH_KEY }}" > k3s.pem
chmod 600 k3s.pem
# 调试:验证私钥是否正确写入
echo "私钥文件权限:"
ls -l k3s.pem
echo "私钥头部仅前5行"
head -5 k3s.pem
# 测试连接会输出服务器主机名和kubectl版本
ssh -i k3s.pem -o StrictHostKeyChecking=no -o ConnectTimeout=10 root@${K3S_HOST} "hostname && kubectl version --client"
# 正式执行部署命令
ssh -i k3s.pem -o StrictHostKeyChecking=no root@${K3S_HOST} << CMD
kubectl apply -f /k8s/deploy.yaml
kubectl rollout restart deployment ${APP_NAME}
CMD

View File

@@ -10,7 +10,7 @@ ENV GOTOOLCHAIN=auto
ENV GOPRIVATE=gitea.com/red-future/common
# 配置git使用私有Gitea仓库带Token认证
RUN git config --global url."http://x-token-auth:9b31146aa8c10a7cb4f2e49dcee0934a223be1076289810e1ad98b968066c2bc@116.204.74.41:3000/red-future/common.git".insteadOf "https://gitea.com/red-future/common.git" && \
RUN git config --global url."http://x-token-auth:619679cd366aefea3a50f0622d842a41f2209e08595767bba49c3836ef57d415@116.204.74.41:3000/red-future/common.git".insteadOf "https://gitea.com/red-future/common.git" && \
git config --global credential.helper store
WORKDIR /build

4
go.mod
View File

@@ -3,11 +3,11 @@ module gateway
go 1.26.0
require (
gitea.com/red-future/common v0.0.18
gitea.com/red-future/common v0.0.19
github.com/gogf/gf/v2 v2.10.0
)
//replace gitea.com/red-future/common v0.0.12 => ../common
//replace gitea.com/red-future/common v0.0.19 => ../common
require (
github.com/BurntSushi/toml v1.5.0 // indirect

4
go.sum
View File

@@ -1,7 +1,7 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
gitea.com/red-future/common v0.0.18 h1:RwpnnWmDTCnFtKfmlp9BOnDd4r9eUnx7YT6Zst3VJqY=
gitea.com/red-future/common v0.0.18/go.mod h1:6/nqIucVzmjOyqDTIq71feYBXXFNBy0rFwzaQ0/Ueoo=
gitea.com/red-future/common v0.0.19 h1:9/WrfCFUCeFUYwuhBYF+JOQi5F5xuOy+gVnf2ZvHZu4=
gitea.com/red-future/common v0.0.19/go.mod h1:6/nqIucVzmjOyqDTIq71feYBXXFNBy0rFwzaQ0/Ueoo=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=

42
main.go
View File

@@ -61,25 +61,25 @@ func StartServerProxy() {
}
// 1. 解析 consul 配置地址
consulAddr := g.Cfg().MustGet(r.GetCtx(), "consul.address").String()
consulAddrList := strings.Split(consulAddr, ":")
if len(consulAddrList) < 1 {
g.Log().Error(r.GetCtx(), "consul.address 配置格式错误")
r.Response.WriteJsonExit(map[string]interface{}{
"success": false,
"code": 500,
"message": fmt.Sprintf("consul.address 配置格式错误:%s", consulAddr),
})
return
}
ipStr := instanceAddr
if strings.Contains(instanceAddr, ":") {
ipStr = strings.Split(instanceAddr, ":")[0]
}
// 2. 如果不是本地IP则替换为consul配置的IP
if !utils.IsLocalIP(ipStr) {
instanceAddr = strings.Replace(instanceAddr, ipStr, consulAddrList[0], 1)
}
//consulAddr := g.Cfg().MustGet(r.GetCtx(), "consul.address").String()
//consulAddrList := strings.Split(consulAddr, ":")
//if len(consulAddrList) < 1 {
// g.Log().Error(r.GetCtx(), "consul.address 配置格式错误")
// r.Response.WriteJsonExit(map[string]interface{}{
// "success": false,
// "code": 500,
// "message": fmt.Sprintf("consul.address 配置格式错误:%s", consulAddr),
// })
// return
//}
//ipStr := instanceAddr
//if strings.Contains(instanceAddr, ":") {
// ipStr = strings.Split(instanceAddr, ":")[0]
//}
//// 2. 如果不是本地IP则替换为consul配置的IP
//if !utils.IsLocalIP(ipStr) {
// instanceAddr = strings.Replace(instanceAddr, ipStr, consulAddrList[0], 1)
//}
r.Request.URL.Path = strings.Replace(r.Request.URL.Path, fmt.Sprintf("%s/", serverName), "", 1)
r.MakeBodyRepeatableRead(false)
@@ -92,10 +92,10 @@ func StartServerProxy() {
user, err := utils.GetUserInfo(r.GetCtx())
if err != nil {
g.Log().Errorf(r.GetCtx(), "获取用户信息失败: %v", err)
r.Response.Status = 500
r.Response.Status = 401
r.Response.WriteJsonExit(map[string]interface{}{
"success": false,
"code": 500,
"code": 401,
"message": "获取用户信息失败",
})
return