Flux CD не работает с Customize Kind: Component

У меня есть следующая структура:

├───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 — это каталог»: ожидаемый вид! = «Компонент»

Кто-нибудь сталкивается с этой проблемой?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
0
99
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно официальной документации 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.

спасибо большое, Мейсам!! Ты меня спас, я думал, что это связано с дорогой...

Quies 25.04.2024 09:44

Другие вопросы по теме