diff --git a/CHANGELOG.md b/CHANGELOG.md index c27cf7d..6d22642 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 校验阻塞 diff --git a/apps/gitea/README.md b/apps/gitea/README.md index a1c6348..6c7fa6f 100644 --- a/apps/gitea/README.md +++ b/apps/gitea/README.md @@ -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 或建立异机副本,因此其恢复 +冗余低于长期目标。 diff --git a/apps/gitea/helmrelease.yaml b/apps/gitea/helmrelease.yaml index 48d5d1e..a72a69c 100644 --- a/apps/gitea/helmrelease.yaml +++ b/apps/gitea/helmrelease.yaml @@ -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 diff --git a/docs/gitea-upgrade-plan.md b/docs/gitea-upgrade-plan.md index 2a0a62c..faa9ea9 100644 --- a/docs/gitea-upgrade-plan.md +++ b/docs/gitea-upgrade-plan.md @@ -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;