Commit 2b36e40
committed
Add MCP server sidecar support to OpenStackClient
Adds the ability to run the rhos-mcps MCP server as a sidecar container
inside the openstackclient pod, exposed via a k8s Service. This allows
the OpenStackAssistant (Goose) to execute read-only OpenStack CLI
commands through the MCP protocol.
OpenStackClient changes:
- New MCPConfig struct (enabled, containerImage) on the CR spec
- When enabled, adds an mcp-server sidecar container sharing the same
clouds.yaml/secure.yaml credential mounts
- Controller creates a ConfigMap with rhos-mcps config (openstack
enabled, openshift disabled, allow_write: false)
- Controller creates a Service on port 8080 for the MCP endpoint
OpenStackAssistant changes:
- New MCPServerRef (name, url) and mcpServers field on GooseConfig
- Each MCP server is passed as MCP_SERVER_<name> env var to the pod
- Entrypoint script generates Goose streamable_http extension entries
from these env vars1 parent be3a685 commit 2b36e40
24 files changed
Lines changed: 881 additions & 38 deletions
File tree
- api
- assistant/v1beta1
- bases
- client/v1beta1
- core/v1beta1
- bindata/crds
- config
- crd/bases
- manifests/bases
- operator
- internal
- controller
- assistant
- client
- openstackassistant
- openstackclient
- openstack
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
55 | 75 | | |
56 | 76 | | |
57 | 77 | | |
| |||
70 | 90 | | |
71 | 91 | | |
72 | 92 | | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
73 | 97 | | |
74 | 98 | | |
75 | 99 | | |
76 | 100 | | |
77 | | - | |
78 | | - | |
79 | | - | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
80 | 104 | | |
81 | 105 | | |
82 | 106 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 29 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
| 56 | + | |
| 57 | + | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| |||
188 | 189 | | |
189 | 190 | | |
190 | 191 | | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
191 | 219 | | |
192 | 220 | | |
193 | 221 | | |
| |||
232 | 260 | | |
233 | 261 | | |
234 | 262 | | |
235 | | - | |
236 | 263 | | |
237 | 264 | | |
238 | 265 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
180 | 180 | | |
181 | 181 | | |
182 | 182 | | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
183 | 199 | | |
184 | 200 | | |
185 | 201 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13621 | 13621 | | |
13622 | 13622 | | |
13623 | 13623 | | |
| 13624 | + | |
| 13625 | + | |
| 13626 | + | |
| 13627 | + | |
| 13628 | + | |
| 13629 | + | |
13624 | 13630 | | |
13625 | 13631 | | |
13626 | 13632 | | |
| |||
19004 | 19010 | | |
19005 | 19011 | | |
19006 | 19012 | | |
| 19013 | + | |
| 19014 | + | |
19007 | 19015 | | |
19008 | 19016 | | |
19009 | 19017 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
| 202 | + | |
| 203 | + | |
202 | 204 | | |
203 | 205 | | |
204 | 206 | | |
| |||
439 | 441 | | |
440 | 442 | | |
441 | 443 | | |
| 444 | + | |
| 445 | + | |
442 | 446 | | |
443 | 447 | | |
444 | 448 | | |
| |||
643 | 647 | | |
644 | 648 | | |
645 | 649 | | |
| 650 | + | |
| 651 | + | |
646 | 652 | | |
647 | 653 | | |
648 | 654 | | |
| |||
859 | 865 | | |
860 | 866 | | |
861 | 867 | | |
| 868 | + | |
| 869 | + | |
862 | 870 | | |
863 | 871 | | |
864 | 872 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
38 | 50 | | |
39 | 51 | | |
40 | 52 | | |
| |||
67 | 79 | | |
68 | 80 | | |
69 | 81 | | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
70 | 88 | | |
71 | 89 | | |
72 | 90 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| 155 | + | |
155 | 156 | | |
156 | 157 | | |
157 | 158 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments