Compare commits
3
Commits
7b9de279d3
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0243dbfb9c
|
||
|
|
5b33310a44 | ||
|
|
12ad1c040c |
@@ -0,0 +1,11 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: ai
|
||||
|
||||
components:
|
||||
- ../../components/sops
|
||||
|
||||
resources:
|
||||
- ./namespace.yaml
|
||||
- ./toolhive/ks.yaml
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: ai
|
||||
annotations:
|
||||
kustomize.toolkit.fluxcd.io/prune: disabled
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
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
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ./ocirepository.yaml
|
||||
- ./helmrelease.yaml
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
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
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: toolhive-operator-crds
|
||||
spec:
|
||||
interval: 1h
|
||||
chartRef:
|
||||
kind: OCIRepository
|
||||
name: toolhive-operator-crds
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ./ocirepository.yaml
|
||||
- ./helmrelease.yaml
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
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
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
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
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
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
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ./ocirepository.yaml
|
||||
- ./helmrelease.yaml
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
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
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
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
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: database
|
||||
|
||||
components:
|
||||
- ../../components/sops
|
||||
|
||||
resources:
|
||||
- ./namespace.yaml
|
||||
- ./dragonfly-operator/ks.yaml
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: database
|
||||
@@ -19,10 +19,9 @@ spec:
|
||||
name: external-secrets
|
||||
namespace: security
|
||||
# Оператор ходит в Vault через kubernetes-auth, поэтому ждём готовности Vault.
|
||||
# dependsOn адресует Flux-Kustomization, а не приложение: поле namespace необязательно
|
||||
# и по умолчанию равно ns САМОГО объекта-зависимости (CRD kustomize.toolkit.fluxcd.io),
|
||||
# а не ns, куда тот раскладывает ресурсы. Пример: ewatkins/apps/default/netbox зависит от
|
||||
# dragonfly и crunchy-postgres-*, и все три объекта объявлены в flux-system, при том что
|
||||
# ресурсы уезжают в default/database.
|
||||
# dependsOn адресует Flux-Kustomization в её собственном ns: поле namespace
|
||||
# необязательно и по умолчанию равно ns самого объекта-зависимости
|
||||
# (CRD kustomize.toolkit.fluxcd.io), а не ns, куда тот раскладывает ресурсы.
|
||||
# Обе Kustomization лежат в ns security, поэтому поле не нужно.
|
||||
dependsOn:
|
||||
- name: vault
|
||||
|
||||
Reference in New Issue
Block a user