У меня есть следующая структура:
├───base
│ └───redis
│ kustomization.yaml
│ release.yaml
│
├───components
│ └───target-namespace
│ kustomization.yaml
│
└───prod
└───redis
kustomization.yaml
Оверлей Redis выглядит следующим образом:
kind: Kustomization
namespace: flux-system
resources:
- ../../base/redis
components:
- ../base/components/target-namespace
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component
patches:
- patch: |-
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: not-used
spec:
targetNamespace: default
target:
kind: HelmRelease
When I run kustomize
build .\prod\redis\
локально это работает! Но когда я отправляю его на FluxCD и ожидаю, что он заработает, я получаю следующую ошибку:
/comComponents/target-namespace — это каталог»: ожидаемый вид! = «Компонент»
Кто-нибудь сталкивается с этой проблемой?

Согласно официальной документации FluxCD 1
.spec.components— необязательный список, используемый для указания компонентов настройки. Это позволяет использовать многократно используемые части логики конфигурации, которые можно включать из нескольких наложений.
Хотя вы не предоставили определение CRD FluxCD Kustomize в своем вопросе, я бы сказал, что ваша проблема заключается в пути, по которому вы ссылаетесь на целевой компонент.
Я пытаюсь сказать, что любой путь, который вы указываете в своем components, относится к kustomization.yaml.
По сути, это означает, что в вашем prod/redis/kustomization.yaml вам нужно будет изменить components на следующее, чтобы оно заработало:
kind: Kustomization
namespace: flux-system
resources:
- ../../base/redis
components:
- ../../base/components/target-namespace # <- change this
Опять же, любой путь, который вы указываете в своем components, относится к kustomization.yaml и должен быть доступен так же, как и обычная команда cd.
спасибо большое, Мейсам!! Ты меня спас, я думал, что это связано с дорогой...