Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the agent v1alpha1 API group. +kubebuilder:object:generate=true +groupName=kagent.dev
Index ¶
- Constants
- Variables
- func DefaultModelProviderEndpoint(providerType ModelProvider) string
- type A2AConfig
- type Agent
- type AgentList
- type AgentSkill
- type AgentSpec
- type AgentStatus
- type AgentType
- type AllowedNamespaces
- type AnthropicConfig
- type AnthropicVertexAIConfig
- type AzureOpenAIConfig
- type BYOAgentSpec
- type BaseVertexAIConfig
- type BedrockConfig
- type ByoDeploymentSpec
- type ContextCompressionConfig
- type ContextConfig
- type ContextSummarizerConfig
- type DeclarativeAgentSpec
- type DeclarativeDeploymentSpec
- type FromNamespaces
- type GeminiConfig
- type GeminiVertexAIConfig
- type GitRepo
- type MCPTool
- type McpServerTool
- type MemorySpec
- type ModelConfig
- type ModelConfigList
- type ModelConfigSpec
- type ModelConfigStatus
- type ModelProvider
- type ModelProviderConfig
- type ModelProviderConfigList
- type ModelProviderConfigSpec
- type ModelProviderConfigStatus
- type OllamaConfig
- type OpenAIConfig
- type OpenAIReasoningEffort
- type PromptSource
- type PromptTemplateSpec
- type RemoteMCPServer
- type RemoteMCPServerList
- type RemoteMCPServerProtocol
- type RemoteMCPServerSpec
- type RemoteMCPServerStatus
- type SecretReference
- type ServiceAccountConfig
- type SharedDeploymentSpec
- type SkillForAgent
- type TLSConfig
- type Tool
- type ToolProviderType
- type TypedLocalReference
- type TypedReference
- type ValueRef
- type ValueSource
- type ValueSourceType
Constants ¶
const ( AgentConditionTypeAccepted = "Accepted" AgentConditionTypeReady = "Ready" )
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" )
const (
ModelConfigConditionTypeAccepted = "Accepted"
)
Variables ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new A2AConfig.
func (*A2AConfig) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Agent.
func (*Agent) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Agent) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentList.
func (*AgentList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AgentList) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentSpec.
func (*AgentSpec) DeepCopyInto ¶
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
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 ¶
func (in *AnthropicVertexAIConfig) DeepCopy() *AnthropicVertexAIConfig
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"`
}
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 ¶
func (in *ContextCompressionConfig) DeepCopy() *ContextCompressionConfig
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 ¶
func (in *ContextSummarizerConfig) DeepCopy() *ContextSummarizerConfig
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 ¶
func (in *DeclarativeAgentSpec) DeepCopy() *DeclarativeAgentSpec
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"`
}
func (*DeclarativeDeploymentSpec) DeepCopy ¶
func (in *DeclarativeDeploymentSpec) DeepCopy() *DeclarativeDeploymentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeclarativeDeploymentSpec.
func (*DeclarativeDeploymentSpec) DeepCopyInto ¶
func (in *DeclarativeDeploymentSpec) DeepCopyInto(out *DeclarativeDeploymentSpec)
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 ¶
func (in *GeminiVertexAIConfig) DeepCopy() *GeminiVertexAIConfig
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepo.
func (*GitRepo) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MCPTool ¶
func (*MCPTool) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPTool.
func (*MCPTool) DeepCopyInto ¶
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 ¶
func (in *ModelProviderConfigList) DeepCopy() *ModelProviderConfigList
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 ¶
func (in *ModelProviderConfigSpec) DeepCopy() *ModelProviderConfigSpec
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 ¶
func (in *ModelProviderConfigStatus) DeepCopy() *ModelProviderConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModelProviderConfigStatus.
func (*ModelProviderConfigStatus) DeepCopyInto ¶
func (in *ModelProviderConfigStatus) DeepCopyInto(out *ModelProviderConfigStatus)
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
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 ¶
func (in *RemoteMCPServerStatus) DeepCopy() *RemoteMCPServerStatus
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 ¶
func (in *ServiceAccountConfig) DeepCopy() *ServiceAccountConfig
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 {
Replicas *int32 `json:"replicas,omitempty"`
ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
Volumes []corev1.Volume `json:"volumes,omitempty"`
VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
Annotations map[string]string `json:"annotations,omitempty"`
Env []corev1.EnvVar `json:"env,omitempty"`
ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
Affinity *corev1.Affinity `json:"affinity,omitempty"`
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
// 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"`
// 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 ¶
func (in *SharedDeploymentSpec) DeepCopy() *SharedDeploymentSpec
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.
func (*TLSConfig) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tool.
func (*Tool) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueRef.
func (*ValueRef) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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.
type ValueSourceType ¶
type ValueSourceType string
const ( ConfigMapValueSource ValueSourceType = "ConfigMap" SecretValueSource ValueSourceType = "Secret" )