About GreenDoc - SUSEAI Demo Lab
GreenDoc is a SUSE AI demo-lab recipe for deploying a local AI stack on K3s with Rancher Fleet. It documents a Kubernetes MCP server example and connecting it to Open-WebUI to invoke tools from chat.
Key features
- 01K3s cluster setup
- 02Rancher Fleet deployment
- 03SUSE AI stack configuration
- 04MCPO server deployment
- 05Open-WebUI tool connection
Use cases
- 01Setting up a local SUSE AI demo
- 02Deploying the stack with Fleet
- 03Trying Kubernetes tools in Open-WebUI chat
MCP support
The demo deploys MCPO with the Kubernetes MCP server and shows how to connect Open-WebUI to its service to call tools.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEGreenDoc - SUSEAI Demo Lab
Author: Alessandro Festa
Rev. Number: v1.0
SUSE AI Demo enviroment is a simple document that is intended to describe how to implement a local lab to demonstrate capabilites of SUSE AI in the context of specific usecase If you are interested in understanding more what is SUSE AI please refer to http://suse.com/products/ai
The applications in this repo are pulled from the SUSE Application Collection https://apps.rancher.io/ check the documentation at https://docs.apps.rancher.io/ to learn more about AppCo
This GreenDoc is structured in the following way:
- Cluster setup
- Rancher Fleet setup (for automation of the GreenDoc)
- GreenDoc Configuration
- GreenDoc deployment
- Demo
Cluster Setup
For the purpose of this GreenDoc we'll use K3s.
Create namespaces used in the environment
kubectl create namespace cert-manager
kubectl create namespace suseai
Create secrets for namespaces
kubectl create secret docker-registry application-collection \
--docker-server=dp.apps.rancher.io \
--docker-username=<your registered account on appco> \
--docker-password=<INSERT YOUR TOKEN FROM APPCO> \
-n cert-manager
kubectl create secret docker-registry application-collection \
--docker-server=dp.apps.rancher.io \
--docker-username=<your registered account on appco>\
--docker-password=<INSERT YOUR TOKEN FROM APPCO> \
-n suseai
kubectl create secret docker-registry application-collection \
--docker-server=dp.apps.rancher.io \
--docker-username=<your registered account on appco> \
--docker-password=<INSERT YOUR TOKEN FROM APPCO> \
-n fleet-local
Use Rancher Application Collection for components
Deploy cert-manager helm chart
helm upgrade --install cert-manager \
oci://dp.apps.rancher.io/charts/cert-manager \
--version 1.17.1 \
-n cert-manager \
--create-namespace \
--set crds.enabled=true \
--set "global.imagePullSecrets[0].name"="application-collection"
Deploy Rancher Fleet
helm -n cattle-fleet-system install --create-namespace --wait \
fleet-crd https://github.com/rancher/fleet/releases/download/v0.12.0/fleet-crd-0.12.0.tgz
helm -n cattle-fleet-system install --create-namespace --wait \
fleet https://github.com/rancher/fleet/releases/download/v0.12.0/fleet-0.12.0.tgz
At this point we are ready to pickup the greendoc recipe
Deploy a minimal SUSEAI Stack with Rancher Fleet
Let's create a minimal github configuration and save it as suseai.yaml
apiVersion: fleet.cattle.io/v1alpha1
kind: GitRepo
metadata:
name: suseai
# This namespace is special and auto-wired to deploy to the local cluster
namespace: fleet-local
spec:
repo: https://github.com/alessandro-festa/bundles
helmSecretName: basic-auth-secret
ociRegistry:
authSecretName: application-collection
branch: main
paths:
- k8s-assistant
and add a generic secret for basic authentication
kubectl create secret generic basic-auth-secret \--from-literal=username=<your registered account on appco> \
--from-literal=password=<INSERT YOUR TOKEN FROM APPCO> \
-n fleet-local
Now let's execute the config with kubectl
kubectl apply -f rancher-config.yaml
You should have the SUSE AI stack plus an mcpo server installed. We used as example the kubernetes mcp server from https://github.com/manusa/kubernetes-mcp-server
Let's check that!
Checkin MCPO Server
Open a browser and go to http://localhost:8000 you should see an image similar to the one below

Click on the kubernetes you should see a similar page

Let's authorize and try a simple query
Click on the Authorize button and type top-secretas token

Now let's move to a test like get node informations. Use the try out option and check the results.

It works!
Configure Open-WebUI
We now need to configure OWUI to use the MCP server. Last release of OWUI has a new feature names "Tools Servers".
Let's open the admin settings

Move to Tools

Add the mcp server connection
`http://mcp-service.suseai.svc.cluster.local:8000/kubernetes``

if everything goes right you shouild see a succesfull message

Now let's configure the model to use the tool
First move to models and select the model you want to use with through the pen icon. Second check two parameters as per images below

Switch Function Calling to `native``

And finally select the `tool``

Click save and try it ... you should see a tool in the chat (see the number 1 in the picture?)

Ask something like "list the pods in the namespace suseai"
without and with the tool check the difference!


Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.