Calum Murray
a2d16e9f41
feat: Multi Cluster Support ( #348 )
...
* feat: add cluster provider for kubeconfig
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: move server to use ClusterProvider interface
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: authentication middleware works with cluster provider
Signed-off-by: Calum Murray <cmurray@redhat.com >
* fix: unit tests work after cluster provider changes
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: add tool mutator to add cluster parameter
Signed-off-by: Calum Murray <cmurray@redhat.com >
* test: handle cluster parameter
Signed-off-by: Calum Murray <cmurray@redhat.com >
* fix: handle lazy init correctly
Signed-off-by: Calum Murray <cmurray@redhat.com >
* refactor: move to using multi-strategy ManagerProvider
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: add contexts_list tool
Signed-off-by: Calum Murray <cmurray@redhat.com >
* refactor: make tool mutator generic between cluster/context naming
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: introduce tool filter
Signed-off-by: Calum Murray <cmurray@redhat.com >
* refactor: use new ManagerProvider/mutator/filter within mcp server
Signed-off-by: Calum Murray <cmurray@redhat.com >
* fix(test): tests expect context parameter in tool defs
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: auth handles multi-cluster case correctly
Signed-off-by: Calum Murray <cmurray@redhat.com >
* fix: small changes from local testing
Signed-off-by: Calum Murray <cmurray@redhat.com >
* chore: fix enum test
Signed-off-by: Calum Murray <cmurray@redhat.com >
* review: Multi Cluster support (#1 )
* nit: rename contexts_list to configuration_contexts_list
Besides the conventional naming, it helps LLMs understand the context of the tool by providing a certain level of hierarchy.
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* fix(mcp): ToolMutator doesn't rely on magic strings
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* refactor(api): don't expose ManagerProvider to toolsets
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* test(mcp): configuration_contexts_list basic tests
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* test(toolsets): revert edge-case test
This test should not be touched.
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* test(toolsets): add specific metadata tests for multi-cluster
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* fix(mcp): ToolFilter doesn't rely on magic strings (partially)
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* test(api): IsClusterAware and IsTargetListProvider default values
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* test(mcp): revert unneeded changes in mcp_tools_test.go
Signed-off-by: Marc Nuri <marc@marcnuri.com >
---------
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* fix: always include configuration_contexts_list if contexts > 1
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: include server urls in configuration_contexts_list
Signed-off-by: Calum Murray <cmurray@redhat.com >
---------
Signed-off-by: Calum Murray <cmurray@redhat.com >
Signed-off-by: Marc Nuri <marc@marcnuri.com >
Co-authored-by: Marc Nuri <marc@marcnuri.com >
2025-10-06 12:01:16 +02:00
Marc Nuri
209e8434d5
feat(mcp): toolset definitions completely agnostic from underlying MCP impl ( #322 )
...
Signed-off-by: Marc Nuri <marc@marcnuri.com >
2025-09-12 11:56:22 +02:00
Marc Nuri
3fbfd8d7cb
fix(lint): add golangci-lint make target + lint
...
Signed-off-by: Marc Nuri <marc@marcnuri.com >
2025-07-22 14:22:19 +02:00
Arda Güçlü
114726fb7c
test(config): add new test case to increase the test coverage of Derived Config (167)
...
Add new unit tests to check the values in Derived config
---
Rely on kubeconfig in staticConfig instead of a separate but equal one
2025-07-08 06:07:18 +02:00
Marc Nuri
f138b06ba8
refactor(kubernetes): force usage of Derived kubernetes (125)
...
refactor(kubernetes): force usage of Derived kubernetes
Prevents consumers of the kubernetes package the usage of
public methods on a non-derived config instance.
---
review(kubernetes): force usage of Derived kubernetes
Addresses comment by ardaguclu
2025-06-18 06:46:05 +02:00
Marc Nuri
7e10e82a3a
feat(output): table output to minimize resource list verbosity
...
A new configuration options is available: `--list-output`
There are two modes available:
- `yaml`: current default (will be changed in subsequent PR), which returns a multi-document YAML
- `table`: returns a plain-text table as created by the kube-api server when requested with
`Accept: application/json;as=Table;v=v1;g=meta.k8s.io`
Additional logic has been added to the table format to include the apiVersion and kind.
This is not returned by the server, kubectl doesn't include this either.
However, this is extremely handy for the LLM when using the generic resource tools.
2025-06-12 13:26:40 +02:00
Marc Nuri
155fe6847f
feat(output): configurable output architecture
2025-06-11 12:13:23 +02:00
Marc Nuri
b4928f8230
refactor(helm): adapt Helm contribution to project structure
2025-05-10 07:04:30 +02:00
Andre Dietisheim
bcd7712d30
fix: use KUBECONFIG or explicitly given kubeconfig file ( #67 )
...
Signed-off-by: Andre Dietisheim <adietish@redhat.com >
2025-05-05 14:44:14 +02:00
Marc Nuri
fa5bb81fe5
feat(kubernetes): added --kubeconfig flag option
2025-04-19 10:01:41 +02:00
Marc Nuri
bf552fe14b
fix: ignore config view flatten errors (not available files, etc.)
2025-03-27 06:59:47 +01:00
Marc Nuri
50277ce954
feat: configuration minification is optional
2025-03-27 06:50:14 +01:00
Marc Nuri
32b388aab3
feat: configuration view works in cluster
2025-03-21 14:57:41 +01:00
Marc Nuri
f591e2b06b
feat(kubernetes): pods_get for explicit or nil namespace
2025-02-17 08:52:22 +01:00
Marc Nuri
183f72522c
feat: use clientcmd instead of kubectl to minimize binary size
2025-02-17 05:40:01 +01:00
Marc Nuri
80488ef6ee
feat(resources): initial support for resource listing
2025-02-13 16:06:06 +01:00