v1alpha2

package
v0.0.0-...-05d0bde Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the agent v1alpha1 API group. +kubebuilder:object:generate=true +groupName=kagent.dev

Index

Constants

View Source
const (
	AgentConditionTypeAccepted = "Accepted"
	AgentConditionTypeReady    = "Ready"
)
View Source
const (
	// ModelProviderConfigConditionTypeReady indicates whether the model provider config is ready for use
	ModelProviderConfigConditionTypeReady = "Ready"

	// ModelProviderConfigConditionTypeSecretResolved indicates whether the model provider config's secret reference is valid
	ModelProviderConfigConditionTypeSecretResolved = "SecretResolved"

	// ModelProviderConfigConditionTypeModelsDiscovered indicates whether model discovery has succeeded
	ModelProviderConfigConditionTypeModelsDiscovered = "ModelsDiscovered"
)
View Source
const (
	ModelConfigConditionTypeAccepted = "Accepted"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "kagent.dev", Version: "v1alpha2"}

	// 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

func DefaultModelProviderEndpoint

func DefaultModelProviderEndpoint(providerType ModelProvider) string

DefaultModelProviderEndpoint returns the default API endpoint for a given model provider type. Returns empty string if no default is defined.

Types

type A2AConfig

type A2AConfig struct {
	// +kubebuilder:validation:MinItems=1
	Skills []AgentSkill `json:"skills,omitempty"`
}

func (*A2AConfig) DeepCopy

func (in *A2AConfig) DeepCopy() *A2AConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new A2AConfig.

func (*A2AConfig) DeepCopyInto

func (in *A2AConfig) DeepCopyInto(out *A2AConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Agent

type Agent struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   AgentSpec   `json:"spec,omitempty"`
	Status AgentStatus `json:"status,omitempty"`
}

Agent is the Schema for the agents API.

func (*Agent) DeepCopy

func (in *Agent) DeepCopy() *Agent

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Agent.

func (*Agent) DeepCopyInto

func (in *Agent) DeepCopyInto(out *Agent)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Agent) DeepCopyObject

func (in *Agent) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AgentList

type AgentList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Agent `json:"items"`
}

AgentList contains a list of Agent.

func (*AgentList) DeepCopy

func (in *AgentList) DeepCopy() *AgentList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentList.

func (*AgentList) DeepCopyInto

func (in *AgentList) DeepCopyInto(out *AgentList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AgentList) DeepCopyObject

