PalenaUI
A PalenaUI deploys a LibreChat instance with MongoDB and optional MeiliSearch, wired to a PalenaGateway as its LLM backend. It can also register one or more PalenaMCPServer instances as tool endpoints.
Short name: puiAPI group: operator.palena.ai/v1alpha1Scope: Namespaced
spec
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
gatewayRef | LocalObjectReference | Yes | — | Target PalenaGateway. |
mcpServerRefs | []LocalObjectReference | No | — | Attach one or more PalenaMCPServer instances. |
replicas | int32 | Yes | 1 | LibreChat Deployment replicas. |
image | ImageSpec | No | — | Override LibreChat image. |
branding | BrandingSpec | No | — | Custom title/description/logo. |
mongodb | MongoDBSpec | No | — | Managed or external MongoDB. |
meiliSearch | MeiliSearchSpec | No | — | MeiliSearch deployment toggle. |
auth | AuthSpec | No | — | OIDC / signup configuration. |
ingress | IngressSpec | No | — | Ingress configuration. |
route | RouteSpec | No | — | OpenShift Route configuration. |
resources | corev1.ResourceRequirements | No | — | LibreChat pod resources. |
BrandingSpec
| Field | Type | Description |
|---|---|---|
appTitle | string | LibreChat window title. |
appDescription | string | Hero/sub-title copy shown in the UI. |
logoConfigMapRef | LocalObjectReference | ConfigMap containing a custom logo.svg. |
MongoDBSpec
Exactly one of managed or external should be set. Omitting both defaults to managed.
| Field | Type | Default | Description |
|---|---|---|---|
managed.storageSize | string | 10Gi | PVC size. |
managed.storageClass | string | — | Optional StorageClass override. |
external.uriSecretRef | SecretKeyRef | — | External Mongo URI secret. |
MeiliSearchSpec
| Field | Type | Default | Description |
|---|---|---|---|
enabled | bool | true | Deploy MeiliSearch alongside LibreChat. |
storageSize | string | 5Gi | PVC size. |
storageClass | string | — | Optional StorageClass. |
AuthSpec
| Field | Type | Description |
|---|---|---|
oidc | OIDCSpec | OIDC provider configuration. |
disableSignup | bool | Disable public signups. |
status
| Field | Type | Description |
|---|---|---|
ready | bool | Overall readiness. |
endpoint | string | Resolved LibreChat URL. |
gatewayEndpoint | string | Resolved gateway URL used by LibreChat. |
registeredMCPServers | []string | MCP endpoints currently wired in. |
mongodb.ready | bool | MongoDB readiness. |
meiliSearch.ready | bool | MeiliSearch readiness. |
conditions | []metav1.Condition | Standard conditions (GatewayReady, MongoDBReady, MeiliSearchReady, ConfigGenerated, Ready). |
Print columns
Ready, Endpoint, Age.
Example
yaml
apiVersion: operator.palena.ai/v1alpha1
kind: PalenaUI
metadata:
name: chat
namespace: palena
spec:
gatewayRef:
name: production
mcpServerRefs:
- name: websearch
replicas: 2
branding:
appTitle: Acme AI
appDescription: Internal AI assistant for Acme employees
mongodb:
managed:
storageSize: 20Gi
meiliSearch:
enabled: true
auth:
disableSignup: true
oidc:
enabled: true
issuer: https://auth.example.com/realms/acme
clientCredentials:
name: librechat-oidc
key: clientSecret
ingress:
enabled: true
host: chat.example.com
className: nginx
tls:
enabled: true
certManager:
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer