gitea: keep volumeName on data-gitea-0 so the 60Gi apply passes (REN-583, fixes #1116) #1117

Merged
Ghost merged 1 commits from atlas/ren-583-gitea-pvc-volumename into master 2026-10-03 21:30:32 +00:00

What

Add spec.volumeName: pvc-e7c56db2-481d-40cb-b94a-b264b7b4b5be to kubernetes/apps/gitea/pvc.yaml, with a comment on why it must stay.

Why

After #1116 merged, the gitea Kustomization went Ready=False at about 21:28Z:
PersistentVolumeClaim "data-gitea-0" is invalid: spec: Forbidden: spec is immutable after creation except resources.requests .... The diff shows VolumeName: "pvc-e7c5…" -> "".

The live claim's managedFields show kustomize-controller (Apply, 2026-09-23) owning spec.volumeName, because the namespace move pre-created this claim with volumeName (eb23d3ac, #878). #1116 left the field out, so server-side apply tries to remove an owned field, and the API server rejects the change. Neither my lint nor the review compared the manifest with managedFields.

Impact now

The apply fails before it writes anything. The live claim is unchanged (40Gi, bound, gitea-0 Running) and nothing was restarted. The gitea Kustomization applies nothing else until this merges.

Verified

  • kustomize build kubernetes/apps/gitea renders the claim with volumeName and 60Gi. Every field kustomize-controller owns (label, accessModes, storage, storageClassName, volumeMode, volumeName) is in the manifest. All of them equal the live values except resources.requests.storage, which is the one field allowed to change.
  • Linted only. A server-side dry-run needs write access, which atlas-bot does not have.

Gitea volume before resize (21:28Z, kubelet volume stats = statfs of the mount)

size 39.2 GiB, used 36.6 GiB, avail 2.6 GiB.

Revert

Revert this commit, or revert #1116 together with it. Without volumeName the Kustomization fails again. With both reverted, the claim stays at its current size and Flux stops managing it.

🤖 Generated with Claude Code

## What Add `spec.volumeName: pvc-e7c56db2-481d-40cb-b94a-b264b7b4b5be` to `kubernetes/apps/gitea/pvc.yaml`, with a comment on why it must stay. ## Why After #1116 merged, the gitea Kustomization went Ready=False at about 21:28Z: `PersistentVolumeClaim "data-gitea-0" is invalid: spec: Forbidden: spec is immutable after creation except resources.requests ...`. The diff shows `VolumeName: "pvc-e7c5…" -> ""`. The live claim's managedFields show `kustomize-controller` (Apply, 2026-09-23) owning `spec.volumeName`, because the namespace move pre-created this claim with volumeName (eb23d3ac, #878). #1116 left the field out, so server-side apply tries to remove an owned field, and the API server rejects the change. Neither my lint nor the review compared the manifest with managedFields. ## Impact now The apply fails before it writes anything. The live claim is unchanged (40Gi, bound, gitea-0 Running) and nothing was restarted. The gitea Kustomization applies nothing else until this merges. ## Verified - `kustomize build kubernetes/apps/gitea` renders the claim with volumeName and 60Gi. Every field kustomize-controller owns (label, accessModes, storage, storageClassName, volumeMode, volumeName) is in the manifest. All of them equal the live values except `resources.requests.storage`, which is the one field allowed to change. - Linted only. A server-side dry-run needs write access, which atlas-bot does not have. ## Gitea volume before resize (21:28Z, kubelet volume stats = statfs of the mount) size 39.2 GiB, used 36.6 GiB, avail 2.6 GiB. ## Revert Revert this commit, or revert #1116 together with it. Without volumeName the Kustomization fails again. With both reverted, the claim stays at its current size and Flux stops managing it. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Ghost added 1 commit 2026-10-03 21:29:31 +00:00
gitea: keep volumeName on the data-gitea-0 PVC so the 60Gi apply passes (REN-583)
ci/woodpecker/pr/ci-scripts-test Pipeline was successful
ci/woodpecker/pr/pr-review Pipeline was successful
ci/woodpecker/pr/ci-manifests-test Pipeline failed
d2ee7a097c
#1116 left spec.volumeName out of pvc.yaml. kustomize-controller has owned
that field since the namespace move pre-created the claim (eb23d3ac), so
server-side apply tried to clear it and the API server rejected the claim
as an immutable-spec change. The gitea Kustomization is Ready=False and the
claim stays at 40Gi. Pin volumeName to the live value.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ghost approved these changes 2026-10-03 21:30:32 +00:00
Ghost left a comment

Approved on d2ee7a09. Premise: Kustomization gitea Ready=False since 21:28:14Z, error is VolumeName pvc-e7c56db2… -> "" (immutable spec). Live data-gitea-0 managedFields: kustomize-controller (Apply) owns labels/app.kubernetes.io/name, accessModes, resources.requests.storage, storageClassName, volumeMode, volumeName. Rendered pvc.yaml (no transformers in kustomization.yaml) equals live on all of them except storage 40Gi->60Gi. ceph-block allowVolumeExpansion: true, reclaim Retain (git). Revert: plain revert, no data effect.

Approved on d2ee7a09. Premise: Kustomization gitea Ready=False since 21:28:14Z, error is VolumeName pvc-e7c56db2… -> "" (immutable spec). Live data-gitea-0 managedFields: kustomize-controller (Apply) owns labels/app.kubernetes.io/name, accessModes, resources.requests.storage, storageClassName, volumeMode, volumeName. Rendered pvc.yaml (no transformers in kustomization.yaml) equals live on all of them except storage 40Gi->60Gi. ceph-block allowVolumeExpansion: true, reclaim Retain (git). Revert: plain revert, no data effect.
Ghost merged commit 77c8566c5b into master 2026-10-03 21:30:32 +00:00
Sign in to join this conversation.