Documentation
¶
Overview ¶
Package controllers contains the reconciliation logic for the MCPRemoteProxy custom resource. It handles the creation, update, and deletion of remote MCP proxies in Kubernetes.
Package controllers contains the reconciliation logic for the MCPServer custom resource. It handles the creation, update, and deletion of MCP servers in Kubernetes.
Index ¶
- Constants
- Variables
- func GetExternalAuthConfigForMCPServer(ctx context.Context, c client.Client, mcpServer *mcpv1alpha1.MCPServer) (*mcpv1alpha1.MCPExternalAuthConfig, error)
- func GetToolConfigForMCPServer(ctx context.Context, c client.Client, mcpServer *mcpv1alpha1.MCPServer) (*mcpv1alpha1.MCPToolConfig, error)
- type MCPExternalAuthConfigReconciler
- type MCPGroupReconciler
- type MCPRegistryReconciler
- type MCPRemoteProxyReconciler
- type MCPServerPodTemplateSpecBuilder
- func (b *MCPServerPodTemplateSpecBuilder) Build() *corev1.PodTemplateSpec
- func (b *MCPServerPodTemplateSpecBuilder) WithSecrets(secrets []mcpv1alpha1.SecretRef) *MCPServerPodTemplateSpecBuilder
- func (b *MCPServerPodTemplateSpecBuilder) WithServiceAccount(serviceAccount *string) *MCPServerPodTemplateSpecBuilder
- type MCPServerReconciler
- type ToolConfigReconciler
Constants ¶
const ( RestartedAtAnnotationKey = "mcpserver.toolhive.stacklok.dev/restarted-at" RestartStrategyAnnotationKey = "mcpserver.toolhive.stacklok.dev/restart-strategy" LastProcessedRestartAnnotationKey = "mcpserver.toolhive.stacklok.dev/last-processed-restart" )
Restart annotation keys for triggering pod restart
const ( RestartStrategyRolling = "rolling" RestartStrategyImmediate = "immediate" )
Restart strategy constants
const ( // DefaultControllerRetryAfterConstant is the constant default retry interval for controller operations that fail DefaultControllerRetryAfterConstant = time.Minute * 5 )
Default timing constants for the controller
const (
// ExternalAuthConfigFinalizerName is the name of the finalizer for MCPExternalAuthConfig
ExternalAuthConfigFinalizerName = "mcpexternalauthconfig.toolhive.stacklok.dev/finalizer"
)
const (
// MCPGroupFinalizerName is the name of the finalizer for MCPGroup
MCPGroupFinalizerName = "toolhive.stacklok.dev/mcpgroup-finalizer"
)
const (
// ToolConfigFinalizerName is the name of the finalizer for MCPToolConfig
ToolConfigFinalizerName = "toolhive.stacklok.dev/toolconfig-finalizer"
)
Variables ¶
var ( // DefaultControllerRetryAfter is the configurable default retry interval for controller operations that fail // This can be modified in tests to speed up retry behavior DefaultControllerRetryAfter = DefaultControllerRetryAfterConstant )
Configurable timing variables for testing
Functions ¶
func GetExternalAuthConfigForMCPServer ¶ added in v0.3.9
func GetExternalAuthConfigForMCPServer( ctx context.Context, c client.Client, mcpServer *mcpv1alpha1.MCPServer, ) (*mcpv1alpha1.MCPExternalAuthConfig, error)
GetExternalAuthConfigForMCPServer retrieves the MCPExternalAuthConfig referenced by an MCPServer. This function is exported for use by the MCPServer controller (Phase 5 integration).
func GetToolConfigForMCPServer ¶ added in v0.3.0
func GetToolConfigForMCPServer( ctx context.Context, c client.Client, mcpServer *mcpv1alpha1.MCPServer, ) (*mcpv1alpha1.MCPToolConfig, error)
GetToolConfigForMCPServer retrieves the MCPToolConfig referenced by an MCPServer
Types ¶
type MCPExternalAuthConfigReconciler ¶ added in v0.3.9
MCPExternalAuthConfigReconciler reconciles a MCPExternalAuthConfig object
func (*MCPExternalAuthConfigReconciler) Reconcile ¶ added in v0.3.9
func (r *MCPExternalAuthConfigReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*MCPExternalAuthConfigReconciler) SetupWithManager ¶ added in v0.3.9
func (r *MCPExternalAuthConfigReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type MCPGroupReconciler ¶ added in v0.4.0
MCPGroupReconciler reconciles a MCPGroup object
func (*MCPGroupReconciler) Reconcile ¶ added in v0.4.0
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*MCPGroupReconciler) SetupWithManager ¶ added in v0.4.0
func (r *MCPGroupReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type MCPRegistryReconciler ¶ added in v0.2.17
type MCPRegistryReconciler struct {
client.Client
Scheme *runtime.Scheme
// contains filtered or unexported fields
}
MCPRegistryReconciler reconciles a MCPRegistry object
func NewMCPRegistryReconciler ¶ added in v0.3.0
func NewMCPRegistryReconciler(k8sClient client.Client, scheme *runtime.Scheme) *MCPRegistryReconciler
NewMCPRegistryReconciler creates a new MCPRegistryReconciler with required dependencies
func (*MCPRegistryReconciler) Reconcile ¶ added in v0.2.17
func (r *MCPRegistryReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*MCPRegistryReconciler) SetupWithManager ¶ added in v0.2.17
func (r *MCPRegistryReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type MCPRemoteProxyReconciler ¶ added in v0.4.0
type MCPRemoteProxyReconciler struct {
client.Client
Scheme *runtime.Scheme
PlatformDetector *ctrlutil.SharedPlatformDetector
}
MCPRemoteProxyReconciler reconciles a MCPRemoteProxy object
func (*MCPRemoteProxyReconciler) Reconcile ¶ added in v0.4.0
func (r *MCPRemoteProxyReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*MCPRemoteProxyReconciler) SetupWithManager ¶ added in v0.4.0
func (r *MCPRemoteProxyReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager
type MCPServerPodTemplateSpecBuilder ¶ added in v0.2.8
type MCPServerPodTemplateSpecBuilder struct {
// contains filtered or unexported fields
}
MCPServerPodTemplateSpecBuilder provides an interface for building PodTemplateSpec patches for MCP Servers
func NewMCPServerPodTemplateSpecBuilder ¶ added in v0.2.8
func NewMCPServerPodTemplateSpecBuilder(userTemplateRaw *runtime.RawExtension) (*MCPServerPodTemplateSpecBuilder, error)
NewMCPServerPodTemplateSpecBuilder creates a new builder, optionally starting with a user-provided template Returns an error if the provided raw extension cannot be unmarshaled into a valid PodTemplateSpec
func (*MCPServerPodTemplateSpecBuilder) Build ¶ added in v0.2.8
func (b *MCPServerPodTemplateSpecBuilder) Build() *corev1.PodTemplateSpec
Build returns the final PodTemplateSpec, or nil if no customizations were made
func (*MCPServerPodTemplateSpecBuilder) WithSecrets ¶ added in v0.2.8
func (b *MCPServerPodTemplateSpecBuilder) WithSecrets(secrets []mcpv1alpha1.SecretRef) *MCPServerPodTemplateSpecBuilder
WithSecrets adds secret environment variables to the MCP container
func (*MCPServerPodTemplateSpecBuilder) WithServiceAccount ¶ added in v0.2.8
func (b *MCPServerPodTemplateSpecBuilder) WithServiceAccount(serviceAccount *string) *MCPServerPodTemplateSpecBuilder
WithServiceAccount sets the service account name
type MCPServerReconciler ¶
type MCPServerReconciler struct {
client.Client
Scheme *runtime.Scheme
Recorder record.EventRecorder
PlatformDetector *ctrlutil.SharedPlatformDetector
ImageValidation validation.ImageValidation
}
MCPServerReconciler reconciles a MCPServer object
func (*MCPServerReconciler) Reconcile ¶
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*MCPServerReconciler) SetupWithManager ¶
func (r *MCPServerReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type ToolConfigReconciler ¶ added in v0.3.0
ToolConfigReconciler reconciles a MCPToolConfig object
func (*ToolConfigReconciler) Reconcile ¶ added in v0.3.0
func (r *ToolConfigReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
func (*ToolConfigReconciler) SetupWithManager ¶ added in v0.3.0
func (r *ToolConfigReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.