48 lines
1.8 KiB
Markdown
48 lines
1.8 KiB
Markdown
# toolhive
|
|
|
|
Installs the [ToolHive](https://docs.stacklok.com/toolhive) Kubernetes operator
|
|
via Argo CD, so MCP servers can be declared as `MCPServer` custom resources
|
|
(see the `mcp-services` app). Runs in the `toolhive-system` namespace.
|
|
|
|
## What it deploys
|
|
|
|
A multi-source Argo CD Application renders two OCI Helm charts plus this repo's
|
|
values:
|
|
|
|
| Source | Purpose |
|
|
|---------------------------------------------------------|----------------------------------|
|
|
| `oci://ghcr.io/stacklok/toolhive/toolhive-operator-crds`| CRDs (MCPServer, MCPRegistry, …) |
|
|
| `oci://ghcr.io/stacklok/toolhive/toolhive-operator` | operator Deployment + RBAC |
|
|
| this repo (`ref: values`) | operator Helm values |
|
|
|
|
Both charts share a unified version, pinned via `chartVersion` in
|
|
`bootstrap/applicationset.yaml` (currently `0.28.3`). RBAC scope is left
|
|
`cluster` (chart default) so the operator can reconcile MCPServers in
|
|
`mcp-services`.
|
|
|
|
## Deploy
|
|
|
|
```bash
|
|
# validate the operator chart renders with our values
|
|
helm template toolhive-operator oci://ghcr.io/stacklok/toolhive/toolhive-operator \
|
|
--version 0.28.3 -n toolhive-system \
|
|
-f manifest/overlays/production/helm-values/values.yaml >/dev/null
|
|
|
|
# enable bootstrap/config.yaml (enabled: true), commit, push to main, then:
|
|
kubectl get pods -n toolhive-system
|
|
kubectl get crd | grep toolhive.stacklok.dev
|
|
```
|
|
|
|
Deploy this app **before** `mcp-services` — the MCPServer CRs depend on the CRDs
|
|
installed here.
|
|
|
|
## Bumping the version
|
|
|
|
```bash
|
|
curl -s 'https://api.github.com/repos/stacklok/toolhive/releases?per_page=10' \
|
|
| grep tag_name
|
|
```
|
|
|
|
Update `chartVersion` in `bootstrap/applicationset.yaml` and push. (The CRDs and
|
|
operator charts are released together under the same version number.)
|