Compare commits
merge into: riotpiao-poimen/homelab:fix/forgejo-storage-60gi-clean
riotpiao-poimen/homelab:main
riotpiao-poimen/homelab:fix/forgejo-storage-60gi-clean
riotpiao-poimen/homelab:fix/forgejo-storage-60gi
riotpiao-poimen/homelab:fix/forgejo-gitea-cpu-limits
riotpiao-poimen/homelab:fix/llm-serving-poimen-netpol
riotpiao-poimen/homelab:chore/park-clef-for-candle
riotpiao-poimen/homelab:feat/k8s-api-public-tunnel
riotpiao-poimen/homelab:feat/key-rotation-crd
riotpiao-poimen/homelab:feat/comfyui-sso
riotpiao-poimen/homelab:chore/authentik-retirement
riotpiao-poimen/homelab:fix/grafana-oidc-secret
riotpiao-poimen/homelab:feat/grafana-gotify-contact
riotpiao-poimen/homelab:feat/grafana-gotify-bridge
riotpiao-poimen/homelab:feat/igotify-token
riotpiao-poimen/homelab:revert/gotify-sso
riotpiao-poimen/homelab:feat/gotify-sso
riotpiao-poimen/homelab:fix/authentik-tunnel-route
riotpiao-poimen/homelab:feat/zitadel-oidc-consumer-wiring
riotpiao-poimen/homelab:integration/merge-56-58-69
riotpiao-poimen/homelab:harness/zitadel-iam-wiring
riotpiao-poimen/homelab:fix/prometheus-retention-size
riotpiao-poimen/homelab:fix/allow-zitadel-chart-repo
riotpiao-poimen/homelab:fix/sops-generator-indent
riotpiao-poimen/homelab:fix/sops-drop-orphan-forgejo-pat
riotpiao-poimen/homelab:chore/remove-azhi-riotpiao-app
riotpiao-poimen/homelab:fix/certmanager-dns01
riotpiao-poimen/homelab:fix/retire-longhorn-disk4
riotpiao-poimen/homelab:feat/azhi-cnpg-test
riotpiao-poimen/homelab:feat/azhi-riotpiao-argocd
riotpiao-poimen/homelab:fix/etcd-defrag-main
riotpiao-poimen/homelab:feat/local-path-backend
riotpiao-poimen/homelab:fix/minio-frozen-image-pin
riotpiao-poimen/homelab:fix/minio-mc-image
riotpiao-poimen/homelab:fix/secrets-placeholders
riotpiao-poimen/homelab:fix/minio-image
riotpiao-poimen/homelab:harness/51-vllm-prefill-scheduling
riotpiao-poimen/homelab:paperless-ai-sops-fix
riotpiao-poimen/homelab:fix/aggressive-cleanup-and-paperless-ai
riotpiao-poimen/homelab:feat/tekton-pipelines-ci
riotpiao-poimen/homelab:fix/longhorn-storage-isolation
riotpiao-poimen/homelab:fix/cnpg-3-replicas
riotpiao-poimen/homelab:fix/org-transfer-urls
riotpiao-poimen/homelab:fix/argocd-repo-url
riotpiao-poimen/homelab:feat/gotify-notifications
riotpiao-poimen/homelab:feat/p3.9-e2e-auth-test
..
pull from: riotpiao-poimen/homelab:fix/forgejo-storage-60gi
riotpiao-poimen/homelab:fix/forgejo-storage-60gi-clean
riotpiao-poimen/homelab:fix/forgejo-storage-60gi
riotpiao-poimen/homelab:main
riotpiao-poimen/homelab:fix/forgejo-gitea-cpu-limits
riotpiao-poimen/homelab:fix/llm-serving-poimen-netpol
riotpiao-poimen/homelab:chore/park-clef-for-candle
riotpiao-poimen/homelab:feat/k8s-api-public-tunnel
riotpiao-poimen/homelab:feat/key-rotation-crd
riotpiao-poimen/homelab:feat/comfyui-sso
riotpiao-poimen/homelab:chore/authentik-retirement
riotpiao-poimen/homelab:fix/grafana-oidc-secret
riotpiao-poimen/homelab:feat/grafana-gotify-contact
riotpiao-poimen/homelab:feat/grafana-gotify-bridge
riotpiao-poimen/homelab:feat/igotify-token
riotpiao-poimen/homelab:revert/gotify-sso
riotpiao-poimen/homelab:feat/gotify-sso
riotpiao-poimen/homelab:fix/authentik-tunnel-route
riotpiao-poimen/homelab:feat/zitadel-oidc-consumer-wiring
riotpiao-poimen/homelab:integration/merge-56-58-69
riotpiao-poimen/homelab:harness/zitadel-iam-wiring
riotpiao-poimen/homelab:fix/prometheus-retention-size
riotpiao-poimen/homelab:fix/allow-zitadel-chart-repo
riotpiao-poimen/homelab:fix/sops-generator-indent
riotpiao-poimen/homelab:fix/sops-drop-orphan-forgejo-pat
riotpiao-poimen/homelab:chore/remove-azhi-riotpiao-app
riotpiao-poimen/homelab:fix/certmanager-dns01
riotpiao-poimen/homelab:fix/retire-longhorn-disk4
riotpiao-poimen/homelab:feat/azhi-cnpg-test
riotpiao-poimen/homelab:feat/azhi-riotpiao-argocd
riotpiao-poimen/homelab:fix/etcd-defrag-main
riotpiao-poimen/homelab:feat/local-path-backend
riotpiao-poimen/homelab:fix/minio-frozen-image-pin
riotpiao-poimen/homelab:fix/minio-mc-image
riotpiao-poimen/homelab:fix/secrets-placeholders
riotpiao-poimen/homelab:fix/minio-image
riotpiao-poimen/homelab:harness/51-vllm-prefill-scheduling
riotpiao-poimen/homelab:paperless-ai-sops-fix
riotpiao-poimen/homelab:fix/aggressive-cleanup-and-paperless-ai
riotpiao-poimen/homelab:feat/tekton-pipelines-ci
riotpiao-poimen/homelab:fix/longhorn-storage-isolation
riotpiao-poimen/homelab:fix/cnpg-3-replicas
riotpiao-poimen/homelab:fix/org-transfer-urls
riotpiao-poimen/homelab:fix/argocd-repo-url
riotpiao-poimen/homelab:feat/gotify-notifications
riotpiao-poimen/homelab:feat/p3.9-e2e-auth-test
2
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
8f9bf6ee8d |
fix(forgejo): raise the shared storage to 60Gi, the registry outgrew 20Gi
The container registry stores blobs on this volume. A single candle-vllm sm_70 image is 14GB, so a 20Gi volume cannot hold one. It filled, and every blob upload failed: Package registry API internal error: 500 write /data/tmp/package-upload/<id>: no space left on device The push client reports that as `received unexpected HTTP status: 500` after retrying every layer, which reads like a network or auth fault. It is neither. Applied live first (20Gi -> 40Gi -> 60Gi) and verified: /data now reports 58.9G total with 39.3G free, and the sm70 image pushed and verified by digest sha256:8533d742dfe99c926f42cf99db33e057acb1aafc4b74b0ac22f697f4a45cba27. This commit reconciles the chart with the live PVC, which is why the Application currently reads OutOfSync. NOTE FOR THE NEXT EXPANSION: Longhorn's admission webhook checks the PHYSICAL free space of the disk holding each replica, not the thin volume size. A request for 100Gi was rejected outright: disk ... does not have sufficient physical space for expansion: physical free space would drop below minimal: left=14596177920 < minimal=49931236556 60Gi fit on the same disk. Raise it in steps, and read the webhook message rather than retrying the same number. |
||
|
|
f81db119f4 |
fix(forgejo): raise Gitea CPU limit, it was throttled 16% of the time
The Actions queue was stalling because Gitea had no CPU, not because the database was slow. Measured on the running pod before this change: nr_throttled 189528 of 1169014 CFS periods (16.2%) throttled_usec 4424898602 us (~74 minutes lost) actual usage 951m against a 1000m limit The user-visible symptom was slow Actions traffic in Gitea's own log: slow POST /api/actions/runner.v1.RunnerService/FetchTask ... 3469.9ms slow GET .../compare/... elapsed 3091.5ms / 3520.8ms / 3811.5ms So runners waited, timed out, and retried, which loaded the saturated process further. The database is exonerated. On the primary, a real action_runner UPDATE measured 2.133ms, pg_stat_activity showed zero lock waits, and no query ran longer than 3 seconds. Raising any database resource would not have helped. Why these numbers: - requests.cpu 200m -> 750m. A request below real usage earns the pod little scheduling weight during contention, which is exactly when it matters. - limits.cpu 1000m -> 3000m. Diff computation is bursty; a 3x ceiling lets a burst finish instead of being chopped into 100ms slices. - requests.memory 512Mi -> 768Mi. Observed usage was 621Mi, above the old request. - limits.memory stays at 2Gi. Observed usage was 621Mi, so memory was never the problem and does not need room. Caution recorded in the file: this pod runs on talos-cp-3, a control-plane node, and 3000m is 25% of its 11950m allocatable CPU. If Gitea sustains near this limit, move the workload off the control plane instead of raising the limit again. ArgoCD owns this file (app `forgejo`, chart gitea 12.7.0, selfHeal true), so this must reach main to take effect. A live patch is reverted within seconds. |