OLSConfig CR requires manual update of MCP server configuration before upgrading OpenShift Lightspeed Operator to 1.0.10
Environment
- Red Hat OpenShift Container Platform 4.17+
- OpenShift Lightspeed Operator 1.0.9 with MCP servers configured
Issue
The MCP server configuration schema in the OLSConfig CR changed between OpenShift Lightspeed Operator 1.0.9 and 1.0.10. Users with MCP servers configured must manually update their OLSConfig CR before upgrading, otherwise the upgrade will fail.
My OLS operator upgrade fails with the CSV status below:
reason: RequirementsNotMet
message: Service account does not exist
When reviewing my installplan status (oc get installplan -n openshift-lightspeed -o jsonpath='{.items[*].status}' | jq), I can see the error below:
error validating existing CRs against new CRD's schema for "olsconfigs.ols.openshift.io":
updated validation is too restrictive: [].spec.mcpServers[0].url: Required value
Resolution
Perform prior to upgrade
- Remove the mcpServers section from the OLSConfig CR.
oc patch olsconfig cluster --type json -p '[{"op":"remove","path":"/spec/mcpServers"}]'
-
Proceed with the upgrade of the OLS operator to 1.0.10. The upgrade should now complete without schema validation errors.
-
After the new operator is running, re-add the MCP server configuration using the new format. For each server, url and timeout are now top-level fields. The streamableHTTP wrapper, enableSSE, and sseReadTimeout fields have been removed.
oc edit olsconfig cluster
Update the mcpServers section under spec (adjust values as needed):
mcpServers:
- name: my-mcp-server
url: 'http://my-mcp-server.example.svc.cluster.local:8085/mcp'
timeout: 5
If the upgrade has already failed
- Remove the mcpServers section from the OLSConfig CR:
oc patch olsconfig cluster --type json -p '[{"op":"remove","path":"/spec/mcpServers"}]'
- Delete the failed CSV and InstallPlans to allow OLM to retry:
oc delete csv lightspeed-operator.v1.0.10
oc delete installplan <install plan associated with lightspeed-operator.v1.0.10 >
- The subscription will automatically create a new InstallPlan and the upgrade should proceed. Verify the new operator is running:
oc get csv -n openshift-lightspeed-operator
- Once the operator shows Succeeded, re-add the MCP server configuration as described in step 3 under "Required action before upgrading".
Note: MCP servers are a Tech Preview feature.
Tracking: <This content is not included.https://issues.redhat.com/browse/OLS-2734>
Root Cause
What changed
In 1.0.9, MCP server settings were nested under a streamableHTTP key. In 1.0.10, since Streamable HTTP is the only supported transport, the structure was simplified and these fields moved to the top level.
Old format (1.0.9):
mcpServers:
- name: my-mcp-server
streamableHTTP:
url: 'http://my-mcp-server.example.svc.cluster.local:8085/mcp'
timeout: 5
enableSSE: false
sseReadTimeout: 10
New format (1.0.10):
mcpServers:
- name: my-mcp-server
url: 'http://my-mcp-server.example.svc.cluster.local:8085/mcp'
timeout: 5
Key differences:
urlis now a required top-level field (moved fromstreamableHTTP.url)timeoutis now a top-level field (moved fromstreamableHTTP.timeout)enableSSEandsseReadTimeoutfields are no longer supported and should be removed- The
streamableHTTPwrapper is no longer part of the schema
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.