Compare commits

..
1 Commits
Author SHA1 Message Date
hermes 071978ccf0 chore(security): уточнить комментарий про dependsOn и namespace
Flate / Flate (pull_request) Successful in 28s
Flate / Flate - Filter (pull_request) Successful in 4s
Flate / Flate - Success (pull_request) Canceled after 0s
2026-09-17 20:59:04 +00:00
16 changed files with 5 additions and 234 deletions
-11
View File
@@ -1,11 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: ai
components:
- ../../components/sops
resources:
- ./namespace.yaml
- ./toolhive/ks.yaml
-7
View File
@@ -1,7 +0,0 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: ai
annotations:
kustomize.toolkit.fluxcd.io/prune: disabled
@@ -1,19 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: toolhive-operator
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: toolhive-operator
values:
operator:
replicaCount: 1
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
memory: 512Mi
@@ -1,6 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./ocirepository.yaml
- ./helmrelease.yaml
@@ -1,14 +0,0 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: toolhive-operator
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
# Версия чарта toolhive-operator; теги чартов у stacklok идут без префикса v.
tag: 0.49.0
url: oci://ghcr.io/stacklok/toolhive/toolhive-operator
@@ -1,10 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: toolhive-operator-crds
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: toolhive-operator-crds
@@ -1,6 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./ocirepository.yaml
- ./helmrelease.yaml
@@ -1,14 +0,0 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: toolhive-operator-crds
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
# Версия чарта toolhive-operator-crds; теги чартов у stacklok идут без префикса v.
tag: 0.49.0
url: oci://ghcr.io/stacklok/toolhive/toolhive-operator-crds
-44
View File
@@ -1,44 +0,0 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: toolhive-operator-crds
spec:
interval: 1h
path: ./kubernetes/apps/ai/toolhive/crds
prune: true
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: ai
wait: true
healthChecks:
- apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
name: toolhive-operator-crds
namespace: ai
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: toolhive-operator
spec:
interval: 1h
path: ./kubernetes/apps/ai/toolhive/app
prune: true
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: ai
wait: true
healthChecks:
- apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
name: toolhive-operator
namespace: ai
# CRD-чарт ставится отдельной Kustomization: CRD должны существовать до
# установки оператора (иначе MCPServer/ToolHive-объекты не имеют схемы).
dependsOn:
- name: toolhive-operator-crds
@@ -1,38 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: dragonfly-operator
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: dragonfly-operator
values:
# CRD (dragonflydb.io) идут обычным шаблоном чарта, а не каталогом crds/,
# поэтому обновляются вместе с релизом; keep: true не даёт Helm удалить их
# при удалении релиза (иначе вместе с CRD уехали бы все Dragonfly CR).
crds:
install: true
keep: true
# Метрики оператора отдаются напрямую на :8080, а не через kube-rbac-proxy.
# Prometheus Operator в кластере нет, поэтому ServiceMonitor и дашборд Grafana
# не включаем: без их CRD релиз бы не встал.
rbacProxy:
enabled: false
serviceMonitor:
enabled: false
grafanaDashboard:
enabled: false
manager:
# Дефолт чарта — docker.dragonflydb.io/dragonflydb/operator; берём тот же
# образ из ghcr и фиксируем дайджестом.
image:
repository: ghcr.io/dragonflydb/operator
tag: v1.6.1@sha256:b11411142935f92ed0ec30a5ddeb31680e09ab66beecb827cb0224f1c4238638
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
memory: 256Mi
@@ -1,6 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./ocirepository.yaml
- ./helmrelease.yaml
@@ -1,15 +0,0 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: dragonfly-operator
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
# Версия чарта dragonfly-operator. В самом Chart.yaml version/appVersion
# записаны как v1.6.1, поэтому тег идёт с префиксом v.
tag: v1.6.1
url: oci://ghcr.io/dragonflydb/dragonfly-operator/helm/dragonfly-operator
@@ -1,24 +0,0 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: dragonfly-operator
spec:
interval: 1h
path: ./kubernetes/apps/database/dragonfly-operator/app
prune: true
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: database
# wait + healthCheck: Kustomization считается Ready только когда оператор
# действительно поднялся. На неё будут ссылаться через dependsOn те
# Kustomization, которые создают Dragonfly CR (ns потребителя),
# поэтому без этого dependsOn не гейтил бы ничего.
wait: true
healthChecks:
- apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
name: dragonfly-operator
namespace: database
@@ -1,11 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: database
components:
- ../../components/sops
resources:
- ./namespace.yaml
- ./dragonfly-operator/ks.yaml
-5
View File
@@ -1,5 +0,0 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: database
@@ -19,9 +19,10 @@ spec:
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 адресует Flux-Kustomization, а не приложение: поле namespace необязательно
# и по умолчанию равно ns САМОГО объекта-зависимости (CRD kustomize.toolkit.fluxcd.io),
# а не ns, куда тот раскладывает ресурсы. Пример: ewatkins/apps/default/netbox зависит от
# dragonfly и crunchy-postgres-*, и все три объекта объявлены в flux-system, при том что
# ресурсы уезжают в default/database.
dependsOn:
- name: vault