Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the agent v1alpha1 API group. +kubebuilder:object:generate=true +groupName=kagent.dev
Index ¶
- Constants
- Variables
- type A2AConfig
- type Agent
- type AgentList
- type AgentSkill
- type AgentSpec
- type AgentStatus
- type AgentType
- type AnthropicConfig
- type AnthropicVertexAIConfig
- type AzureOpenAIConfig
- type BYOAgentSpec
- type BaseVertexAIConfig
- type ByoDeploymentSpec
- type DeclarativeAgentSpec
- type DeclarativeDeploymentSpec
- type GeminiConfig
- type GeminiVertexAIConfig
- type MCPTool
- type McpServerTool
- type ModelConfig
- type ModelConfigList
- type ModelConfigSpec
- type ModelConfigStatus
- type ModelProvider
- type OllamaConfig
- type OpenAIConfig
- type OpenAIReasoningEffort
- type RemoteMCPServer
- type RemoteMCPServerList
- type RemoteMCPServerProtocol
- type RemoteMCPServerSpec
- func (in *RemoteMCPServerSpec) DeepCopy() *RemoteMCPServerSpec
- func (in *RemoteMCPServerSpec) DeepCopyInto(out *RemoteMCPServerSpec)
- func (s *RemoteMCPServerSpec) ResolveHeaders(ctx context.Context, client client.Client, namespace string) (map[string]string, error)
- func (t *RemoteMCPServerSpec) Scan(src any) error
- func (t RemoteMCPServerSpec) Value() (driver.Value, error)
- type RemoteMCPServerStatus
- type SharedDeploymentSpec
- type SkillForAgent
- type TLSConfig
- type Tool
- type ToolProviderType
- type TypedLocalReference
- type ValueRef
- type ValueSource
- type ValueSourceType
Constants ¶
const ( AgentConditionTypeAccepted = "Accepted" AgentConditionTypeReady = "Ready" )
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 ¶
This section is empty.
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"`
}
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 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 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 DeclarativeAgentSpec ¶
type DeclarativeAgentSpec struct {
// SystemMessage is a string specifying the system message for the agent
// +optional
SystemMessage string `json:"systemMessage,omitempty"`
// SystemMessageFrom is a reference to a ConfigMap or Secret containing the system message.
// +optional
SystemMessageFrom *ValueSource `json:"systemMessageFrom,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 true.
// +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"`
}
+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 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 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.
// Can either be a reference to the name of a ToolServer in the same namespace as the referencing Agent, or a reference to the name of an ToolServer in a different namespace in the form <namespace>/<name>
// +optional
TypedLocalReference `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"`
}
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 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"`
// +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"`
// 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="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",rule="!(has(self.apiKeySecret) && !has(self.apiKeySecretKey))" +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
const ( ModelProviderAnthropic ModelProvider = "Anthropic" ModelProviderAzureOpenAI ModelProvider = "AzureOpenAI" ModelProviderOpenAI ModelProvider = "OpenAI" ModelProviderOllama ModelProvider = "Ollama" ModelProviderGemini ModelProvider = "Gemini" ModelProviderGeminiVertexAI ModelProvider = "GeminiVertexAI" ModelProviderAnthropicVertexAI ModelProvider = "AnthropicVertexAI" )
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 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.
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"`
}
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) ResolveHeaders ¶
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 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"`
}
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:MinItems=1
// +kubebuilder:validation:MaxItems=20
Refs []string `json:"refs,omitempty"`
}
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 *TypedLocalReference `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.
func (*TypedLocalReference) GroupKind ¶
func (t *TypedLocalReference) GroupKind() schema.GroupKind
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" )