Skip to content

Commit ee44449

Browse files
committed
Merge remote-tracking branch 'origin/main' into jaosorior/mcpauthzconfig-crd
# Conflicts: # docs/operator/crd-api.md
2 parents 1e2d1f9 + c6db2d9 commit ee44449

227 files changed

Lines changed: 18001 additions & 2780 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/rules/operator.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ See `cmd/thv-operator/DESIGN.md` for detailed decision guidelines.
3636

3737
- Always run `task operator-generate` after modifying CRD types
3838
- Always run `task operator-manifests` after adding kubebuilder markers
39-
- Always run `task crdref-gen` from `cmd/thv-operator/` after CRD changes to regenerate API docs (uses relative paths)
39+
- Always run `task crdref-gen` from the repo root after CRD changes to regenerate API docs (running it from `cmd/thv-operator/` fails — the task resolves the config path relative to the repo root)
4040
- Use `envtest` for integration testing, not real clusters
4141
- Chainsaw tests require a real Kubernetes cluster
4242
- Status writes must go through `controllerutil.MutateAndPatchStatus` — see the Status Writes section below
@@ -65,7 +65,7 @@ task operator-generate # Generate deepcopy, client code
6565
task operator-manifests # Generate CRD YAML, RBAC
6666
task operator-test # Run unit tests
6767
task operator-e2e-test # Run e2e tests
68-
task crdref-gen # Generate CRD API docs (run from cmd/thv-operator/)
68+
task crdref-gen # Generate CRD API docs (run from the repo root)
6969
```
7070

7171
## Spec / metadata patching

.github/CODEOWNERS

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,29 @@ CLAUDE.md @JAORMX @jhrozek @rdimitrov @jerm-dro
99
.claude/rules/ @JAORMX @jhrozek @rdimitrov @jerm-dro
1010

1111
# CLI (thv)
12-
cmd/thv/ @JAORMX @yrobla @ChrisJBurns @amirejaz @lujunsan @rdimitrov @jhrozek
13-
cmd/help/ @JAORMX @yrobla @ChrisJBurns @amirejaz @lujunsan @rdimitrov @jhrozek
14-
docs/cli/ @JAORMX @yrobla @ChrisJBurns @amirejaz @lujunsan @rdimitrov @jhrozek
15-
test/e2e/ @JAORMX @yrobla @ChrisJBurns @amirejaz @lujunsan @rdimitrov @jhrozek
12+
cmd/thv/ @JAORMX @ChrisJBurns @amirejaz @lujunsan @rdimitrov @jhrozek @reyortiz3 @aponcedeleonch
13+
cmd/help/ @JAORMX @ChrisJBurns @amirejaz @lujunsan @rdimitrov @jhrozek @reyortiz3 @aponcedeleonch
14+
docs/cli/ @JAORMX @ChrisJBurns @amirejaz @lujunsan @rdimitrov @jhrozek @reyortiz3 @aponcedeleonch
15+
test/e2e/ @JAORMX @ChrisJBurns @amirejaz @lujunsan @rdimitrov @jhrozek @reyortiz3 @aponcedeleonch
1616

1717
# HTTP API (ToolHive server)
18-
pkg/api/ @JAORMX @amirejaz
19-
docs/server/ @JAORMX @amirejaz
18+
pkg/api/ @JAORMX @amirejaz @rdimitrov @reyortiz3 @aponcedeleonch
19+
docs/server/ @JAORMX @amirejaz @rdimitrov @reyortiz3 @aponcedeleonch
2020

2121
# Kubernetes (operator + proxyrunner + charts)
22-
cmd/thv-operator/ @ChrisJBurns @yrobla @JAORMX @jerm-dro @jhrozek
23-
cmd/thv-proxyrunner/ @ChrisJBurns @yrobla @JAORMX @jerm-dro @jhrozek
24-
deploy/charts/operator/ @ChrisJBurns @yrobla @JAORMX @jerm-dro @jhrozek
25-
deploy/charts/operator-crds/ @ChrisJBurns @yrobla @JAORMX @jerm-dro @jhrozek
26-
config/webhook/ @ChrisJBurns @yrobla @JAORMX @jerm-dro @jhrozek
27-
test/e2e/chainsaw/operator/ @ChrisJBurns @yrobla @JAORMX @jerm-dro @jhrozek
28-
test/e2e/thv-operator/ @ChrisJBurns @yrobla @JAORMX @jerm-dro @jhrozek
29-
docs/operator/ @ChrisJBurns @yrobla @JAORMX @jerm-dro @jhrozek
22+
cmd/thv-operator/ @ChrisJBurns @JAORMX @jerm-dro @jhrozek @tgrunnagle @rdimitrov @reyortiz3 @blkt
23+
cmd/thv-proxyrunner/ @ChrisJBurns @JAORMX @jerm-dro @jhrozek @tgrunnagle @rdimitrov @reyortiz3 @blkt
24+
deploy/charts/operator/ @ChrisJBurns @JAORMX @jerm-dro @jhrozek @tgrunnagle @rdimitrov @reyortiz3 @blkt
25+
deploy/charts/operator-crds/ @ChrisJBurns @JAORMX @jerm-dro @jhrozek @tgrunnagle @rdimitrov @reyortiz3 @blkt
26+
config/webhook/ @ChrisJBurns @JAORMX @jerm-dro @jhrozek @tgrunnagle @rdimitrov @reyortiz3 @blkt
27+
test/e2e/chainsaw/operator/ @ChrisJBurns @JAORMX @jerm-dro @jhrozek @tgrunnagle @rdimitrov @reyortiz3 @blkt
28+
test/e2e/thv-operator/ @ChrisJBurns @JAORMX @jerm-dro @jhrozek @tgrunnagle @rdimitrov @reyortiz3 @blkt
29+
docs/operator/ @ChrisJBurns @JAORMX @jerm-dro @jhrozek @tgrunnagle @rdimitrov @reyortiz3 @blkt
3030

3131
# vMCP (Virtual MCP)
32-
cmd/vmcp/ @JAORMX @yrobla @jhrozek @jerm-dro @amirejaz
33-
pkg/vmcp/ @JAORMX @yrobla @jhrozek @jerm-dro @amirejaz
34-
test/integration/vmcp/ @JAORMX @yrobla @jhrozek @jerm-dro @amirejaz
32+
cmd/vmcp/ @JAORMX @jhrozek @jerm-dro @amirejaz @ChrisJBurns @tgrunnagle
33+
pkg/vmcp/ @JAORMX @jhrozek @jerm-dro @amirejaz @ChrisJBurns @tgrunnagle
34+
test/integration/vmcp/ @JAORMX @jhrozek @jerm-dro @amirejaz @ChrisJBurns @tgrunnagle
3535

3636
# Core Runtime & Lifecycle
3737
pkg/workloads/ @JAORMX @amirejaz @lujunsan
@@ -44,32 +44,32 @@ pkg/groups/ @JAORMX @amirejaz @lujunsan
4444
pkg/client/ @JAORMX @amirejaz @lujunsan
4545

4646
# Infrastructure Abstractions
47-
pkg/container/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @yrobla
48-
pkg/transport/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @yrobla
49-
pkg/mcp/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @yrobla
50-
pkg/networking/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @yrobla
51-
pkg/labels/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @yrobla
52-
pkg/process/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @yrobla
47+
pkg/container/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @rdimitrov
48+
pkg/transport/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @rdimitrov
49+
pkg/mcp/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @rdimitrov
50+
pkg/networking/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @rdimitrov
51+
pkg/labels/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @rdimitrov
52+
pkg/process/ @JAORMX @jhrozek @blkt @amirejaz @ChrisJBurns @rdimitrov
5353

5454
# Registry & Distribution
55-
pkg/registry/ @JAORMX @rdimitrov
56-
.github/workflows/update-registry.yml @JAORMX @rdimitrov
55+
pkg/registry/ @JAORMX @rdimitrov @reyortiz3
56+
.github/workflows/update-registry.yml @JAORMX @rdimitrov @reyortiz3
5757

5858
# Security & Policy
59-
pkg/auth/ @jhrozek @JAORMX @ChrisJBurns @yrobla
60-
pkg/authz/ @jhrozek @JAORMX @ChrisJBurns @yrobla
61-
pkg/oauth/ @jhrozek @JAORMX @ChrisJBurns @yrobla
62-
pkg/authserver/ @jhrozek @JAORMX @ChrisJBurns @yrobla
63-
pkg/secrets/ @jhrozek @JAORMX @ChrisJBurns @yrobla
64-
pkg/permissions/ @jhrozek @JAORMX @ChrisJBurns @yrobla
65-
pkg/container/verifier/ @jhrozek @JAORMX @ChrisJBurns @yrobla
66-
pkg/audit/ @jhrozek @JAORMX @ChrisJBurns @yrobla
59+
pkg/auth/ @jhrozek @JAORMX @ChrisJBurns @tgrunnagle @rdimitrov
60+
pkg/authz/ @jhrozek @JAORMX @ChrisJBurns @tgrunnagle @rdimitrov
61+
pkg/oauth/ @jhrozek @JAORMX @ChrisJBurns @tgrunnagle @rdimitrov
62+
pkg/authserver/ @jhrozek @JAORMX @ChrisJBurns @tgrunnagle @rdimitrov
63+
pkg/secrets/ @jhrozek @JAORMX @ChrisJBurns @tgrunnagle @rdimitrov
64+
pkg/permissions/ @jhrozek @JAORMX @ChrisJBurns @tgrunnagle @rdimitrov
65+
pkg/container/verifier/ @jhrozek @JAORMX @ChrisJBurns @tgrunnagle @rdimitrov
66+
pkg/audit/ @jhrozek @JAORMX @ChrisJBurns @tgrunnagle @rdimitrov
6767

6868
# Observability
69-
pkg/telemetry/ @ChrisJBurns @JAORMX @yrobla @jerm-dro
70-
pkg/usagemetrics/ @ChrisJBurns @JAORMX @yrobla @jerm-dro
71-
pkg/logger/ @ChrisJBurns @JAORMX @yrobla @jerm-dro
72-
pkg/recovery/ @ChrisJBurns @JAORMX @yrobla @jerm-dro
69+
pkg/telemetry/ @ChrisJBurns @JAORMX @jerm-dro
70+
pkg/usagemetrics/ @ChrisJBurns @JAORMX @jerm-dro
71+
pkg/logger/ @ChrisJBurns @JAORMX @jerm-dro
72+
pkg/recovery/ @ChrisJBurns @JAORMX @jerm-dro
7373

7474
# Architecture docs
75-
docs/arch/ @JAORMX @amirejaz @yrobla @rdimitrov @ChrisJBurns @jhrozek
75+
docs/arch/ @JAORMX @amirejaz @rdimitrov @ChrisJBurns @jhrozek @tgrunnagle

.github/workflows/claude.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959

6060
- name: Run Claude Code
6161
id: claude
62-
uses: anthropics/claude-code-action@787c5a0ce96a9a6cfb050ea0c8f4c05f2447c251 # v1
62+
uses: anthropics/claude-code-action@fbda2eb1bdc90d319b8d853f5deb53bca199a7c1 # v1
6363
with:
6464
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
6565
# Security: Restrict tools to prevent arbitrary code execution.

.github/workflows/helm-charts-test.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9
2727

2828
- name: Set up Helm
29-
uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4.3.1
29+
uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0
3030
with:
3131
version: v3.20.2 # helm
3232

@@ -53,6 +53,14 @@ jobs:
5353
- name: Run chart-testing (lint)
5454
run: ct lint --config ct.yaml
5555

56+
- name: Run helm-unittest
57+
# helm-unittest renders the charts and asserts on the resulting
58+
# Kubernetes manifests, catching template regressions that `ct lint`
59+
# and `ct install` do not — `helm install` can succeed even when the
60+
# rendered output is subtly wrong. The plugin version is pinned in
61+
# the Taskfile's `helm-unittest` task.
62+
run: task helm-unittest
63+
5664
- name: Create KIND cluster
5765
uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0
5866

.github/workflows/helm-publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ jobs:
7373
echo "Extracted version: $VERSION from tag: $TAG"
7474
7575
- name: Set up Helm
76-
uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4
76+
uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0
7777
with:
7878
version: 'v3.14.0'
7979

.github/workflows/image-build-and-publish.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
uses: ./.github/actions/compute-version
3030

3131
- name: Login to GitHub Container Registry
32-
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
32+
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
3333
with:
3434
registry: ghcr.io
3535
username: ${{ github.actor }}
@@ -92,18 +92,18 @@ jobs:
9292
uses: ./.github/actions/compute-version
9393

9494
- name: Login to GitHub Container Registry
95-
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
95+
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
9696
with:
9797
registry: ghcr.io
9898
username: ${{ github.actor }}
9999
password: ${{ secrets.GITHUB_TOKEN }}
100100

101101
- name: Set up Docker Buildx
102-
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
102+
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
103103

104104
- name: Extract metadata
105105
id: meta
106-
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
106+
uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6.1.0
107107
with:
108108
images: ${{ env.BASE_REPO }}
109109
tags: |
@@ -112,7 +112,7 @@ jobs:
112112
type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/') }}
113113
114114
- name: Build and push Docker image
115-
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2
115+
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
116116
with:
117117
context: containers/egress-proxy
118118
platforms: linux/amd64,linux/arm64
@@ -168,7 +168,7 @@ jobs:
168168
uses: ./.github/actions/compute-version
169169

170170
- name: Login to GitHub Container Registry
171-
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
171+
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
172172
with:
173173
registry: ghcr.io
174174
username: ${{ github.actor }}
@@ -178,7 +178,7 @@ jobs:
178178
uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9
179179

180180
- name: Set up Docker Buildx
181-
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
181+
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
182182

183183
- name: Install Cosign
184184
uses: sigstore/cosign-installer@cad07c2e89fa2edd6e2d7bab4c1aa38e53f76003 # v4.1.1
@@ -239,7 +239,7 @@ jobs:
239239
uses: ./.github/actions/compute-version
240240

241241
- name: Login to GitHub Container Registry
242-
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
242+
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
243243
with:
244244
registry: ghcr.io
245245
username: ${{ github.actor }}
@@ -249,7 +249,7 @@ jobs:
249249
uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9
250250

251251
- name: Set up Docker Buildx
252-
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
252+
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
253253

254254
- name: Install Cosign
255255
uses: sigstore/cosign-installer@cad07c2e89fa2edd6e2d7bab4c1aa38e53f76003 # v4.1.1
@@ -320,7 +320,7 @@ jobs:
320320
fi
321321
322322
- name: Login to GitHub Container Registry
323-
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
323+
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
324324
with:
325325
registry: ghcr.io
326326
username: ${{ github.actor }}

.github/workflows/operator-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ jobs:
160160
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
161161

162162
- name: Set up Helm
163-
uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4.3.1 # pin@v4.3.0
163+
uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0
164164

165165
- name: Setup Ko
166166
uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9

0 commit comments

Comments
 (0)