2b382e15790dc071054d01381be3e7464bb1418b
yaml / yaml (pull_request) Successful in 31s
MetricsQL 的 increase() 把新序列首个样本视为从 0 增长:#173 合并后 exporter 首次被抓取,laptop 上 2026-09-25 搭建期累计的 9 次归档失败被当成刚发生, 触发 SharedPostgresWalArchiveFailing。归档本身正常(切换后 .partial 已归档)。 归档失败、死锁、checkpoint 三条改为与 offset 相减:新序列返回空, 计数器重置得负值也不告警。promtool 按 Prometheus 语义执行,测不出这一差异, 新表达式已在 VictoriaMetrics 现网数据上核对为空;补充新序列与重置回归场景。 Co-Authored-By: Claude Opus 5.5 <[email protected]>
homelab-infra
Infrastructure and service configuration for the homelab. Git is the source of intent; the live estate is being adopted gradually, so a file being present does not yet imply that Flux or CI owns the corresponding resource.
Layout
| directory | purpose |
|---|---|
clusters/homelab/ |
Flux composition and cluster-specific reconciliation entrypoint |
platform/ |
cluster-wide controllers, ingress, storage and observability |
apps/ |
user-facing and supporting applications |
infrastructure/ |
Proxmox, local hosts/VMs, identity, secrets, Cloudflare and OCI |
archive/ |
retired implementations retained for operational history |
docs/ |
architecture decisions, migration plans and runbooks |
Each component remains independently deployable. There is no shared root package or Terraform root, and service-specific Terraform states must remain isolated.
Safety
- Treat the homelab as household production.
- Run Terraform plan and Ansible check/diff before mutation.
- Existing resources require a zero-change adoption plan before CI may apply.
- Never commit Terraform plans/states, live Kubernetes Secrets or plaintext keys.
- Kubernetes will be reconciled by Flux; Backstage is a portal, not a deployer.
- Recovery of PVE, OpenBao and Git must not depend on k3s being healthy.
See the redesign record for the target architecture and phased migration.
Languages
Python
47%
HCL
22.4%
Jinja
20.1%
Go
4.1%
Shell
4%
Other
2.4%