main
2
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
e1bf3fc554 |
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>
|
||
|
|
3d5f56f099 |
chore: initial commit 🚀
E2E / reject-invalid (bad-vlan-tag) (push) Skipped
E2E / reject-invalid (missing-schematic) (push) Skipped
E2E / reject-invalid (nested-cidr-overlap) (push) Skipped
E2E / reject-invalid (node-uses-gateway-addr) (push) Skipped
E2E / reject-invalid (overlapping-cidrs) (push) Skipped
E2E / reject-invalid (partial-bgp) (push) Skipped
E2E / reject-invalid (reserved-node-name) (push) Skipped
E2E / reject-invalid (bad-bgp-asn) (push) Skipped
E2E / reject-invalid (bad-mac-address) (push) Skipped
E2E / reject-invalid (bad-repo-url) (push) Skipped
E2E / reject-invalid (duplicate-gateway-addrs) (push) Skipped
E2E / reject-invalid (duplicate-node-names) (push) Skipped
E2E / reject-invalid (gateway-node-collision) (push) Skipped
E2E / reject-invalid (missing-dns-token) (push) Skipped
E2E / reject-invalid (missing-external-gateway) (push) Skipped
E2E / reject-invalid (missing-known-hosts) (push) Skipped
E2E / reject-invalid (node-addr-outside-cidr) (push) Skipped
E2E / reject-invalid (non-canonical-cidr) (push) Skipped
E2E / reject-invalid (tiny-svc-cidr) (push) Skipped
E2E / reject-invalid (tunnel-without-dns) (push) Skipped
E2E / accept-valid (internal) (push) Skipped
E2E / accept-valid (multi-controller) (push) Skipped
E2E / validator-tests (push) Skipped
E2E / accept-valid (no-webhook) (push) Skipped
E2E / accept-valid (private) (push) Skipped
E2E / accept-valid (public) (push) Skipped
E2E / accept-valid (single-node) (push) Skipped
E2E / accept-valid (direct) (push) Skipped
E2E / accept-valid (selfhosted) (push) Skipped
|