feat(flux): каталог repositories и общий источник app-template (#10)
Одна задача = один MR. Здесь только общий каталог Flux-источников и единственное объявление app-template, без добавления сервисов.
**Что сделано**
- `kubernetes/flux/repositories/kustomization.yaml` — корневой каталог источников (`git/`, `helm/`, `oci/` добавляются по мере появления).
- `kubernetes/flux/repositories/oci/kustomization.yaml` — перечень источников в `oci/` (kustomize требует kustomization.yaml внутри каждого каталога, из-за его отсутствия первый прогон Flate падал).
- `kubernetes/flux/repositories/oci/app-template.yaml` — `OCIRepository` `app-template` в ns `flux-system`, `tag: 5.1.0`, `layerSelector.mediaType ... operation: copy`, `url: oci://ghcr.io/bjw-s-labs/helm/app-template` (у bjw-s OCI-путь `/helm/`, а не `/charts/`: kubesearch по имени чарта показывает `/charts/app-template` и на этом легко собрать нерабочий источник).
- `kubernetes/flux/cluster/repositories.yaml` — Kustomization `repositories` (path `./kubernetes/flux/repositories`).
**Про размещение**
`kubernetes/flux/cluster` — это sync-каталог НАШЕГО репозитория (FluxInstance, `.values.instance.sync.path`), поэтому новый Kustomization подхватывается автоматически и bootstrap править не нужно. У ewatkins аналог называется `kubernetes/flux/config`; оттуда взят только layout `repositories/{git,helm,oci}` и форма файла источника.
**Как пользуются**
Версия чарта теперь живёт ровно в одном файле. HelmRelease любого приложения, в любом ns, ссылается на источник без версии:
```yaml
spec:
chartRef:
kind: OCIRepository
name: app-template
namespace: flux-system
```
**Проверено локально**
- `kubectl kustomize kubernetes/flux/repositories` собирается.
- Flate на предыдущей ревизии: 1 failed (отсутствующий `oci/kustomization.yaml`), после фикса — перезапущен.Reviewed-on: #10
Co-authored-by: Hermes Agent <hermes@grachevko.ru>
This commit was merged in pull request #10.
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
|
||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: repositories
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
interval: 1h
|
||||||
|
path: ./kubernetes/flux/repositories
|
||||||
|
prune: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: flux-system
|
||||||
|
namespace: flux-system
|
||||||
|
wait: false
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ./oci
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://datreeio.github.io/CRDs-catalog/source.toolkit.fluxcd.io/ocirepository_v1.json
|
||||||
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
|
kind: OCIRepository
|
||||||
|
metadata:
|
||||||
|
name: app-template
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
interval: 15m
|
||||||
|
layerSelector:
|
||||||
|
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
|
||||||
|
operation: copy
|
||||||
|
ref:
|
||||||
|
tag: 5.1.0
|
||||||
|
url: oci://ghcr.io/bjw-s-labs/helm/app-template
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ./app-template.yaml
|
||||||
Reference in New Issue
Block a user