API Reference¶
Packages¶
langop.io/v1alpha1¶
Package v1alpha1 contains API Schema definitions for the language v1alpha1 API group
Resource Types¶
AgentNetworkPolicies¶
AgentNetworkPolicies defines user-supplied ingress and egress rules for an agent workload. The shape mirrors the native Kubernetes NetworkPolicySpec so that rules can be copied verbatim from real NetworkPolicy manifests.
Appears in: - LanguageAgentSpec - LanguageClusterSpec - LanguageToolSpec
| Field | Description | Default | Validation |
|---|---|---|---|
ingress NetworkIngressRule array |
Ingress rules — each entry allows traffic into the workload from the listed sources. | Optional: {} |
|
egress NetworkEgressRule array |
Egress rules — each entry allows traffic from the workload to the listed destinations. | Optional: {} |
AgentPort¶
AgentPort describes a single network port that an agent container exposes.
Appears in: - LanguageAgentRuntimeSpec - LanguageAgentSpec
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
Name uniquely identifies this port within the agent (e.g., "web", "ws"). Used as the Service port name; must conform to Kubernetes port-name rules. |
MaxLength: 15 Pattern: ^[a-z][a-z0-9-]*$ Required: {} |
|
port integer |
Port is the port number the container listens on. | Maximum: 65535 Minimum: 1 Required: {} |
|
protocol Protocol |
Protocol is the transport protocol. Defaults to TCP. | TCP | Enum: [TCP UDP SCTP] Optional: {} |
expose boolean |
Expose controls whether ingress/HTTPRoute routes to this port. At most one port should have expose: true; if none, the first port is used. |
Optional: {} |
ClusterCapacitySpec¶
ClusterCapacitySpec declares hard limits enforced via a ResourceQuota in the cluster's namespace.
Appears in: - LanguageClusterSpec
| Field | Description | Default | Validation |
|---|---|---|---|
maxAgents integer |
MaxAgents is the maximum number of LanguageAgent objects allowed. | Optional: {} |
|
maxModels integer |
MaxModels is the maximum number of LanguageModel objects allowed. | Optional: {} |
|
maxTools integer |
MaxTools is the maximum number of LanguageTool objects allowed. | Optional: {} |
|
maxPersonas integer |
MaxPersonas is the maximum number of LanguagePersona objects allowed. | Optional: {} |
|
maxCPU Quantity |
MaxCPU is the aggregate CPU limit for all pods in the cluster namespace. Maps to limits.cpu in the namespace ResourceQuota. Example: "4", "2500m" |
Optional: {} |
|
maxMemory Quantity |
MaxMemory is the aggregate memory limit for all pods in the cluster namespace. Maps to limits.memory in the namespace ResourceQuota. Example: "8Gi", "512Mi" |
Optional: {} |
ClusterCapacityStatus¶
ClusterCapacityStatus reports observed resource usage in the cluster's namespace.
Appears in: - LanguageClusterStatus
| Field | Description | Default | Validation |
|---|---|---|---|
agentCount integer |
AgentCount is the number of LanguageAgent objects in the cluster namespace. | ||
modelCount integer |
ModelCount is the number of LanguageModel objects in the cluster namespace. | ||
toolCount integer |
ToolCount is the number of LanguageTool objects in the cluster namespace. | ||
personaCount integer |
PersonaCount is the number of LanguagePersona objects in the cluster namespace. | ||
totalCPULimits Quantity |
TotalCPULimits is the sum of limits.cpu across all agent pod specs. | Optional: {} |
|
totalMemoryLimits Quantity |
TotalMemoryLimits is the sum of limits.memory across all agent pod specs. | Optional: {} |
DeploymentSpec¶
DeploymentSpec groups Kubernetes deployment configuration that is common across LanguageAgent, LanguageTool, and LanguageCluster gateway deployments. All fields are optional; controllers only read the fields relevant to their resource.
Appears in: - GatewaySpec - LanguageAgentRuntimeSpec - LanguageAgentSpec - LanguageToolSpec
| Field | Description | Default | Validation |
|---|---|---|---|
replicas integer |
Replicas is the number of pod replicas to run. | Minimum: 0 Optional: {} |
|
imagePullPolicy PullPolicy |
ImagePullPolicy defines when to pull the container image. | Enum: [Always Never IfNotPresent] Optional: {} |
|
imagePullSecrets LocalObjectReference array |
ImagePullSecrets is a list of references to secrets for pulling images. | Optional: {} |
|
env EnvVar array |
Env contains environment variables for the container. | Optional: {} |
|
envFrom EnvFromSource array |
EnvFrom sources to populate environment variables. | Optional: {} |
|
resources ResourceRequirements |
Resources defines compute resource requirements. | Optional: {} |
|
nodeSelector object (keys:string, values:string) |
NodeSelector is a selector which must match a node's labels. | Optional: {} |
|
affinity Affinity |
Affinity defines pod affinity and anti-affinity rules. | Optional: {} |
|
tolerations Toleration array |
Tolerations allow pods to schedule onto nodes with matching taints. | Optional: {} |
|
topologySpreadConstraints TopologySpreadConstraint array |
TopologySpreadConstraints describes how pods should spread across topology domains. | Optional: {} |
|
serviceAccountName string |
ServiceAccountName is the name of the ServiceAccount to use. | Optional: {} |
|
securityContext PodSecurityContext |
SecurityContext holds pod-level security attributes. | Optional: {} |
|
volumeMounts VolumeMount array |
VolumeMounts to mount into the container. | Optional: {} |
|
volumes Volume array |
Volumes to attach to the pod. | Optional: {} |
|
podAnnotations object (keys:string, values:string) |
PodAnnotations are annotations to add to the Pods. | Optional: {} |
|
podLabels object (keys:string, values:string) |
PodLabels are additional labels to add to the Pods. | Optional: {} |
|
initContainers Container array |
InitContainers are additional init containers injected before the main container starts. | Optional: {} |
|
livenessProbe Probe |
LivenessProbe defines the liveness probe for the container. | Optional: {} |
|
readinessProbe Probe |
ReadinessProbe defines the readiness probe for the container. | Optional: {} |
|
startupProbe Probe |
StartupProbe defines the startup probe for the container. | Optional: {} |
|
command string array |
Command overrides the container entrypoint. | Optional: {} |
|
args string array |
Args overrides the container command arguments. | Optional: {} |
|
serviceType ServiceType |
ServiceType specifies the type of Service to create (ClusterIP, NodePort, LoadBalancer). | Enum: [ClusterIP NodePort LoadBalancer] Optional: {} |
|
serviceAnnotations object (keys:string, values:string) |
ServiceAnnotations are annotations to add to the Service. | Optional: {} |
GatewaySpec¶
GatewaySpec configures the shared LiteLLM gateway deployed per LanguageCluster.
Appears in: - LanguageClusterSpec
| Field | Description | Default | Validation |
|---|---|---|---|
deployment DeploymentSpec |
Deployment configures the Kubernetes deployment for the gateway pod. | Optional: {} |
IngressConfig¶
IngressConfig defines ingress configuration
Appears in: - LanguageClusterSpec
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean |
Enabled controls whether an Ingress is created for the gateway. Defaults to true when cluster.spec.domain is set. |
Optional: {} |
|
tls IngressTLSConfig |
TLS configuration for agent webhooks | Optional: {} |
|
className string |
ClassName specifies the IngressClass to use (maps to spec.ingressClassName on the Ingress object). | Optional: {} |
IngressTLSConfig¶
IngressTLSConfig defines TLS configuration
Appears in: - IngressConfig
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean |
Enabled controls whether TLS is enabled for webhooks. Defaults to true; set to false to disable TLS. |
true | Optional: {} |
secretName string |
SecretName is the name of an existing TLS secret (bring-your-own certificate). When set, cert-manager integration is skipped and this secret is used directly. |
Optional: {} |
LanguageAgent¶
LanguageAgent is the Schema for the languageagents API
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
langop.io/v1alpha1 |
||
kind string |
LanguageAgent |
||
metadata ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
spec LanguageAgentSpec |
|||
status LanguageAgentStatus |
LanguageAgentRuntime¶
LanguageAgentRuntime is the Schema for the languageagentruntimes API. It defines a reusable preset for LanguageAgent deployments, analogous to an IngressClass. Admins create runtimes; users reference them via spec.runtime on a LanguageAgent.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
langop.io/v1alpha1 |
||
kind string |
LanguageAgentRuntime |
||
metadata ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
spec LanguageAgentRuntimeSpec |
LanguageAgentRuntimeSpec¶
LanguageAgentRuntimeSpec defines a preset configuration for LanguageAgent deployments. All fields are optional; unset fields leave the agent's own spec in effect. When a LanguageAgent references a runtime, the runtime's fields are merged as defaults: scalars fill in zeros/nils (agent wins if set), lists are runtime-first then agent-appended.
Appears in: - LanguageAgentRuntime
| Field | Description | Default | Validation |
|---|---|---|---|
image string |
Image is the default container image for agents using this runtime. Agents may override this. When a runtime is referenced, spec.image on the agent is optional. |
Optional: {} |
|
ports AgentPort array |
Ports defines default ports for agents using this runtime. Replace semantics: when the agent defines spec.ports, runtime ports are ignored entirely. |
Optional: {} |
|
workspace WorkspaceSpec |
Workspace provides default size, storageClass, and mountPath for the agent's workspace. Workspace storage is always provisioned; this presets its parameters. Agents may override individual workspace fields. |
Optional: {} |
|
deployment DeploymentSpec |
Deployment provides default Kubernetes pod and container configuration. Scalars (args, command, resources, probes, etc.) are used when the agent has none set. Lists (initContainers, env, volumes, volumeMounts, envFrom) are runtime-first, agent-appended. |
Optional: {} |
|
openclaw OpenclawConfig |
Openclaw provides default openclaw credential configuration for agents using this runtime. When set, the operator auto-generates OPENCLAW_GATEWAY_TOKEN per agent unless overridden. |
Optional: {} |
|
opencode OpencodeConfig |
Opencode provides default opencode credential configuration for agents using this runtime. When set, the operator auto-generates OPENCODE_SERVER_PASSWORD per agent unless overridden. |
Optional: {} |
LanguageAgentSpec¶
LanguageAgentSpec defines the desired state of LanguageAgent
Appears in: - LanguageAgent
| Field | Description | Default | Validation |
|---|---|---|---|
runtime string |
Runtime is the name of a LanguageAgentRuntime that provides preset configuration (image, port, init containers, env vars, probes, etc.). When set, spec.image is optional; the runtime provides a default. |
Optional: {} |
|
image string |
Image is the container image to run for this agent. Required unless spec.runtime is set (the runtime provides a default image). |
Pattern: ^([a-z0-9]+([._-][a-z0-9]+)*\/)*[a-z0-9]+([._-][a-z0-9]+)*(:[a-z0-9]+([._-][a-z0-9]+)*)?$ Optional: {} |
|
models ModelReference array |
Models is a list of LanguageModel references this agent can use | Optional: {} |
|
tools ToolReference array |
Tools is a list of LanguageTool references available to this agent | Optional: {} |
|
persona string |
Persona is the name of a LanguagePersona this agent uses | Optional: {} |
|
instructions string |
Instructions provides system instructions for the agent. Delivered as the top-level "instructions" field in /etc/agent/config.yaml. |
Optional: {} |
|
workspace WorkspaceSpec |
Workspace defines persistent storage for the agent | Optional: {} |
|
networkPolicies AgentNetworkPolicies |
NetworkPolicies defines ingress and egress rules for this agent. Rules mirror the native Kubernetes NetworkPolicy shape. |
Optional: {} |
|
ports AgentPort array |
Ports defines all network ports this agent exposes. At most one entry should have expose: true (the ingress target); if none are marked, the first port is used for ingress routing. Defaults to a single HTTP port on 8080 when not set. |
Optional: {} |
|
deployment DeploymentSpec |
Deployment groups Kubernetes-specific pod and container configuration. | Optional: {} |
|
opencode OpencodeConfig |
Opencode holds configuration specific to the opencode runtime. Only effective when spec.runtime is "opencode". |
Optional: {} |
|
openclaw OpenclawConfig |
Openclaw holds configuration specific to the openclaw runtime. Only effective when spec.runtime is "openclaw". |
Optional: {} |
LanguageAgentStatus¶
LanguageAgentStatus defines the observed state of LanguageAgent
Appears in: - LanguageAgent
| Field | Description | Default | Validation |
|---|---|---|---|
phase string |
Phase represents the current phase of the agent | Enum: [Pending Running Failed] Optional: {} |
|
conditions Condition array |
Conditions represent the latest available observations of the agent's state | Optional: {} |
|
activeReplicas integer |
ActiveReplicas is the number of agent pods currently running | Optional: {} |
|
readyReplicas integer |
ReadyReplicas is the number of agent pods ready | Optional: {} |
|
uuid string |
UUID is a unique identifier for this agent instance Not used for webhook routing; webhooks are routed via agent name (e.g., |
Optional: {} |
|
webhookURLs string array |
WebhookURLs contains the URLs where this agent can receive webhooks | Optional: {} |
|
observedGeneration integer |
ObservedGeneration is the most recent generation observed by the controller. It corresponds to the metadata.generation of the LanguageAgent at the time the controller last processed it. Watchers can use this to detect when the status reflects a stale version of the spec. |
Optional: {} |
LanguageCluster¶
LanguageCluster is the Schema for the languageclusters API
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
langop.io/v1alpha1 |
||
kind string |
LanguageCluster |
||
metadata ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
spec LanguageClusterSpec |
|||
status LanguageClusterStatus |
LanguageClusterSpec¶
LanguageClusterSpec defines the desired state of LanguageCluster
Appears in: - LanguageCluster
| Field | Description | Default | Validation |
|---|---|---|---|
domain string |
Domain is the base domain for the cluster and agent webhook routing. Agent webhooks will be accessible at Example: "ai.theryans.io" results in webhooks like "my-agent.ai.theryans.io" |
Optional: {} |
|
ingress IngressConfig |
Ingress defines ingress configuration for the cluster | Optional: {} |
|
networkPolicies AgentNetworkPolicies |
NetworkPolicies defines ingress and egress rules for agents in this cluster. Rules mirror the native Kubernetes NetworkPolicy shape. |
Optional: {} |
|
gateway GatewaySpec |
Gateway configures the shared LiteLLM gateway deployed per cluster | Optional: {} |
|
capacity ClusterCapacitySpec |
Capacity declares hard limits enforced via a ResourceQuota in the cluster's namespace. When set, the controller creates a ResourceQuota named "langop-quota". When unset, any existing "langop-quota" is deleted. |
Optional: {} |
LanguageClusterStatus¶
LanguageClusterStatus defines the observed state
Appears in: - LanguageCluster
| Field | Description | Default | Validation |
|---|---|---|---|
phase string |
Phase of the cluster | Enum: [Pending Ready Failed] |
|
conditions Condition array |
Optional: {} |
||
gatewayEndpoint string |
GatewayEndpoint is the in-cluster URL for the shared LiteLLM gateway | Optional: {} |
|
gatewayReady boolean |
GatewayReady indicates whether the shared gateway Deployment is available. Pointer distinguishes "not yet reconciled" (nil) from "known not ready" (false). |
Optional: {} |
|
capacity ClusterCapacityStatus |
Capacity reports observed resource usage in this cluster's namespace. | Optional: {} |
|
observedGeneration integer |
ObservedGeneration is the most recent generation observed by the controller. It corresponds to the metadata.generation of the LanguageCluster at the time the controller last processed it. Watchers can use this to detect when the status reflects a stale version of the spec. |
Optional: {} |
LanguageModel¶
LanguageModel is the Schema for the languagemodels API
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
langop.io/v1alpha1 |
||
kind string |
LanguageModel |
||
metadata ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
spec LanguageModelSpec |
|||
status LanguageModelStatus |
LanguageModelSpec¶
LanguageModelSpec defines the desired state of LanguageModel
Appears in: - LanguageModel
| Field | Description | Default | Validation |
|---|---|---|---|
provider string |
Provider specifies the LLM provider type | Enum: [openai anthropic openai-compatible azure bedrock vertex custom] Required: {} |
|
modelName string |
ModelName is the specific model identifier (e.g., "gpt-4", "claude-3-opus") | MinLength: 1 Required: {} |
|
endpoint string |
Endpoint is the API endpoint URL (required for openai-compatible, azure, custom) | Optional: {} |
|
apiKeySecretRef SecretReference |
APIKeySecretRef references a secret containing the API key | Optional: {} |
|
rateLimits RateLimitSpec |
RateLimits defines rate limiting configuration | Optional: {} |
|
timeout string |
Timeout specifies request timeout duration (e.g., "5m", "30s") | 5m | Pattern: ^[0-9]+(ns\|us\|µs\|ms\|s\|m\|h)$ Optional: {} |
LanguageModelStatus¶
LanguageModelStatus defines the observed state of LanguageModel
Appears in: - LanguageModel
| Field | Description | Default | Validation |
|---|---|---|---|
observedGeneration integer |
ObservedGeneration reflects the generation of the most recently observed LanguageModel | Optional: {} |
|
phase string |
Phase represents the current phase of the model | Enum: [Ready] Optional: {} |
|
conditions Condition array |
Conditions represent the latest available observations of the model's state | Optional: {} |
|
message string |
Message provides human-readable details about the current state | Optional: {} |
LanguagePersona¶
LanguagePersona is the Schema for the languagepersonas API
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
langop.io/v1alpha1 |
||
kind string |
LanguagePersona |
||
metadata ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
spec LanguagePersonaSpec |
|||
status LanguagePersonaStatus |
LanguagePersonaSpec¶
LanguagePersonaSpec defines the desired state of LanguagePersona
Appears in: - LanguagePersona
| Field | Description | Default | Validation |
|---|---|---|---|
tone string |
Tone describes the agent's communication style e.g. "professional", "concise and direct", "warm and encouraging" |
Optional: {} |
|
personality string |
Personality describes the agent's character and behavioural traits e.g. "curious and methodical, always explains reasoning step by step" |
Optional: {} |
|
expertise string |
Expertise describes the agent's domain knowledge and skills e.g. "senior software engineer specialising in distributed systems and Go" |
Optional: {} |
LanguagePersonaStatus¶
LanguagePersonaStatus defines the observed state of LanguagePersona
Appears in: - LanguagePersona
| Field | Description | Default | Validation |
|---|---|---|---|
observedGeneration integer |
ObservedGeneration reflects the generation of the most recently observed LanguagePersona | Optional: {} |
|
phase string |
Phase represents the current phase | Enum: [Ready] Optional: {} |
|
conditions Condition array |
Conditions represent the latest available observations of the persona's state | Optional: {} |
LanguageTool¶
LanguageTool is the Schema for the languagetools API
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
langop.io/v1alpha1 |
||
kind string |
LanguageTool |
||
metadata ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
spec LanguageToolSpec |
|||
status LanguageToolStatus |
LanguageToolSpec¶
LanguageToolSpec defines the desired state of LanguageTool
Appears in: - LanguageTool
| Field | Description | Default | Validation |
|---|---|---|---|
image string |
Image is the container image to run for this tool | MinLength: 1 Required: {} |
|
type string |
Type specifies the tool protocol type. Only "mcp" is currently implemented. | mcp | Enum: [mcp] |
deploymentMode string |
DeploymentMode specifies how this tool should be deployed - "service": Deployed as a standalone Deployment+Service (default, shared across agents) - "sidecar": Deployed as a sidecar container in each agent pod (dedicated, with workspace access) |
service | Enum: [service sidecar] Optional: {} |
port integer |
Port is the port the tool listens on | 8080 | Maximum: 65535 Minimum: 1 |
deployment DeploymentSpec |
Deployment groups Kubernetes-specific pod and container configuration. | Optional: {} |
|
networkPolicies AgentNetworkPolicies |
NetworkPolicies defines ingress and egress rules for this tool. Rules mirror the native Kubernetes NetworkPolicy shape. |
Optional: {} |
LanguageToolStatus¶
LanguageToolStatus defines the observed state of LanguageTool
Appears in: - LanguageTool
| Field | Description | Default | Validation |
|---|---|---|---|
observedGeneration integer |
ObservedGeneration reflects the generation of the most recently observed LanguageTool | Optional: {} |
|
phase string |
Phase represents the current phase of the tool (Pending, Running, Failed, Updating) | Enum: [Pending Running Failed Updating] Optional: {} |
|
conditions Condition array |
Conditions represent the latest available observations of the tool's state | Optional: {} |
|
endpoint string |
Endpoint is the service endpoint where the tool is accessible | Optional: {} |
|
toolSchemas ToolSchema array |
ToolSchemas contains the complete MCP tool schemas discovered from this service | Optional: {} |
|
readyReplicas integer |
ReadyReplicas is the number of pods ready and passing health checks | Optional: {} |
|
availableReplicas integer |
AvailableReplicas is the number of pods targeted by this LanguageTool with at least one available condition | Optional: {} |
|
updatedReplicas integer |
UpdatedReplicas is the number of pods targeted by this LanguageTool that have the desired spec | Optional: {} |
|
unavailableReplicas integer |
UnavailableReplicas is the number of pods targeted by this LanguageTool that are unavailable | Optional: {} |
ModelReference¶
ModelReference references a LanguageModel
Appears in: - LanguageAgentSpec
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
Name is the name of the LanguageModel | MaxLength: 63 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ Required: {} |
|
role string |
Role defines the purpose of this model — a hint for the agent runtime for model selection (e.g. prefer role=primary for general calls, role=reasoning for chain-of-thought). The operator does not enforce routing by role; it is surfaced in the agent config (agent.json). |
primary | Enum: [primary fallback reasoning tool-calling summarization] Optional: {} |
priority integer |
Priority for model selection — a hint for the agent runtime (lower value = higher priority). The operator does not enforce priority; it is surfaced in the agent config (agent.json). |
Optional: {} |
NetworkEgressRule¶
NetworkEgressRule is one egress rule: zero or more destination peers, zero or more ports. Mirrors networkingv1.NetworkPolicyEgressRule.
Appears in: - AgentNetworkPolicies
| Field | Description | Default | Validation |
|---|---|---|---|
to NetworkPeer array |
To lists the destinations this workload is allowed to reach. | Optional: {} |
|
ports NetworkPort array |
Ports lists the destination ports to allow. | Optional: {} |
NetworkIngressRule¶
NetworkIngressRule is one ingress rule: zero or more source peers, zero or more ports. Mirrors networkingv1.NetworkPolicyIngressRule.
Appears in: - AgentNetworkPolicies
| Field | Description | Default | Validation |
|---|---|---|---|
from NetworkPeer array |
From lists the sources allowed to send traffic to this workload. | Optional: {} |
|
ports NetworkPort array |
Ports lists the ports on which to allow incoming traffic. | Optional: {} |
NetworkPeer¶
NetworkPeer defines the source/destination of network traffic
Appears in: - NetworkEgressRule - NetworkIngressRule
| Field | Description | Default | Validation |
|---|---|---|---|
group string |
Group selects pods with matching langop.io/group label Used to allow communication with specific labeled resources |
Optional: {} |
|
cidr string |
CIDR block | Optional: {} |
|
dns string array |
DNS names (supports wildcards with ) Examples: "api.openai.com", ".googleapis.com" |
Optional: {} |
|
service ServiceReference |
Kubernetes service reference | Optional: {} |
|
namespaceSelector LabelSelector |
Namespace selector (for cross-namespace rules) | Optional: {} |
|
podSelector LabelSelector |
Pod selector (within namespace) | Optional: {} |
NetworkPort¶
NetworkPort defines a port and protocol
Appears in: - NetworkEgressRule - NetworkIngressRule
| Field | Description | Default | Validation |
|---|---|---|---|
protocol string |
Protocol (TCP, UDP, SCTP) | TCP | Enum: [TCP UDP SCTP] Optional: {} |
port integer |
Port number | Maximum: 65535 Minimum: 1 |
OpenclawConfig¶
OpenclawConfig holds configuration specific to the openclaw runtime. Effective only when spec.runtime is "openclaw".
Appears in: - LanguageAgentRuntimeSpec - LanguageAgentSpec
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean |
Enabled activates openclaw credential management for this agent. Set to true in a LanguageAgentRuntime to trigger auto-generation of OPENCLAW_GATEWAY_TOKEN without requiring any explicit config on the LanguageAgent. |
Optional: {} |
|
token string |
Token is the gateway authentication token (inline). The operator creates a managed Secret and injects it via envFrom. Mutually exclusive with TokenRef. |
Optional: {} |
|
tokenRef RuntimeSecretRef |
TokenRef references a Secret whose keys are injected via envFrom. The Secret must contain OPENCLAW_GATEWAY_TOKEN. Mutually exclusive with Token. |
Optional: {} |
OpencodeConfig¶
OpencodeConfig holds configuration specific to the opencode runtime. Effective only when spec.runtime is "opencode".
Appears in: - LanguageAgentRuntimeSpec - LanguageAgentSpec
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean |
Enabled activates opencode credential management for this agent. Set to true in a LanguageAgentRuntime to trigger auto-generation of credentials without requiring any explicit config on the LanguageAgent. |
Optional: {} |
|
username string |
Username for HTTP Basic Auth. Defaults to "opencode" if not set. Sets OPENCODE_SERVER_USERNAME in the agent container. |
Optional: {} |
|
password string |
Password is the HTTP Basic Auth password (inline). The operator creates a managed Secret and injects it via envFrom. Mutually exclusive with PasswordRef. |
Optional: {} |
|
passwordRef RuntimeSecretRef |
PasswordRef references a Secret whose keys are injected via envFrom. The Secret must contain OPENCODE_SERVER_PASSWORD (and optionally OPENCODE_SERVER_USERNAME). Mutually exclusive with Password. |
Optional: {} |
RateLimitSpec¶
RateLimitSpec defines rate limiting configuration
Appears in: - LanguageModelSpec
| Field | Description | Default | Validation |
|---|---|---|---|
requestsPerMinute integer |
RequestsPerMinute limits requests per minute | Optional: {} |
|
tokensPerMinute integer |
TokensPerMinute limits tokens per minute | Optional: {} |
RuntimeSecretRef¶
RuntimeSecretRef references a Secret in the same namespace. All keys in the Secret are injected as env vars via envFrom.
Appears in: - OpenclawConfig - OpencodeConfig
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
Name is the name of the Secret. | Required: {} |
SecretReference¶
SecretReference references a Kubernetes Secret
Appears in: - LanguageModelSpec
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
Name is the name of the secret | Required: {} |
|
namespace string |
Namespace is the namespace of the secret (defaults to same namespace as LanguageModel) | Optional: {} |
|
key string |
Key is the key within the secret containing the value | api-key | Optional: {} |
ServiceReference¶
ServiceReference identifies a Kubernetes Service
Appears in: - NetworkPeer
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
Service name | Required: {} |
|
namespace string |
Service namespace (defaults to same namespace if omitted) | Optional: {} |
ToolProperty¶
ToolProperty defines an individual parameter or return field
Appears in: - ToolSchemaDefinition
| Field | Description | Default | Validation |
|---|---|---|---|
type string |
Type is the JSON schema type (string, integer, boolean, etc.) | ||
description string |
Description explains what this property represents | Optional: {} |
|
example string |
Example provides an example value as a JSON string | Optional: {} |
ToolReference¶
ToolReference references a LanguageTool
Appears in: - LanguageAgentSpec
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
Name is the name of the LanguageTool | MaxLength: 63 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ Required: {} |
|
enabled boolean |
Enabled indicates if this tool is available to the agent. Defaults to true. Set to false to explicitly disable the tool without removing it. |
true | Optional: {} |
ToolSchema¶
ToolSchema represents the complete schema of an MCP tool
Appears in: - LanguageToolStatus
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
Name is the tool identifier | ||
description string |
Description is a human-readable description of the tool | Optional: {} |
|
inputSchema ToolSchemaDefinition |
InputSchema defines the parameters this tool accepts | Optional: {} |
ToolSchemaDefinition¶
ToolSchemaDefinition defines parameter or return value structure
Appears in: - ToolSchema
| Field | Description | Default | Validation |
|---|---|---|---|
type string |
Type is the JSON schema type (object, array, string, etc.) | Optional: {} |
|
properties object (keys:string, values:ToolProperty) |
Properties defines object properties (for type: object) | Optional: {} |
|
required string array |
Required lists required property names (for type: object) | Optional: {} |
WorkspaceSpec¶
WorkspaceSpec defines persistent workspace storage for an agent
Appears in: - LanguageAgentRuntimeSpec - LanguageAgentSpec
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean |
Enabled controls whether to create a workspace volume. Defaults to true. Set to false to explicitly disable without removing the workspace config. |
true | Optional: {} |
size string |
Size is the requested storage size (e.g., "10Gi", "1.5Ti", "500Mi") Supports integer and decimal quantities with standard Kubernetes suffixes |
10Gi | MinLength: 1 Pattern: ^([0-9]*\.?[0-9]+)(Ei\|Pi\|Ti\|Gi\|Mi\|Ki\|E\|P\|T\|G\|M\|K\|m)?$ Optional: {} |
storageClassName string |
StorageClassName specifies the StorageClass for the PVC If not specified, uses the cluster default |
Optional: {} |
|
accessMode string |
AccessMode defines the volume access mode | ReadWriteOnce | Enum: [ReadWriteOnce ReadWriteMany] Optional: {} |
mountPath string |
MountPath is where the workspace is mounted in containers | /workspace | Optional: {} |