Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the toolhive v1alpha1 API group +kubebuilder:object:generate=true +groupName=toolhive.stacklok.dev
Index ¶
- Constants
- Variables
- type APIPhase
- type APISource
- type APIStatus
- type AdvancedWorkflowStep
- type AggregationConfig
- type AuditConfig
- type AuthzConfigRef
- type BackendAuthConfig
- type CircuitBreakerConfig
- type CompositeToolDefinitionRef
- type CompositeToolSpec
- type ConfigMapAuthzRef
- type ConfigMapOIDCRef
- type ConflictResolutionConfig
- type DiscoveredBackend
- type ElicitationStep
- type EnvVar
- type ErrorHandling
- type ExternalAuthConfigRef
- type FailureHandlingConfig
- type GitSource
- type GroupRef
- type IncomingAuthConfig
- type InlineAuthzConfig
- type InlineOIDCConfig
- type KubernetesOIDCConfig
- type MCPExternalAuthConfig
- type MCPExternalAuthConfigList
- type MCPExternalAuthConfigSpec
- type MCPExternalAuthConfigStatus
- type MCPGroup
- type MCPGroupList
- type MCPGroupPhase
- type MCPGroupSpec
- type MCPGroupStatus
- type MCPRegistry
- func (in *MCPRegistry) DeepCopy() *MCPRegistry
- func (in *MCPRegistry) DeepCopyInto(out *MCPRegistry)
- func (in *MCPRegistry) DeepCopyObject() runtime.Object
- func (r *MCPRegistry) DeriveOverallPhase() MCPRegistryPhase
- func (r *MCPRegistry) GetAPIResourceName() string
- func (r *MCPRegistry) GetConfigMapSourceName() string
- func (r *MCPRegistry) GetStorageName() string
- func (r *MCPRegistry) IsConfigMapRegistrySource() bool
- type MCPRegistryConfig
- type MCPRegistryList
- type MCPRegistryPhase
- type MCPRegistrySpec
- type MCPRegistryStatus
- type MCPRemoteProxy
- func (in *MCPRemoteProxy) DeepCopy() *MCPRemoteProxy
- func (in *MCPRemoteProxy) DeepCopyInto(out *MCPRemoteProxy)
- func (in *MCPRemoteProxy) DeepCopyObject() runtime.Object
- func (m *MCPRemoteProxy) GetName() string
- func (m *MCPRemoteProxy) GetNamespace() string
- func (m *MCPRemoteProxy) GetOIDCConfig() *OIDCConfigRef
- func (m *MCPRemoteProxy) GetProxyPort() int32
- type MCPRemoteProxyList
- type MCPRemoteProxyPhase
- type MCPRemoteProxySpec
- type MCPRemoteProxyStatus
- type MCPServer
- func (in *MCPServer) DeepCopy() *MCPServer
- func (in *MCPServer) DeepCopyInto(out *MCPServer)
- func (in *MCPServer) DeepCopyObject() runtime.Object
- func (m *MCPServer) GetMcpPort() int32
- func (m *MCPServer) GetName() string
- func (m *MCPServer) GetNamespace() string
- func (m *MCPServer) GetOIDCConfig() *OIDCConfigRef
- func (m *MCPServer) GetProxyPort() int32
- type MCPServerList
- type MCPServerPhase
- type MCPServerSpec
- type MCPServerStatus
- type MCPToolConfig
- type MCPToolConfigList
- type MCPToolConfigSpec
- type MCPToolConfigStatus
- type MemoryCacheConfig
- type NameFilter
- type NetworkPermissions
- type OIDCConfigRef
- type OpenTelemetryConfig
- type OpenTelemetryMetricsConfig
- type OpenTelemetryTracingConfig
- type OperationalConfig
- type OutboundNetworkPermissions
- type OutgoingAuthConfig
- type ParameterSpec
- type PermissionProfileRef
- type PermissionProfileSpec
- type PrometheusConfig
- type ProxyDeploymentOverrides
- type RedisCacheConfig
- type RegistryFilter
- type ResourceList
- type ResourceMetadataOverrides
- type ResourceOverrides
- type ResourceRequirements
- type RetryPolicy
- type SecretKeyRef
- type SecretRef
- type StorageReference
- type SyncPhase
- type SyncPolicy
- type SyncStatus
- type TagFilter
- type TelemetryConfig
- type TimeoutConfig
- type TokenCacheConfig
- type TokenExchangeConfig
- type ToolConfigRef
- type ToolOverride
- type ValidationStatus
- type VirtualMCPCompositeToolDefinition
- func (in *VirtualMCPCompositeToolDefinition) DeepCopy() *VirtualMCPCompositeToolDefinition
- func (in *VirtualMCPCompositeToolDefinition) DeepCopyInto(out *VirtualMCPCompositeToolDefinition)
- func (in *VirtualMCPCompositeToolDefinition) DeepCopyObject() runtime.Object
- func (r *VirtualMCPCompositeToolDefinition) GetValidationErrors() []string
- func (r *VirtualMCPCompositeToolDefinition) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *VirtualMCPCompositeToolDefinition) Validate() error
- func (r *VirtualMCPCompositeToolDefinition) ValidateCreate(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (*VirtualMCPCompositeToolDefinition) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (r *VirtualMCPCompositeToolDefinition) ValidateUpdate(_ context.Context, _ runtime.Object, _ runtime.Object) (admission.Warnings, error)
- type VirtualMCPCompositeToolDefinitionList
- type VirtualMCPCompositeToolDefinitionSpec
- type VirtualMCPCompositeToolDefinitionStatus
- type VirtualMCPServer
- func (in *VirtualMCPServer) DeepCopy() *VirtualMCPServer
- func (in *VirtualMCPServer) DeepCopyInto(out *VirtualMCPServer)
- func (in *VirtualMCPServer) DeepCopyObject() runtime.Object
- func (r *VirtualMCPServer) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *VirtualMCPServer) Validate() error
- func (r *VirtualMCPServer) ValidateCreate(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (*VirtualMCPServer) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
- func (r *VirtualMCPServer) ValidateUpdate(_ context.Context, _ runtime.Object, _ runtime.Object) (admission.Warnings, error)
- type VirtualMCPServerList
- type VirtualMCPServerPhase
- type VirtualMCPServerSpec
- type VirtualMCPServerStatus
- type Volume
- type WorkflowStep
- type WorkloadToolConfig
Constants ¶
const ( ConditionReasonListMCPServersFailed = "ListMCPServersCheckFailed" ConditionReasonListMCPServersSucceeded = "ListMCPServersCheckSucceeded" )
MCPGroupConditionReason represents the reason for a condition's last transition
const ( // RegistrySourceTypeConfigMap is the type for registry data stored in ConfigMaps RegistrySourceTypeConfigMap = "configmap" // RegistrySourceTypeGit is the type for registry data stored in Git repositories RegistrySourceTypeGit = "git" // RegistrySourceTypeAPI is the type for registry data fetched from API endpoints RegistrySourceTypeAPI = "api" )
const ( // ConditionSourceAvailable indicates whether the source is available and accessible ConditionSourceAvailable = "SourceAvailable" // ConditionDataValid indicates whether the registry data is valid ConditionDataValid = "DataValid" // ConditionSyncSuccessful indicates whether the last sync was successful ConditionSyncSuccessful = "SyncSuccessful" // ConditionAPIReady indicates whether the registry API is ready ConditionAPIReady = "APIReady" )
Condition types for MCPRegistry
const ( // ConditionTypeReady indicates overall readiness of the proxy ConditionTypeReady = "Ready" // ConditionTypeRemoteAvailable indicates whether the remote MCP server is reachable ConditionTypeRemoteAvailable = "RemoteAvailable" // ConditionTypeAuthConfigured indicates whether authentication is properly configured ConditionTypeAuthConfigured = "AuthConfigured" )
Condition types for MCPRemoteProxy
const ( // ConditionReasonDeploymentReady indicates the deployment is ready ConditionReasonDeploymentReady = "DeploymentReady" // ConditionReasonDeploymentNotReady indicates the deployment is not ready ConditionReasonDeploymentNotReady = "DeploymentNotReady" // ConditionReasonRemoteURLReachable indicates the remote URL is reachable ConditionReasonRemoteURLReachable = "RemoteURLReachable" // ConditionReasonRemoteURLUnreachable indicates the remote URL is unreachable ConditionReasonRemoteURLUnreachable = "RemoteURLUnreachable" // ConditionReasonAuthValid indicates authentication configuration is valid ConditionReasonAuthValid = "AuthValid" // ConditionReasonAuthInvalid indicates authentication configuration is invalid ConditionReasonAuthInvalid = "AuthInvalid" // ConditionReasonMissingOIDCConfig indicates OIDCConfig is not specified ConditionReasonMissingOIDCConfig = "MissingOIDCConfig" )
Condition reasons for MCPRemoteProxy
const ( // ConditionImageValidated indicates whether this image is fine to be used ConditionImageValidated = "ImageValidated" // ConditionGroupRefValidated indicates whether the GroupRef is valid ConditionGroupRefValidated = "GroupRefValidated" // ConditionPodTemplateValid indicates whether the PodTemplateSpec is valid ConditionPodTemplateValid = "PodTemplateValid" )
Condition types for MCPServer
const ( // ConditionReasonImageValidationFailed indicates image validation failed ConditionReasonImageValidationFailed = "ImageValidationFailed" // ConditionReasonImageValidationSuccess indicates image validation succeeded ConditionReasonImageValidationSuccess = "ImageValidationSuccess" // ConditionReasonImageValidationError indicates an error occurred during validation ConditionReasonImageValidationError = "ImageValidationError" // ConditionReasonImageValidationSkipped indicates image validation was skipped ConditionReasonImageValidationSkipped = "ImageValidationSkipped" )
const ( // ConditionReasonGroupRefValidated indicates the GroupRef is valid ConditionReasonGroupRefValidated = "GroupRefIsValid" // ConditionReasonGroupRefNotFound indicates the GroupRef is invalid ConditionReasonGroupRefNotFound = "GroupRefNotFound" // ConditionReasonGroupRefNotReady indicates the referenced MCPGroup is not in the Ready state ConditionReasonGroupRefNotReady = "GroupRefNotReady" )
const ( // ConditionReasonPodTemplateValid indicates PodTemplateSpec validation succeeded ConditionReasonPodTemplateValid = "ValidPodTemplateSpec" // ConditionReasonPodTemplateInvalid indicates PodTemplateSpec validation failed ConditionReasonPodTemplateInvalid = "InvalidPodTemplateSpec" )
const ( // PermissionProfileTypeBuiltin is the type for built-in permission profiles PermissionProfileTypeBuiltin = "builtin" // PermissionProfileTypeConfigMap is the type for permission profiles stored in ConfigMaps PermissionProfileTypeConfigMap = "configmap" )
Permission profile types
const ( // OIDCConfigTypeKubernetes is the type for Kubernetes service account token validation OIDCConfigTypeKubernetes = "kubernetes" // OIDCConfigTypeConfigMap is the type for OIDC configuration stored in ConfigMaps OIDCConfigTypeConfigMap = "configMap" // OIDCConfigTypeInline is the type for inline OIDC configuration OIDCConfigTypeInline = "inline" )
OIDC configuration types
const ( // AuthzConfigTypeConfigMap is the type for authorization configuration stored in ConfigMaps AuthzConfigTypeConfigMap = "configMap" // AuthzConfigTypeInline is the type for inline authorization configuration AuthzConfigTypeInline = "inline" )
Authorization configuration types
const ( // ConditionReasonValidationSuccess indicates workflow validation succeeded ConditionReasonValidationSuccess = "ValidationSuccess" // ConditionReasonValidationFailed indicates workflow validation failed ConditionReasonValidationFailed = "ValidationFailed" // ConditionReasonSchemaInvalid indicates parameter or step schema is invalid ConditionReasonSchemaInvalid = "SchemaInvalid" // ConditionReasonTemplateInvalid indicates template syntax is invalid ConditionReasonTemplateInvalid = "TemplateInvalid" // ConditionReasonDependencyCycle indicates step dependencies contain cycles ConditionReasonDependencyCycle = "DependencyCycle" // ConditionReasonToolNotFound indicates a referenced tool doesn't exist ConditionReasonToolNotFound = "ToolNotFound" // ConditionReasonWorkflowReady indicates the workflow is ready to use ConditionReasonWorkflowReady = "WorkflowReady" // ConditionReasonWorkflowNotReady indicates the workflow is not ready ConditionReasonWorkflowNotReady = "WorkflowNotReady" )
Condition reasons for VirtualMCPCompositeToolDefinition
const ( // ConditionTypeVirtualMCPServerReady indicates whether the VirtualMCPServer is ready ConditionTypeVirtualMCPServerReady = "Ready" // ConditionTypeVirtualMCPServerGroupRefValidated indicates whether the GroupRef is valid ConditionTypeVirtualMCPServerGroupRefValidated = "GroupRefValidated" )
Condition types for VirtualMCPServer Note: ConditionTypeAuthConfigured is shared with MCPRemoteProxy and defined in mcpremoteproxy_types.go
const ( // ConditionReasonIncomingAuthValid indicates incoming auth is valid ConditionReasonIncomingAuthValid = "IncomingAuthValid" // ConditionReasonIncomingAuthInvalid indicates incoming auth is invalid ConditionReasonIncomingAuthInvalid = "IncomingAuthInvalid" // ConditionReasonGroupRefValid indicates the GroupRef is valid ConditionReasonVirtualMCPServerGroupRefValid = "GroupRefValid" // ConditionReasonGroupRefNotFound indicates the referenced MCPGroup was not found ConditionReasonVirtualMCPServerGroupRefNotFound = "GroupRefNotFound" // ConditionReasonGroupRefNotReady indicates the referenced MCPGroup is not ready ConditionReasonVirtualMCPServerGroupRefNotReady = "GroupRefNotReady" )
Condition reasons for VirtualMCPServer
const ( // BackendAuthTypeDiscovered automatically discovers from backend's externalAuthConfigRef BackendAuthTypeDiscovered = "discovered" // BackendAuthTypePassThrough forwards client token unchanged BackendAuthTypePassThrough = "pass_through" // BackendAuthTypeExternalAuthConfigRef references an MCPExternalAuthConfig resource BackendAuthTypeExternalAuthConfigRef = "external_auth_config_ref" )
Backend authentication types
const ( // ConflictResolutionPrefix prefixes tool names with workload identifier ConflictResolutionPrefix = "prefix" // ConflictResolutionPriority uses priority order to resolve conflicts ConflictResolutionPriority = "priority" // ConflictResolutionManual requires explicit overrides for all conflicts ConflictResolutionManual = "manual" )
Conflict resolution strategies
const ( // WorkflowStepTypeToolCall calls a backend tool WorkflowStepTypeToolCall = "tool" // WorkflowStepTypeElicitation requests user input WorkflowStepTypeElicitation = "elicitation" )
Workflow step types
const (
ConditionTypeMCPServersChecked = "MCPServersChecked"
)
Condition types for MCPGroup
const (
// ConditionTypeWorkflowValidated indicates whether the workflow has been validated
ConditionTypeWorkflowValidated = "WorkflowValidated"
)
Condition types for VirtualMCPCompositeToolDefinition
const (
// ExternalAuthTypeTokenExchange is the type for RFC-8693 token exchange
ExternalAuthTypeTokenExchange = "tokenExchange"
)
External auth configuration types
const (
// RegistryFormatToolHive is the native ToolHive registry format
RegistryFormatToolHive = "toolhive"
)
Registry formats
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "toolhive.stacklok.dev", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type APIPhase ¶ added in v0.3.6
type APIPhase string
APIPhase represents the API service state +kubebuilder:validation:Enum=NotStarted;Deploying;Ready;Unhealthy;Error
const ( // APIPhaseNotStarted means API deployment has not been created APIPhaseNotStarted APIPhase = "NotStarted" // APIPhaseDeploying means API is being deployed APIPhaseDeploying APIPhase = "Deploying" // APIPhaseReady means API is ready to serve requests APIPhaseReady APIPhase = "Ready" // APIPhaseUnhealthy means API is deployed but not healthy APIPhaseUnhealthy APIPhase = "Unhealthy" // APIPhaseError means API deployment failed APIPhaseError APIPhase = "Error" )
type APISource ¶ added in v0.4.1
type APISource struct {
// Endpoint is the base API URL (without path)
// The controller will append the appropriate paths:
// Phase 1 (ToolHive API):
// - /v0/servers - List all servers (single response, no pagination)
// - /v0/servers/{name} - Get specific server (future)
// - /v0/info - Get registry metadata (future)
// Example: "http://my-registry-api.default.svc.cluster.local/api"
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern="^https?://.*"
Endpoint string `json:"endpoint"`
}
APISource defines API source configuration for ToolHive Registry APIs Phase 1: Supports ToolHive API endpoints (no pagination) Phase 2: Will add support for upstream MCP Registry API with pagination
func (*APISource) DeepCopy ¶ added in v0.4.1
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APISource.
func (*APISource) DeepCopyInto ¶ added in v0.4.1
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type APIStatus ¶ added in v0.3.6
type APIStatus struct {
// Phase represents the current API service phase
// +kubebuilder:validation:Enum=NotStarted;Deploying;Ready;Unhealthy;Error
Phase APIPhase `json:"phase"`
// Message provides additional information about the API status
// +optional
Message string `json:"message,omitempty"`
// Endpoint is the URL where the API is accessible
// +optional
Endpoint string `json:"endpoint,omitempty"`
// ReadySince is the timestamp when the API became ready
// +optional
ReadySince *metav1.Time `json:"readySince,omitempty"`
}
APIStatus provides detailed information about the API service
func (*APIStatus) DeepCopy ¶ added in v0.3.6
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIStatus.
func (*APIStatus) DeepCopyInto ¶ added in v0.3.6
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AdvancedWorkflowStep ¶ added in v0.5.2
type AdvancedWorkflowStep struct {
// RetryPolicy defines retry behavior for this step (Phase 2)
// +optional
RetryPolicy *RetryPolicy `json:"retryPolicy,omitempty"`
// Transform defines output transformation template (Phase 2)
// Allows mapping step output to different structure
// +optional
Transform string `json:"transform,omitempty"`
// CacheKey defines a cache key template for result caching (Phase 2)
// If specified and cache hit occurs, step is skipped
// +optional
CacheKey string `json:"cacheKey,omitempty"`
}
AdvancedWorkflowStep extends WorkflowStep with Phase 2 features This is embedded in WorkflowStep for future expansion
func (*AdvancedWorkflowStep) DeepCopy ¶ added in v0.5.2
func (in *AdvancedWorkflowStep) DeepCopy() *AdvancedWorkflowStep
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdvancedWorkflowStep.
func (*AdvancedWorkflowStep) DeepCopyInto ¶ added in v0.5.2
func (in *AdvancedWorkflowStep) DeepCopyInto(out *AdvancedWorkflowStep)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AggregationConfig ¶ added in v0.5.2
type AggregationConfig struct {
// ConflictResolution defines the strategy for resolving tool name conflicts
// - prefix: Automatically prefix tool names with workload identifier
// - priority: First workload in priority order wins
// - manual: Explicitly define overrides for all conflicts
// +kubebuilder:validation:Enum=prefix;priority;manual
// +kubebuilder:default=prefix
// +optional
ConflictResolution string `json:"conflictResolution,omitempty"`
// ConflictResolutionConfig provides configuration for the chosen strategy
// +optional
ConflictResolutionConfig *ConflictResolutionConfig `json:"conflictResolutionConfig,omitempty"`
// Tools defines per-workload tool filtering and overrides
// References existing MCPToolConfig resources
// +optional
Tools []WorkloadToolConfig `json:"tools,omitempty"`
}
AggregationConfig defines tool aggregation and conflict resolution strategies
func (*AggregationConfig) DeepCopy ¶ added in v0.5.2
func (in *AggregationConfig) DeepCopy() *AggregationConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregationConfig.
func (*AggregationConfig) DeepCopyInto ¶ added in v0.5.2
func (in *AggregationConfig) DeepCopyInto(out *AggregationConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuditConfig ¶ added in v0.2.17
type AuditConfig struct {
// Enabled controls whether audit logging is enabled
// When true, enables audit logging with default configuration
// +kubebuilder:default=false
// +optional
Enabled bool `json:"enabled,omitempty"`
}
AuditConfig defines audit logging configuration for the MCP server
func (*AuditConfig) DeepCopy ¶ added in v0.2.17
func (in *AuditConfig) DeepCopy() *AuditConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditConfig.
func (*AuditConfig) DeepCopyInto ¶ added in v0.2.17
func (in *AuditConfig) DeepCopyInto(out *AuditConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuthzConfigRef ¶ added in v0.1.2
type AuthzConfigRef struct {
// Type is the type of authorization configuration
// +kubebuilder:validation:Enum=configMap;inline
// +kubebuilder:default=configMap
Type string `json:"type"`
// ConfigMap references a ConfigMap containing authorization configuration
// Only used when Type is "configMap"
// +optional
ConfigMap *ConfigMapAuthzRef `json:"configMap,omitempty"`
// Inline contains direct authorization configuration
// Only used when Type is "inline"
// +optional
Inline *InlineAuthzConfig `json:"inline,omitempty"`
}
AuthzConfigRef defines a reference to authorization configuration
func (*AuthzConfigRef) DeepCopy ¶ added in v0.1.2
func (in *AuthzConfigRef) DeepCopy() *AuthzConfigRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthzConfigRef.
func (*AuthzConfigRef) DeepCopyInto ¶ added in v0.1.2
func (in *AuthzConfigRef) DeepCopyInto(out *AuthzConfigRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackendAuthConfig ¶ added in v0.5.2
type BackendAuthConfig struct {
// Type defines the authentication type
// +kubebuilder:validation:Enum=discovered;pass_through;external_auth_config_ref
// +kubebuilder:validation:Required
Type string `json:"type"`
// ExternalAuthConfigRef references an MCPExternalAuthConfig resource
// Only used when Type is "external_auth_config_ref"
// +optional
ExternalAuthConfigRef *ExternalAuthConfigRef `json:"externalAuthConfigRef,omitempty"`
}
BackendAuthConfig defines authentication configuration for a backend MCPServer
func (*BackendAuthConfig) DeepCopy ¶ added in v0.5.2
func (in *BackendAuthConfig) DeepCopy() *BackendAuthConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendAuthConfig.
func (*BackendAuthConfig) DeepCopyInto ¶ added in v0.5.2
func (in *BackendAuthConfig) DeepCopyInto(out *BackendAuthConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CircuitBreakerConfig ¶ added in v0.5.2
type CircuitBreakerConfig struct {
// Enabled controls whether circuit breaker is enabled
// +kubebuilder:default=false
// +optional
Enabled bool `json:"enabled,omitempty"`
// FailureThreshold is the number of failures before opening the circuit
// +kubebuilder:default=5
// +optional
FailureThreshold int `json:"failureThreshold,omitempty"`
// Timeout is the duration to wait before attempting to close the circuit
// +kubebuilder:default="60s"
// +optional
Timeout string `json:"timeout,omitempty"`
}
CircuitBreakerConfig configures circuit breaker behavior
func (*CircuitBreakerConfig) DeepCopy ¶ added in v0.5.2
func (in *CircuitBreakerConfig) DeepCopy() *CircuitBreakerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CircuitBreakerConfig.
func (*CircuitBreakerConfig) DeepCopyInto ¶ added in v0.5.2
func (in *CircuitBreakerConfig) DeepCopyInto(out *CircuitBreakerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CompositeToolDefinitionRef ¶ added in v0.5.2
type CompositeToolDefinitionRef struct {
// Name is the name of the VirtualMCPCompositeToolDefinition resource in the same namespace
// +kubebuilder:validation:Required
Name string `json:"name"`
}
CompositeToolDefinitionRef references a VirtualMCPCompositeToolDefinition resource
func (*CompositeToolDefinitionRef) DeepCopy ¶ added in v0.5.2
func (in *CompositeToolDefinitionRef) DeepCopy() *CompositeToolDefinitionRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositeToolDefinitionRef.
func (*CompositeToolDefinitionRef) DeepCopyInto ¶ added in v0.5.2
func (in *CompositeToolDefinitionRef) DeepCopyInto(out *CompositeToolDefinitionRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CompositeToolSpec ¶ added in v0.5.2
type CompositeToolSpec struct {
// Name is the name of the composite tool
// +kubebuilder:validation:Required
Name string `json:"name"`
// Description describes the composite tool
// +kubebuilder:validation:Required
Description string `json:"description"`
// Parameters defines the input parameters for the composite tool
// +optional
Parameters map[string]ParameterSpec `json:"parameters,omitempty"`
// Steps defines the workflow steps
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinItems=1
Steps []WorkflowStep `json:"steps"`
// Timeout is the maximum execution time for the composite tool
// +kubebuilder:default="30m"
// +optional
Timeout string `json:"timeout,omitempty"`
}
CompositeToolSpec defines an inline composite tool For complex workflows, reference VirtualMCPCompositeToolDefinition resources instead
func (*CompositeToolSpec) DeepCopy ¶ added in v0.5.2
func (in *CompositeToolSpec) DeepCopy() *CompositeToolSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositeToolSpec.
func (*CompositeToolSpec) DeepCopyInto ¶ added in v0.5.2
func (in *CompositeToolSpec) DeepCopyInto(out *CompositeToolSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigMapAuthzRef ¶ added in v0.1.2
type ConfigMapAuthzRef struct {
// Name is the name of the ConfigMap
// +kubebuilder:validation:Required
Name string `json:"name"`
// Key is the key in the ConfigMap that contains the authorization configuration
// +kubebuilder:default=authz.json
// +optional
Key string `json:"key,omitempty"`
}
ConfigMapAuthzRef references a ConfigMap containing authorization configuration
func (*ConfigMapAuthzRef) DeepCopy ¶ added in v0.1.2
func (in *ConfigMapAuthzRef) DeepCopy() *ConfigMapAuthzRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapAuthzRef.
func (*ConfigMapAuthzRef) DeepCopyInto ¶ added in v0.1.2
func (in *ConfigMapAuthzRef) DeepCopyInto(out *ConfigMapAuthzRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigMapOIDCRef ¶ added in v0.0.40
type ConfigMapOIDCRef struct {
// Name is the name of the ConfigMap
// +kubebuilder:validation:Required
Name string `json:"name"`
// Key is the key in the ConfigMap that contains the OIDC configuration
// +kubebuilder:default=oidc.json
// +optional
Key string `json:"key,omitempty"`
}
ConfigMapOIDCRef references a ConfigMap containing OIDC configuration
func (*ConfigMapOIDCRef) DeepCopy ¶ added in v0.0.40
func (in *ConfigMapOIDCRef) DeepCopy() *ConfigMapOIDCRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapOIDCRef.
func (*ConfigMapOIDCRef) DeepCopyInto ¶ added in v0.0.40
func (in *ConfigMapOIDCRef) DeepCopyInto(out *ConfigMapOIDCRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConflictResolutionConfig ¶ added in v0.5.2
type ConflictResolutionConfig struct {
// PrefixFormat defines the prefix format for the "prefix" strategy
// Supports placeholders: {workload}, {workload}_, {workload}.
// +kubebuilder:default="{workload}_"
// +optional
PrefixFormat string `json:"prefixFormat,omitempty"`
// PriorityOrder defines the workload priority order for the "priority" strategy
// +optional
PriorityOrder []string `json:"priorityOrder,omitempty"`
}
ConflictResolutionConfig provides configuration for conflict resolution strategies
func (*ConflictResolutionConfig) DeepCopy ¶ added in v0.5.2
func (in *ConflictResolutionConfig) DeepCopy() *ConflictResolutionConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConflictResolutionConfig.
func (*ConflictResolutionConfig) DeepCopyInto ¶ added in v0.5.2
func (in *ConflictResolutionConfig) DeepCopyInto(out *ConflictResolutionConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DiscoveredBackend ¶ added in v0.5.2
type DiscoveredBackend struct {
// Name is the name of the backend MCPServer
Name string `json:"name"`
// AuthConfigRef is the name of the discovered MCPExternalAuthConfig (if any)
// +optional
AuthConfigRef string `json:"authConfigRef,omitempty"`
// AuthType is the type of authentication configured
// +optional
AuthType string `json:"authType,omitempty"`
// Status is the current status of the backend (ready, degraded, unavailable)
// +optional
Status string `json:"status,omitempty"`
// LastHealthCheck is the timestamp of the last health check
// +optional
LastHealthCheck metav1.Time `json:"lastHealthCheck,omitempty"`
// URL is the URL of the backend MCPServer
// +optional
URL string `json:"url,omitempty"`
}
DiscoveredBackend represents a discovered backend MCPServer in the MCPGroup
func (*DiscoveredBackend) DeepCopy ¶ added in v0.5.2
func (in *DiscoveredBackend) DeepCopy() *DiscoveredBackend
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiscoveredBackend.
func (*DiscoveredBackend) DeepCopyInto ¶ added in v0.5.2
func (in *DiscoveredBackend) DeepCopyInto(out *DiscoveredBackend)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ElicitationStep ¶ added in v0.5.2
type ElicitationStep struct {
// Message is the elicitation message to display to the user
// Supports template expansion
// +kubebuilder:validation:Required
Message string `json:"message"`
// Schema defines the expected response schema
// Uses JSON Schema format
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
// +kubebuilder:validation:Type=object
Schema *runtime.RawExtension `json:"schema,omitempty"`
// Timeout is the maximum time to wait for user input
// +kubebuilder:default="5m"
// +kubebuilder:validation:Pattern=`^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$`
// +optional
Timeout string `json:"timeout,omitempty"`
// DefaultResponse is the default response if user doesn't respond in time
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
// +kubebuilder:validation:Type=object
DefaultResponse *runtime.RawExtension `json:"defaultResponse,omitempty"`
}
ElicitationStep defines user input elicitation (Phase 2)
func (*ElicitationStep) DeepCopy ¶ added in v0.5.2
func (in *ElicitationStep) DeepCopy() *ElicitationStep
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElicitationStep.
func (*ElicitationStep) DeepCopyInto ¶ added in v0.5.2
func (in *ElicitationStep) DeepCopyInto(out *ElicitationStep)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvVar ¶
type EnvVar struct {
// Name of the environment variable
// +kubebuilder:validation:Required
Name string `json:"name"`
// Value of the environment variable
// +kubebuilder:validation:Required
Value string `json:"value"`
}
EnvVar represents an environment variable in a container
func (*EnvVar) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.
func (*EnvVar) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ErrorHandling ¶ added in v0.5.2
type ErrorHandling struct {
// Action defines the action to take on error
// +kubebuilder:validation:Enum=abort;continue;retry
// +kubebuilder:default=abort
// +optional
Action string `json:"action,omitempty"`
// MaxRetries is the maximum number of retries
// Only used when Action is "retry"
// +optional
MaxRetries int `json:"maxRetries,omitempty"`
}
ErrorHandling defines error handling behavior for workflow steps
func (*ErrorHandling) DeepCopy ¶ added in v0.5.2
func (in *ErrorHandling) DeepCopy() *ErrorHandling
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorHandling.
func (*ErrorHandling) DeepCopyInto ¶ added in v0.5.2
func (in *ErrorHandling) DeepCopyInto(out *ErrorHandling)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalAuthConfigRef ¶ added in v0.3.9
type ExternalAuthConfigRef struct {
// Name is the name of the MCPExternalAuthConfig resource
// +kubebuilder:validation:Required
Name string `json:"name"`
}
ExternalAuthConfigRef defines a reference to a MCPExternalAuthConfig resource. The referenced MCPExternalAuthConfig must be in the same namespace as the MCPServer.
func (*ExternalAuthConfigRef) DeepCopy ¶ added in v0.3.9
func (in *ExternalAuthConfigRef) DeepCopy() *ExternalAuthConfigRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalAuthConfigRef.
func (*ExternalAuthConfigRef) DeepCopyInto ¶ added in v0.3.9
func (in *ExternalAuthConfigRef) DeepCopyInto(out *ExternalAuthConfigRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FailureHandlingConfig ¶ added in v0.5.2
type FailureHandlingConfig struct {
// HealthCheckInterval is the interval between health checks
// +kubebuilder:default="30s"
// +optional
HealthCheckInterval string `json:"healthCheckInterval,omitempty"`
// UnhealthyThreshold is the number of consecutive failures before marking unhealthy
// +kubebuilder:default=3
// +optional
UnhealthyThreshold int `json:"unhealthyThreshold,omitempty"`
// PartialFailureMode defines behavior when some backends are unavailable
// - fail: Fail entire request if any backend is unavailable
// - best_effort: Continue with available backends
// +kubebuilder:validation:Enum=fail;best_effort
// +kubebuilder:default=fail
// +optional
PartialFailureMode string `json:"partialFailureMode,omitempty"`
// CircuitBreaker configures circuit breaker behavior
// +optional
CircuitBreaker *CircuitBreakerConfig `json:"circuitBreaker,omitempty"`
}
FailureHandlingConfig configures failure handling behavior
func (*FailureHandlingConfig) DeepCopy ¶ added in v0.5.2
func (in *FailureHandlingConfig) DeepCopy() *FailureHandlingConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FailureHandlingConfig.
func (*FailureHandlingConfig) DeepCopyInto ¶ added in v0.5.2
func (in *FailureHandlingConfig) DeepCopyInto(out *FailureHandlingConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GitSource ¶ added in v0.3.6
type GitSource struct {
// Repository is the Git repository URL (HTTP/HTTPS/SSH)
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern="^(file:///|https?://|git@|ssh://|git://).*"
Repository string `json:"repository"`
// Branch is the Git branch to use (mutually exclusive with Tag and Commit)
// +kubebuilder:validation:MinLength=1
// +optional
Branch string `json:"branch,omitempty"`
// Tag is the Git tag to use (mutually exclusive with Branch and Commit)
// +kubebuilder:validation:MinLength=1
// +optional
Tag string `json:"tag,omitempty"`
// Commit is the Git commit SHA to use (mutually exclusive with Branch and Tag)
// +kubebuilder:validation:MinLength=1
// +optional
Commit string `json:"commit,omitempty"`
// Path is the path to the registry file within the repository
// +kubebuilder:validation:Pattern=^.*\.json$
// +kubebuilder:default=registry.json
// +optional
Path string `json:"path,omitempty"`
}
GitSource defines Git repository source configuration
func (*GitSource) DeepCopy ¶ added in v0.3.6
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitSource.
func (*GitSource) DeepCopyInto ¶ added in v0.3.6
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GroupRef ¶ added in v0.5.2
type GroupRef struct {
// Name is the name of the MCPGroup resource in the same namespace
// +kubebuilder:validation:Required
Name string `json:"name"`
}
GroupRef references an MCPGroup resource
func (*GroupRef) DeepCopy ¶ added in v0.5.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupRef.
func (*GroupRef) DeepCopyInto ¶ added in v0.5.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IncomingAuthConfig ¶ added in v0.5.2
type IncomingAuthConfig struct {
// Type defines the authentication type: anonymous, local, or oidc
// +kubebuilder:validation:Enum=anonymous;local;oidc
// +optional
Type string `json:"type,omitempty"`
// OIDCConfig defines OIDC authentication configuration
// Reuses MCPServer OIDC patterns
// +optional
OIDCConfig *OIDCConfigRef `json:"oidcConfig,omitempty"`
// AuthzConfig defines authorization policy configuration
// Reuses MCPServer authz patterns
// +optional
AuthzConfig *AuthzConfigRef `json:"authzConfig,omitempty"`
}
IncomingAuthConfig configures authentication for clients connecting to the Virtual MCP server
func (*IncomingAuthConfig) DeepCopy ¶ added in v0.5.2
func (in *IncomingAuthConfig) DeepCopy() *IncomingAuthConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IncomingAuthConfig.
func (*IncomingAuthConfig) DeepCopyInto ¶ added in v0.5.2
func (in *IncomingAuthConfig) DeepCopyInto(out *IncomingAuthConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InlineAuthzConfig ¶ added in v0.1.2
type InlineAuthzConfig struct {
// Policies is a list of Cedar policy strings
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinItems=1
Policies []string `json:"policies"`
// EntitiesJSON is a JSON string representing Cedar entities
// +kubebuilder:default="[]"
// +optional
EntitiesJSON string `json:"entitiesJson,omitempty"`
}
InlineAuthzConfig contains direct authorization configuration
func (*InlineAuthzConfig) DeepCopy ¶ added in v0.1.2
func (in *InlineAuthzConfig) DeepCopy() *InlineAuthzConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InlineAuthzConfig.
func (*InlineAuthzConfig) DeepCopyInto ¶ added in v0.1.2
func (in *InlineAuthzConfig) DeepCopyInto(out *InlineAuthzConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InlineOIDCConfig ¶ added in v0.0.40
type InlineOIDCConfig struct {
// Issuer is the OIDC issuer URL
// +kubebuilder:validation:Required
Issuer string `json:"issuer"`
// Audience is the expected audience for the token
// +optional
Audience string `json:"audience,omitempty"`
// JWKSURL is the URL to fetch the JWKS from
// +optional
JWKSURL string `json:"jwksUrl,omitempty"`
// IntrospectionURL is the URL for token introspection endpoint
// +optional
IntrospectionURL string `json:"introspectionUrl,omitempty"`
// ClientID is the OIDC client ID
// +optional
ClientID string `json:"clientId,omitempty"`
// ClientSecret is the client secret for introspection (optional)
// Deprecated: Use ClientSecretRef instead for better security
// +optional
ClientSecret string `json:"clientSecret,omitempty"`
// ClientSecretRef is a reference to a Kubernetes Secret containing the client secret
// If both ClientSecret and ClientSecretRef are provided, ClientSecretRef takes precedence
// +optional
ClientSecretRef *SecretKeyRef `json:"clientSecretRef,omitempty"`
// ThvCABundlePath is the path to CA certificate bundle file for HTTPS requests
// The file must be mounted into the pod (e.g., via ConfigMap or Secret volume)
// +optional
ThvCABundlePath string `json:"thvCABundlePath,omitempty"`
// JWKSAuthTokenPath is the path to file containing bearer token for JWKS/OIDC requests
// The file must be mounted into the pod (e.g., via Secret volume)
// +optional
JWKSAuthTokenPath string `json:"jwksAuthTokenPath,omitempty"`
// JWKSAllowPrivateIP allows JWKS/OIDC endpoints on private IP addresses
// Use with caution - only enable for trusted internal IDPs
// +kubebuilder:default=false
// +optional
JWKSAllowPrivateIP bool `json:"jwksAllowPrivateIP"`
// ProtectedResourceAllowPrivateIP allows protected resource endpoint on private IP addresses
// Use with caution - only enable for trusted internal IDPs or testing
// +kubebuilder:default=false
// +optional
ProtectedResourceAllowPrivateIP bool `json:"protectedResourceAllowPrivateIP"`
// InsecureAllowHTTP allows HTTP (non-HTTPS) OIDC issuers for development/testing
// WARNING: This is insecure and should NEVER be used in production
// Only enable for local development, testing, or trusted internal networks
// +kubebuilder:default=false
// +optional
InsecureAllowHTTP bool `json:"insecureAllowHTTP"`
}
InlineOIDCConfig contains direct OIDC configuration
func (*InlineOIDCConfig) DeepCopy ¶ added in v0.0.40
func (in *InlineOIDCConfig) DeepCopy() *InlineOIDCConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InlineOIDCConfig.
func (*InlineOIDCConfig) DeepCopyInto ¶ added in v0.0.40
func (in *InlineOIDCConfig) DeepCopyInto(out *InlineOIDCConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubernetesOIDCConfig ¶ added in v0.0.40
type KubernetesOIDCConfig struct {
// ServiceAccount is the name of the service account to validate tokens for
// If empty, uses the pod's service account
// +optional
ServiceAccount string `json:"serviceAccount,omitempty"`
// Namespace is the namespace of the service account
// If empty, uses the MCPServer's namespace
// +optional
Namespace string `json:"namespace,omitempty"`
// Audience is the expected audience for the token
// +kubebuilder:default=toolhive
// +optional
Audience string `json:"audience,omitempty"`
// Issuer is the OIDC issuer URL
// +kubebuilder:default="https://kubernetes.default.svc"
// +optional
Issuer string `json:"issuer,omitempty"`
// JWKSURL is the URL to fetch the JWKS from
// If empty, OIDC discovery will be used to automatically determine the JWKS URL
// +optional
JWKSURL string `json:"jwksUrl,omitempty"`
// IntrospectionURL is the URL for token introspection endpoint
// If empty, OIDC discovery will be used to automatically determine the introspection URL
// +optional
IntrospectionURL string `json:"introspectionUrl,omitempty"`
// UseClusterAuth enables using the Kubernetes cluster's CA bundle and service account token
// When true, uses /var/run/secrets/kubernetes.io/serviceaccount/ca.crt for TLS verification
// and /var/run/secrets/kubernetes.io/serviceaccount/token for bearer token authentication
// Defaults to true if not specified
// +optional
UseClusterAuth *bool `json:"useClusterAuth"`
}
KubernetesOIDCConfig configures OIDC for Kubernetes service account token validation
func (*KubernetesOIDCConfig) DeepCopy ¶ added in v0.0.40
func (in *KubernetesOIDCConfig) DeepCopy() *KubernetesOIDCConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesOIDCConfig.
func (*KubernetesOIDCConfig) DeepCopyInto ¶ added in v0.0.40
func (in *KubernetesOIDCConfig) DeepCopyInto(out *KubernetesOIDCConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPExternalAuthConfig ¶ added in v0.3.9
type MCPExternalAuthConfig struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MCPExternalAuthConfigSpec `json:"spec,omitempty"`
Status MCPExternalAuthConfigStatus `json:"status,omitempty"`
}
MCPExternalAuthConfig is the Schema for the mcpexternalauthconfigs API. MCPExternalAuthConfig resources are namespace-scoped and can only be referenced by MCPServer resources within the same namespace. Cross-namespace references are not supported for security and isolation reasons.
func (*MCPExternalAuthConfig) DeepCopy ¶ added in v0.3.9
func (in *MCPExternalAuthConfig) DeepCopy() *MCPExternalAuthConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPExternalAuthConfig.
func (*MCPExternalAuthConfig) DeepCopyInto ¶ added in v0.3.9
func (in *MCPExternalAuthConfig) DeepCopyInto(out *MCPExternalAuthConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPExternalAuthConfig) DeepCopyObject ¶ added in v0.3.9
func (in *MCPExternalAuthConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MCPExternalAuthConfigList ¶ added in v0.3.9
type MCPExternalAuthConfigList struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ListMeta `json:"metadata,omitempty"`
Items []MCPExternalAuthConfig `json:"items"`
}
MCPExternalAuthConfigList contains a list of MCPExternalAuthConfig
func (*MCPExternalAuthConfigList) DeepCopy ¶ added in v0.3.9
func (in *MCPExternalAuthConfigList) DeepCopy() *MCPExternalAuthConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPExternalAuthConfigList.
func (*MCPExternalAuthConfigList) DeepCopyInto ¶ added in v0.3.9
func (in *MCPExternalAuthConfigList) DeepCopyInto(out *MCPExternalAuthConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPExternalAuthConfigList) DeepCopyObject ¶ added in v0.3.9
func (in *MCPExternalAuthConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MCPExternalAuthConfigSpec ¶ added in v0.3.9
type MCPExternalAuthConfigSpec struct {
// Type is the type of external authentication to configure
// +kubebuilder:validation:Enum=tokenExchange
// +kubebuilder:validation:Required
Type string `json:"type"`
// TokenExchange configures RFC-8693 OAuth 2.0 Token Exchange
// Only used when Type is "tokenExchange"
// +optional
TokenExchange *TokenExchangeConfig `json:"tokenExchange,omitempty"`
}
MCPExternalAuthConfigSpec defines the desired state of MCPExternalAuthConfig. MCPExternalAuthConfig resources are namespace-scoped and can only be referenced by MCPServer resources in the same namespace.
func (*MCPExternalAuthConfigSpec) DeepCopy ¶ added in v0.3.9
func (in *MCPExternalAuthConfigSpec) DeepCopy() *MCPExternalAuthConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPExternalAuthConfigSpec.
func (*MCPExternalAuthConfigSpec) DeepCopyInto ¶ added in v0.3.9
func (in *MCPExternalAuthConfigSpec) DeepCopyInto(out *MCPExternalAuthConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPExternalAuthConfigStatus ¶ added in v0.3.9
type MCPExternalAuthConfigStatus struct {
// ObservedGeneration is the most recent generation observed for this MCPExternalAuthConfig.
// It corresponds to the MCPExternalAuthConfig's generation, which is updated on mutation by the API Server.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// ConfigHash is a hash of the current configuration for change detection
// +optional
ConfigHash string `json:"configHash,omitempty"`
// ReferencingServers is a list of MCPServer resources that reference this MCPExternalAuthConfig
// This helps track which servers need to be reconciled when this config changes
// +optional
ReferencingServers []string `json:"referencingServers,omitempty"`
}
MCPExternalAuthConfigStatus defines the observed state of MCPExternalAuthConfig
func (*MCPExternalAuthConfigStatus) DeepCopy ¶ added in v0.3.9
func (in *MCPExternalAuthConfigStatus) DeepCopy() *MCPExternalAuthConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPExternalAuthConfigStatus.
func (*MCPExternalAuthConfigStatus) DeepCopyInto ¶ added in v0.3.9
func (in *MCPExternalAuthConfigStatus) DeepCopyInto(out *MCPExternalAuthConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPGroup ¶ added in v0.4.0
type MCPGroup struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MCPGroupSpec `json:"spec,omitempty"`
Status MCPGroupStatus `json:"status,omitempty"`
}
MCPGroup is the Schema for the mcpgroups API
func (*MCPGroup) DeepCopy ¶ added in v0.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPGroup.
func (*MCPGroup) DeepCopyInto ¶ added in v0.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPGroup) DeepCopyObject ¶ added in v0.4.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MCPGroupList ¶ added in v0.4.0
type MCPGroupList struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ListMeta `json:"metadata,omitempty"`
Items []MCPGroup `json:"items"`
}
MCPGroupList contains a list of MCPGroup
func (*MCPGroupList) DeepCopy ¶ added in v0.4.0
func (in *MCPGroupList) DeepCopy() *MCPGroupList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPGroupList.
func (*MCPGroupList) DeepCopyInto ¶ added in v0.4.0
func (in *MCPGroupList) DeepCopyInto(out *MCPGroupList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPGroupList) DeepCopyObject ¶ added in v0.4.0
func (in *MCPGroupList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MCPGroupPhase ¶ added in v0.4.0
type MCPGroupPhase string
MCPGroupPhase represents the lifecycle phase of an MCPGroup +kubebuilder:validation:Enum=Ready;Pending;Failed
const ( // MCPGroupPhaseReady indicates the MCPGroup is ready MCPGroupPhaseReady MCPGroupPhase = "Ready" // MCPGroupPhasePending indicates the MCPGroup is pending MCPGroupPhasePending MCPGroupPhase = "Pending" // MCPGroupPhaseFailed indicates the MCPGroup has failed MCPGroupPhaseFailed MCPGroupPhase = "Failed" )
type MCPGroupSpec ¶ added in v0.4.0
type MCPGroupSpec struct {
// Description provides human-readable context
// +optional
Description string `json:"description,omitempty"`
}
MCPGroupSpec defines the desired state of MCPGroup
func (*MCPGroupSpec) DeepCopy ¶ added in v0.4.0
func (in *MCPGroupSpec) DeepCopy() *MCPGroupSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPGroupSpec.
func (*MCPGroupSpec) DeepCopyInto ¶ added in v0.4.0
func (in *MCPGroupSpec) DeepCopyInto(out *MCPGroupSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPGroupStatus ¶ added in v0.4.0
type MCPGroupStatus struct {
// Phase indicates current state
// +optional
// +kubebuilder:default=Pending
Phase MCPGroupPhase `json:"phase,omitempty"`
// Servers lists server names in this group
// +optional
Servers []string `json:"servers"`
// ServerCount is the number of servers
// +optional
ServerCount int `json:"serverCount"`
// Conditions represent observations
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
MCPGroupStatus defines observed state
func (*MCPGroupStatus) DeepCopy ¶ added in v0.4.0
func (in *MCPGroupStatus) DeepCopy() *MCPGroupStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPGroupStatus.
func (*MCPGroupStatus) DeepCopyInto ¶ added in v0.4.0
func (in *MCPGroupStatus) DeepCopyInto(out *MCPGroupStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPRegistry ¶ added in v0.2.17
type MCPRegistry struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MCPRegistrySpec `json:"spec,omitempty"`
Status MCPRegistryStatus `json:"status,omitempty"`
}
MCPRegistry is the Schema for the mcpregistries API
func (*MCPRegistry) DeepCopy ¶ added in v0.2.17
func (in *MCPRegistry) DeepCopy() *MCPRegistry
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPRegistry.
func (*MCPRegistry) DeepCopyInto ¶ added in v0.2.17
func (in *MCPRegistry) DeepCopyInto(out *MCPRegistry)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPRegistry) DeepCopyObject ¶ added in v0.2.17
func (in *MCPRegistry) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*MCPRegistry) DeriveOverallPhase ¶ added in v0.3.6
func (r *MCPRegistry) DeriveOverallPhase() MCPRegistryPhase
DeriveOverallPhase determines the overall MCPRegistry phase based on sync and API status
func (*MCPRegistry) GetAPIResourceName ¶ added in v0.3.6
func (r *MCPRegistry) GetAPIResourceName() string
GetAPIResourceName returns the base name for registry API resources (deployment, service)
func (*MCPRegistry) GetConfigMapSourceName ¶ added in v0.6.6
func (r *MCPRegistry) GetConfigMapSourceName() string
GetConfigMapSourceName returns the name of the first configmap source if present, otherwise returns an empty string
func (*MCPRegistry) GetStorageName ¶ added in v0.3.6
func (r *MCPRegistry) GetStorageName() string
GetStorageName returns the name used for registry storage resources
func (*MCPRegistry) IsConfigMapRegistrySource ¶ added in v0.6.6
func (r *MCPRegistry) IsConfigMapRegistrySource() bool
IsConfigMapRegistrySource returns true if any registry source is a configmap
type MCPRegistryConfig ¶ added in v0.6.7
type MCPRegistryConfig struct {
// Name is a unique identifier for this registry configuration within the MCPRegistry
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
// Format is the data format (toolhive, upstream)
// +kubebuilder:validation:Enum=toolhive;upstream
// +kubebuilder:default=toolhive
Format string `json:"format,omitempty"`
// ConfigMapRef defines the ConfigMap source configuration
// Mutually exclusive with Git and API
// +optional
ConfigMapRef *corev1.ConfigMapKeySelector `json:"configMapRef,omitempty"`
// Git defines the Git repository source configuration
// Mutually exclusive with ConfigMapRef and API
// +optional
Git *GitSource `json:"git,omitempty"`
// API defines the API source configuration
// Mutually exclusive with ConfigMapRef and Git
// +optional
API *APISource `json:"api,omitempty"`
// SyncPolicy defines the automatic synchronization behavior for this registry.
// If specified, enables automatic synchronization at the given interval.
// Manual synchronization is always supported via annotation-based triggers
// regardless of this setting.
// +optional
SyncPolicy *SyncPolicy `json:"syncPolicy,omitempty"`
// Filter defines include/exclude patterns for registry content
// +optional
Filter *RegistryFilter `json:"filter,omitempty"`
}
MCPRegistryConfig defines the configuration for a registry data source
func (*MCPRegistryConfig) DeepCopy ¶ added in v0.6.7
func (in *MCPRegistryConfig) DeepCopy() *MCPRegistryConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPRegistryConfig.
func (*MCPRegistryConfig) DeepCopyInto ¶ added in v0.6.7
func (in *MCPRegistryConfig) DeepCopyInto(out *MCPRegistryConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPRegistryList ¶ added in v0.2.17
type MCPRegistryList struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ListMeta `json:"metadata,omitempty"`
Items []MCPRegistry `json:"items"`
}
MCPRegistryList contains a list of MCPRegistry
func (*MCPRegistryList) DeepCopy ¶ added in v0.2.17
func (in *MCPRegistryList) DeepCopy() *MCPRegistryList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPRegistryList.
func (*MCPRegistryList) DeepCopyInto ¶ added in v0.2.17
func (in *MCPRegistryList) DeepCopyInto(out *MCPRegistryList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPRegistryList) DeepCopyObject ¶ added in v0.2.17
func (in *MCPRegistryList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MCPRegistryPhase ¶ added in v0.2.17
type MCPRegistryPhase string
MCPRegistryPhase represents the phase of the MCPRegistry +kubebuilder:validation:Enum=Pending;Ready;Failed;Syncing;Terminating
const ( // MCPRegistryPhasePending means the MCPRegistry is being initialized MCPRegistryPhasePending MCPRegistryPhase = "Pending" // MCPRegistryPhaseReady means the MCPRegistry is ready and operational MCPRegistryPhaseReady MCPRegistryPhase = "Ready" // MCPRegistryPhaseFailed means the MCPRegistry has failed MCPRegistryPhaseFailed MCPRegistryPhase = "Failed" // MCPRegistryPhaseSyncing means the MCPRegistry is currently syncing data MCPRegistryPhaseSyncing MCPRegistryPhase = "Syncing" // MCPRegistryPhaseTerminating means the MCPRegistry is being deleted MCPRegistryPhaseTerminating MCPRegistryPhase = "Terminating" )
type MCPRegistrySpec ¶ added in v0.2.17
type MCPRegistrySpec struct {
// DisplayName is a human-readable name for the registry
// +optional
DisplayName string `json:"displayName,omitempty"`
// Registries defines the configuration for the registry data sources
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinItems=1
Registries []MCPRegistryConfig `json:"registries"`
// EnforceServers indicates whether MCPServers in this namespace must have their images
// present in at least one registry in the namespace. When any registry in the namespace
// has this field set to true, enforcement is enabled for the entire namespace.
// MCPServers with images not found in any registry will be rejected.
// When false (default), MCPServers can be deployed regardless of registry presence.
// +kubebuilder:default=false
// +optional
EnforceServers bool `json:"enforceServers,omitempty"`
}
MCPRegistrySpec defines the desired state of MCPRegistry
func (*MCPRegistrySpec) DeepCopy ¶ added in v0.2.17
func (in *MCPRegistrySpec) DeepCopy() *MCPRegistrySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPRegistrySpec.
func (*MCPRegistrySpec) DeepCopyInto ¶ added in v0.2.17
func (in *MCPRegistrySpec) DeepCopyInto(out *MCPRegistrySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPRegistryStatus ¶ added in v0.2.17
type MCPRegistryStatus struct {
// Phase represents the current overall phase of the MCPRegistry
// Derived from sync and API status
// +optional
Phase MCPRegistryPhase `json:"phase,omitempty"`
// Message provides additional information about the current phase
// +optional
Message string `json:"message,omitempty"`
// SyncStatus provides detailed information about data synchronization
// +optional
SyncStatus *SyncStatus `json:"syncStatus,omitempty"`
// APIStatus provides detailed information about the API service
// +optional
APIStatus *APIStatus `json:"apiStatus,omitempty"`
// LastAppliedFilterHash is the hash of the last applied filter
// +optional
LastAppliedFilterHash string `json:"lastAppliedFilterHash,omitempty"`
// StorageRef is a reference to the internal storage location
// +optional
StorageRef *StorageReference `json:"storageRef,omitempty"`
// LastManualSyncTrigger tracks the last processed manual sync annotation value
// Used to detect new manual sync requests via toolhive.stacklok.dev/sync-trigger annotation
// +optional
LastManualSyncTrigger string `json:"lastManualSyncTrigger,omitempty"`
// Conditions represent the latest available observations of the MCPRegistry's state
// +optional
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
MCPRegistryStatus defines the observed state of MCPRegistry
func (*MCPRegistryStatus) DeepCopy ¶ added in v0.2.17
func (in *MCPRegistryStatus) DeepCopy() *MCPRegistryStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPRegistryStatus.
func (*MCPRegistryStatus) DeepCopyInto ¶ added in v0.2.17
func (in *MCPRegistryStatus) DeepCopyInto(out *MCPRegistryStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPRemoteProxy ¶ added in v0.3.10
type MCPRemoteProxy struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MCPRemoteProxySpec `json:"spec,omitempty"`
Status MCPRemoteProxyStatus `json:"status,omitempty"`
}
MCPRemoteProxy is the Schema for the mcpremoteproxies API It enables proxying remote MCP servers with authentication, authorization, audit logging, and tool filtering
func (*MCPRemoteProxy) DeepCopy ¶ added in v0.3.10
func (in *MCPRemoteProxy) DeepCopy() *MCPRemoteProxy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPRemoteProxy.
func (*MCPRemoteProxy) DeepCopyInto ¶ added in v0.3.10
func (in *MCPRemoteProxy) DeepCopyInto(out *MCPRemoteProxy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPRemoteProxy) DeepCopyObject ¶ added in v0.3.10
func (in *MCPRemoteProxy) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*MCPRemoteProxy) GetName ¶ added in v0.3.10
func (m *MCPRemoteProxy) GetName() string
GetName returns the name of the MCPRemoteProxy
func (*MCPRemoteProxy) GetNamespace ¶ added in v0.3.10
func (m *MCPRemoteProxy) GetNamespace() string
GetNamespace returns the namespace of the MCPRemoteProxy
func (*MCPRemoteProxy) GetOIDCConfig ¶ added in v0.3.10
func (m *MCPRemoteProxy) GetOIDCConfig() *OIDCConfigRef
GetOIDCConfig returns the OIDC configuration reference
func (*MCPRemoteProxy) GetProxyPort ¶ added in v0.5.1
func (m *MCPRemoteProxy) GetProxyPort() int32
GetProxyPort returns the proxy port of the MCPRemoteProxy
type MCPRemoteProxyList ¶ added in v0.3.10
type MCPRemoteProxyList struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ListMeta `json:"metadata,omitempty"`
Items []MCPRemoteProxy `json:"items"`
}
MCPRemoteProxyList contains a list of MCPRemoteProxy
func (*MCPRemoteProxyList) DeepCopy ¶ added in v0.3.10
func (in *MCPRemoteProxyList) DeepCopy() *MCPRemoteProxyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPRemoteProxyList.
func (*MCPRemoteProxyList) DeepCopyInto ¶ added in v0.3.10
func (in *MCPRemoteProxyList) DeepCopyInto(out *MCPRemoteProxyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPRemoteProxyList) DeepCopyObject ¶ added in v0.3.10
func (in *MCPRemoteProxyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MCPRemoteProxyPhase ¶ added in v0.3.10
type MCPRemoteProxyPhase string
MCPRemoteProxyPhase is a label for the condition of a MCPRemoteProxy at the current time +kubebuilder:validation:Enum=Pending;Ready;Failed;Terminating
const ( // MCPRemoteProxyPhasePending means the proxy is being created MCPRemoteProxyPhasePending MCPRemoteProxyPhase = "Pending" // MCPRemoteProxyPhaseReady means the proxy is ready and operational MCPRemoteProxyPhaseReady MCPRemoteProxyPhase = "Ready" // MCPRemoteProxyPhaseFailed means the proxy failed to start or encountered an error MCPRemoteProxyPhaseFailed MCPRemoteProxyPhase = "Failed" // MCPRemoteProxyPhaseTerminating means the proxy is being deleted MCPRemoteProxyPhaseTerminating MCPRemoteProxyPhase = "Terminating" )
type MCPRemoteProxySpec ¶ added in v0.3.10
type MCPRemoteProxySpec struct {
// RemoteURL is the URL of the remote MCP server to proxy
// +kubebuilder:validation:Required
// +kubebuilder:validation:Pattern=`^https?://`
RemoteURL string `json:"remoteURL"`
// Port is the port to expose the MCP proxy on
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
// +kubebuilder:default=8080
Port int32 `json:"port,omitempty"`
// Transport is the transport method for the remote proxy (sse or streamable-http)
// +kubebuilder:validation:Enum=sse;streamable-http
// +kubebuilder:default=streamable-http
Transport string `json:"transport,omitempty"`
// OIDCConfig defines OIDC authentication configuration for the proxy
// This validates incoming tokens from clients. Required for proxy mode.
// +kubebuilder:validation:Required
OIDCConfig OIDCConfigRef `json:"oidcConfig"`
// ExternalAuthConfigRef references a MCPExternalAuthConfig resource for token exchange.
// When specified, the proxy will exchange validated incoming tokens for remote service tokens.
// The referenced MCPExternalAuthConfig must exist in the same namespace as this MCPRemoteProxy.
// +optional
ExternalAuthConfigRef *ExternalAuthConfigRef `json:"externalAuthConfigRef,omitempty"`
// AuthzConfig defines authorization policy configuration for the proxy
// +optional
AuthzConfig *AuthzConfigRef `json:"authzConfig,omitempty"`
// Audit defines audit logging configuration for the proxy
// +optional
Audit *AuditConfig `json:"audit,omitempty"`
// ToolConfigRef references a MCPToolConfig resource for tool filtering and renaming.
// The referenced MCPToolConfig must exist in the same namespace as this MCPRemoteProxy.
// Cross-namespace references are not supported for security and isolation reasons.
// If specified, this allows filtering and overriding tools from the remote MCP server.
// +optional
ToolConfigRef *ToolConfigRef `json:"toolConfigRef,omitempty"`
// Telemetry defines observability configuration for the proxy
// +optional
Telemetry *TelemetryConfig `json:"telemetry,omitempty"`
// Resources defines the resource requirements for the proxy container
// +optional
Resources ResourceRequirements `json:"resources,omitempty"`
// TrustProxyHeaders indicates whether to trust X-Forwarded-* headers from reverse proxies
// When enabled, the proxy will use X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port,
// and X-Forwarded-Prefix headers to construct endpoint URLs
// +kubebuilder:default=false
// +optional
TrustProxyHeaders bool `json:"trustProxyHeaders,omitempty"`
// ResourceOverrides allows overriding annotations and labels for resources created by the operator
// +optional
ResourceOverrides *ResourceOverrides `json:"resourceOverrides,omitempty"`
}
MCPRemoteProxySpec defines the desired state of MCPRemoteProxy
func (*MCPRemoteProxySpec) DeepCopy ¶ added in v0.3.10
func (in *MCPRemoteProxySpec) DeepCopy() *MCPRemoteProxySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPRemoteProxySpec.
func (*MCPRemoteProxySpec) DeepCopyInto ¶ added in v0.3.10
func (in *MCPRemoteProxySpec) DeepCopyInto(out *MCPRemoteProxySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPRemoteProxyStatus ¶ added in v0.3.10
type MCPRemoteProxyStatus struct {
// Phase is the current phase of the MCPRemoteProxy
// +optional
Phase MCPRemoteProxyPhase `json:"phase,omitempty"`
// URL is the internal cluster URL where the proxy can be accessed
// +optional
URL string `json:"url,omitempty"`
// ExternalURL is the external URL where the proxy can be accessed (if exposed externally)
// +optional
ExternalURL string `json:"externalURL,omitempty"`
// ObservedGeneration reflects the generation of the most recently observed MCPRemoteProxy
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Conditions represent the latest available observations of the MCPRemoteProxy's state
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// ToolConfigHash stores the hash of the referenced ToolConfig for change detection
// +optional
ToolConfigHash string `json:"toolConfigHash,omitempty"`
// ExternalAuthConfigHash is the hash of the referenced MCPExternalAuthConfig spec
// +optional
ExternalAuthConfigHash string `json:"externalAuthConfigHash,omitempty"`
// Message provides additional information about the current phase
// +optional
Message string `json:"message,omitempty"`
}
MCPRemoteProxyStatus defines the observed state of MCPRemoteProxy
func (*MCPRemoteProxyStatus) DeepCopy ¶ added in v0.3.10
func (in *MCPRemoteProxyStatus) DeepCopy() *MCPRemoteProxyStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPRemoteProxyStatus.
func (*MCPRemoteProxyStatus) DeepCopyInto ¶ added in v0.3.10
func (in *MCPRemoteProxyStatus) DeepCopyInto(out *MCPRemoteProxyStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPServer ¶
type MCPServer struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MCPServerSpec `json:"spec,omitempty"`
Status MCPServerStatus `json:"status,omitempty"`
}
MCPServer is the Schema for the mcpservers API
func (*MCPServer) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPServer.
func (*MCPServer) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPServer) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*MCPServer) GetMcpPort ¶ added in v0.5.1
GetMcpPort returns the MCP port of the MCPServer
func (*MCPServer) GetNamespace ¶ added in v0.3.10
GetNamespace returns the namespace of the MCPServer
func (*MCPServer) GetOIDCConfig ¶ added in v0.3.10
func (m *MCPServer) GetOIDCConfig() *OIDCConfigRef
GetOIDCConfig returns the OIDC configuration reference
func (*MCPServer) GetProxyPort ¶ added in v0.5.1
GetProxyPort returns the proxy port of the MCPServer
type MCPServerList ¶
type MCPServerList struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ListMeta `json:"metadata,omitempty"`
Items []MCPServer `json:"items"`
}
MCPServerList contains a list of MCPServer
func (*MCPServerList) DeepCopy ¶
func (in *MCPServerList) DeepCopy() *MCPServerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPServerList.
func (*MCPServerList) DeepCopyInto ¶
func (in *MCPServerList) DeepCopyInto(out *MCPServerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPServerList) DeepCopyObject ¶
func (in *MCPServerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MCPServerPhase ¶
type MCPServerPhase string
MCPServerPhase is the phase of the MCPServer +kubebuilder:validation:Enum=Pending;Running;Failed;Terminating
const ( // MCPServerPhasePending means the MCPServer is being created MCPServerPhasePending MCPServerPhase = "Pending" // MCPServerPhaseRunning means the MCPServer is running MCPServerPhaseRunning MCPServerPhase = "Running" // MCPServerPhaseFailed means the MCPServer failed to start MCPServerPhaseFailed MCPServerPhase = "Failed" // MCPServerPhaseTerminating means the MCPServer is being deleted MCPServerPhaseTerminating MCPServerPhase = "Terminating" )
type MCPServerSpec ¶
type MCPServerSpec struct {
// Image is the container image for the MCP server
// +kubebuilder:validation:Required
Image string `json:"image"`
// Transport is the transport method for the MCP server (stdio, streamable-http or sse)
// +kubebuilder:validation:Enum=stdio;streamable-http;sse
// +kubebuilder:default=stdio
Transport string `json:"transport,omitempty"`
// ProxyMode is the proxy mode for stdio transport (sse or streamable-http)
// This setting is only used when Transport is "stdio"
// +kubebuilder:validation:Enum=sse;streamable-http
// +kubebuilder:default=streamable-http
// +optional
ProxyMode string `json:"proxyMode,omitempty"`
// Port is the port to expose the MCP server on
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
// +kubebuilder:default=8080
// Deprecated: Use ProxyPort instead
Port int32 `json:"port,omitempty"`
// TargetPort is the port that MCP server listens to
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
// +optional
// Deprecated: Use McpPort instead
TargetPort int32 `json:"targetPort,omitempty"`
// ProxyPort is the port to expose the proxy runner on
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
// +kubebuilder:default=8080
ProxyPort int32 `json:"proxyPort,omitempty"`
// McpPort is the port that MCP server listens to
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
// +optional
McpPort int32 `json:"mcpPort,omitempty"`
// Args are additional arguments to pass to the MCP server
// +optional
Args []string `json:"args,omitempty"`
// Env are environment variables to set in the MCP server container
// +optional
Env []EnvVar `json:"env,omitempty"`
// Volumes are volumes to mount in the MCP server container
// +optional
Volumes []Volume `json:"volumes,omitempty"`
// Resources defines the resource requirements for the MCP server container
// +optional
Resources ResourceRequirements `json:"resources,omitempty"`
// Secrets are references to secrets to mount in the MCP server container
// +optional
Secrets []SecretRef `json:"secrets,omitempty"`
// ServiceAccount is the name of an already existing service account to use by the MCP server.
// If not specified, a ServiceAccount will be created automatically and used by the MCP server.
// +optional
ServiceAccount *string `json:"serviceAccount,omitempty"`
// PermissionProfile defines the permission profile to use
// +optional
PermissionProfile *PermissionProfileRef `json:"permissionProfile,omitempty"`
// PodTemplateSpec defines the pod template to use for the MCP server
// This allows for customizing the pod configuration beyond what is provided by the other fields.
// Note that to modify the specific container the MCP server runs in, you must specify
// the `mcp` container name in the PodTemplateSpec.
// This field accepts a PodTemplateSpec object as JSON/YAML.
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
// +kubebuilder:validation:Type=object
PodTemplateSpec *runtime.RawExtension `json:"podTemplateSpec,omitempty"`
// ResourceOverrides allows overriding annotations and labels for resources created by the operator
// +optional
ResourceOverrides *ResourceOverrides `json:"resourceOverrides,omitempty"`
// OIDCConfig defines OIDC authentication configuration for the MCP server
// +optional
OIDCConfig *OIDCConfigRef `json:"oidcConfig,omitempty"`
// AuthzConfig defines authorization policy configuration for the MCP server
// +optional
AuthzConfig *AuthzConfigRef `json:"authzConfig,omitempty"`
// Audit defines audit logging configuration for the MCP server
// +optional
Audit *AuditConfig `json:"audit,omitempty"`
// ToolsFilter is the filter on tools applied to the MCP server
// Deprecated: Use ToolConfigRef instead
// +optional
ToolsFilter []string `json:"tools,omitempty"`
// ToolConfigRef references a MCPToolConfig resource for tool filtering and renaming.
// The referenced MCPToolConfig must exist in the same namespace as this MCPServer.
// Cross-namespace references are not supported for security and isolation reasons.
// If specified, this takes precedence over the inline ToolsFilter field.
// +optional
ToolConfigRef *ToolConfigRef `json:"toolConfigRef,omitempty"`
// ExternalAuthConfigRef references a MCPExternalAuthConfig resource for external authentication.
// The referenced MCPExternalAuthConfig must exist in the same namespace as this MCPServer.
// +optional
ExternalAuthConfigRef *ExternalAuthConfigRef `json:"externalAuthConfigRef,omitempty"`
// Telemetry defines observability configuration for the MCP server
// +optional
Telemetry *TelemetryConfig `json:"telemetry,omitempty"`
// TrustProxyHeaders indicates whether to trust X-Forwarded-* headers from reverse proxies
// When enabled, the proxy will use X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port,
// and X-Forwarded-Prefix headers to construct endpoint URLs
// +kubebuilder:default=false
// +optional
TrustProxyHeaders bool `json:"trustProxyHeaders,omitempty"`
// GroupRef is the name of the MCPGroup this server belongs to
// Must reference an existing MCPGroup in the same namespace
// +optional
GroupRef string `json:"groupRef,omitempty"`
}
MCPServerSpec defines the desired state of MCPServer
func (*MCPServerSpec) DeepCopy ¶
func (in *MCPServerSpec) DeepCopy() *MCPServerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPServerSpec.
func (*MCPServerSpec) DeepCopyInto ¶
func (in *MCPServerSpec) DeepCopyInto(out *MCPServerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPServerStatus ¶
type MCPServerStatus struct {
// Conditions represent the latest available observations of the MCPServer's state
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// ToolConfigHash stores the hash of the referenced ToolConfig for change detection
// +optional
ToolConfigHash string `json:"toolConfigHash,omitempty"`
// ExternalAuthConfigHash is the hash of the referenced MCPExternalAuthConfig spec
// +optional
ExternalAuthConfigHash string `json:"externalAuthConfigHash,omitempty"`
// URL is the URL where the MCP server can be accessed
// +optional
URL string `json:"url,omitempty"`
// Phase is the current phase of the MCPServer
// +optional
Phase MCPServerPhase `json:"phase,omitempty"`
// Message provides additional information about the current phase
// +optional
Message string `json:"message,omitempty"`
}
MCPServerStatus defines the observed state of MCPServer
func (*MCPServerStatus) DeepCopy ¶
func (in *MCPServerStatus) DeepCopy() *MCPServerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPServerStatus.
func (*MCPServerStatus) DeepCopyInto ¶
func (in *MCPServerStatus) DeepCopyInto(out *MCPServerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPToolConfig ¶ added in v0.3.0
type MCPToolConfig struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MCPToolConfigSpec `json:"spec,omitempty"`
Status MCPToolConfigStatus `json:"status,omitempty"`
}
MCPToolConfig is the Schema for the mcptoolconfigs API. MCPToolConfig resources are namespace-scoped and can only be referenced by MCPServer resources within the same namespace. Cross-namespace references are not supported for security and isolation reasons.
func (*MCPToolConfig) DeepCopy ¶ added in v0.3.0
func (in *MCPToolConfig) DeepCopy() *MCPToolConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPToolConfig.
func (*MCPToolConfig) DeepCopyInto ¶ added in v0.3.0
func (in *MCPToolConfig) DeepCopyInto(out *MCPToolConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPToolConfig) DeepCopyObject ¶ added in v0.3.0
func (in *MCPToolConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MCPToolConfigList ¶ added in v0.3.0
type MCPToolConfigList struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ListMeta `json:"metadata,omitempty"`
Items []MCPToolConfig `json:"items"`
}
MCPToolConfigList contains a list of MCPToolConfig
func (*MCPToolConfigList) DeepCopy ¶ added in v0.3.0
func (in *MCPToolConfigList) DeepCopy() *MCPToolConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPToolConfigList.
func (*MCPToolConfigList) DeepCopyInto ¶ added in v0.3.0
func (in *MCPToolConfigList) DeepCopyInto(out *MCPToolConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPToolConfigList) DeepCopyObject ¶ added in v0.3.0
func (in *MCPToolConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MCPToolConfigSpec ¶ added in v0.3.0
type MCPToolConfigSpec struct {
// ToolsFilter is a list of tool names to filter (allow list).
// Only tools in this list will be exposed by the MCP server.
// If empty, all tools are exposed.
// +optional
ToolsFilter []string `json:"toolsFilter,omitempty"`
// ToolsOverride is a map from actual tool names to their overridden configuration.
// This allows renaming tools and/or changing their descriptions.
// +optional
ToolsOverride map[string]ToolOverride `json:"toolsOverride,omitempty"`
}
MCPToolConfigSpec defines the desired state of MCPToolConfig. MCPToolConfig resources are namespace-scoped and can only be referenced by MCPServer resources in the same namespace.
func (*MCPToolConfigSpec) DeepCopy ¶ added in v0.3.0
func (in *MCPToolConfigSpec) DeepCopy() *MCPToolConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPToolConfigSpec.
func (*MCPToolConfigSpec) DeepCopyInto ¶ added in v0.3.0
func (in *MCPToolConfigSpec) DeepCopyInto(out *MCPToolConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPToolConfigStatus ¶ added in v0.3.0
type MCPToolConfigStatus struct {
// ObservedGeneration is the most recent generation observed for this MCPToolConfig.
// It corresponds to the MCPToolConfig's generation, which is updated on mutation by the API Server.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// ConfigHash is a hash of the current configuration for change detection
// +optional
ConfigHash string `json:"configHash,omitempty"`
// ReferencingServers is a list of MCPServer resources that reference this MCPToolConfig
// This helps track which servers need to be reconciled when this config changes
// +optional
ReferencingServers []string `json:"referencingServers,omitempty"`
}
MCPToolConfigStatus defines the observed state of MCPToolConfig
func (*MCPToolConfigStatus) DeepCopy ¶ added in v0.3.0
func (in *MCPToolConfigStatus) DeepCopy() *MCPToolConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPToolConfigStatus.
func (*MCPToolConfigStatus) DeepCopyInto ¶ added in v0.3.0
func (in *MCPToolConfigStatus) DeepCopyInto(out *MCPToolConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MemoryCacheConfig ¶ added in v0.5.2
type MemoryCacheConfig struct {
// MaxEntries is the maximum number of cache entries
// +kubebuilder:default=1000
// +optional
MaxEntries int `json:"maxEntries,omitempty"`
// TTLOffset is the duration before token expiry to refresh
// +kubebuilder:default="5m"
// +optional
TTLOffset string `json:"ttlOffset,omitempty"`
}
MemoryCacheConfig configures in-memory token caching
func (*MemoryCacheConfig) DeepCopy ¶ added in v0.5.2
func (in *MemoryCacheConfig) DeepCopy() *MemoryCacheConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemoryCacheConfig.
func (*MemoryCacheConfig) DeepCopyInto ¶ added in v0.5.2
func (in *MemoryCacheConfig) DeepCopyInto(out *MemoryCacheConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NameFilter ¶ added in v0.2.17
type NameFilter struct {
// Include is a list of glob patterns to include
// +optional
Include []string `json:"include,omitempty"`
// Exclude is a list of glob patterns to exclude
// +optional
Exclude []string `json:"exclude,omitempty"`
}
NameFilter defines name-based filtering
func (*NameFilter) DeepCopy ¶ added in v0.2.17
func (in *NameFilter) DeepCopy() *NameFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NameFilter.
func (*NameFilter) DeepCopyInto ¶ added in v0.2.17
func (in *NameFilter) DeepCopyInto(out *NameFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NetworkPermissions ¶
type NetworkPermissions struct {
// Mode specifies the network mode for the container (e.g., "host", "bridge", "none")
// When empty, the default container runtime network mode is used
// +optional
Mode string `json:"mode,omitempty"`
// Outbound defines the outbound network permissions
// +optional
Outbound *OutboundNetworkPermissions `json:"outbound,omitempty"`
}
NetworkPermissions defines the network permissions for an MCP server
func (*NetworkPermissions) DeepCopy ¶
func (in *NetworkPermissions) DeepCopy() *NetworkPermissions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPermissions.
func (*NetworkPermissions) DeepCopyInto ¶
func (in *NetworkPermissions) DeepCopyInto(out *NetworkPermissions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OIDCConfigRef ¶ added in v0.0.40
type OIDCConfigRef struct {
// Type is the type of OIDC configuration
// +kubebuilder:validation:Enum=kubernetes;configMap;inline
// +kubebuilder:default=kubernetes
Type string `json:"type"`
// ResourceURL is the explicit resource URL for OAuth discovery endpoint (RFC 9728)
// If not specified, defaults to the in-cluster Kubernetes service URL
// +optional
ResourceURL string `json:"resourceUrl,omitempty"`
// Kubernetes configures OIDC for Kubernetes service account token validation
// Only used when Type is "kubernetes"
// +optional
Kubernetes *KubernetesOIDCConfig `json:"kubernetes,omitempty"`
// ConfigMap references a ConfigMap containing OIDC configuration
// Only used when Type is "configmap"
// +optional
ConfigMap *ConfigMapOIDCRef `json:"configMap,omitempty"`
// Inline contains direct OIDC configuration
// Only used when Type is "inline"
// +optional
Inline *InlineOIDCConfig `json:"inline,omitempty"`
}
OIDCConfigRef defines a reference to OIDC configuration
func (*OIDCConfigRef) DeepCopy ¶ added in v0.0.40
func (in *OIDCConfigRef) DeepCopy() *OIDCConfigRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCConfigRef.
func (*OIDCConfigRef) DeepCopyInto ¶ added in v0.0.40
func (in *OIDCConfigRef) DeepCopyInto(out *OIDCConfigRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpenTelemetryConfig ¶ added in v0.2.14
type OpenTelemetryConfig struct {
// Enabled controls whether OpenTelemetry is enabled
// +kubebuilder:default=false
// +optional
Enabled bool `json:"enabled,omitempty"`
// Endpoint is the OTLP endpoint URL for tracing and metrics
// +optional
Endpoint string `json:"endpoint,omitempty"`
// ServiceName is the service name for telemetry
// If not specified, defaults to the MCPServer name
// +optional
ServiceName string `json:"serviceName,omitempty"`
// Headers contains authentication headers for the OTLP endpoint
// Specified as key=value pairs
// +optional
Headers []string `json:"headers,omitempty"`
// Insecure indicates whether to use HTTP instead of HTTPS for the OTLP endpoint
// +kubebuilder:default=false
// +optional
Insecure bool `json:"insecure,omitempty"`
// Metrics defines OpenTelemetry metrics-specific configuration
// +optional
Metrics *OpenTelemetryMetricsConfig `json:"metrics,omitempty"`
// Tracing defines OpenTelemetry tracing configuration
// +optional
Tracing *OpenTelemetryTracingConfig `json:"tracing,omitempty"`
}
OpenTelemetryConfig defines pure OpenTelemetry configuration
func (*OpenTelemetryConfig) DeepCopy ¶ added in v0.2.14
func (in *OpenTelemetryConfig) DeepCopy() *OpenTelemetryConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryConfig.
func (*OpenTelemetryConfig) DeepCopyInto ¶ added in v0.2.14
func (in *OpenTelemetryConfig) DeepCopyInto(out *OpenTelemetryConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpenTelemetryMetricsConfig ¶ added in v0.2.14
type OpenTelemetryMetricsConfig struct {
// Enabled controls whether OTLP metrics are sent
// +kubebuilder:default=false
// +optional
Enabled bool `json:"enabled,omitempty"`
}
OpenTelemetryMetricsConfig defines OpenTelemetry metrics configuration
func (*OpenTelemetryMetricsConfig) DeepCopy ¶ added in v0.2.14
func (in *OpenTelemetryMetricsConfig) DeepCopy() *OpenTelemetryMetricsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryMetricsConfig.
func (*OpenTelemetryMetricsConfig) DeepCopyInto ¶ added in v0.2.14
func (in *OpenTelemetryMetricsConfig) DeepCopyInto(out *OpenTelemetryMetricsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpenTelemetryTracingConfig ¶ added in v0.2.17
type OpenTelemetryTracingConfig struct {
// Enabled controls whether OTLP tracing is sent
// +kubebuilder:default=false
// +optional
Enabled bool `json:"enabled,omitempty"`
// SamplingRate is the trace sampling rate (0.0-1.0)
// +kubebuilder:default="0.05"
// +optional
SamplingRate string `json:"samplingRate,omitempty"`
}
OpenTelemetryTracingConfig defines OpenTelemetry tracing configuration
func (*OpenTelemetryTracingConfig) DeepCopy ¶ added in v0.2.17
func (in *OpenTelemetryTracingConfig) DeepCopy() *OpenTelemetryTracingConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryTracingConfig.
func (*OpenTelemetryTracingConfig) DeepCopyInto ¶ added in v0.2.17
func (in *OpenTelemetryTracingConfig) DeepCopyInto(out *OpenTelemetryTracingConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperationalConfig ¶ added in v0.5.2
type OperationalConfig struct {
// Timeouts configures timeout settings
// +optional
Timeouts *TimeoutConfig `json:"timeouts,omitempty"`
// FailureHandling configures failure handling behavior
// +optional
FailureHandling *FailureHandlingConfig `json:"failureHandling,omitempty"`
}
OperationalConfig defines operational settings
func (*OperationalConfig) DeepCopy ¶ added in v0.5.2
func (in *OperationalConfig) DeepCopy() *OperationalConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationalConfig.
func (*OperationalConfig) DeepCopyInto ¶ added in v0.5.2
func (in *OperationalConfig) DeepCopyInto(out *OperationalConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OutboundNetworkPermissions ¶
type OutboundNetworkPermissions struct {
// InsecureAllowAll allows all outbound network connections (not recommended)
// +kubebuilder:default=false
// +optional
InsecureAllowAll bool `json:"insecureAllowAll,omitempty"`
// AllowHost is a list of hosts to allow connections to
// +optional
AllowHost []string `json:"allowHost,omitempty"`
// AllowPort is a list of ports to allow connections to
// +optional
AllowPort []int32 `json:"allowPort,omitempty"`
}
OutboundNetworkPermissions defines the outbound network permissions
func (*OutboundNetworkPermissions) DeepCopy ¶
func (in *OutboundNetworkPermissions) DeepCopy() *OutboundNetworkPermissions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OutboundNetworkPermissions.
func (*OutboundNetworkPermissions) DeepCopyInto ¶
func (in *OutboundNetworkPermissions) DeepCopyInto(out *OutboundNetworkPermissions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OutgoingAuthConfig ¶ added in v0.5.2
type OutgoingAuthConfig struct {
// Source defines how backend authentication configurations are determined
// - discovered: Automatically discover from backend's MCPServer.spec.externalAuthConfigRef
// - inline: Explicit per-backend configuration in VirtualMCPServer
// - mixed: Discover most, override specific backends
// +kubebuilder:validation:Enum=discovered;inline;mixed
// +kubebuilder:default=discovered
// +optional
Source string `json:"source,omitempty"`
// Default defines default behavior for backends without explicit auth config
// +optional
Default *BackendAuthConfig `json:"default,omitempty"`
// Backends defines per-backend authentication overrides
// Works in all modes (discovered, inline, mixed)
// +optional
Backends map[string]BackendAuthConfig `json:"backends,omitempty"`
}
OutgoingAuthConfig configures authentication from Virtual MCP to backend MCPServers
func (*OutgoingAuthConfig) DeepCopy ¶ added in v0.5.2
func (in *OutgoingAuthConfig) DeepCopy() *OutgoingAuthConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OutgoingAuthConfig.
func (*OutgoingAuthConfig) DeepCopyInto ¶ added in v0.5.2
func (in *OutgoingAuthConfig) DeepCopyInto(out *OutgoingAuthConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ParameterSpec ¶ added in v0.5.2
type ParameterSpec struct {
// Type is the parameter type (string, integer, boolean, etc.)
// +kubebuilder:validation:Required
Type string `json:"type"`
// Description describes the parameter
// +optional
Description string `json:"description,omitempty"`
// Default is the default value for the parameter
// +optional
Default string `json:"default,omitempty"`
// Required indicates if the parameter is required
// +kubebuilder:default=false
// +optional
Required bool `json:"required,omitempty"`
}
ParameterSpec defines a parameter for a composite tool
func (*ParameterSpec) DeepCopy ¶ added in v0.5.2
func (in *ParameterSpec) DeepCopy() *ParameterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParameterSpec.
func (*ParameterSpec) DeepCopyInto ¶ added in v0.5.2
func (in *ParameterSpec) DeepCopyInto(out *ParameterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PermissionProfileRef ¶
type PermissionProfileRef struct {
// Type is the type of permission profile reference
// +kubebuilder:validation:Enum=builtin;configmap
// +kubebuilder:default=builtin
Type string `json:"type"`
// Name is the name of the permission profile
// If Type is "builtin", Name must be one of: "none", "network"
// If Type is "configmap", Name is the name of the ConfigMap
// +kubebuilder:validation:Required
Name string `json:"name"`
// Key is the key in the ConfigMap that contains the permission profile
// Only used when Type is "configmap"
// +optional
Key string `json:"key,omitempty"`
}
PermissionProfileRef defines a reference to a permission profile
func (*PermissionProfileRef) DeepCopy ¶
func (in *PermissionProfileRef) DeepCopy() *PermissionProfileRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PermissionProfileRef.
func (*PermissionProfileRef) DeepCopyInto ¶
func (in *PermissionProfileRef) DeepCopyInto(out *PermissionProfileRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PermissionProfileSpec ¶
type PermissionProfileSpec struct {
// Read is a list of paths that the MCP server can read from
// +optional
Read []string `json:"read,omitempty"`
// Write is a list of paths that the MCP server can write to
// +optional
Write []string `json:"write,omitempty"`
// Network defines the network permissions for the MCP server
// +optional
Network *NetworkPermissions `json:"network,omitempty"`
}
PermissionProfileSpec defines the permissions for an MCP server
func (*PermissionProfileSpec) DeepCopy ¶
func (in *PermissionProfileSpec) DeepCopy() *PermissionProfileSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PermissionProfileSpec.
func (*PermissionProfileSpec) DeepCopyInto ¶
func (in *PermissionProfileSpec) DeepCopyInto(out *PermissionProfileSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrometheusConfig ¶ added in v0.2.14
type PrometheusConfig struct {
// Enabled controls whether Prometheus metrics endpoint is exposed
// +kubebuilder:default=false
// +optional
Enabled bool `json:"enabled,omitempty"`
}
PrometheusConfig defines Prometheus-specific configuration
func (*PrometheusConfig) DeepCopy ¶ added in v0.2.14
func (in *PrometheusConfig) DeepCopy() *PrometheusConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusConfig.
func (*PrometheusConfig) DeepCopyInto ¶ added in v0.2.14
func (in *PrometheusConfig) DeepCopyInto(out *PrometheusConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyDeploymentOverrides ¶ added in v0.1.8
type ProxyDeploymentOverrides struct {
// ResourceMetadataOverrides is embedded to inherit annotations and labels fields
ResourceMetadataOverrides `json:",inline"` // nolint:revive
PodTemplateMetadataOverrides *ResourceMetadataOverrides `json:"podTemplateMetadataOverrides,omitempty"`
// Env are environment variables to set in the proxy container (thv run process)
// These affect the toolhive proxy itself, not the MCP server it manages
// Use TOOLHIVE_DEBUG=true to enable debug logging in the proxy
// +optional
Env []EnvVar `json:"env,omitempty"`
}
ProxyDeploymentOverrides defines overrides specific to the proxy deployment
func (*ProxyDeploymentOverrides) DeepCopy ¶ added in v0.1.8
func (in *ProxyDeploymentOverrides) DeepCopy() *ProxyDeploymentOverrides
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyDeploymentOverrides.
func (*ProxyDeploymentOverrides) DeepCopyInto ¶ added in v0.1.8
func (in *ProxyDeploymentOverrides) DeepCopyInto(out *ProxyDeploymentOverrides)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RedisCacheConfig ¶ added in v0.5.2
type RedisCacheConfig struct {
// Address is the Redis server address
// +kubebuilder:validation:Required
Address string `json:"address"`
// DB is the Redis database number
// +kubebuilder:default=0
// +optional
DB int `json:"db,omitempty"`
// KeyPrefix is the prefix for cache keys
// +kubebuilder:default="vmcp:tokens:"
// +optional
KeyPrefix string `json:"keyPrefix,omitempty"`
// PasswordRef references a secret containing the Redis password
// +optional
PasswordRef *SecretKeyRef `json:"passwordRef,omitempty"`
// TLS enables TLS for Redis connections
// +kubebuilder:default=false
// +optional
TLS bool `json:"tls,omitempty"`
}
RedisCacheConfig configures Redis token caching
func (*RedisCacheConfig) DeepCopy ¶ added in v0.5.2
func (in *RedisCacheConfig) DeepCopy() *RedisCacheConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RedisCacheConfig.
func (*RedisCacheConfig) DeepCopyInto ¶ added in v0.5.2
func (in *RedisCacheConfig) DeepCopyInto(out *RedisCacheConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RegistryFilter ¶ added in v0.2.17
type RegistryFilter struct {
// NameFilters defines name-based filtering
// +optional
NameFilters *NameFilter `json:"names,omitempty"`
// Tags defines tag-based filtering
// +optional
Tags *TagFilter `json:"tags,omitempty"`
}
RegistryFilter defines include/exclude patterns for registry content
func (*RegistryFilter) DeepCopy ¶ added in v0.2.17
func (in *RegistryFilter) DeepCopy() *RegistryFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryFilter.
func (*RegistryFilter) DeepCopyInto ¶ added in v0.2.17
func (in *RegistryFilter) DeepCopyInto(out *RegistryFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceList ¶
type ResourceList struct {
// CPU is the CPU limit in cores (e.g., "500m" for 0.5 cores)
// +optional
CPU string `json:"cpu,omitempty"`
// Memory is the memory limit in bytes (e.g., "64Mi" for 64 megabytes)
// +optional
Memory string `json:"memory,omitempty"`
}
ResourceList is a set of (resource name, quantity) pairs
func (*ResourceList) DeepCopy ¶
func (in *ResourceList) DeepCopy() *ResourceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceList.
func (*ResourceList) DeepCopyInto ¶
func (in *ResourceList) DeepCopyInto(out *ResourceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceMetadataOverrides ¶ added in v0.0.40
type ResourceMetadataOverrides struct {
// Annotations to add or override on the resource
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// Labels to add or override on the resource
// +optional
Labels map[string]string `json:"labels,omitempty"`
}
ResourceMetadataOverrides defines metadata overrides for a resource
func (*ResourceMetadataOverrides) DeepCopy ¶ added in v0.0.40
func (in *ResourceMetadataOverrides) DeepCopy() *ResourceMetadataOverrides
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetadataOverrides.
func (*ResourceMetadataOverrides) DeepCopyInto ¶ added in v0.0.40
func (in *ResourceMetadataOverrides) DeepCopyInto(out *ResourceMetadataOverrides)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceOverrides ¶ added in v0.0.40
type ResourceOverrides struct {
// ProxyDeployment defines overrides for the Proxy Deployment resource (toolhive proxy)
// +optional
ProxyDeployment *ProxyDeploymentOverrides `json:"proxyDeployment,omitempty"`
// ProxyService defines overrides for the Proxy Service resource (points to the proxy deployment)
// +optional
ProxyService *ResourceMetadataOverrides `json:"proxyService,omitempty"`
}
ResourceOverrides defines overrides for annotations and labels on created resources
func (*ResourceOverrides) DeepCopy ¶ added in v0.0.40
func (in *ResourceOverrides) DeepCopy() *ResourceOverrides
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceOverrides.
func (*ResourceOverrides) DeepCopyInto ¶ added in v0.0.40
func (in *ResourceOverrides) DeepCopyInto(out *ResourceOverrides)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceRequirements ¶
type ResourceRequirements struct {
// Limits describes the maximum amount of compute resources allowed
// +optional
Limits ResourceList `json:"limits,omitempty"`
// Requests describes the minimum amount of compute resources required
// +optional
Requests ResourceList `json:"requests,omitempty"`
}
ResourceRequirements describes the compute resource requirements
func (*ResourceRequirements) DeepCopy ¶
func (in *ResourceRequirements) DeepCopy() *ResourceRequirements
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRequirements.
func (*ResourceRequirements) DeepCopyInto ¶
func (in *ResourceRequirements) DeepCopyInto(out *ResourceRequirements)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RetryPolicy ¶ added in v0.5.2
type RetryPolicy struct {
// MaxRetries is the maximum number of retry attempts
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=10
// +kubebuilder:default=3
// +optional
MaxRetries int `json:"maxRetries,omitempty"`
// BackoffStrategy defines the backoff strategy
// - fixed: Fixed delay between retries
// - exponential: Exponential backoff
// +kubebuilder:validation:Enum=fixed;exponential
// +kubebuilder:default=exponential
// +optional
BackoffStrategy string `json:"backoffStrategy,omitempty"`
// InitialDelay is the initial delay before first retry
// +kubebuilder:default="1s"
// +kubebuilder:validation:Pattern=`^([0-9]+(\.[0-9]+)?(ms|s|m))+$`
// +optional
InitialDelay string `json:"initialDelay,omitempty"`
// MaxDelay is the maximum delay between retries
// +kubebuilder:default="30s"
// +kubebuilder:validation:Pattern=`^([0-9]+(\.[0-9]+)?(ms|s|m))+$`
// +optional
MaxDelay string `json:"maxDelay,omitempty"`
// RetryableErrors defines which errors should trigger retry
// If empty, all errors are retryable
// Supports regex patterns
// +optional
RetryableErrors []string `json:"retryableErrors,omitempty"`
}
RetryPolicy defines retry behavior for workflow steps
func (*RetryPolicy) DeepCopy ¶ added in v0.5.2
func (in *RetryPolicy) DeepCopy() *RetryPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetryPolicy.
func (*RetryPolicy) DeepCopyInto ¶ added in v0.5.2
func (in *RetryPolicy) DeepCopyInto(out *RetryPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretKeyRef ¶ added in v0.3.9
type SecretKeyRef struct {
// Name is the name of the secret
// +kubebuilder:validation:Required
Name string `json:"name"`
// Key is the key within the secret
// +kubebuilder:validation:Required
Key string `json:"key"`
}
SecretKeyRef is a reference to a key within a Secret
func (*SecretKeyRef) DeepCopy ¶ added in v0.3.9
func (in *SecretKeyRef) DeepCopy() *SecretKeyRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeyRef.
func (*SecretKeyRef) DeepCopyInto ¶ added in v0.3.9
func (in *SecretKeyRef) DeepCopyInto(out *SecretKeyRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretRef ¶
type SecretRef struct {
// Name is the name of the secret
// +kubebuilder:validation:Required
Name string `json:"name"`
// Key is the key in the secret itself
// +kubebuilder:validation:Required
Key string `json:"key"`
// TargetEnvName is the environment variable to be used when setting up the secret in the MCP server
// If left unspecified, it defaults to the key
// +optional
TargetEnvName string `json:"targetEnvName,omitempty"`
}
SecretRef is a reference to a secret
func (*SecretRef) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretRef.
func (*SecretRef) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageReference ¶ added in v0.2.17
type StorageReference struct {
// Type is the storage type (configmap)
// +kubebuilder:validation:Enum=configmap
Type string `json:"type"`
// ConfigMapRef is a reference to a ConfigMap storage
// Only used when Type is "configmap"
// +optional
ConfigMapRef *corev1.LocalObjectReference `json:"configMapRef,omitempty"`
}
StorageReference defines a reference to internal storage
func (*StorageReference) DeepCopy ¶ added in v0.2.17
func (in *StorageReference) DeepCopy() *StorageReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageReference.
func (*StorageReference) DeepCopyInto ¶ added in v0.2.17
func (in *StorageReference) DeepCopyInto(out *StorageReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SyncPhase ¶ added in v0.3.6
type SyncPhase string
SyncPhase represents the data synchronization state +kubebuilder:validation:Enum=Syncing;Complete;Failed
type SyncPolicy ¶ added in v0.2.17
type SyncPolicy struct {
// Interval is the sync interval for automatic synchronization (Go duration format)
// Examples: "1h", "30m", "24h"
// +kubebuilder:validation:Pattern=^([0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$
// +kubebuilder:validation:Required
Interval string `json:"interval"`
}
SyncPolicy defines automatic synchronization behavior. When specified, enables automatic synchronization at the given interval. Manual synchronization via annotation-based triggers is always available regardless of this policy setting.
func (*SyncPolicy) DeepCopy ¶ added in v0.2.17
func (in *SyncPolicy) DeepCopy() *SyncPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncPolicy.
func (*SyncPolicy) DeepCopyInto ¶ added in v0.2.17
func (in *SyncPolicy) DeepCopyInto(out *SyncPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SyncStatus ¶ added in v0.3.6
type SyncStatus struct {
// Phase represents the current synchronization phase
// +kubebuilder:validation:Enum=Syncing;Complete;Failed
Phase SyncPhase `json:"phase"`
// Message provides additional information about the sync status
// +optional
Message string `json:"message,omitempty"`
// LastAttempt is the timestamp of the last sync attempt
// +optional
LastAttempt *metav1.Time `json:"lastAttempt,omitempty"`
// AttemptCount is the number of sync attempts since last success
// +optional
// +kubebuilder:validation:Minimum=0
AttemptCount int `json:"attemptCount,omitempty"`
// LastSyncTime is the timestamp of the last successful sync
// +optional
LastSyncTime *metav1.Time `json:"lastSyncTime,omitempty"`
// LastSyncHash is the hash of the last successfully synced data
// Used to detect changes in source data
// +optional
LastSyncHash string `json:"lastSyncHash,omitempty"`
// ServerCount is the total number of servers in the registry
// +optional
// +kubebuilder:validation:Minimum=0
ServerCount int `json:"serverCount,omitempty"`
}
SyncStatus provides detailed information about data synchronization
func (*SyncStatus) DeepCopy ¶ added in v0.3.6
func (in *SyncStatus) DeepCopy() *SyncStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncStatus.
func (*SyncStatus) DeepCopyInto ¶ added in v0.3.6
func (in *SyncStatus) DeepCopyInto(out *SyncStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TagFilter ¶ added in v0.2.17
type TagFilter struct {
// Include is a list of tags to include
// +optional
Include []string `json:"include,omitempty"`
// Exclude is a list of tags to exclude
// +optional
Exclude []string `json:"exclude,omitempty"`
}
TagFilter defines tag-based filtering
func (*TagFilter) DeepCopy ¶ added in v0.2.17
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagFilter.
func (*TagFilter) DeepCopyInto ¶ added in v0.2.17
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TelemetryConfig ¶ added in v0.2.14
type TelemetryConfig struct {
// OpenTelemetry defines OpenTelemetry configuration
// +optional
OpenTelemetry *OpenTelemetryConfig `json:"openTelemetry,omitempty"`
// Prometheus defines Prometheus-specific configuration
// +optional
Prometheus *PrometheusConfig `json:"prometheus,omitempty"`
}
TelemetryConfig defines observability configuration for the MCP server
func (*TelemetryConfig) DeepCopy ¶ added in v0.2.14
func (in *TelemetryConfig) DeepCopy() *TelemetryConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TelemetryConfig.
func (*TelemetryConfig) DeepCopyInto ¶ added in v0.2.14
func (in *TelemetryConfig) DeepCopyInto(out *TelemetryConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TimeoutConfig ¶ added in v0.5.2
type TimeoutConfig struct {
// Default is the default timeout for backend requests
// +kubebuilder:default="30s"
// +optional
Default string `json:"default,omitempty"`
// PerWorkload defines per-workload timeout overrides
// +optional
PerWorkload map[string]string `json:"perWorkload,omitempty"`
}
TimeoutConfig configures timeout settings
func (*TimeoutConfig) DeepCopy ¶ added in v0.5.2
func (in *TimeoutConfig) DeepCopy() *TimeoutConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeoutConfig.
func (*TimeoutConfig) DeepCopyInto ¶ added in v0.5.2
func (in *TimeoutConfig) DeepCopyInto(out *TimeoutConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TokenCacheConfig ¶ added in v0.5.2
type TokenCacheConfig struct {
// Provider defines the cache provider type
// +kubebuilder:validation:Enum=memory;redis
// +kubebuilder:default=memory
// +optional
Provider string `json:"provider,omitempty"`
// Memory configures in-memory token caching
// Only used when Provider is "memory"
// +optional
Memory *MemoryCacheConfig `json:"memory,omitempty"`
// Redis configures Redis token caching
// Only used when Provider is "redis"
// +optional
Redis *RedisCacheConfig `json:"redis,omitempty"`
}
TokenCacheConfig configures token caching behavior
func (*TokenCacheConfig) DeepCopy ¶ added in v0.5.2
func (in *TokenCacheConfig) DeepCopy() *TokenCacheConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenCacheConfig.
func (*TokenCacheConfig) DeepCopyInto ¶ added in v0.5.2
func (in *TokenCacheConfig) DeepCopyInto(out *TokenCacheConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TokenExchangeConfig ¶ added in v0.3.9
type TokenExchangeConfig struct {
// TokenURL is the OAuth 2.0 token endpoint URL for token exchange
// +kubebuilder:validation:Required
TokenURL string `json:"tokenUrl"`
// ClientID is the OAuth 2.0 client identifier
// Optional for some token exchange flows (e.g., Google Cloud Workforce Identity)
// +optional
ClientID string `json:"clientId,omitempty"`
// ClientSecretRef is a reference to a secret containing the OAuth 2.0 client secret
// Optional for some token exchange flows (e.g., Google Cloud Workforce Identity)
// +optional
ClientSecretRef *SecretKeyRef `json:"clientSecretRef,omitempty"`
// Audience is the target audience for the exchanged token
// +kubebuilder:validation:Required
Audience string `json:"audience"`
// Scopes is a list of OAuth 2.0 scopes to request for the exchanged token
// +optional
Scopes []string `json:"scopes,omitempty"`
// SubjectTokenType is the type of the incoming subject token.
// Accepts short forms: "access_token" (default), "id_token", "jwt"
// Or full URNs: "urn:ietf:params:oauth:token-type:access_token",
// "urn:ietf:params:oauth:token-type:id_token",
// "urn:ietf:params:oauth:token-type:jwt"
// For Google Workload Identity Federation with OIDC providers (like Okta), use "id_token"
// +kubebuilder:validation:Pattern=`^(access_token|id_token|jwt|urn:ietf:params:oauth:token-type:(access_token|id_token|jwt))?$`
// +optional
SubjectTokenType string `json:"subjectTokenType,omitempty"`
// ExternalTokenHeaderName is the name of the custom header to use for the exchanged token.
// If set, the exchanged token will be added to this custom header (e.g., "X-Upstream-Token").
// If empty or not set, the exchanged token will replace the Authorization header (default behavior).
// +optional
ExternalTokenHeaderName string `json:"externalTokenHeaderName,omitempty"`
}
TokenExchangeConfig holds configuration for RFC-8693 OAuth 2.0 Token Exchange. This configuration is used to exchange incoming authentication tokens for tokens that can be used with external services. The structure matches the tokenexchange.Config from pkg/auth/tokenexchange/middleware.go
func (*TokenExchangeConfig) DeepCopy ¶ added in v0.3.9
func (in *TokenExchangeConfig) DeepCopy() *TokenExchangeConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenExchangeConfig.
func (*TokenExchangeConfig) DeepCopyInto ¶ added in v0.3.9
func (in *TokenExchangeConfig) DeepCopyInto(out *TokenExchangeConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ToolConfigRef ¶ added in v0.3.0
type ToolConfigRef struct {
// Name is the name of the MCPToolConfig resource in the same namespace
// +kubebuilder:validation:Required
Name string `json:"name"`
}
ToolConfigRef defines a reference to a MCPToolConfig resource. The referenced MCPToolConfig must be in the same namespace as the MCPServer.
func (*ToolConfigRef) DeepCopy ¶ added in v0.3.0
func (in *ToolConfigRef) DeepCopy() *ToolConfigRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ToolConfigRef.
func (*ToolConfigRef) DeepCopyInto ¶ added in v0.3.0
func (in *ToolConfigRef) DeepCopyInto(out *ToolConfigRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ToolOverride ¶ added in v0.3.0
type ToolOverride struct {
// Name is the redefined name of the tool
// +optional
Name string `json:"name,omitempty"`
// Description is the redefined description of the tool
// +optional
Description string `json:"description,omitempty"`
}
ToolOverride represents a tool override configuration. Both Name and Description can be overridden independently, but they can't be both empty.
func (*ToolOverride) DeepCopy ¶ added in v0.3.0
func (in *ToolOverride) DeepCopy() *ToolOverride
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ToolOverride.
func (*ToolOverride) DeepCopyInto ¶ added in v0.3.0
func (in *ToolOverride) DeepCopyInto(out *ToolOverride)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValidationStatus ¶ added in v0.5.2
type ValidationStatus string
ValidationStatus represents the validation state of a workflow +kubebuilder:validation:Enum=Valid;Invalid;Unknown
const ( // ValidationStatusValid indicates the workflow is valid ValidationStatusValid ValidationStatus = "Valid" // ValidationStatusInvalid indicates the workflow has validation errors ValidationStatusInvalid ValidationStatus = "Invalid" // ValidationStatusUnknown indicates validation hasn't been performed yet ValidationStatusUnknown ValidationStatus = "Unknown" )
type VirtualMCPCompositeToolDefinition ¶ added in v0.5.2
type VirtualMCPCompositeToolDefinition struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMCPCompositeToolDefinitionSpec `json:"spec,omitempty"`
Status VirtualMCPCompositeToolDefinitionStatus `json:"status,omitempty"`
}
VirtualMCPCompositeToolDefinition is the Schema for the virtualmcpcompositetooldefinitions API VirtualMCPCompositeToolDefinition defines reusable composite workflows that can be referenced by multiple VirtualMCPServer instances
func (*VirtualMCPCompositeToolDefinition) DeepCopy ¶ added in v0.5.2
func (in *VirtualMCPCompositeToolDefinition) DeepCopy() *VirtualMCPCompositeToolDefinition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMCPCompositeToolDefinition.
func (*VirtualMCPCompositeToolDefinition) DeepCopyInto ¶ added in v0.5.2
func (in *VirtualMCPCompositeToolDefinition) DeepCopyInto(out *VirtualMCPCompositeToolDefinition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMCPCompositeToolDefinition) DeepCopyObject ¶ added in v0.5.2
func (in *VirtualMCPCompositeToolDefinition) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*VirtualMCPCompositeToolDefinition) GetValidationErrors ¶ added in v0.5.2
func (r *VirtualMCPCompositeToolDefinition) GetValidationErrors() []string
GetValidationErrors returns a list of validation errors This is a helper method for the controller to populate status.validationErrors
func (*VirtualMCPCompositeToolDefinition) SetupWebhookWithManager ¶ added in v0.5.2
func (r *VirtualMCPCompositeToolDefinition) SetupWebhookWithManager(mgr ctrl.Manager) error
SetupWebhookWithManager registers the webhook with the manager
func (*VirtualMCPCompositeToolDefinition) Validate ¶ added in v0.5.2
func (r *VirtualMCPCompositeToolDefinition) Validate() error
Validate performs validation for VirtualMCPCompositeToolDefinition This method can be called by the controller during reconciliation or by the webhook
func (*VirtualMCPCompositeToolDefinition) ValidateCreate ¶ added in v0.5.2
func (r *VirtualMCPCompositeToolDefinition) ValidateCreate(_ context.Context, _ runtime.Object) (admission.Warnings, error)
ValidateCreate implements webhook.CustomValidator
func (*VirtualMCPCompositeToolDefinition) ValidateDelete ¶ added in v0.5.2
func (*VirtualMCPCompositeToolDefinition) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
ValidateDelete implements webhook.CustomValidator
type VirtualMCPCompositeToolDefinitionList ¶ added in v0.5.2
type VirtualMCPCompositeToolDefinitionList struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ListMeta `json:"metadata,omitempty"`
Items []VirtualMCPCompositeToolDefinition `json:"items"`
}
VirtualMCPCompositeToolDefinitionList contains a list of VirtualMCPCompositeToolDefinition
func (*VirtualMCPCompositeToolDefinitionList) DeepCopy ¶ added in v0.5.2
func (in *VirtualMCPCompositeToolDefinitionList) DeepCopy() *VirtualMCPCompositeToolDefinitionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMCPCompositeToolDefinitionList.
func (*VirtualMCPCompositeToolDefinitionList) DeepCopyInto ¶ added in v0.5.2
func (in *VirtualMCPCompositeToolDefinitionList) DeepCopyInto(out *VirtualMCPCompositeToolDefinitionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMCPCompositeToolDefinitionList) DeepCopyObject ¶ added in v0.5.2
func (in *VirtualMCPCompositeToolDefinitionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMCPCompositeToolDefinitionSpec ¶ added in v0.5.2
type VirtualMCPCompositeToolDefinitionSpec struct {
// Name is the workflow name exposed as a composite tool
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=64
// +kubebuilder:validation:Pattern=`^[a-z0-9]([a-z0-9_-]*[a-z0-9])?$`
Name string `json:"name"`
// Description is a human-readable description of the workflow
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinLength=1
Description string `json:"description"`
// Parameters defines the input parameter schema for the workflow
// Each key is a parameter name, each value is the parameter specification
// +optional
Parameters map[string]ParameterSpec `json:"parameters,omitempty"`
// Steps defines the workflow step definitions
// Steps are executed sequentially in Phase 1
// Phase 2 will support DAG execution via dependsOn
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinItems=1
Steps []WorkflowStep `json:"steps"`
// Timeout is the overall workflow timeout
// Defaults to 30m if not specified
// +kubebuilder:default="30m"
// +kubebuilder:validation:Pattern=`^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$`
// +optional
Timeout string `json:"timeout,omitempty"`
// FailureMode defines the failure handling strategy
// - abort: Stop execution on first failure (default)
// - continue: Continue executing remaining steps
// - best_effort: Try all steps, report partial success
// +kubebuilder:validation:Enum=abort;continue;best_effort
// +kubebuilder:default=abort
// +optional
FailureMode string `json:"failureMode,omitempty"`
}
VirtualMCPCompositeToolDefinitionSpec defines the desired state of VirtualMCPCompositeToolDefinition
func (*VirtualMCPCompositeToolDefinitionSpec) DeepCopy ¶ added in v0.5.2
func (in *VirtualMCPCompositeToolDefinitionSpec) DeepCopy() *VirtualMCPCompositeToolDefinitionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMCPCompositeToolDefinitionSpec.
func (*VirtualMCPCompositeToolDefinitionSpec) DeepCopyInto ¶ added in v0.5.2
func (in *VirtualMCPCompositeToolDefinitionSpec) DeepCopyInto(out *VirtualMCPCompositeToolDefinitionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMCPCompositeToolDefinitionStatus ¶ added in v0.5.2
type VirtualMCPCompositeToolDefinitionStatus struct {
// ValidationStatus indicates the validation state of the workflow
// - Valid: Workflow structure is valid
// - Invalid: Workflow has validation errors
// +optional
ValidationStatus ValidationStatus `json:"validationStatus,omitempty"`
// ValidationErrors contains validation error messages if ValidationStatus is Invalid
// +optional
ValidationErrors []string `json:"validationErrors,omitempty"`
// ReferencingVirtualServers lists VirtualMCPServer resources that reference this workflow
// This helps track which servers need to be reconciled when this workflow changes
// +optional
ReferencingVirtualServers []string `json:"referencingVirtualServers,omitempty"`
// ObservedGeneration is the most recent generation observed for this VirtualMCPCompositeToolDefinition
// It corresponds to the resource's generation, which is updated on mutation by the API Server
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Conditions represent the latest available observations of the workflow's state
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
VirtualMCPCompositeToolDefinitionStatus defines the observed state of VirtualMCPCompositeToolDefinition
func (*VirtualMCPCompositeToolDefinitionStatus) DeepCopy ¶ added in v0.5.2
func (in *VirtualMCPCompositeToolDefinitionStatus) DeepCopy() *VirtualMCPCompositeToolDefinitionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMCPCompositeToolDefinitionStatus.
func (*VirtualMCPCompositeToolDefinitionStatus) DeepCopyInto ¶ added in v0.5.2
func (in *VirtualMCPCompositeToolDefinitionStatus) DeepCopyInto(out *VirtualMCPCompositeToolDefinitionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMCPServer ¶ added in v0.5.2
type VirtualMCPServer struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec VirtualMCPServerSpec `json:"spec,omitempty"`
Status VirtualMCPServerStatus `json:"status,omitempty"`
}
VirtualMCPServer is the Schema for the virtualmcpservers API VirtualMCPServer aggregates multiple backend MCPServers into a unified endpoint
func (*VirtualMCPServer) DeepCopy ¶ added in v0.5.2
func (in *VirtualMCPServer) DeepCopy() *VirtualMCPServer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMCPServer.
func (*VirtualMCPServer) DeepCopyInto ¶ added in v0.5.2
func (in *VirtualMCPServer) DeepCopyInto(out *VirtualMCPServer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMCPServer) DeepCopyObject ¶ added in v0.5.2
func (in *VirtualMCPServer) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*VirtualMCPServer) SetupWebhookWithManager ¶ added in v0.5.2
func (r *VirtualMCPServer) SetupWebhookWithManager(mgr ctrl.Manager) error
SetupWebhookWithManager registers the webhook with the manager
func (*VirtualMCPServer) Validate ¶ added in v0.5.2
func (r *VirtualMCPServer) Validate() error
Validate performs validation for VirtualMCPServer This method can be called by the controller during reconciliation or by the webhook
func (*VirtualMCPServer) ValidateCreate ¶ added in v0.5.2
func (r *VirtualMCPServer) ValidateCreate(_ context.Context, _ runtime.Object) (admission.Warnings, error)
ValidateCreate implements webhook.CustomValidator
func (*VirtualMCPServer) ValidateDelete ¶ added in v0.5.2
func (*VirtualMCPServer) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error)
ValidateDelete implements webhook.CustomValidator
type VirtualMCPServerList ¶ added in v0.5.2
type VirtualMCPServerList struct {
metav1.TypeMeta `json:",inline"` // nolint:revive
metav1.ListMeta `json:"metadata,omitempty"`
Items []VirtualMCPServer `json:"items"`
}
VirtualMCPServerList contains a list of VirtualMCPServer
func (*VirtualMCPServerList) DeepCopy ¶ added in v0.5.2
func (in *VirtualMCPServerList) DeepCopy() *VirtualMCPServerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMCPServerList.
func (*VirtualMCPServerList) DeepCopyInto ¶ added in v0.5.2
func (in *VirtualMCPServerList) DeepCopyInto(out *VirtualMCPServerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VirtualMCPServerList) DeepCopyObject ¶ added in v0.5.2
func (in *VirtualMCPServerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type VirtualMCPServerPhase ¶ added in v0.5.2
type VirtualMCPServerPhase string
VirtualMCPServerPhase represents the lifecycle phase of a VirtualMCPServer +kubebuilder:validation:Enum=Pending;Ready;Degraded;Failed
const ( // VirtualMCPServerPhasePending indicates the VirtualMCPServer is being initialized VirtualMCPServerPhasePending VirtualMCPServerPhase = "Pending" // VirtualMCPServerPhaseReady indicates the VirtualMCPServer is ready and serving requests VirtualMCPServerPhaseReady VirtualMCPServerPhase = "Ready" // VirtualMCPServerPhaseDegraded indicates the VirtualMCPServer is running but some backends are unavailable VirtualMCPServerPhaseDegraded VirtualMCPServerPhase = "Degraded" // VirtualMCPServerPhaseFailed indicates the VirtualMCPServer has failed VirtualMCPServerPhaseFailed VirtualMCPServerPhase = "Failed" )
type VirtualMCPServerSpec ¶ added in v0.5.2
type VirtualMCPServerSpec struct {
// GroupRef references an existing MCPGroup that defines backend workloads
// The referenced MCPGroup must exist in the same namespace
// +kubebuilder:validation:Required
GroupRef GroupRef `json:"groupRef"`
// IncomingAuth configures authentication for clients connecting to the Virtual MCP server
// +optional
IncomingAuth *IncomingAuthConfig `json:"incomingAuth,omitempty"`
// OutgoingAuth configures authentication from Virtual MCP to backend MCPServers
// +optional
OutgoingAuth *OutgoingAuthConfig `json:"outgoingAuth,omitempty"`
// Aggregation defines tool aggregation and conflict resolution strategies
// +optional
Aggregation *AggregationConfig `json:"aggregation,omitempty"`
// CompositeTools defines inline composite tool definitions
// For complex workflows, reference VirtualMCPCompositeToolDefinition resources instead
// +optional
CompositeTools []CompositeToolSpec `json:"compositeTools,omitempty"`
// CompositeToolRefs references VirtualMCPCompositeToolDefinition resources
// for complex, reusable workflows
// +optional
CompositeToolRefs []CompositeToolDefinitionRef `json:"compositeToolRefs,omitempty"`
// TokenCache configures token caching behavior
// +optional
TokenCache *TokenCacheConfig `json:"tokenCache,omitempty"`
// Operational defines operational settings like timeouts and health checks
// +optional
Operational *OperationalConfig `json:"operational,omitempty"`
// ServiceType specifies the Kubernetes service type for the Virtual MCP server
// +kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer
// +kubebuilder:default=ClusterIP
// +optional
ServiceType string `json:"serviceType,omitempty"`
// PodTemplateSpec defines the pod template to use for the Virtual MCP server
// This allows for customizing the pod configuration beyond what is provided by the other fields.
// Note that to modify the specific container the Virtual MCP server runs in, you must specify
// the 'vmcp' container name in the PodTemplateSpec.
// This field accepts a PodTemplateSpec object as JSON/YAML.
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
// +kubebuilder:validation:Type=object
PodTemplateSpec *runtime.RawExtension `json:"podTemplateSpec,omitempty"`
}
VirtualMCPServerSpec defines the desired state of VirtualMCPServer
func (*VirtualMCPServerSpec) DeepCopy ¶ added in v0.5.2
func (in *VirtualMCPServerSpec) DeepCopy() *VirtualMCPServerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMCPServerSpec.
func (*VirtualMCPServerSpec) DeepCopyInto ¶ added in v0.5.2
func (in *VirtualMCPServerSpec) DeepCopyInto(out *VirtualMCPServerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VirtualMCPServerStatus ¶ added in v0.5.2
type VirtualMCPServerStatus struct {
// Conditions represent the latest available observations of the VirtualMCPServer's state
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// ObservedGeneration is the most recent generation observed for this VirtualMCPServer
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Phase is the current phase of the VirtualMCPServer
// +optional
// +kubebuilder:default=Pending
Phase VirtualMCPServerPhase `json:"phase,omitempty"`
// Message provides additional information about the current phase
// +optional
Message string `json:"message,omitempty"`
// URL is the URL where the Virtual MCP server can be accessed
// +optional
URL string `json:"url,omitempty"`
// DiscoveredBackends lists discovered backend configurations from the MCPGroup
// +optional
DiscoveredBackends []DiscoveredBackend `json:"discoveredBackends,omitempty"`
// BackendCount is the number of discovered backends
// +optional
BackendCount int `json:"backendCount,omitempty"`
}
VirtualMCPServerStatus defines the observed state of VirtualMCPServer
func (*VirtualMCPServerStatus) DeepCopy ¶ added in v0.5.2
func (in *VirtualMCPServerStatus) DeepCopy() *VirtualMCPServerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualMCPServerStatus.
func (*VirtualMCPServerStatus) DeepCopyInto ¶ added in v0.5.2
func (in *VirtualMCPServerStatus) DeepCopyInto(out *VirtualMCPServerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Volume ¶
type Volume struct {
// Name is the name of the volume
// +kubebuilder:validation:Required
Name string `json:"name"`
// HostPath is the path on the host to mount
// +kubebuilder:validation:Required
HostPath string `json:"hostPath"`
// MountPath is the path in the container to mount to
// +kubebuilder:validation:Required
MountPath string `json:"mountPath"`
// ReadOnly specifies whether the volume should be mounted read-only
// +kubebuilder:default=false
// +optional
ReadOnly bool `json:"readOnly,omitempty"`
}
Volume represents a volume to mount in a container
func (*Volume) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.
func (*Volume) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkflowStep ¶ added in v0.5.2
type WorkflowStep struct {
// ID is the unique identifier for this step
// +kubebuilder:validation:Required
ID string `json:"id"`
// Type is the step type (tool, elicitation, etc.)
// +kubebuilder:validation:Enum=tool;elicitation
// +kubebuilder:default=tool
// +optional
Type string `json:"type,omitempty"`
// Tool is the tool to call (format: "workload.tool_name")
// Only used when Type is "tool"
// +optional
Tool string `json:"tool,omitempty"`
// Arguments is a map of argument templates
// Supports Go template syntax with .params and .steps
// +optional
Arguments map[string]string `json:"arguments,omitempty"`
// Message is the elicitation message
// Only used when Type is "elicitation"
// +optional
Message string `json:"message,omitempty"`
// Schema defines the expected response schema for elicitation
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
// +kubebuilder:validation:Type=object
Schema *runtime.RawExtension `json:"schema,omitempty"`
// DependsOn lists step IDs that must complete before this step
// +optional
DependsOn []string `json:"dependsOn,omitempty"`
// Condition is a template expression that determines if the step should execute
// +optional
Condition string `json:"condition,omitempty"`
// OnError defines error handling behavior
// +optional
OnError *ErrorHandling `json:"onError,omitempty"`
// Timeout is the maximum execution time for this step
// +optional
Timeout string `json:"timeout,omitempty"`
}
WorkflowStep defines a step in a composite tool workflow
func (*WorkflowStep) DeepCopy ¶ added in v0.5.2
func (in *WorkflowStep) DeepCopy() *WorkflowStep
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowStep.
func (*WorkflowStep) DeepCopyInto ¶ added in v0.5.2
func (in *WorkflowStep) DeepCopyInto(out *WorkflowStep)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkloadToolConfig ¶ added in v0.5.2
type WorkloadToolConfig struct {
// Workload is the name of the backend MCPServer workload
// +kubebuilder:validation:Required
Workload string `json:"workload"`
// ToolConfigRef references a MCPToolConfig resource for tool filtering and renaming
// If specified, Filter and Overrides are ignored
// +optional
ToolConfigRef *ToolConfigRef `json:"toolConfigRef,omitempty"`
// Filter is an inline list of tool names to allow (allow list)
// Only used if ToolConfigRef is not specified
// +optional
Filter []string `json:"filter,omitempty"`
// Overrides is an inline map of tool overrides
// Only used if ToolConfigRef is not specified
// +optional
Overrides map[string]ToolOverride `json:"overrides,omitempty"`
}
WorkloadToolConfig defines tool filtering and overrides for a specific workload
func (*WorkloadToolConfig) DeepCopy ¶ added in v0.5.2
func (in *WorkloadToolConfig) DeepCopy() *WorkloadToolConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadToolConfig.
func (*WorkloadToolConfig) DeepCopyInto ¶ added in v0.5.2
func (in *WorkloadToolConfig) DeepCopyInto(out *WorkloadToolConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files
¶
- groupversion_info.go
- mcpexternalauthconfig_types.go
- mcpgroup_types.go
- mcpregistry_types.go
- mcpremoteproxy_types.go
- mcpserver_types.go
- toolconfig_types.go
- virtualmcpcompositetooldefinition_types.go
- virtualmcpcompositetooldefinition_webhook.go
- virtualmcpserver_types.go
- virtualmcpserver_webhook.go
- zz_generated.deepcopy.go