feat(gitea): 准备 1.26.4 suspended 升级
lint / yaml (pull_request) Successful in 14s
lint / yaml (push) Successful in 15s
lint / terraform (push) Successful in 34s
lint / terraform (pull_request) Successful in 33s
lint / ansible (push) Successful in 4m21s
lint / ansible (pull_request) Successful in 5m1s

This commit is contained in:
2026-09-10 05:59:23 +00:00
parent af23195b04
commit bac85b6335
4 changed files with 18 additions and 3 deletions
+1
View File
@@ -28,6 +28,7 @@ What changed in this homelab, when, and why. Newest first.
| Gitea adoption stage | 开始用 Flux 接管关键 `gitea` release:固定现有 chart `12.5.3`,以 `suspend: true` 登记 HelmRelease、source、values ConfigMap 和现有 HTTPRoute,子 Kustomization 保持 `prune: false`;现有 OIDC Secret 继续只引用不覆盖,其尚未进入 OpenBao/ESO 的缺口独立跟踪 | | Gitea adoption stage | 开始用 Flux 接管关键 `gitea` release:固定现有 chart `12.5.3`,以 `suspend: true` 登记 HelmRelease、source、values ConfigMap 和现有 HTTPRoute,子 Kustomization 保持 `prune: false`;现有 OIDC Secret 继续只引用不覆盖,其尚未进入 OpenBao/ESO 的缺口独立跟踪 |
| Gitea adoption activate | 第一阶段合并后 source、子 Kustomization 和 HTTPRoute 均 Ready,Helm release 仍为 revision 14,Gitea Pod 未重建或重启;再次确认固定 chart 对 live 业务资源零差异后移除 `suspend`,允许 Flux 修正 Helm 存储状态并启用 drift detection | | Gitea adoption activate | 第一阶段合并后 source、子 Kustomization 和 HTTPRoute 均 Ready,Helm release 仍为 revision 14,Gitea Pod 未重建或重启;再次确认固定 chart 对 live 业务资源零差异后移除 `suspend`,允许 Flux 修正 Helm 存储状态并启用 drift detection |
| Gitea upgrade plan | 规划两跳升级:chart `12.6.0` + 显式 Gitea `1.26.4`,再到 chart `12.7.0` + 显式 Gitea `1.27.3`;每个 minor 都先以 suspended desired state 合并、停机建立 CNPG/PVC 一致回滚点,再用独立 PR 激活。当前 CNPG 无连续备份、local-path PVC 无 snapshot class,因此禁止无备份直接触发数据库 migration | | Gitea upgrade plan | 规划两跳升级:chart `12.6.0` + 显式 Gitea `1.26.4`,再到 chart `12.7.0` + 显式 Gitea `1.27.3`;每个 minor 都先以 suspended desired state 合并、停机建立 CNPG/PVC 一致回滚点,再用独立 PR 激活。当前 CNPG 无连续备份、local-path PVC 无 snapshot class,因此禁止无备份直接触发数据库 migration |
| Gitea 1.26 preparation | 将第一跳目标写入 Git:chart 固定为 `12.6.0`、rootless 镜像显式固定为 `1.26.4`,同时重新设置 HelmRelease `suspend: true`;该准备 revision 合并后只更新 desired state,不触发 Pod replacement 或数据库 migration |
`Carried forward`: complete the two-stage zero-change `gitea` HelmRelease `Carried forward`: complete the two-stage zero-change `gitea` HelmRelease
adoption, migrate its remaining manual OIDC Secret to OpenBao/ESO, then upgrade adoption, migrate its remaining manual OIDC Secret to OpenBao/ESO, then upgrade
+4
View File
@@ -23,3 +23,7 @@ Gitea 是 Flux GitRepository 的上游。升级或重启期间 Git source 暂时
跨 minor 的执行顺序、停机一致备份和失败恢复步骤见 跨 minor 的执行顺序、停机一致备份和失败恢复步骤见
[`../../docs/gitea-upgrade-plan.md`](../../docs/gitea-upgrade-plan.md)。 [`../../docs/gitea-upgrade-plan.md`](../../docs/gitea-upgrade-plan.md)。
当前 Git desired state 已准备第一跳 chart `12.6.0` / Gitea `1.26.4`,但
HelmRelease 保持 `suspend: true`。合并该准备状态不会运行 migration;必须先按升级
计划取得停机一致备份,再通过只移除 suspend 的独立激活 PR 执行升级。
+10 -1
View File
@@ -11,7 +11,7 @@ spec:
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: gitea-charts name: gitea-charts
version: 12.5.3 version: 12.6.0
driftDetection: driftDetection:
mode: enabled mode: enabled
install: install:
@@ -20,12 +20,21 @@ spec:
retryInterval: 5m retryInterval: 5m
interval: 30m interval: 30m
releaseName: gitea releaseName: gitea
suspend: true
targetNamespace: gitea targetNamespace: gitea
timeout: 15m timeout: 15m
upgrade: upgrade:
strategy: strategy:
name: RetryOnFailure name: RetryOnFailure
retryInterval: 5m retryInterval: 5m
# Keep the patch release explicit because chart 12.6.0 defaults to 1.26.1.
# 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"
valuesFrom: valuesFrom:
- kind: ConfigMap - kind: ConfigMap
name: gitea-values name: gitea-values
+3 -2
View File
@@ -50,8 +50,9 @@ Actions fork PR 审批绕过等安全问题。两个 rootless 镜像标签都已
### 1. 预拉取与 review ### 1. 预拉取与 review
1. 在 `apps/gitea/gitea-values.yaml` 显式设置目标 `image.tag`,同时把 HelmRelease chart 1. 在 HelmRelease 中显式设置目标 `image.tag`,同时把 chart 固定到该阶段目标版本,
固定到该阶段目标版本,并重新执行 Helm/Kustomize render。 并重新执行 Helm/Kustomize render。目标 chart、镜像与 `suspend: true` 必须在同一
HelmRelease 对象内原子提交;不得同时修改会触发 watch 的 values ConfigMap。
2. 在节点预拉取目标 rootless 镜像,避免维护窗口受 WAN 波动影响。 2. 在节点预拉取目标 rootless 镜像,避免维护窗口受 WAN 波动影响。
3. 创建 **保持 `spec.suspend: true`** 的准备 PR;合并并等 Flux 同步。此时 Git 只记录 3. 创建 **保持 `spec.suspend: true`** 的准备 PR;合并并等 Flux 同步。此时 Git 只记录
目标版本,不执行 Helm action。 目标版本,不执行 Helm action。