[seaweedfs] Wait for ingress-nginx-system before creating Ingress

Without this, the outer tenant HelmReleases apply both seaweedfs and
ingress in parallel, which in turn creates their inner HelmReleases
(seaweedfs-system and ingress-nginx-system) in parallel too. When
seaweedfs-system tries to create its Ingress before the nginx admission
webhook's Service/endpoint state has finished reconciling on the CNI,
the apiserver's webhook call fails with:

  failed calling webhook "validate.nginx.ingress.kubernetes.io":
  dial tcp ...:443: connect: operation not permitted

and flux rolls back the install. E2E recovers via the "Retry install"
loop but it's flaky and adds minutes to every run.

Adding dependsOn: ingress-nginx-system on the inner seaweedfs HR makes
flux block the install until the ingress chart is Ready, which means
the controller Deployment is Available and its webhook endpoint is
routable before the first Ingress is created.

Guarded by {{- if \$ingress }} so this only kicks in for tenants that
have ingress enabled (i.e. tenant-root in the default topology).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>
This commit is contained in:
Myasnikov Daniil 2026-04-15 18:34:11 +05:00
parent 482d813d01
commit e382968285
No known key found for this signature in database
GPG key ID: FA953A439C637F04

View file

@ -104,6 +104,11 @@ metadata:
labels:
sharding.fluxcd.io/key: tenants
spec:
{{- if $ingress }}
# Ensure the ingress-nginx admission webhook is ready before creating Ingress resources.
dependsOn:
- name: ingress-nginx-system
{{- end }}
chartRef:
kind: ExternalArtifact
name: cozystack-seaweedfs-application-default-seaweedfs-system