Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
c7ff584
upgrade to latest dependencies (#4022)
knative-automation Aug 25, 2026
26ab024
upgrade to latest dependencies (#4024)
knative-automation Aug 27, 2026
2f672ce
mcp: Add logs tool to retrieve deployed Function logs (#3819)
Ankitsinghsisodya Aug 27, 2026
c24bf20
chore: update Quarkus platform version to 3.39.1 (#4025)
github-actions[bot] Aug 27, 2026
621bb82
merge upstream/main into main
openshift-rebasebot[bot] Aug 28, 2026
6aeaaa5
UPSTREAM: <carry>: Replace OWNERS with OpenShift downstream maintainers
gauron99 Aug 5, 2026
4cee4fe
UPSTREAM: <carry>: Add post-rebase-hook to remove .github and OWNERS_…
gauron99 Aug 5, 2026
5ac4865
UPSTREAM: <carry>: Default builder to s2i for OpenShift
gauron99 Aug 5, 2026
6cd8518
UPSTREAM: <carry>: Use Red Hat buildah image for s2i pipeline task
gauron99 Aug 5, 2026
f425a35
utils Dockerfiles for Konflux
maschmid Aug 10, 2026
eb615cf
Red Hat Konflux kflux-prd-rh02 update functions-utils
red-hat-konflux-kflux-prd-rh02[bot] Aug 14, 2026
8273966
update cel expressions and arch list
maschmid Aug 14, 2026
12c2ae8
UPSTREAM: <drop>: Remove upstream-only files not used in OpenShift org
openshift-rebasebot[bot] Aug 14, 2026
aedb6bb
initial version of Dockerfile.func.rhel9
maschmid Aug 14, 2026
8dee40e
Red Hat Konflux kflux-prd-rh02 update functions-func
red-hat-konflux-kflux-prd-rh02[bot] Aug 14, 2026
a73fa7e
update functions-func pipelines
maschmid Aug 14, 2026
9da9c22
nudge utils
maschmid Aug 14, 2026
1490e57
Update functions-utils to 5ca7b28
red-hat-konflux-kflux-prd-rh02[bot] Aug 17, 2026
5025ec6
Update functions-utils to 6e6587f
red-hat-konflux-kflux-prd-rh02[bot] Aug 17, 2026
bbc50f1
UPSTREAM: <carry>: Set default deployer to raw for OpenShift
gauron99 Aug 10, 2026
84e6ec6
Update functions-utils to 1fca700
red-hat-konflux-kflux-prd-rh02[bot] Aug 18, 2026
81d3b35
use ART-built golang builder for Konflux builds
maschmid Aug 20, 2026
3548360
Update functions-utils to 4e2ba9f
red-hat-konflux-kflux-prd-rh02[bot] Aug 20, 2026
d7bb07f
Enable cachi2/Hermeto prefetch for hermetic Konflux builds
redhat-chai-bot Aug 20, 2026
860b6d2
Add RPM prefetch support for hermetic functions-utils builds
redhat-chai-bot Aug 20, 2026
126893a
add renovate for refresh-rpm-lockfiles
maschmid Aug 20, 2026
91bf30a
Update functions-utils to 447c642
red-hat-konflux-kflux-prd-rh02[bot] Aug 20, 2026
628d240
Disable go.mod and templates/ lock file updates in Renovate
redhat-chai-bot Aug 21, 2026
ce459ff
Update actions/cache action to v3.5.0
red-hat-konflux-kflux-prd-rh02[bot] Aug 21, 2026
8248183
ignore third_party/
maschmid Aug 21, 2026
5d9ee85
Update Konflux references
red-hat-konflux-kflux-prd-rh02[bot] Aug 22, 2026
8ea6801
Update functions-utils to 622dec2
red-hat-konflux-kflux-prd-rh02[bot] Aug 24, 2026
d7ff7da
UPSTREAM: <drop>: Remove upstream-only files not used in OpenShift org
openshift-rebasebot[bot] Aug 24, 2026
d58dfa1
switch to best-practices renovate config
maschmid Aug 24, 2026
08aeafb
Update OWNERS
gauron99 Aug 24, 2026
89e9341
enable source builds
maschmid Aug 24, 2026
f7d7214
Update functions-utils to 689fdfe
red-hat-konflux-kflux-prd-rh02[bot] Aug 24, 2026
0952c07
Update functions-utils to c5b2898
red-hat-konflux-kflux-prd-rh02[bot] Aug 25, 2026
c4a7f5f
Pin dependencies
red-hat-konflux-kflux-prd-rh02[bot] Aug 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 63 additions & 63 deletions generate/zz_filesystem_generated.go

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -65,16 +65,16 @@ require (
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.1
gotest.tools/v3 v3.5.2
k8s.io/api v0.35.7
k8s.io/apimachinery v0.35.7
k8s.io/client-go v0.35.7
k8s.io/api v0.35.8
k8s.io/apimachinery v0.35.8
k8s.io/client-go v0.35.8
k8s.io/klog/v2 v2.140.0
k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2
knative.dev/client/pkg v0.0.0-20260824022027-f22c1f6498a3
knative.dev/eventing v0.50.1-0.20260824121526-ec5c1d17105c
knative.dev/eventing v0.50.1-0.20260826203415-973bbbc1f791
knative.dev/hack v0.0.0-20260428014158-b2a37f1b6e7b
knative.dev/pkg v0.0.0-20260820190123-c9015f8bfdea
knative.dev/serving v0.50.1-0.20260821122824-98e5ef90aa70
knative.dev/pkg v0.0.0-20260825072334-d2a153acc00c
knative.dev/serving v0.50.1-0.20260825144834-618b0c275af1
sigs.k8s.io/controller-runtime v0.23.3
sigs.k8s.io/yaml v1.6.0
)
Expand Down Expand Up @@ -315,8 +315,8 @@ require (
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.1 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
k8s.io/apiextensions-apiserver v0.35.7 // indirect
k8s.io/apiserver v0.35.7 // indirect
k8s.io/apiextensions-apiserver v0.35.8 // indirect
k8s.io/apiserver v0.35.8 // indirect
k8s.io/cli-runtime v0.34.1 // indirect
k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a // indirect
knative.dev/networking v0.0.0-20260821014922-17b28c62e1cb // indirect
Expand Down
32 changes: 16 additions & 16 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1833,26 +1833,26 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
k8s.io/api v0.22.5/go.mod h1:mEhXyLaSD1qTOf40rRiKXkc+2iCem09rWLlFwhCEiAs=
k8s.io/api v0.27.7/go.mod h1:ZNExI/Lhrs9YrLgVWx6jjHZdoWCTXfBXuFjt1X6olro=
k8s.io/api v0.27.10/go.mod h1:cDmAF4GtSVRO0+5hOY/Vo3lLCQMOp6FfrXZ94/gQwC0=
k8s.io/api v0.35.7 h1:qzjBIl6HRlZ4TXvVELrWC50d30RZu/uLJFE9efpLgxk=
k8s.io/api v0.35.7/go.mod h1:rXqZY94EWBj+9wVgdVOVS46MtnAEF09khzjCR4EOqiE=
k8s.io/api v0.35.8 h1:hxpmPYdneQPKNh0cZyB09Hwd3vgXzdcJs5R3toDXsvU=
k8s.io/api v0.35.8/go.mod h1:I5gVNknFd4hfVVcMCixrenD7V38JUY78q3jtpGyC19c=
k8s.io/apiextensions-apiserver v0.27.7/go.mod h1:x0p+b5a955lfPz9gaDeBy43obM12s+N9dNHK6+dUL+g=
k8s.io/apiextensions-apiserver v0.35.7 h1:0Fj7U6mSPEJKfW2GnjOF1zthG2pIpdL2mj14mUJ3E4w=
k8s.io/apiextensions-apiserver v0.35.7/go.mod h1:sh7EoBfvntnXL6GwaLMhfvlhJpGzTFHSI7AyPQ0YQ1g=
k8s.io/apiextensions-apiserver v0.35.8 h1:2lvyZ28M01/1uOPftaPXIbsOaCslzKHTEcdCjCI0VRE=
k8s.io/apiextensions-apiserver v0.35.8/go.mod h1:/ZbM1upeajFY5yHqGMKEzWTLb5Tx3kU2SkxTCtqB4Uw=
k8s.io/apimachinery v0.22.5/go.mod h1:xziclGKwuuJ2RM5/rSFQSYAj0zdbci3DH8kj+WvyN0U=
k8s.io/apimachinery v0.27.7/go.mod h1:jBGQgTjkw99ef6q5hv1YurDd3BqKDk9YRxmX0Ozo0i8=
k8s.io/apimachinery v0.27.10/go.mod h1:IHu2ovJ60RqxyPSLmTel7KDLdOCRbpOxwtUBmwBnT/E=
k8s.io/apimachinery v0.35.7 h1:dIMi/gFnUDiASbeBqx1wqLAB8jlNo4kysncMZceV0OM=
k8s.io/apimachinery v0.35.7/go.mod h1:1I6w9iM6v//hXKgxe1g3ybZgcOaJrcYg9sQGtndFrmc=
k8s.io/apimachinery v0.35.8 h1:piOyQQgse1sGztJVfy3B8f11YpT+KwK5KkD5Jie1EK0=
k8s.io/apimachinery v0.35.8/go.mod h1:z9Vq5oR1X38pkhh0wV531iKSeqmOVjqgHdYMjvzq2+o=
k8s.io/apiserver v0.27.7/go.mod h1:OrLG9RwCOerutAlo8QJW5EHzUG9Dad7k6rgcDUNSO/w=
k8s.io/apiserver v0.35.7 h1:Z9RShd9T1nSEua/j0BQcL4JTP09jZfddR/gNr9AFSO0=
k8s.io/apiserver v0.35.7/go.mod h1:zswr0siixtL3+h07x6Ec/8CUcAcLQ4yUwT6COvKoOYQ=
k8s.io/apiserver v0.35.8 h1:DuwdXkMrrNi6ovUaQk9EZhIgP7cDaWOvNP/CvrLJNfM=
k8s.io/apiserver v0.35.8/go.mod h1:97kTXpbFyeZwLcrK5hRYfc9ZfM3T7D4oYC0WXsJoXXM=
k8s.io/cli-runtime v0.34.1 h1:btlgAgTrYd4sk8vJTRG6zVtqBKt9ZMDeQZo2PIzbL7M=
k8s.io/cli-runtime v0.34.1/go.mod h1:aVA65c+f0MZiMUPbseU/M9l1Wo2byeaGwUuQEQVVveE=
k8s.io/client-go v0.22.5/go.mod h1:cs6yf/61q2T1SdQL5Rdcjg9J1ElXSwbjSrW2vFImM4Y=
k8s.io/client-go v0.27.7/go.mod h1:dZ2kqcalYp5YZ2EV12XIMc77G6PxHWOJp/kclZr4+5Q=
k8s.io/client-go v0.27.10/go.mod h1:PhrjLdIJNy7L8liOPEzm6wNlMjhIRJeVbfvksTxKNqI=
k8s.io/client-go v0.35.7 h1:UWxdVZcqqCdeip50BKoIcoGryX7WfTE1oQQVolP8HJs=
k8s.io/client-go v0.35.7/go.mod h1:uksk4ZVg/i4PrgsMsludkEe7Cp6v8hJ9wvje+2Ekn+c=
k8s.io/client-go v0.35.8 h1:tIW2sirCQMiGoCSvtOYqS059CDQ5n1nrDQa+PVt4nqY=
k8s.io/client-go v0.35.8/go.mod h1:fT8dATMU8FHMq4hlOudbsxihQ1LIQfDaLNDXBnIk6OQ=
k8s.io/code-generator v0.27.7/go.mod h1:w1YF/xQcTg+d9Ag+04xuRqER+q8rDnJ70ynLql8/RLA=
k8s.io/component-base v0.27.7/go.mod h1:YGjlCVL1oeKvG3HSciyPHFh+LCjIEqsxz4BDR3cfHRs=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
Expand All @@ -1878,16 +1878,16 @@ k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 h1:AZYQSJemyQB5eRxqcPky+/7EdBj0x
k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk=
knative.dev/client/pkg v0.0.0-20260824022027-f22c1f6498a3 h1:yDau9zgPC4EPkkFKsXiKslX+A4u3erge5PArBXOk+0g=
knative.dev/client/pkg v0.0.0-20260824022027-f22c1f6498a3/go.mod h1:uA+bOCkcmaU8gbYLQ/6GrUXD9hmfV0tsXUoYUC/d3cg=
knative.dev/eventing v0.50.1-0.20260824121526-ec5c1d17105c h1:GfZm9tjdDAuRMtPOrAM5340nj/VHiKEpkIuxHwPYkWI=
knative.dev/eventing v0.50.1-0.20260824121526-ec5c1d17105c/go.mod h1:se5U7KcgxQ/VaAIjvWnGjYqXDQhfKwfTgB+7cf2mY1A=
knative.dev/eventing v0.50.1-0.20260826203415-973bbbc1f791 h1:LBlXWXWxKbRV5mTFsmbrTp8itbTqyILFvBVozpM0KUQ=
knative.dev/eventing v0.50.1-0.20260826203415-973bbbc1f791/go.mod h1:se5U7KcgxQ/VaAIjvWnGjYqXDQhfKwfTgB+7cf2mY1A=
knative.dev/hack v0.0.0-20260428014158-b2a37f1b6e7b h1:MvbV2F2BdI8qKrYYUhDwbUZbX0BAYRSIpXM2TOtTvs0=
knative.dev/hack v0.0.0-20260428014158-b2a37f1b6e7b/go.mod h1:L5RzHgbvam0u8QFHfzCX6MKxu/a/gIGEdaRBqNiVbl0=
knative.dev/networking v0.0.0-20260821014922-17b28c62e1cb h1:ukTLqsBsPfPsvEvB7c8DsVoKpDGi4tMsHCDzL8y8ycM=
knative.dev/networking v0.0.0-20260821014922-17b28c62e1cb/go.mod h1:LcjiQvD89e7hdND0fI4O4sbWt7L8fEnb+9xPi5BEa5Y=
knative.dev/pkg v0.0.0-20260820190123-c9015f8bfdea h1:vNg/ixrFn2UMDAh727Ag26G3jZAQGskbn5VOwZvKoOM=
knative.dev/pkg v0.0.0-20260820190123-c9015f8bfdea/go.mod h1:azi5R3dOIcS9Pp8+QAZR9Yp7e/eoD7rNVFIefkZr8N8=
knative.dev/serving v0.50.1-0.20260821122824-98e5ef90aa70 h1:15SH9Ne0DBpYFNLuCnF4UQJ+MNi3WopTWmSZPNMfX40=
knative.dev/serving v0.50.1-0.20260821122824-98e5ef90aa70/go.mod h1:MP+yKsx/gLczU+agah1HgRrpU6KT0SV96a7bD+v5PKo=
knative.dev/pkg v0.0.0-20260825072334-d2a153acc00c h1:x99AILfR+9/dMMSXTpD5akQkCxfqreR+Py40i4pUrmA=
knative.dev/pkg v0.0.0-20260825072334-d2a153acc00c/go.mod h1:79LFLJ+XR5kxkPWy4KBBJkdTrk00t7zynpgOpP8uKrs=
knative.dev/serving v0.50.1-0.20260825144834-618b0c275af1 h1:U7ixUp+rikVPkEEsYzn/PkL8t6OSDMfAFZfVxPb7JKQ=
knative.dev/serving v0.50.1-0.20260825144834-618b0c275af1/go.mod h1:TSVJNoOBCimZFxyVSe2+8CYuNLSlkMn4RxRSZDHditE=
pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk=
pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
Expand Down
21 changes: 20 additions & 1 deletion pkg/mcp/instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ This is essential because:

**Exceptions:**
- The `list` tool operates on the cluster, not local files, so it does NOT use a path parameter (it uses namespace instead)
- The `delete` and `describe` tools each require exactly one of `path` or `name`; they do NOT support a no-argument CWD mode (the MCP server process has its own working directory unrelated to the Function being managed)
- The `delete`, `describe` and `logs` tools each require exactly one of `path` or `name`; they do NOT support a no-argument CWD mode (the MCP server process has its own working directory unrelated to the Function being managed)

## Deployment Behavior

Expand All @@ -63,6 +63,7 @@ This is essential because:
- Before 'invoke' → Read `func://help/invoke`
- Before 'list' → Read `func://help/list`
- Before 'describe' → Read `func://help/describe`
- Before 'logs' → Read `func://help/logs`
- Before 'delete' → Read `func://help/delete`
- Before 'run' → Read `func://help/run`

Expand Down Expand Up @@ -168,6 +169,24 @@ A first-time deploy can be detected by checking the func.yaml for a value in the
- 'namespace' is only valid together with 'name'; providing both 'path' and 'namespace' is rejected, since path mode already determines the namespace from the Function's own deploy identity
- Read-only; does not modify local files or cluster resources

### logs

- **FIRST:** Read `func://help/logs` for authoritative usage information
- Exactly one of `path` or `name` is required (same shape as `delete` / `describe`) — never both, and never neither
- `path` must be an absolute path to the Function project directory (reads func.yaml); `name` is the deployed Function name on the cluster
- The Function must already be **deployed** — in path mode the tool still talks to the cluster via the project's deploy identity, so calling it before `deploy` is a usage error, not a tool bug
- Returns a **finite snapshot** of recent logs (it prints and exits; it is not a live stream); the default is the most recent 1000 lines per pod, so the output is bounded even when you pass neither `since` nor `tail`
- Narrow it further with `since` (time window, e.g. `30s`, `5m`, `2h`) and/or a smaller `tail` (most recent lines per pod); a negative `tail` means unlimited, and is the only way to ask for every retained line
- If the payload exceeds the tool's size limit, only the most recent lines are returned and `truncated` is set to true; re-run with `tail` or `since` rather than assuming the output is complete
- **Always read `warnings` before concluding a Function produced no output.** Empty or partial `logs` with a zero exit is normal and explained there: the Function may have scaled to zero (no pods, therefore no logs), or the logs of only some of its pods could be read
- `namespace` applies when identifying the Function by `name`. In `path` mode the namespace is read from the Function's own deploy identity in func.yaml and `namespace` has no effect — the same behavior as `func logs`, which this tool does not add rules on top of
- When more than one pod serves the Function, each line is prefixed with `[pod/<name>] `
- `follow`/streaming is deliberately not exposed: it never terminates, so it is unusable from an agent. Use `since`/`tail` and call again to observe new output
- Only Functions deployed with the default **knative** deployer are supported; for other deployers the CLI returns an error directing you to `kubectl logs`
- `verbose` output is written to the same stream the notices come back on, so enabling it makes `warnings` considerably noisier; the returned notices are bounded and older ones are dropped when they overflow
- This tool is **read-only** — it never modifies any state
- Use logs to diagnose a deployed Function after `deploy`, especially when combined with `invoke` to trigger the Function and observe its output

### delete

- **FIRST:** Read `func://help/delete` for authoritative usage information
Expand Down
2 changes: 2 additions & 0 deletions pkg/mcp/mcp.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ func New(options ...Option) *Server {
mcp.AddTool(i, invokeTool, s.invokeHandler)
mcp.AddTool(i, listTool, s.listHandler)
mcp.AddTool(i, describeTool, s.describeHandler)
mcp.AddTool(i, logsTool, s.logsHandler)
mcp.AddTool(i, deleteTool, s.deleteHandler)
mcp.AddTool(i, runTool, s.runHandler)
mcp.AddTool(i, runStopTool, s.runStopHandler)
Expand Down Expand Up @@ -179,6 +180,7 @@ func New(options ...Option) *Server {
i.AddResource(newHelpResource(s, "Invoke Help", "help for 'invoke'", "invoke"))
i.AddResource(newHelpResource(s, "List Help", "help for 'list'", "list"))
i.AddResource(newHelpResource(s, "Describe Help", "help for 'describe'", "describe"))
i.AddResource(newHelpResource(s, "Logs Help", "help for 'logs'", "logs"))
i.AddResource(newHelpResource(s, "Delete Help", "help for delete", "delete"))

i.AddResource(newHelpResource(s, "Volumes Help", "general help for volumes", "config", "volumes"))
Expand Down
Loading