From dad469501fc537acb0ba2c817e170f018b0d32d0 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Thu, 17 Sep 2026 20:27:59 +0000 Subject: [PATCH] =?UTF-8?q?feat(ai):=20toolhive-operator=20=D0=B8=20=D0=B5?= =?UTF-8?q?=D0=B3=D0=BE=20CRD=20=D0=B2=20ns=20ai?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kubernetes/apps/ai/kustomization.yaml | 11 +++++ kubernetes/apps/ai/namespace.yaml | 7 +++ .../apps/ai/toolhive/app/helmrelease.yaml | 19 ++++++++ .../apps/ai/toolhive/app/kustomization.yaml | 6 +++ .../apps/ai/toolhive/app/ocirepository.yaml | 14 ++++++ .../apps/ai/toolhive/crds/helmrelease.yaml | 10 +++++ .../apps/ai/toolhive/crds/kustomization.yaml | 6 +++ .../apps/ai/toolhive/crds/ocirepository.yaml | 14 ++++++ kubernetes/apps/ai/toolhive/ks.yaml | 44 +++++++++++++++++++ 9 files changed, 131 insertions(+) create mode 100644 kubernetes/apps/ai/kustomization.yaml create mode 100644 kubernetes/apps/ai/namespace.yaml create mode 100644 kubernetes/apps/ai/toolhive/app/helmrelease.yaml create mode 100644 kubernetes/apps/ai/toolhive/app/kustomization.yaml create mode 100644 kubernetes/apps/ai/toolhive/app/ocirepository.yaml create mode 100644 kubernetes/apps/ai/toolhive/crds/helmrelease.yaml create mode 100644 kubernetes/apps/ai/toolhive/crds/kustomization.yaml create mode 100644 kubernetes/apps/ai/toolhive/crds/ocirepository.yaml create mode 100644 kubernetes/apps/ai/toolhive/ks.yaml diff --git a/kubernetes/apps/ai/kustomization.yaml b/kubernetes/apps/ai/kustomization.yaml new file mode 100644 index 0000000..2894bf3 --- /dev/null +++ b/kubernetes/apps/ai/kustomization.yaml @@ -0,0 +1,11 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: ai + +components: + - ../../components/sops + +resources: + - ./namespace.yaml + - ./toolhive/ks.yaml diff --git a/kubernetes/apps/ai/namespace.yaml b/kubernetes/apps/ai/namespace.yaml new file mode 100644 index 0000000..74a99e4 --- /dev/null +++ b/kubernetes/apps/ai/namespace.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: ai + annotations: + kustomize.toolkit.fluxcd.io/prune: disabled diff --git a/kubernetes/apps/ai/toolhive/app/helmrelease.yaml b/kubernetes/apps/ai/toolhive/app/helmrelease.yaml new file mode 100644 index 0000000..bd892dc --- /dev/null +++ b/kubernetes/apps/ai/toolhive/app/helmrelease.yaml @@ -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 diff --git a/kubernetes/apps/ai/toolhive/app/kustomization.yaml b/kubernetes/apps/ai/toolhive/app/kustomization.yaml new file mode 100644 index 0000000..10bfeb9 --- /dev/null +++ b/kubernetes/apps/ai/toolhive/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./ocirepository.yaml + - ./helmrelease.yaml diff --git a/kubernetes/apps/ai/toolhive/app/ocirepository.yaml b/kubernetes/apps/ai/toolhive/app/ocirepository.yaml new file mode 100644 index 0000000..278766c --- /dev/null +++ b/kubernetes/apps/ai/toolhive/app/ocirepository.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 diff --git a/kubernetes/apps/ai/toolhive/crds/helmrelease.yaml b/kubernetes/apps/ai/toolhive/crds/helmrelease.yaml new file mode 100644 index 0000000..d4df81e --- /dev/null +++ b/kubernetes/apps/ai/toolhive/crds/helmrelease.yaml @@ -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 diff --git a/kubernetes/apps/ai/toolhive/crds/kustomization.yaml b/kubernetes/apps/ai/toolhive/crds/kustomization.yaml new file mode 100644 index 0000000..10bfeb9 --- /dev/null +++ b/kubernetes/apps/ai/toolhive/crds/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./ocirepository.yaml + - ./helmrelease.yaml diff --git a/kubernetes/apps/ai/toolhive/crds/ocirepository.yaml b/kubernetes/apps/ai/toolhive/crds/ocirepository.yaml new file mode 100644 index 0000000..a2e85e0 --- /dev/null +++ b/kubernetes/apps/ai/toolhive/crds/ocirepository.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 diff --git a/kubernetes/apps/ai/toolhive/ks.yaml b/kubernetes/apps/ai/toolhive/ks.yaml new file mode 100644 index 0000000..0296a8f --- /dev/null +++ b/kubernetes/apps/ai/toolhive/ks.yaml @@ -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 -- 2.54.0