Одна задача = один MR: правка только комментария, поведение не меняется.
**Что было не так**
Комментарий утверждал, что `dependsOn` работает только внутри своего ns. Это неверно и вводит в заблуждение.
**Как на самом деле**
По CRD-схеме kustomize-controller (`api/v1/dependsOn[].namespace`):
```
namespace:
description: |-
Namespace of the referent, defaults to the namespace of the resource
object that contains the reference.
```
То есть поле опционально и по умолчанию равно namespace **самого объекта Kustomization**, а не namespace, куда тот раскидывает ресурсы. Поэтому «зависимости из другого ns» бывают двух разных видов:
- в `ewatkins/talos-cluster` все app-Kustomization лежат в `flux-system` (`apps/default/netbox/ks.yaml`: `namespace: flux-system`, `targetNamespace: default`), поэтому `dependsOn` на `dragonfly` и `crunchy-postgres-operator-*` пишется без поля `namespace`, хотя рабочие нагрузки уезжают в другие ns;
- в `drag0n141/home-ops` Kustomization лежат в своём target-ns (`apps/ai/toolhive/ks.yaml`: `namespace: &namespace ai`), и там кросс-ns зависимости пишутся явно: `onepassword-connect` с `namespace: external-secrets`, `pocket-id-instance` с `namespace: security`.
**Что у нас**
Наш репозиторий следует второму варианту: `kubernetes/apps/<ns>/kustomization.yaml` задаёт `namespace: <ns>`, то есть app-Kustomization живут в своём ns. Значит зависимости между `ai` и `database` (Dragonfly CR → dragonfly-operator) будут писаться с явным `dependsOn[].namespace`. Комментарий теперь это и описывает.Reviewed-on: #12
Co-authored-by: Hermes Agent <hermes@grachevko.ru>
28 lines
1.0 KiB
YAML
28 lines
1.0 KiB
YAML
---
|
||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||
kind: Kustomization
|
||
metadata:
|
||
name: external-secrets
|
||
spec:
|
||
interval: 1h
|
||
path: ./kubernetes/apps/security/external-secrets/app
|
||
prune: true
|
||
sourceRef:
|
||
kind: GitRepository
|
||
name: flux-system
|
||
namespace: flux-system
|
||
targetNamespace: security
|
||
wait: true
|
||
healthChecks:
|
||
- apiVersion: helm.toolkit.fluxcd.io/v2
|
||
kind: HelmRelease
|
||
name: external-secrets
|
||
namespace: security
|
||
# Оператор ходит в Vault через kubernetes-auth, поэтому ждём готовности Vault.
|
||
# dependsOn адресует Flux-Kustomization в её собственном ns: поле namespace
|
||
# необязательно и по умолчанию равно ns самого объекта-зависимости
|
||
# (CRD kustomize.toolkit.fluxcd.io), а не ns, куда тот раскладывает ресурсы.
|
||
# Обе Kustomization лежат в ns security, поэтому поле не нужно.
|
||
dependsOn:
|
||
- name: vault
|