This commit is contained in:
1 parent
ab37baa6e4
commit
15cfa078bf
6 files changed
+4
-47
No files matched your search
@@ -9,7 +9,7 @@
|
||||
| 开发 | `platform-dev/dev` | 18080 | `demo-test.5dev.cn` | Supervisor 管理 `go run .` |
|
||||
| 正式 | `platform-release/release` | 28080 | `demo.5dev.cn` | Supervisor 管理已发布的二进制 |
|
||||
|
||||
两个环境都按项目共享容器,不再为 Demo 单独保留运行 Deployment。正式端口等于开发端口加 10000;开发范围 18000–18999,正式范围 28000–28999。Service/Ingress 仍归各项目自身;正式入口配置在 `config/prod/`,选择共享 release 并转发到 28080。
|
||||
两个环境都按项目共享容器,不再为 Demo 单独保留运行 Deployment。正式端口等于开发端口加 10000;开发范围 18000–18999,正式范围 28000–28999。Service 仍归项目自身;`config/prod/` 选择共享 release 并转发到 28080。开发与正式域名、路由在 Higress Console 管理,应用配置不再带 Ingress YAML。
|
||||
|
||||
`GET /` 返回 `hello world` 和换行;未知路径 404,不支持的方法 405,`HEAD /` 无响应体。程序从 `PORT` 读取监听端口。入口不叠加平台登录,鉴权由项目自行实现。
|
||||
|
||||
@@ -27,8 +27,9 @@ kubectl exec -n platform-release deployment/release -c release -- supervisorctl
|
||||
|
||||
- `.gitea/workflows/ci.yaml`:推送 main 或手动触发,固定提交清洁检出,运行格式检查、`go test`、`go vet` 和编译;不发布生产。
|
||||
- `.gitea/workflows/release.yaml`:手动选择 Git ref 和 `operation=release`,构建版本化二进制,不再为项目推送运行镜像。
|
||||
- `config/prod/release.json` 不再保存域名,仅保留项目、端口和预期健康响应。历史记录的 `host` 不重写,读取时忽略。公网域名在网关后台管理;独立验收使用 `python3 service/infra/higress/scripts/state.py check-route demo --project-config service/project/demo/config/prod/release.json`,不由公网结果决定业务回滚。
|
||||
- 发布配置在 `config/prod/release.json`,流水线校验项目名、开发/正式端口对应关系与当前开发配置,并拒绝与其他已发布项目冲突的正式端口。
|
||||
- 候选二进制先在临时 Job 中使用实际 release 基础镜像运行并验证 HTTP,再原子切换该项目的 `current`,仅重启其 Supervisor 进程,验证内部 HTTP 与正式 HTTPS。
|
||||
- 候选二进制先在临时 Job 中使用实际 release 基础镜像运行并验证 HTTP,再原子切换该项目的 `current`,仅重启其 Supervisor 进程,验证正式进程的内部 HTTP;公网检查独立执行。
|
||||
- `operation=rollback` 配合 `target_revision=<完整40位提交>`,只能回退到曾通过验证的二进制版本。复用校验过的产物,不重新编译。失败发布会尝试恢复之前的项目版本,并保留失败记录。
|
||||
- 二进制归档为 `/dm/service/platform/release/artifacts/demo/<commit>/app`、`app.sha256`、`release.json`;正式运行副本为 `/dm/runtime/platform/release/programs/demo/versions/<commit>/`,`current` 指向选定版本。它们不进入源码 Git。
|
||||
- 2026-10-09 切换前的旧项目镜像仍保留在 `images/`,仅用于历史恢复。新流水线的回退目标是新二进制发行,不把旧镜像记录冒充新发行。
|
||||
@@ -41,6 +42,6 @@ kubectl exec -n platform-release deployment/release -c release -- supervisorctl
|
||||
|
||||
构建 Pod 不挂 Kubernetes 令牌和正式运行目录;部署 Pod 可以写共享程序目录并 exec 到共享 release,因此是可信平台发布权限,而不是项目间安全隔离。release 不挂源码、开发缓存、集群令牌或宿主机 socket,程序目录只读;整个 release Pod 重启影响其中所有项目。
|
||||
|
||||
新增项目只需自己的源码、工作流、端口/健康检查配置及 Service/Ingress,不增加项目运行 Deployment。首次新增入口仍需经过平台授权部署,发布流水线本身不修改集群入口。
|
||||
新增项目只需自己的源码、工作流、端口/健康检查配置及 Service,不增加项目运行 Deployment;域名与路由在网关后台创建。首次新增入口仍需经过平台授权部署,发布流水线本身不修改集群入口。
|
||||
|
||||
2026-10-09 已实测共享运行方案:Actions #8 的 CI 与 #9 的首次二进制发布均通过,正式域名在原独立 Demo Pod 停止后仍返回 `hello world`;运行程序位于共享 release 的 28080 端口,dev 保持原样。各次后续发布与回退结果以 Actions 和对应发行记录为准。
|
||||
@@ -1,20 +0,0 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: demo-dev
|
||||
namespace: platform-dev
|
||||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: web
|
||||
spec:
|
||||
ingressClassName: traefik
|
||||
rules:
|
||||
- host: demo-test.5dev.cn
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: demo-dev
|
||||
port:
|
||||
name: http
|
||||
@@ -2,4 +2,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- service.yaml
|
||||
- ingress.yaml
|
||||
@@ -1,21 +0,0 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: demo
|
||||
namespace: platform-release
|
||||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: web
|
||||
traefik.ingress.kubernetes.io/router.priority: '100'
|
||||
spec:
|
||||
ingressClassName: traefik
|
||||
rules:
|
||||
- host: demo.5dev.cn
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: demo
|
||||
port:
|
||||
name: http
|
||||
@@ -2,4 +2,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- service.yaml
|
||||
- ingress.yaml
|
||||
@@ -2,6 +2,5 @@
|
||||
"project": "demo",
|
||||
"development_port": 18080,
|
||||
"production_port": 28080,
|
||||
"host": "demo.5dev.cn",
|
||||
"expected_body": "hello world\n"
|
||||
}
|
||||
Reference in new issue
Block a user