func (in *AgentList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AgentSkill

type AgentSkill server.AgentSkill

func (*AgentSkill) DeepCopy

func (in *AgentSkill) DeepCopy() *AgentSkill

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentSkill.

func (*AgentSkill) DeepCopyInto

func (in *AgentSkill) DeepCopyInto(out *AgentSkill)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AgentSpec

type AgentSpec struct {
	// +kubebuilder:validation:Enum=Declarative;BYO
	// +kubebuilder:default=Declarative
	Type AgentType `json:"type"`

	// +optional
	BYO *BYOAgentSpec `json:"byo,omitempty"`
	// +optional
	Declarative *DeclarativeAgentSpec `json:"declarative,omitempty"`

	// +optional
	Description string `json:"description,omitempty"`

	// Skills to load into the agent. They will be pulled from the specified container images.
	// and made available to the agent under the `/skills` folder.
	// +optional
	Skills *SkillForAgent `json:"skills,omitempty"`

	// AllowedNamespaces defines which namespaces are allowed to reference this Agent as a tool.
	// This follows the Gateway API pattern for cross-namespace route attachments.
	// If not specified, only Agents in the same namespace can reference this Agent as a tool.
	// This field only applies when this Agent is used as a tool by another Agent.
	// See: https://gateway-api.sigs.k8s.io/guides/multiple-ns/#cross-namespace-routing
	// +optional
	AllowedNamespaces *AllowedNamespaces `json:"allowedNamespaces,omitempty"`
}

AgentSpec defines the desired state of Agent. +kubebuilder:validation:XValidation:message="type must be specified",rule="has(self.type)" +kubebuilder:validation:XValidation:message="type must be either Declarative or BYO",rule="self.type == 'Declarative' || self.type == 'BYO'" +kubebuilder:validation:XValidation:message="declarative must be specified if type is Declarative, or byo must be specified if type is BYO",rule="(self.type == 'Declarative' && has(self.declarative)) || (self.type == 'BYO' && has(self.byo))"

func (*AgentSpec) DeepCopy

func (in *AgentSpec) DeepCopy() *AgentSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentSpec.

func (*AgentSpec) DeepCopyInto

func (in *AgentSpec) DeepCopyInto(out *AgentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AgentStatus

type AgentStatus struct {
	ObservedGeneration int64              `json:"observedGeneration"`
	Conditions         []metav1.Condition `json:"conditions,omitempty"`
}

AgentStatus defines the observed state of Agent.

func (*AgentStatus) DeepCopy

func (in *AgentStatus) DeepCopy() *AgentStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentStatus.

func (*AgentStatus) DeepCopyInto

func (in *AgentStatus) DeepCopyInto(out *AgentStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AgentType

type AgentType string

AgentType represents the agent type +kubebuilder:validation:Enum=Declarative;BYO

const (
	AgentType_Declarative AgentType = "Declarative"
	AgentType_BYO         AgentType = "BYO"
)

type AllowedNamespaces

type AllowedNamespaces struct {
	// From indicates where references to this resource can originate.
	// Possible values are:
	// * All: References from all namespaces are allowed.
	// * Same: Only references from the same namespace are allowed (default).
	// * Selector: References from namespaces matching the selector are allowed.
	// +kubebuilder:default=Same
	// +optional
	From FromNamespaces `json:"from,omitempty"`

	// Selector is a label selector for namespaces that are allowed to reference this resource.
	// Only used when From is set to "Selector".
	// +optional
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
}

AllowedNamespaces defines which namespaces are allowed to reference this resource. This mechanism provides a bidirectional handshake for cross-namespace references, following the pattern used by Gateway API for cross-namespace route attachments.

By default (when not specified), only references from the same namespace are allowed. +kubebuilder:validation:XValidation:rule="!(self.from == 'Selector' && !has(self.selector))",message="selector must be specified when from is Selector"

func (*AllowedNamespaces) AllowsNamespace

func (a *AllowedNamespaces) AllowsNamespace(ctx context.Context, c client.Client, sourceNamespace, targetNamespace string) (bool, error)

AllowsNamespace checks if a reference from the given namespace is allowed. The targetNamespace is the namespace where the resource being referenced lives. The sourceNamespace is the namespace where the referencing resource lives.

func (*AllowedNamespaces) DeepCopy

func (in *AllowedNamespaces) DeepCopy() *AllowedNamespaces

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedNamespaces.

func (*AllowedNamespaces) DeepCopyInto

func (in *AllowedNamespaces) DeepCopyInto(out *AllowedNamespaces)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AnthropicConfig

type AnthropicConfig struct {
	// Base URL for the Anthropic API (overrides default)
	// +optional
	BaseURL string `json:"baseUrl,omitempty"`

	// Maximum tokens to generate
	// +optional
	MaxTokens int `json:"maxTokens,omitempty"`

	// Temperature for sampling
	// +optional
	Temperature string `json:"temperature,omitempty"`

	// Top-p sampling parameter
	// +optional
	TopP string `json:"topP,omitempty"`

	// Top-k sampling parameter
	// +optional
	TopK int `json:"topK,omitempty"`
}

AnthropicConfig contains Anthropic-specific configuration options

func (*AnthropicConfig) DeepCopy

func (in *AnthropicConfig) DeepCopy() *AnthropicConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnthropicConfig.

func (*AnthropicConfig) DeepCopyInto

func (in *AnthropicConfig) DeepCopyInto(out *AnthropicConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AnthropicVertexAIConfig

type AnthropicVertexAIConfig struct {
	BaseVertexAIConfig `json:",inline"`

	// Maximum tokens to generate
	// +optional
	MaxTokens int `json:"maxTokens,omitempty"`
}

func (*AnthropicVertexAIConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnthropicVertexAIConfig.

func (*AnthropicVertexAIConfig) DeepCopyInto

func (in *AnthropicVertexAIConfig) DeepCopyInto(out *AnthropicVertexAIConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AzureOpenAIConfig

type AzureOpenAIConfig struct {
	// Endpoint for the Azure OpenAI API
	// +required
	Endpoint string `json:"azureEndpoint,omitempty"`

	// API version for the Azure OpenAI API
	// +required
	APIVersion string `json:"apiVersion,omitempty"`

	// Deployment name for the Azure OpenAI API
	// +optional
	DeploymentName string `json:"azureDeployment,omitempty"`

	// Azure AD token for authentication
	// +optional
	AzureADToken string `json:"azureAdToken,omitempty"`

	// Temperature for sampling
	// +optional
	Temperature string `json:"temperature,omitempty"`

	// Maximum tokens to generate
	// +optional
	MaxTokens *int `json:"maxTokens,omitempty"`

	// Top-p sampling parameter
	// +optional
	TopP string `json:"topP,omitempty"`
}

AzureOpenAIConfig contains Azure OpenAI-specific configuration options

func (*AzureOpenAIConfig) DeepCopy

func (in *AzureOpenAIConfig) DeepCopy() *AzureOpenAIConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureOpenAIConfig.

func (*AzureOpenAIConfig) DeepCopyInto

func (in *AzureOpenAIConfig) DeepCopyInto(out *AzureOpenAIConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BYOAgentSpec

type BYOAgentSpec struct {
	// Trust relationship to the agent.
	// +optional
	Deployment *ByoDeploymentSpec `json:"deployment,omitempty"`
}

func (*BYOAgentSpec) DeepCopy

func (in *BYOAgentSpec) DeepCopy() *BYOAgentSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOAgentSpec.

func (*BYOAgentSpec) DeepCopyInto

func (in *BYOAgentSpec) DeepCopyInto(out *BYOAgentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BaseVertexAIConfig

type BaseVertexAIConfig struct {
	// The project ID
	// +required
	ProjectID string `json:"projectID"`

	// The project location
	// +required
	Location string `json:"location,omitempty"`

	// Temperature
	// +optional
	Temperature string `json:"temperature,omitempty"`

	// Top-p sampling parameter
	// +optional
	TopP string `json:"topP,omitempty"`

	// Top-k sampling parameter
	// +optional
	TopK string `json:"topK,omitempty"`

	// Stop sequences
	// +optional
	StopSequences []string `json:"stopSequences,omitempty"`
}

func (*BaseVertexAIConfig) DeepCopy

func (in *BaseVertexAIConfig) DeepCopy() *BaseVertexAIConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BaseVertexAIConfig.

func (*BaseVertexAIConfig) DeepCopyInto

func (in *BaseVertexAIConfig) DeepCopyInto(out *BaseVertexAIConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BedrockConfig

type BedrockConfig struct {
	// AWS region where the Bedrock model is available (e.g., us-east-1, us-west-2)
	// +required
	Region string `json:"region"`
}

BedrockConfig contains AWS Bedrock-specific configuration options.

func (*BedrockConfig) DeepCopy

func (in *BedrockConfig) DeepCopy() *BedrockConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BedrockConfig.

func (*BedrockConfig) DeepCopyInto

func (in *BedrockConfig) DeepCopyInto(out *BedrockConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ByoDeploymentSpec

type ByoDeploymentSpec struct {
	// +kubebuilder:validation:MinLength=1
	Image string `json:"image,omitempty"`
	// +optional
	Cmd *string `json:"cmd,omitempty"`
	// +optional
	Args []string `json:"args,omitempty"`

	SharedDeploymentSpec `json:",inline"`
}

func (*ByoDeploymentSpec) DeepCopy

func (in *ByoDeploymentSpec) DeepCopy() *ByoDeploymentSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ByoDeploymentSpec.

func (*ByoDeploymentSpec) DeepCopyInto

func (in *ByoDeploymentSpec) DeepCopyInto(out *ByoDeploymentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ContextCompressionConfig

type ContextCompressionConfig struct {
	// The number of *new* user-initiated invocations that, once fully represented in the session's events, will trigger a compaction.
	// +optional
	// +kubebuilder:default=5
	// +kubebuilder:validation:Minimum=1
	CompactionInterval *int `json:"compactionInterval,omitempty"`
	// The number of preceding invocations to include from the end of the last compacted range. This creates an overlap between consecutive compacted summaries, maintaining context.
	// +optional
	// +kubebuilder:default=2
	// +kubebuilder:validation:Minimum=0
	OverlapSize *int `json:"overlapSize,omitempty"`
	// Summarizer configures an LLM-based summarizer for event compaction.
	// If not specified, compacted events are dropped from the context without summarization.
	// +optional
	Summarizer *ContextSummarizerConfig `json:"summarizer,omitempty"`
	// Post-invocation token threshold trigger. If set, ADK will attempt a post-invocation compaction when the most recently
	// observed prompt token count meets or exceeds this threshold.
	// +optional
	TokenThreshold *int `json:"tokenThreshold,omitempty"`
	// EventRetentionSize is the number of most recent events to always retain.
	// +optional
	EventRetentionSize *int `json:"eventRetentionSize,omitempty"`
}

ContextCompressionConfig configures event history compaction/compression.

func (*ContextCompressionConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContextCompressionConfig.

func (*ContextCompressionConfig) DeepCopyInto

func (in *ContextCompressionConfig) DeepCopyInto(out *ContextCompressionConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ContextConfig

type ContextConfig struct {
	// Compaction configures event history compaction.
	// When enabled, older events in the conversation are compacted (compressed/summarized)
	// to reduce context size while preserving key information.
	// +optional
	Compaction *ContextCompressionConfig `json:"compaction,omitempty"`
}

ContextConfig configures context management for an agent.

func (*ContextConfig) DeepCopy

func (in *ContextConfig) DeepCopy() *ContextConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContextConfig.

func (*ContextConfig) DeepCopyInto

func (in *ContextConfig) DeepCopyInto(out *ContextConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ContextSummarizerConfig

type ContextSummarizerConfig struct {
	// ModelConfig is the name of a ModelConfig resource to use for summarization.
	// Must be in the same namespace as the Agent.
	// If not specified, uses the agent's own model.
	// +optional
	ModelConfig *string `json:"modelConfig,omitempty"`
	// PromptTemplate is a custom prompt template for the summarizer.
	// See the ADK LlmEventSummarizer for template details:
	// https://github.com/google/adk-python/blob/main/src/google/adk/apps/llm_event_summarizer.py
	// +optional
	PromptTemplate *string `json:"promptTemplate,omitempty"`
}

ContextSummarizerConfig configures the LLM-based event summarizer.

func (*ContextSummarizerConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContextSummarizerConfig.

func (*ContextSummarizerConfig) DeepCopyInto

func (in *ContextSummarizerConfig) DeepCopyInto(out *ContextSummarizerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeclarativeAgentSpec

type DeclarativeAgentSpec struct {
	// SystemMessage is a string specifying the system message for the agent.
	// When PromptTemplate is set, this field is treated as a Go text/template
	// with access to an include("source/key") function and agent context variables
	// such as .AgentName, .AgentNamespace, .Description, .ToolNames, and .SkillNames.
	// +optional
	SystemMessage string `json:"systemMessage,omitempty"`
	// SystemMessageFrom is a reference to a ConfigMap or Secret containing the system message.
	// When PromptTemplate is set, the resolved value is treated as a Go text/template.
	// +optional
	SystemMessageFrom *ValueSource `json:"systemMessageFrom,omitempty"`
	// PromptTemplate enables Go text/template processing on the systemMessage field.
	// When set, systemMessage is treated as a Go template with access to the include function
	// and agent context variables.
	// +optional
	PromptTemplate *PromptTemplateSpec `json:"promptTemplate,omitempty"`
	// The name of the model config to use.
	// If not specified, the default value is "default-model-config".
	// Must be in the same namespace as the Agent.
	// +optional
	ModelConfig string `json:"modelConfig,omitempty"`
	// Whether to stream the response from the model.
	// If not specified, the default value is false.
	// +optional
	Stream bool `json:"stream,omitempty"`
	// +kubebuilder:validation:MaxItems=20
	Tools []*Tool `json:"tools,omitempty"`
	// A2AConfig instantiates an A2A server for this agent,
	// served on the HTTP port of the kagent kubernetes
	// controller (default 8083).
	// The A2A server URL will be served at
	// <kagent-controller-ip>:8083/api/a2a/<agent-namespace>/<agent-name>
	// Read more about the A2A protocol here: https://github.com/google/A2A
	// +optional
	A2AConfig *A2AConfig `json:"a2aConfig,omitempty"`

	// +optional
	Deployment *DeclarativeDeploymentSpec `json:"deployment,omitempty"`

	// Allow code execution for python code blocks with this agent.
	// If true, the agent will automatically execute python code blocks in the LLM responses.
	// Code will be executed in a sandboxed environment.
	// +optional
	// due to a bug in adk (https://github.com/google/adk-python/issues/3921), this field is ignored for now.
	ExecuteCodeBlocks *bool `json:"executeCodeBlocks,omitempty"`

	// Memory configuration for the agent.
	// +optional
	Memory *MemorySpec `json:"memory,omitempty"`

	// Context configures context management for this agent.
	// This includes event compaction (compression) and context caching.
	// +optional
	Context *ContextConfig `json:"context,omitempty"`
}

+kubebuilder:validation:XValidation:rule="!has(self.systemMessage) || !has(self.systemMessageFrom)",message="systemMessage and systemMessageFrom are mutually exclusive"

func (*DeclarativeAgentSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeclarativeAgentSpec.

func (*DeclarativeAgentSpec) DeepCopyInto

func (in *DeclarativeAgentSpec) DeepCopyInto(out *DeclarativeAgentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeclarativeDeploymentSpec

type DeclarativeDeploymentSpec struct {
	// +optional
	ImageRegistry string `json:"imageRegistry,omitempty"`

	SharedDeploymentSpec `json:",inline"`
}

func (*DeclarativeDeploymentSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeclarativeDeploymentSpec.

func (*DeclarativeDeploymentSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FromNamespaces

type FromNamespaces string

FromNamespaces specifies namespace from which references to this resource are allowed. This follows the same pattern as Gateway API's cross-namespace route attachment. See: https://gateway-api.sigs.k8s.io/guides/multiple-ns/#cross-namespace-routing +kubebuilder:validation:Enum=All;Same;Selector

const (
	// NamespacesFromAll allows references from all namespaces.
	NamespacesFromAll FromNamespaces = "All"
	// NamespacesFromSame only allows references from the same namespace as the target resource (default).
	NamespacesFromSame FromNamespaces = "Same"
	// NamespacesFromSelector allows references from namespaces matching the selector.
	NamespacesFromSelector FromNamespaces = "Selector"
)

type GeminiConfig

type GeminiConfig struct{}

func (*GeminiConfig) DeepCopy

func (in *GeminiConfig) DeepCopy() *GeminiConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeminiConfig.

func (*GeminiConfig) DeepCopyInto

func (in *GeminiConfig) DeepCopyInto(out *GeminiConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GeminiVertexAIConfig

type GeminiVertexAIConfig struct {
	BaseVertexAIConfig `json:",inline"`

	// Maximum output tokens
	// +optional
	MaxOutputTokens int `json:"maxOutputTokens,omitempty"`

	// Candidate count
	// +optional
	CandidateCount int `json:"candidateCount,omitempty"`

	// Response mime type
	// +optional
	ResponseMimeType string `json:"responseMimeType,omitempty"`
}

GeminiVertexAIConfig contains Gemini Vertex AI-specific configuration options

func (*GeminiVertexAIConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeminiVertexAIConfig.

func (*GeminiVertexAIConfig) DeepCopyInto

func (in *GeminiVertexAIConfig) DeepCopyInto(out *GeminiVertexAIConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GitRepo

type GitRepo struct {
	// URL of the git repository (HTTPS or SSH).
	// +kubebuilder:validation:Required
	URL string `json:"url"`

	// Git reference: branch name, tag, or commit SHA.
	// +optional
	// +kubebuilder:default="main"
	Ref string `json:"ref,omitempty"`

	// Subdirectory within the repo to use as the skill root.
	// +optional
	Path string `json:"path,omitempty"`

	// Name for the skill directory under /skills. Defaults to the repo name.
	// +optional
	Name string `json:"name,omitempty"`
}

GitRepo specifies a single Git repository to fetch skills from.

func (*GitRepo) DeepCopy

func (in *GitRepo) DeepCopy() *GitRepo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepo.

func (*GitRepo) DeepCopyInto

func (in *GitRepo) DeepCopyInto(out *GitRepo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MCPTool

type MCPTool struct {
	Name        string `json:"name"`
	Description string `json:"description"`
}

func (*MCPTool) DeepCopy

func (in *MCPTool) DeepCopy() *MCPTool

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPTool.

func (*MCPTool) DeepCopyInto

func (in *MCPTool) DeepCopyInto(out *MCPTool)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type McpServerTool

type McpServerTool struct {
	// The reference to the ToolServer that provides the tool.
	// +optional
	TypedReference `json:",inline"`

	// The names of the tools to be provided by the ToolServer
	// For a list of all the tools provided by the server,
	// the client can query the status of the ToolServer object after it has been created
	ToolNames []string `json:"toolNames,omitempty"`

	// AllowedHeaders specifies which headers from the A2A request should be
	// propagated to MCP tool calls. Header names are case-insensitive.
	//
	// Authorization header behavior:
	// - Authorization headers CAN be propagated if explicitly listed in allowedHeaders
	// - When STS token propagation is enabled, STS-generated Authorization headers
	//   will take precedence and replace any Authorization header from the A2A request
	// - This is a security measure to prevent request headers from overwriting
	//   authentication tokens generated by the STS integration
	//
	// Example: ["x-user-email", "x-tenant-id"]
	// +optional
	AllowedHeaders []string `json:"allowedHeaders,omitempty"`
}

func (*McpServerTool) DeepCopy

func (in *McpServerTool) DeepCopy() *McpServerTool

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new McpServerTool.

func (*McpServerTool) DeepCopyInto

func (in *McpServerTool) DeepCopyInto(out *McpServerTool)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MemorySpec

type MemorySpec struct {
	// ModelConfig is the name of the ModelConfig object whose embedding
	// provider will be used to generate memory vectors.
	// +kubebuilder:validation:Required
	ModelConfig string `json:"modelConfig"`

	// TTLDays controls how many days a stored memory entry remains valid before
	// it is eligible for pruning. Defaults to 15 days when unset or zero.
	// +optional
	// +kubebuilder:validation:Minimum=1
	TTLDays int `json:"ttlDays,omitempty"`
}

MemorySpec enables long-term memory for an agent.

func (*MemorySpec) DeepCopy

func (in *MemorySpec) DeepCopy() *MemorySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemorySpec.

func (*MemorySpec) DeepCopyInto

func (in *MemorySpec) DeepCopyInto(out *MemorySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ModelConfig

type ModelConfig struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ModelConfigSpec   `json:"spec,omitempty"`
	Status ModelConfigStatus `json:"status,omitempty"`
}

ModelConfig is the Schema for the modelconfigs API.

func (*ModelConfig) DeepCopy

func (in *ModelConfig) DeepCopy() *ModelConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModelConfig.

func (*ModelConfig) DeepCopyInto

func (in *ModelConfig) DeepCopyInto(out *ModelConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ModelConfig) DeepCopyObject

func (in *ModelConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ModelConfigList

type ModelConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ModelConfig `json:"items"`
}

ModelConfigList contains a list of ModelConfig.

func (*ModelConfigList) DeepCopy

func (in *ModelConfigList) DeepCopy() *ModelConfigList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModelConfigList.

func (*ModelConfigList) DeepCopyInto

func (in *ModelConfigList) DeepCopyInto(out *ModelConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ModelConfigList) DeepCopyObject

func (in *ModelConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ModelConfigSpec

type ModelConfigSpec struct {
	Model string `json:"model"`

	// The name of the secret that contains the API key. Must be a reference to the name of a secret in the same namespace as the referencing ModelConfig
	// +optional
	APIKeySecret string `json:"apiKeySecret"`

	// The key in the secret that contains the API key
	// +optional
	APIKeySecretKey string `json:"apiKeySecretKey"`

	// APIKeyPassthrough enables forwarding the Bearer token from incoming A2A requests
	// directly to the LLM provider as the API key. This is useful for organizations
	// with federated identity that want to avoid separate secret management.
	// Mutually exclusive with apiKeySecret.
	// +optional
	APIKeyPassthrough bool `json:"apiKeyPassthrough,omitempty"`

	// +optional
	DefaultHeaders map[string]string `json:"defaultHeaders,omitempty"`

	// The provider of the model
	// +kubebuilder:default=OpenAI
	Provider ModelProvider `json:"provider"`

	// OpenAI-specific configuration
	// +optional
	OpenAI *OpenAIConfig `json:"openAI,omitempty"`

	// Anthropic-specific configuration
	// +optional
	Anthropic *AnthropicConfig `json:"anthropic,omitempty"`

	// Azure OpenAI-specific configuration
	// +optional
	AzureOpenAI *AzureOpenAIConfig `json:"azureOpenAI,omitempty"`

	// Ollama-specific configuration
	// +optional
	Ollama *OllamaConfig `json:"ollama,omitempty"`

	// Gemini-specific configuration
	// +optional
	Gemini *GeminiConfig `json:"gemini,omitempty"`

	// Gemini Vertex AI-specific configuration
	// +optional
	GeminiVertexAI *GeminiVertexAIConfig `json:"geminiVertexAI,omitempty"`

	// Anthropic-specific configuration
	// +optional
	AnthropicVertexAI *AnthropicVertexAIConfig `json:"anthropicVertexAI,omitempty"`

	// AWS Bedrock-specific configuration
	// +optional
	Bedrock *BedrockConfig `json:"bedrock,omitempty"`

	// TLS configuration for provider connections.
	// Enables agents to connect to internal LiteLLM gateways or other providers
	// that use self-signed certificates or custom certificate authorities.
	// +optional
	TLS *TLSConfig `json:"tls,omitempty"`
}

ModelConfigSpec defines the desired state of ModelConfig.

+kubebuilder:validation:XValidation:message="provider.openAI must be nil if the provider is not OpenAI",rule="!(has(self.openAI) && self.provider != 'OpenAI')" +kubebuilder:validation:XValidation:message="provider.anthropic must be nil if the provider is not Anthropic",rule="!(has(self.anthropic) && self.provider != 'Anthropic')" +kubebuilder:validation:XValidation:message="provider.azureOpenAI must be nil if the provider is not AzureOpenAI",rule="!(has(self.azureOpenAI) && self.provider != 'AzureOpenAI')" +kubebuilder:validation:XValidation:message="provider.ollama must be nil if the provider is not Ollama",rule="!(has(self.ollama) && self.provider != 'Ollama')" +kubebuilder:validation:XValidation:message="provider.gemini must be nil if the provider is not Gemini",rule="!(has(self.gemini) && self.provider != 'Gemini')" +kubebuilder:validation:XValidation:message="provider.geminiVertexAI must be nil if the provider is not GeminiVertexAI",rule="!(has(self.geminiVertexAI) && self.provider != 'GeminiVertexAI')" +kubebuilder:validation:XValidation:message="provider.anthropicVertexAI must be nil if the provider is not AnthropicVertexAI",rule="!(has(self.anthropicVertexAI) && self.provider != 'AnthropicVertexAI')" +kubebuilder:validation:XValidation:message="provider.bedrock must be nil if the provider is not Bedrock",rule="!(has(self.bedrock) && self.provider != 'Bedrock')" +kubebuilder:validation:XValidation:message="apiKeySecret must be set if apiKeySecretKey is set",rule="!(has(self.apiKeySecretKey) && !has(self.apiKeySecret))" +kubebuilder:validation:XValidation:message="apiKeySecretKey must be set if apiKeySecret is set (except for Bedrock provider)",rule="!(has(self.apiKeySecret) && !has(self.apiKeySecretKey) && self.provider != 'Bedrock')" +kubebuilder:validation:XValidation:message="apiKeyPassthrough and apiKeySecret are mutually exclusive",rule="!(has(self.apiKeyPassthrough) && self.apiKeyPassthrough && has(self.apiKeySecret) && size(self.apiKeySecret) > 0)" +kubebuilder:validation:XValidation:message="apiKeyPassthrough must be false if provider is Gemini;GeminiVertexAI;AnthropicVertexAI",rule="!(has(self.apiKeyPassthrough) && self.apiKeyPassthrough && (self.provider == 'Gemini' || self.provider == 'GeminiVertexAI' || self.provider == 'AnthropicVertexAI'))" +kubebuilder:validation:XValidation:message="caCertSecretKey requires caCertSecretRef",rule="!(has(self.tls) && has(self.tls.caCertSecretKey) && size(self.tls.caCertSecretKey) > 0 && (!has(self.tls.caCertSecretRef) || size(self.tls.caCertSecretRef) == 0))" +kubebuilder:validation:XValidation:message="caCertSecretKey requires caCertSecretRef (unless disableVerify is true)",rule="!(has(self.tls) && (!has(self.tls.disableVerify) || !self.tls.disableVerify) && has(self.tls.caCertSecretKey) && size(self.tls.caCertSecretKey) > 0 && (!has(self.tls.caCertSecretRef) || size(self.tls.caCertSecretRef) == 0))" +kubebuilder:validation:XValidation:message="caCertSecretRef requires caCertSecretKey (unless disableVerify is true)",rule="!(has(self.tls) && (!has(self.tls.disableVerify) || !self.tls.disableVerify) && has(self.tls.caCertSecretRef) && size(self.tls.caCertSecretRef) > 0 && (!has(self.tls.caCertSecretKey) || size(self.tls.caCertSecretKey) == 0))"

func (*ModelConfigSpec) DeepCopy

func (in *ModelConfigSpec) DeepCopy() *ModelConfigSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModelConfigSpec.

func (*ModelConfigSpec) DeepCopyInto

func (in *ModelConfigSpec) DeepCopyInto(out *ModelConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ModelConfigStatus

type ModelConfigStatus struct {
	Conditions         []metav1.Condition `json:"conditions"`
	ObservedGeneration int64              `json:"observedGeneration"`
	// The secret hash stores a hash of any secrets required by the model config (i.e. api key, tls cert) to ensure agents referencing this model config detect changes to these secrets and restart if necessary.
	SecretHash string `json:"secretHash,omitempty"`
}

ModelConfigStatus defines the observed state of ModelConfig.

func (*ModelConfigStatus) DeepCopy

func (in *ModelConfigStatus) DeepCopy() *ModelConfigStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModelConfigStatus.

func (*ModelConfigStatus) DeepCopyInto

func (in *ModelConfigStatus) DeepCopyInto(out *ModelConfigStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ModelProvider

type ModelProvider string

ModelProvider represents the model provider type +kubebuilder:validation:Enum=Anthropic;OpenAI;AzureOpenAI;Ollama;Gemini;GeminiVertexAI;AnthropicVertexAI;Bedrock

const (
	ModelProviderAnthropic         ModelProvider = "Anthropic"
	ModelProviderAzureOpenAI       ModelProvider = "AzureOpenAI"
	ModelProviderOpenAI            ModelProvider = "OpenAI"
	ModelProviderOllama            ModelProvider = "Ollama"
	ModelProviderGemini            ModelProvider = "Gemini"
	ModelProviderGeminiVertexAI    ModelProvider = "GeminiVertexAI"
	ModelProviderAnthropicVertexAI ModelProvider = "AnthropicVertexAI"
	ModelProviderBedrock           ModelProvider = "Bedrock"
)

type ModelProviderConfig

type ModelProviderConfig struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ModelProviderConfigSpec   `json:"spec,omitempty"`
	Status ModelProviderConfigStatus `json:"status,omitempty"`
}

ModelProviderConfig is the Schema for the modelproviderconfigs API. It represents a model provider configuration with automatic model discovery.

func (*ModelProviderConfig) DeepCopy

func (in *ModelProviderConfig) DeepCopy() *ModelProviderConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModelProviderConfig.

func (*ModelProviderConfig) DeepCopyInto

func (in *ModelProviderConfig) DeepCopyInto(out *ModelProviderConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ModelProviderConfig) DeepCopyObject

func (in *ModelProviderConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ModelProviderConfigList

type ModelProviderConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ModelProviderConfig `json:"items"`
}

ModelProviderConfigList contains a list of ModelProviderConfig.

func (*ModelProviderConfigList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModelProviderConfigList.

func (*ModelProviderConfigList) DeepCopyInto

func (in *ModelProviderConfigList) DeepCopyInto(out *ModelProviderConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ModelProviderConfigList) DeepCopyObject

func (in *ModelProviderConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ModelProviderConfigSpec

type ModelProviderConfigSpec struct {
	// Type is the model provider type (OpenAI, Anthropic, etc.)
	// +required
	// +kubebuilder:validation:Required
	Type ModelProvider `json:"type"`

	// Endpoint is the API endpoint URL for the provider.
	// If not specified, the default endpoint for the provider type will be used.
	// +optional
	// +kubebuilder:validation:Pattern=`^https?://.*`
	Endpoint string `json:"endpoint,omitempty"`

	// SecretRef references the Kubernetes Secret containing the API key.
	// Optional for providers that don't require authentication (e.g., local Ollama).
	// +optional
	SecretRef *SecretReference `json:"secretRef,omitempty"`
}

ModelProviderConfigSpec defines the desired state of ModelProviderConfig.

+kubebuilder:validation:XValidation:message="endpoint must be a valid URL starting with http:// or https://",rule="!has(self.endpoint) || size(self.endpoint) == 0 || self.endpoint.startsWith('http://') || self.endpoint.startsWith('https://')" +kubebuilder:validation:XValidation:message="secretRef is required for providers that need authentication (not Ollama)",rule="self.type == 'Ollama' || (has(self.secretRef) && has(self.secretRef.name) && size(self.secretRef.name) > 0)"

func (*ModelProviderConfigSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModelProviderConfigSpec.

func (*ModelProviderConfigSpec) DeepCopyInto

func (in *ModelProviderConfigSpec) DeepCopyInto(out *ModelProviderConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ModelProviderConfigSpec) GetEndpoint

func (p *ModelProviderConfigSpec) GetEndpoint() string

GetEndpoint returns the endpoint, or the default endpoint if not specified.

func (*ModelProviderConfigSpec) RequiresSecret

func (p *ModelProviderConfigSpec) RequiresSecret() bool

RequiresSecret returns true if this model provider type requires a secret for authentication.

type ModelProviderConfigStatus

type ModelProviderConfigStatus struct {
	// ObservedGeneration reflects the generation of the most recently observed ModelProviderConfig spec
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions represent the latest available observations of the ModelProviderConfig's state
	// +optional
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// DiscoveredModels is the cached list of model IDs available from this model provider
	// +optional
	DiscoveredModels []string `json:"discoveredModels,omitempty"`

	// ModelCount is the number of discovered models (for kubectl display)
	// +optional
	ModelCount int `json:"modelCount,omitempty"`

	// LastDiscoveryTime is the timestamp of the last successful model discovery
	// +optional
	LastDiscoveryTime *metav1.Time `json:"lastDiscoveryTime,omitempty"`

	// SecretHash is a hash of the referenced secret data, used to detect secret changes
	// +optional
	SecretHash string `json:"secretHash,omitempty"`
}

ModelProviderConfigStatus defines the observed state of ModelProviderConfig.

func (*ModelProviderConfigStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModelProviderConfigStatus.

func (*ModelProviderConfigStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OllamaConfig

type OllamaConfig struct {
	// Host for the Ollama API
	// +optional
	Host string `json:"host,omitempty"`

	// Options for the Ollama API
	// +optional
	Options map[string]string `json:"options,omitempty"`
}

OllamaConfig contains Ollama-specific configuration options

func (*OllamaConfig) DeepCopy

func (in *OllamaConfig) DeepCopy() *OllamaConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OllamaConfig.

func (*OllamaConfig) DeepCopyInto

func (in *OllamaConfig) DeepCopyInto(out *OllamaConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenAIConfig

type OpenAIConfig struct {
	// Base URL for the OpenAI API (overrides default)
	// +optional
	BaseURL string `json:"baseUrl,omitempty"`

	// Organization ID for the OpenAI API
	// +optional
	Organization string `json:"organization,omitempty"`

	// Temperature for sampling
	// +optional
	Temperature string `json:"temperature,omitempty"`

	// Maximum tokens to generate
	// +optional
	MaxTokens int `json:"maxTokens,omitempty"`

	// Top-p sampling parameter
	// +optional
	TopP string `json:"topP,omitempty"`

	// Frequency penalty
	// +optional
	FrequencyPenalty string `json:"frequencyPenalty,omitempty"`

	// Presence penalty
	// +optional
	PresencePenalty string `json:"presencePenalty,omitempty"`

	// Seed value
	// +optional
	Seed *int `json:"seed,omitempty"`

	// N value
	N *int `json:"n,omitempty"`

	// Timeout
	Timeout *int `json:"timeout,omitempty"`

	// Reasoning effort
	// +optional
	ReasoningEffort *OpenAIReasoningEffort `json:"reasoningEffort,omitempty"`
}

OpenAIConfig contains OpenAI-specific configuration options

func (*OpenAIConfig) DeepCopy

func (in *OpenAIConfig) DeepCopy() *OpenAIConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenAIConfig.

func (*OpenAIConfig) DeepCopyInto

func (in *OpenAIConfig) DeepCopyInto(out *OpenAIConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenAIReasoningEffort

type OpenAIReasoningEffort string

OpenAIReasoningEffort represents how many reasoning tokens the model generates before producing a response. +kubebuilder:validation:Enum=minimal;low;medium;high

type PromptSource

type PromptSource struct {
	// Inline reference to the Kubernetes resource.
	// For ConfigMaps: kind=ConfigMap, apiGroup="" (empty for core API group).
	TypedLocalReference `json:",inline"`

	// Alias is an optional short identifier for use in include directives.
	// If set, use include("alias/key") instead of include("name/key").
	// +optional
	Alias string `json:"alias,omitempty"`
}

PromptSource references a ConfigMap whose keys are available as prompt fragments. In systemMessage templates, use include("alias/key") (or include("name/key") if no alias is set) to insert the value of a specific key from this source.

func (*PromptSource) DeepCopy

func (in *PromptSource) DeepCopy() *PromptSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromptSource.

func (*PromptSource) DeepCopyInto

func (in *PromptSource) DeepCopyInto(out *PromptSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PromptTemplateSpec

type PromptTemplateSpec struct {
	// DataSources defines the ConfigMaps whose keys can be included in the systemMessage
	// using Go template syntax, e.g. include("alias/key") or include("name/key").
	// +optional
	// +kubebuilder:validation:MaxItems=20
	DataSources []PromptSource `json:"dataSources,omitempty"`
}

PromptTemplateSpec configures prompt template processing for an agent's system message.

func (*PromptTemplateSpec) DeepCopy

func (in *PromptTemplateSpec) DeepCopy() *PromptTemplateSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromptTemplateSpec.

func (*PromptTemplateSpec) DeepCopyInto

func (in *PromptTemplateSpec) DeepCopyInto(out *PromptTemplateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RemoteMCPServer

type RemoteMCPServer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RemoteMCPServerSpec   `json:"spec,omitempty"`
	Status RemoteMCPServerStatus `json:"status,omitempty"`
}

RemoteMCPServer is the Schema for the RemoteMCPServers API.

func (*RemoteMCPServer) DeepCopy

func (in *RemoteMCPServer) DeepCopy() *RemoteMCPServer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteMCPServer.

func (*RemoteMCPServer) DeepCopyInto

func (in *RemoteMCPServer) DeepCopyInto(out *RemoteMCPServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RemoteMCPServer) DeepCopyObject

func (in *RemoteMCPServer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*RemoteMCPServer) ResolveHeaders

func (r *RemoteMCPServer) ResolveHeaders(ctx context.Context, client client.Client) (map[string]string, error)

ResolveHeaders resolves all HeadersFrom entries using the object's namespace.

type RemoteMCPServerList

type RemoteMCPServerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []RemoteMCPServer `json:"items"`
}

+kubebuilder:object:root=true RemoteMCPServerList contains a list of RemoteMCPServer.

func (*RemoteMCPServerList) DeepCopy

func (in *RemoteMCPServerList) DeepCopy() *RemoteMCPServerList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteMCPServerList.

func (*RemoteMCPServerList) DeepCopyInto

func (in *RemoteMCPServerList) DeepCopyInto(out *RemoteMCPServerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RemoteMCPServerList) DeepCopyObject

func (in *RemoteMCPServerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RemoteMCPServerProtocol

type RemoteMCPServerProtocol string

+kubebuilder:validation:Enum=SSE;STREAMABLE_HTTP

const (
	RemoteMCPServerProtocolSse            RemoteMCPServerProtocol = "SSE"
	RemoteMCPServerProtocolStreamableHttp RemoteMCPServerProtocol = "STREAMABLE_HTTP"
)

type RemoteMCPServerSpec

type RemoteMCPServerSpec struct {
	Description string `json:"description"`
	// +kubebuilder:default=STREAMABLE_HTTP
	// +optional
	Protocol RemoteMCPServerProtocol `json:"protocol"`
	// +kubebuilder:validation:MinLength=1
	URL string `json:"url"`
	// +optional
	HeadersFrom []ValueRef `json:"headersFrom,omitempty"`
	// +optional
	Timeout *metav1.Duration `json:"timeout,omitempty"`
	// +optional
	SseReadTimeout *metav1.Duration `json:"sseReadTimeout,omitempty"`
	// +optional
	// +kubebuilder:default=true
	TerminateOnClose *bool `json:"terminateOnClose,omitempty"`

	// AllowedNamespaces defines which namespaces are allowed to reference this RemoteMCPServer.
	// This follows the Gateway API pattern for cross-namespace route attachments.
	// If not specified, only Agents in the same namespace can reference this RemoteMCPServer.
	// See: https://gateway-api.sigs.k8s.io/guides/multiple-ns/#cross-namespace-routing
	// +optional
	AllowedNamespaces *AllowedNamespaces `json:"allowedNamespaces,omitempty"`
}

RemoteMCPServerSpec defines the desired state of RemoteMCPServer.

func (*RemoteMCPServerSpec) DeepCopy

func (in *RemoteMCPServerSpec) DeepCopy() *RemoteMCPServerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteMCPServerSpec.

func (*RemoteMCPServerSpec) DeepCopyInto

func (in *RemoteMCPServerSpec) DeepCopyInto(out *RemoteMCPServerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RemoteMCPServerSpec) Scan

func (t *RemoteMCPServerSpec) Scan(src any) error

func (RemoteMCPServerSpec) Value

func (t RemoteMCPServerSpec) Value() (driver.Value, error)

type RemoteMCPServerStatus

type RemoteMCPServerStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	ObservedGeneration int64              `json:"observedGeneration"`
	Conditions         []metav1.Condition `json:"conditions"`
	// +kubebuilder:validation:Optional
	DiscoveredTools []*MCPTool `json:"discoveredTools"`
}

RemoteMCPServerStatus defines the observed state of RemoteMCPServer.

func (*RemoteMCPServerStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteMCPServerStatus.

func (*RemoteMCPServerStatus) DeepCopyInto

func (in *RemoteMCPServerStatus) DeepCopyInto(out *RemoteMCPServerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecretReference

type SecretReference struct {
	// Name is the name of the secret in the same namespace as the ModelProviderConfig.
	// +required
	Name string `json:"name"`
}

SecretReference references a Kubernetes Secret that must contain exactly one data key holding the API key or credential.

func (*SecretReference) DeepCopy

func (in *SecretReference) DeepCopy() *SecretReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretReference.

func (*SecretReference) DeepCopyInto

func (in *SecretReference) DeepCopyInto(out *SecretReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceAccountConfig

type ServiceAccountConfig struct {
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

func (*ServiceAccountConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountConfig.

func (*ServiceAccountConfig) DeepCopyInto

func (in *ServiceAccountConfig) DeepCopyInto(out *ServiceAccountConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SharedDeploymentSpec

type SharedDeploymentSpec struct {
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`
	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`
	// +optional
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
	// +optional
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
	// ServiceAccountName specifies the name of an existing ServiceAccount to use.
	// If this field is set, the Agent controller will not create a ServiceAccount for the agent.
	// This field is mutually exclusive with ServiceAccountConfig.
	// +optional
	ServiceAccountName *string `json:"serviceAccountName,omitempty"`
	// ServiceAccountConfig configures the ServiceAccount created by the Agent controller.
	// This field can only be used when ServiceAccountName is not set.
	// If ServiceAccountName is not set, a default ServiceAccount (named after the agent)
	// is created, and this config will be applied to it.
	// +optional
	ServiceAccountConfig *ServiceAccountConfig `json:"serviceAccountConfig,omitempty"`
}

+kubebuilder:validation:XValidation:message="serviceAccountName and serviceAccountConfig are mutually exclusive",rule="!(has(self.serviceAccountName) && has(self.serviceAccountConfig))"

func (*SharedDeploymentSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SharedDeploymentSpec.

func (*SharedDeploymentSpec) DeepCopyInto

func (in *SharedDeploymentSpec) DeepCopyInto(out *SharedDeploymentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SkillForAgent

type SkillForAgent struct {
	// Fetch images insecurely from registries (allowing HTTP and skipping TLS verification).
	// Meant for development and testing purposes only.
	// +optional
	InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"`

	// The list of skill images to fetch.
	// +kubebuilder:validation:MaxItems=20
	// +kubebuilder:validation:MinItems=1
	// +optional
	Refs []string `json:"refs,omitempty"`

	// Reference to a Secret containing git credentials.
	// Applied to all gitRefs entries.
	// The secret should contain a `token` key for HTTPS auth,
	// or `ssh-privatekey` for SSH auth.
	// +optional
	GitAuthSecretRef *corev1.LocalObjectReference `json:"gitAuthSecretRef,omitempty"`

	// Git repositories to fetch skills from.
	// +kubebuilder:validation:MaxItems=20
	// +kubebuilder:validation:MinItems=1
	// +optional
	GitRefs []GitRepo `json:"gitRefs,omitempty"`
}

+kubebuilder:validation:AtLeastOneOf=refs,gitRefs

func (*SkillForAgent) DeepCopy

func (in *SkillForAgent) DeepCopy() *SkillForAgent

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SkillForAgent.

func (*SkillForAgent) DeepCopyInto

func (in *SkillForAgent) DeepCopyInto(out *SkillForAgent)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TLSConfig

type TLSConfig struct {
	// DisableVerify disables SSL certificate verification entirely.
	// When false (default), SSL certificates are verified.
	// When true, SSL certificate verification is disabled.
	// WARNING: This should ONLY be used in development/testing environments.
	// Production deployments MUST use proper certificates.
	// +optional
	// +kubebuilder:default=false
	DisableVerify bool `json:"disableVerify,omitempty"`

	// CACertSecretRef is a reference to a Kubernetes Secret containing
	// CA certificate(s) in PEM format. The Secret must be in the same
	// namespace as the ModelConfig.
	// When set, the certificate will be used to verify the provider's SSL certificate.
	// This field follows the same pattern as APIKeySecret.
	// +optional
	CACertSecretRef string `json:"caCertSecretRef,omitempty"`

	// CACertSecretKey is the key within the Secret that contains the CA certificate data.
	// This field follows the same pattern as APIKeySecretKey.
	// Required when CACertSecretRef is set (unless DisableVerify is true).
	// +optional
	CACertSecretKey string `json:"caCertSecretKey,omitempty"`

	// DisableSystemCAs disables the use of system CA certificates.
	// When false (default), system CA certificates are used for verification (safe behavior).
	// When true, only the custom CA from CACertSecretRef is trusted.
	// This allows strict security policies where only corporate CAs should be trusted.
	// +optional
	// +kubebuilder:default=false
	DisableSystemCAs bool `json:"disableSystemCAs,omitempty"`
}

TLSConfig contains TLS/SSL configuration options for model provider connections. This enables agents to connect to internal LiteLLM gateways or other providers that use self-signed certificates or custom certificate authorities.

func (*TLSConfig) DeepCopy

func (in *TLSConfig) DeepCopy() *TLSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.

func (*TLSConfig) DeepCopyInto

func (in *TLSConfig) DeepCopyInto(out *TLSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Tool

type Tool struct {
	// +kubebuilder:validation:Enum=McpServer;Agent
	Type ToolProviderType `json:"type,omitempty"`
	// +optional
	McpServer *McpServerTool `json:"mcpServer,omitempty"`
	// +optional
	Agent *TypedReference `json:"agent,omitempty"`

	// HeadersFrom specifies a list of configuration values to be added as
	// headers to requests sent to the Tool from this agent. The value of
	// each header is resolved from either a Secret or ConfigMap in the same
	// namespace as the Agent. Headers specified here will override any
	// headers of the same name/key specified on the tool.
	// +optional
	HeadersFrom []ValueRef `json:"headersFrom,omitempty"`
}

+kubebuilder:validation:XValidation:message="type.mcpServer must be nil if the type is not McpServer",rule="!(has(self.mcpServer) && self.type != 'McpServer')" +kubebuilder:validation:XValidation:message="type.mcpServer must be specified for McpServer filter.type",rule="!(!has(self.mcpServer) && self.type == 'McpServer')" +kubebuilder:validation:XValidation:message="type.agent must be nil if the type is not Agent",rule="!(has(self.agent) && self.type != 'Agent')" +kubebuilder:validation:XValidation:message="type.agent must be specified for Agent filter.type",rule="!(!has(self.agent) && self.type == 'Agent')"

func (*Tool) DeepCopy

func (in *Tool) DeepCopy() *Tool

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tool.

func (*Tool) DeepCopyInto

func (in *Tool) DeepCopyInto(out *Tool)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Tool) ResolveHeaders

func (s *Tool) ResolveHeaders(ctx context.Context, client client.Client, namespace string) (map[string]string, error)

type ToolProviderType

type ToolProviderType string

ToolProviderType represents the tool provider type +kubebuilder:validation:Enum=McpServer;Agent

const (
	ToolProviderType_McpServer ToolProviderType = "McpServer"
	ToolProviderType_Agent     ToolProviderType = "Agent"
)

type TypedLocalReference

type TypedLocalReference struct {
	// +optional
	Kind string `json:"kind"`
	// +optional
	ApiGroup string `json:"apiGroup"`
	Name     string `json:"name"`
}

func (*TypedLocalReference) DeepCopy

func (in *TypedLocalReference) DeepCopy() *TypedLocalReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypedLocalReference.

func (*TypedLocalReference) DeepCopyInto

func (in *TypedLocalReference) DeepCopyInto(out *TypedLocalReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TypedReference

type TypedReference struct {
	// +optional
	Kind string `json:"kind"`
	// +optional
	ApiGroup string `json:"apiGroup"`
	Name     string `json:"name"`
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

func (*TypedReference) DeepCopy

func (in *TypedReference) DeepCopy() *TypedReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypedReference.

func (*TypedReference) DeepCopyInto

func (in *TypedReference) DeepCopyInto(out *TypedReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TypedReference) GroupKind

func (t *TypedReference) GroupKind() schema.GroupKind

func (*TypedReference) NamespacedName

func (t *TypedReference) NamespacedName(defaultNamespace string) types.NamespacedName

type ValueRef

type ValueRef struct {
	Name string `json:"name"`
	// +optional
	Value string `json:"value,omitempty"`
	// +optional
	ValueFrom *ValueSource `json:"valueFrom,omitempty"`
}

ValueRef represents a configuration value +kubebuilder:validation:XValidation:rule="(has(self.value) && !has(self.valueFrom)) || (!has(self.value) && has(self.valueFrom))",message="Exactly one of value or valueFrom must be specified"

func (*ValueRef) DeepCopy

func (in *ValueRef) DeepCopy() *ValueRef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueRef.

func (*ValueRef) DeepCopyInto

func (in *ValueRef) DeepCopyInto(out *ValueRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ValueRef) Resolve

func (r *ValueRef) Resolve(ctx context.Context, client client.Client, namespace string) (string, string, error)

type ValueSource

type ValueSource struct {
	// +kubebuilder:validation:Enum=ConfigMap;Secret
	Type ValueSourceType `json:"type"`
	// The name of the ConfigMap or Secret.
	Name string `json:"name"`
	// The key of the ConfigMap or Secret.
	Key string `json:"key"`
}

ValueSource defines a source for configuration values from a Secret or ConfigMap

func (*ValueSource) DeepCopy

func (in *ValueSource) DeepCopy() *ValueSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueSource.

func (*ValueSource) DeepCopyInto

func (in *ValueSource) DeepCopyInto(out *ValueSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ValueSource) Resolve

func (s *ValueSource) Resolve(ctx context.Context, client client.Client, namespace string) (string, error)

type ValueSourceType

type ValueSourceType string
const (
	ConfigMapValueSource ValueSourceType = "ConfigMap"
	SecretValueSource    ValueSourceType = "Secret"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL