v1alpha2

package
v0.0.0-...-2699e07 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2025 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const (
	AgentConditionTypeAccepted = "Accepted"
	AgentConditionTypeReady    = "Ready"
)
View Source
const (
	ModelConfigConditionTypeAccepted = "Accepted"
)

Variables

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

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type A2AConfig

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

func (*A2AConfig) DeepCopy

func (in *A2AConfig) DeepCopy() *A2AConfig

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

func (*A2AConfig) DeepCopyInto

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

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

type Agent

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

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

Agent is the Schema for the agents API.

func (*Agent) DeepCopy

func (in *Agent) DeepCopy() *Agent

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

func (*Agent) DeepCopyInto

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

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

func (*Agent) DeepCopyObject

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

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

type AgentList

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

AgentList contains a list of Agent.

func (*AgentList) DeepCopy

func (in *AgentList) DeepCopy() *AgentList

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

func (*AgentList) DeepCopyInto

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

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

func (*AgentList) DeepCopyObject

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

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

type AgentSkill

type AgentSkill server.AgentSkill

func (*AgentSkill) DeepCopy

func (in *AgentSkill) DeepCopy() *AgentSkill

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

func (*AgentSkill) DeepCopyInto

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

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

type AgentSpec

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

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

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

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

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

func (*AgentSpec) DeepCopy

func (in *AgentSpec) DeepCopy() *AgentSpec

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

func (*AgentSpec) DeepCopyInto

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

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

type AgentStatus

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

AgentStatus defines the observed state of Agent.

func (*AgentStatus) DeepCopy

func (in *AgentStatus) DeepCopy() *AgentStatus

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

func (*AgentStatus) DeepCopyInto

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

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

type AgentType

type AgentType string

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

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

type AnthropicConfig

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

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

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

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

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

AnthropicConfig contains Anthropic-specific configuration options

func (*AnthropicConfig) DeepCopy

func (in *AnthropicConfig) DeepCopy() *AnthropicConfig

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

func (*AnthropicConfig) DeepCopyInto

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

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

type AnthropicVertexAIConfig

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

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

func (*AnthropicVertexAIConfig) DeepCopy

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

func (*AnthropicVertexAIConfig) DeepCopyInto

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

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

type AzureOpenAIConfig

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

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

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

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

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

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

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

AzureOpenAIConfig contains Azure OpenAI-specific configuration options

func (*AzureOpenAIConfig) DeepCopy

func (in *AzureOpenAIConfig) DeepCopy() *AzureOpenAIConfig

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

func (*AzureOpenAIConfig) DeepCopyInto

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

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

type BYOAgentSpec

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

func (*BYOAgentSpec) DeepCopy

func (in *BYOAgentSpec) DeepCopy() *BYOAgentSpec

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

func (*BYOAgentSpec) DeepCopyInto

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

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

type BaseVertexAIConfig

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

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

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

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

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

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

func (*BaseVertexAIConfig) DeepCopy

func (in *BaseVertexAIConfig) DeepCopy() *BaseVertexAIConfig

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

func (*BaseVertexAIConfig) DeepCopyInto

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

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

type ByoDeploymentSpec

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

	SharedDeploymentSpec `json:",inline"`
}

func (*ByoDeploymentSpec) DeepCopy

func (in *ByoDeploymentSpec) DeepCopy() *ByoDeploymentSpec

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

func (*ByoDeploymentSpec) DeepCopyInto

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

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

type 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

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

func (*DeclarativeAgentSpec) DeepCopyInto

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

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

type DeclarativeDeploymentSpec

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

	SharedDeploymentSpec `json:",inline"`
}

func (*DeclarativeDeploymentSpec) DeepCopy

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

func (*DeclarativeDeploymentSpec) DeepCopyInto

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

type GeminiConfig

type GeminiConfig struct{}

func (*GeminiConfig) DeepCopy

func (in *GeminiConfig) DeepCopy() *GeminiConfig

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

func (*GeminiConfig) DeepCopyInto

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

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

type GeminiVertexAIConfig

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

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

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

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

GeminiVertexAIConfig contains Gemini Vertex AI-specific configuration options

func (*GeminiVertexAIConfig) DeepCopy

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

func (*GeminiVertexAIConfig) DeepCopyInto

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

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

type MCPTool

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

func (*MCPTool) DeepCopy

func (in *MCPTool) DeepCopy() *MCPTool

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

func (*MCPTool) DeepCopyInto

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

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

type McpServerTool

type McpServerTool struct {
	// The reference to the ToolServer that provides the tool.
	// 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 (s *RemoteMCPServerSpec) ResolveHeaders(ctx context.Context, client client.Client, namespace string) (map[string]string, error)

func (*RemoteMCPServerSpec) Scan

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

func (RemoteMCPServerSpec) Value

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

type RemoteMCPServerStatus

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

RemoteMCPServerStatus defines the observed state of RemoteMCPServer.

func (*RemoteMCPServerStatus) DeepCopy

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

func (*RemoteMCPServerStatus) DeepCopyInto

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

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

type SharedDeploymentSpec

type SharedDeploymentSpec struct {
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`
	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`
	// +optional
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
	// +optional
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
}

func (*SharedDeploymentSpec) DeepCopy

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

func (*SharedDeploymentSpec) DeepCopyInto

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

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

type SkillForAgent

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

	// The list of skill images to fetch.
	// +kubebuilder:validation: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

func (in *TLSConfig) DeepCopy() *TLSConfig

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

func (*TLSConfig) DeepCopyInto

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

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

type Tool

type Tool struct {
	// +kubebuilder:validation:Enum=McpServer;Agent
	Type ToolProviderType `json:"type,omitempty"`
	// +optional
	McpServer *McpServerTool `json:"mcpServer,omitempty"`
	// +optional
	Agent *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

func (in *Tool) DeepCopy() *Tool

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

func (*Tool) DeepCopyInto

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

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

func (*Tool) ResolveHeaders

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

type ToolProviderType

type ToolProviderType string

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

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

type TypedLocalReference

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

func (*TypedLocalReference) DeepCopy

func (in *TypedLocalReference) DeepCopy() *TypedLocalReference

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

func (*TypedLocalReference) DeepCopyInto

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

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

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

func (in *ValueRef) DeepCopy() *ValueRef

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

func (*ValueRef) DeepCopyInto

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

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

func (*ValueRef) Resolve

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

type ValueSource

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

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

func (*ValueSource) DeepCopy

func (in *ValueSource) DeepCopy() *ValueSource

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

func (*ValueSource) DeepCopyInto

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

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

func (*ValueSource) Resolve

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

type ValueSourceType

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

Jump to

Keyboard shortcuts

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