Files
home-ops/kubernetes/apps/security/external-secrets/ks.yaml
T
hermesandgrachevko 12ad1c040c chore(security): поправить комментарий про dependsOn в ESO (#12)
Одна задача = один 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>
2026-09-17 21:18:22 +00:00

28 lines
1.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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