feat(gitops): staged 接管 Gitea Actions Helm release
lint / yaml (push) Successful in 14s
lint / yaml (pull_request) Successful in 17s
lint / terraform (pull_request) Successful in 33s
lint / terraform (push) Successful in 29s
lint / ansible (push) Successful in 6m18s
lint / ansible (pull_request) Successful in 6m13s

This commit is contained in:
2026-09-10 05:01:46 +00:00
parent a9f6663069
commit 745d2cc6c2
7 changed files with 78 additions and 0 deletions
+6
View File
@@ -26,6 +26,12 @@ rootless DinD 尝试,但 live StatefulSet 与本目录 `values.yaml` 都已经
DinD。首次 reconcile 的验收条件是修正 Helm 存储状态,同时 live Pod spec、PVC
identity、runner capacity 和在线状态保持不变。接管稳定后再用独立 PR 升级 chart。
接管分两阶段:第一阶段提交 `suspend: true` 的 HelmRelease、HelmRepository 和由
`values.yaml` 生成的 ConfigMap。Flux 只登记这些对象,不执行 Helm action。合并后
检查 HelmRepository Ready,并用固定 chart 重复比较期望清单与 live StatefulSet;
第二阶段才解除 suspend。失败重试使用 `RetryOnFailure`,不会用 stored rootless
release 做 rollback。
## 历史 review-first bootstrap
这是 Flux 安装前执行过的一次性手动部署流程,保留用于恢复和审计:
+32
View File
@@ -0,0 +1,32 @@
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: gitea-actions
namespace: gitea-actions
spec:
chart:
spec:
chart: actions
interval: 1h
sourceRef:
kind: HelmRepository
name: gitea-charts
version: 0.1.1
driftDetection:
mode: enabled
install:
strategy:
name: RetryOnFailure
retryInterval: 5m
interval: 30m
releaseName: gitea-actions
suspend: true
targetNamespace: gitea-actions
timeout: 10m
upgrade:
strategy:
name: RetryOnFailure
retryInterval: 5m
valuesFrom:
- kind: ConfigMap
name: gitea-actions-values
@@ -0,0 +1,8 @@
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: gitea-charts
namespace: gitea-actions
spec:
interval: 1h
url: https://dl.gitea.com/charts/
+16
View File
@@ -0,0 +1,16 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
generatorOptions:
disableNameSuffixHash: true
labels:
reconcile.fluxcd.io/watch: Enabled
configMapGenerator:
- name: gitea-actions-values
namespace: gitea-actions
files:
- values.yaml=values.yaml
resources:
- namespace.yaml
- external-secret.yaml
- helmrepository.yaml
- helmrelease.yaml