IBM Content Cortex 26 ships an AI layer – a Reasoning Service and a Core MCP Server – that lets any AI runtime work with governed content. The good news for existing FileNet shops: you don’t have to rebuild your platform to try it. This walkthrough bolts the AI Services onto an already-running CPE, uses watsonx.ai in IBM Cloud as the LLM, and runs everything on a single, modest RHEL VM. It’s written for ECM folks who know FileNet but are newer to Kubernetes.

The one thing to verify first

Everything here is straightforward except a single integration point: the content connection to your existing CPE. The AI Services’ auto-migrate convenience only applies to a container-based CPE in the same namespace. Because your CPE is external/classically installed, you fill that connection in by hand – and you should confirm this configuration is supported for your exact iFix level before relying on it beyond a lab.

1. What you need before you start

  • An IBM Entitlement Key from the IBM Container Library – the password for registry cp.icr.io (user cp).
  • A watsonx.ai service on IBM Cloud: a Project ID, an IBM Cloud API key, the regional endpoint (e.g. Frankfurt eu-de), and a validated model ID from IBM’s Content Cortex model list.
  • Your existing CPE connection details: CPE/P8 URL and port, P8 domain, target object store, and a least-privilege service account.
  • Your existing ICN identity provider (the same OIDC/OAuth IdP), so tokens line up for the AI Agent plug-in.

VM sizing

Because the CPE is external and the LLM inference runs in IBM Cloud, this VM stays small – no GPU, no CPE footprint:

ComponentvCPURAMDisk (SSD)
AI Services (Reasoning + MCP Server) + k3s4–616–24 GB60–80 GB

Outbound HTTPS is required to *.ml.cloud.ibm.com / *.dataplatform.cloud.ibm.com (watsonx), iam.cloud.ibm.com (token exchange), cp.icr.io (image pull), plus reachability to your CPE.

Why RHEL

For the containerised AI Services, IBM certifies the Kubernetes platform, not really the host OS – the images are UBI-based. So the choice is about ecosystem fit, and Red Hat is IBM’s primary, best-documented Content Cortex path (and consistent with OpenShift if you go to production later). For a lab, a free Red Hat Developer Subscription works, or a RHEL-compatible rebuild such as Rocky or AlmaLinux. SUSE + Rancher/RKE2 is a valid Certified-Kubernetes route, but off the beaten path for IBM ECM – pick it only if the target customer already runs it.

2. Prepare the RHEL VM

RHEL-specific prep for k3s

Install k3s (single-node; bundles containerd + local-path storage)

Why k3s here

k3s is a CNCF-certified Kubernetes distribution that ships containerd, an ingress controller and a working local-path StorageClass out of the box. That last part removes the biggest first-timer hurdle: dynamic storage provisioning for the PersistentVolumeClaims the AI Services create.

Tools

  • Helm v4.x – required (install guide).
  • Python 3.12+ – for the DevOps scripts.
  • kubectl – provided by k3s.

3. Prepare the cluster

Chart names

Take chart names from the helm search repo output – IBM names them slightly differently between GA and iFix releases.

4. Get the assets and install the operators

Install only what the AI Services need – no content operator, since your CPE is external. Required: the AI Services operator, plus License Service and Usage Metering.

If validation asks for the content operator

If deploy_operator.py or prerequisites.py validate reports that the shared content operator/CRDs are also required, install the content operator too – but without creating a Content CR. It can be present without deploying a CPE.

5. Configure the AI Services (watsonx + existing CPE + IdP)

Generate the property files, then edit them – don’t hand-write the CRs.

Edit these files in propertyFile/:

FilePurposeFor this setup
ccx-deployment.tomlGeneral deployment settingsnamespace, endpoints, profile
aiservices_providers.tomlLLM provider + authwatsonx.ai (see below)
aiservices_integration.tomlContent connectionyour existing CPE – the verify point
ccx-identity_provider.tomlIdentity provider (OIDC/OAuth)same IdP as your ICN

Test CPE reachability from inside the cluster first

watsonx.ai provider (illustrative)

The authoritative file is what gather generates; this shows which values to have ready and roughly where they go.

Existing CPE connection (illustrative)

Then generate and validate:

6. Deploy and verify

7. Use it

Talk to the MCP Server directly

The Core MCP Server exposes content operations (search, classification, extraction, redaction, legal hold) over the Model Context Protocol. Any MCP client can connect – Claude, Copilot, watsonx Orchestrate, ChatGPT.

Register that endpoint in your MCP client (URL + auth token per your IdP), then issue a natural-language request that triggers a content operation and watch the pod logs to trace: MCP tool-call → CPE → watsonx reasoning.

AI Agent chat inside your existing ICN

To get the natural-language chat in the UI, register the AI Agent plug-in in your existing Content Navigator. That’s an ICN-side step (plug-in registration in the admin desktop), not a container action.

8. Troubleshooting

  • ImagePullBackOff – wrong/expired entitlement key, or secret missing in the namespace.
  • PVC Pending – no default StorageClass; with k3s local-path should be present.
  • watsonx 401 / timeout – API key, Project ID, region URL, or firewall egress.
  • Content connection fails – CPE URL/port, object store, service account, or cluster-to-CPE reachability.
  • CR stays “not ready” – describe the CR and read the AI Services operator logs.