feat(gitea): 准备 1.27.3 suspended 升级
lint / yaml (pull_request) Successful in 18s
lint / yaml (push) Successful in 17s
lint / terraform (pull_request) Successful in 31s
lint / terraform (push) Successful in 32s
lint / ansible (pull_request) Successful in 3m51s
lint / ansible (push) Successful in 3m34s

This commit is contained in:
2026-09-10 06:56:57 +00:00
parent f9bcde53ab
commit 01cca07f48
4 changed files with 25 additions and 6 deletions
+2
View File
@@ -31,6 +31,8 @@ What changed in this homelab, when, and why. Newest first.
| Gitea 1.26 preparation | 将第一跳目标写入 Git:chart 固定为 `12.6.0`、rootless 镜像显式固定为 `1.26.4`,同时重新设置 HelmRelease `suspend: true`;该准备 revision 合并后只更新 desired state,不触发 Pod replacement 或数据库 migration |
| Gitea 1.26 backup | 预拉取 `1.26.4-rootless` 后,在 HelmRelease suspended 状态将 Gitea scale 到 0;生成并校验 539355-byte CNPG custom dump、2609188-byte PVC tar 和 2848667-byte GPG encrypted bundle,随后恢复旧版 `1.25.5` 并验证内外 API 与 Flux source。按明确决定不上传 OCI,本阶段接受只有节点本地回滚点的风险 |
| Gitea 1.26 activation | 停机一致备份门槛完成后,激活变更只移除 HelmRelease 的 `suspend`;chart `12.6.0`、显式 `1.26.4-rootless` image、values、数据库与 PVC 均保持已 review 的准备状态 |
| Gitea 1.26 result | Flux 以 Helm revision 16 成功完成 chart `12.6.0` / Gitea `1.26.4-rootless` 的 Recreate upgrade 和 migration 323–330;Pod 内/统一域名 API、临时 branch push/delete、Flux source 及 main/smoke 的全部 CI jobs 均通过,Pod 在约 15 分钟采样中保持零重启。Authelia OIDC init 同步成功,浏览器交互式登录未在本会话人工确认 |
| Gitea 1.27 preparation | 预拉取 `1.27.3-rootless` 并将第二跳 desired state 原子设置为 chart `12.7.0`、显式 image `1.27.3` 和 `suspend: true`;合并只暂停并登记目标,不执行 migration,激活前必须从当前 1.26.4 数据建立新的配套回滚点 |
### Incident: Gitea 备份后的恢复命令被 stdin 校验阻塞
+5 -3
View File
@@ -24,6 +24,8 @@ Gitea 是 Flux GitRepository 的上游。升级或重启期间 Git source 暂时
跨 minor 的执行顺序、停机一致备份和失败恢复步骤见
[`../../docs/gitea-upgrade-plan.md`](../../docs/gitea-upgrade-plan.md)。
第一跳 chart `12.6.0` / Gitea `1.26.4` 的停机一致备份已经建立并校验;激活 PR
只移除 HelmRelease 的 `suspend`。本阶段按明确决定只保留节点本地备份,没有上传
OCI 或建立异机副本,因此其恢复冗余低于长期目标。
第一跳 chart `12.6.0` / Gitea `1.26.4` 已完成,migration、API、Git push 和 CI 均
通过。第二跳 desired state 已准备为 chart `12.7.0` / Gitea `1.27.3`,HelmRelease
保持 `suspend: true`;必须先建立新的 1.26.4 停机一致回滚点,再用独立 PR 激活。
第一阶段按明确决定只保留节点本地备份,没有上传 OCI 或建立异机副本,因此其恢复
冗余低于长期目标。
+4 -3
View File
@@ -11,7 +11,7 @@ spec:
sourceRef:
kind: HelmRepository
name: gitea-charts
version: 12.6.0
version: 12.7.0
driftDetection:
mode: enabled
install:
@@ -20,20 +20,21 @@ spec:
retryInterval: 5m
interval: 30m
releaseName: gitea
suspend: true
targetNamespace: gitea
timeout: 15m
upgrade:
strategy:
name: RetryOnFailure
retryInterval: 5m
# Keep the patch release explicit because chart 12.6.0 defaults to 1.26.1.
# Keep the patch release explicit because chart 12.7.0 defaults to 1.27.0.
# This override is in the suspended HelmRelease itself so chart, image and
# suspension are applied atomically; changing the watched values ConfigMap in
# the same revision could otherwise trigger reconciliation first.
values:
image:
rootless: true
tag: "1.26.4"
tag: "1.27.3"
valuesFrom:
- kind: ConfigMap
name: gitea-values
+14
View File
@@ -129,6 +129,20 @@ patch 版本原则上保持数据库结构兼容;本计划的两个步骤都
- 备份后旧版 `1.25.5` 已恢复,Pod 内与统一域名 API、Gitea API 和 Flux Git source
均验证正常。
激活后 Helm revision 16 以 chart `12.6.0` 成功部署
`docker.gitea.com/gitea:1.26.4-rootless`。Migration 323–330 完成;Pod 内和统一域名
API、临时 branch push/delete、Flux source,以及 main/smoke 的 YAML、Ansible、
Terraform CI 均通过。Pod 在约 15 分钟观察期内保持 Running、零重启。Authelia OIDC
配置 init 同步成功,但浏览器交互式登录未在该执行会话中人工确认。
## 1.27.3 阶段准备状态
- 目标 `1.27.3-rootless` 镜像已经预拉取到 k3s 节点;
- Git desired state 固定为 chart `12.7.0` 与显式 image `1.27.3`,并重新设置
`suspend: true`;
- 合并准备状态后必须从已经迁移的 1.26.4 数据重新建立一组数据库/PVC 回滚点,禁止
复用 1.25.5 备份作为 1.27 阶段的直接回滚点。
## 后续但不并入升级
- 将 `gitea-oidc-secret` 等剩余手工 Secret 迁入 OpenBao/ESO;