v1alpha1

package
v0.0.63 Latest Latest
Warning

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

Go to latest
Published: May 7, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the klaus v1alpha1 API group. +kubebuilder:object:generate=true +groupName=klaus.giantswarm.io

Index

Constants

View Source
const (
	InstanceModeAgent InstanceMode = "agent"
	InstanceModeChat  InstanceMode = "chat"

	// ModeAgent is the default spec mode value.
	ModeAgent = "agent"
	// ModeChat is the chat spec mode value.
	ModeChat = "chat"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "klaus.giantswarm.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionResource scheme.
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

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

Functions

This section is empty.

Types

type AgentFileConfig

type AgentFileConfig struct {
	// Content is the raw markdown content of the agent file.
	Content string `json:"content"`
}

AgentFileConfig defines an inline markdown-format subagent definition.

func (*AgentFileConfig) DeepCopy

func (in *AgentFileConfig) DeepCopy() *AgentFileConfig

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

func (*AgentFileConfig) DeepCopyInto

func (in *AgentFileConfig) DeepCopyInto(out *AgentFileConfig)

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

type ClaudeConfig

type ClaudeConfig struct {
	// Model specifies the Claude model to use.
	// +optional
	Model string `json:"model,omitempty"`

	// MaxTurns limits the number of agentic turns. 0 means unlimited.
	// +optional
	MaxTurns *int `json:"maxTurns,omitempty"`

	// PermissionMode controls tool permission handling.
	// +kubebuilder:default=bypassPermissions
	// +optional
	PermissionMode PermissionMode `json:"permissionMode,omitempty"`

	// SystemPrompt overrides the default system prompt.
	// +optional
	SystemPrompt string `json:"systemPrompt,omitempty"`

	// AppendSystemPrompt appends text to the default system prompt.
	// +optional
	AppendSystemPrompt string `json:"appendSystemPrompt,omitempty"`

	// MCPServers defines inline MCP server configuration (free-form map rendered to .mcp.json).
	// +optional
	MCPServers map[string]runtime.RawExtension `json:"mcpServers,omitempty"`

	// MCPServerSecrets defines secret references for ${VAR} expansion in MCP config.
	// +optional
	MCPServerSecrets []MCPServerSecret `json:"mcpServerSecrets,omitempty"`

	// MCPTimeout sets the MCP_TIMEOUT env var (milliseconds).
	// +optional
	MCPTimeout *int `json:"mcpTimeout,omitempty"`

	// MaxMCPOutputTokens sets MAX_MCP_OUTPUT_TOKENS.
	// +optional
	MaxMCPOutputTokens *int `json:"maxMcpOutputTokens,omitempty"`

	// StrictMCPConfig prevents loading MCP configs from user/project/local sources.
	// +kubebuilder:default=true
	// +optional
	StrictMCPConfig *bool `json:"strictMcpConfig,omitempty"`

	// MaxBudgetUSD sets the maximum spend per session in USD.
	// +optional
	MaxBudgetUSD *float64 `json:"maxBudgetUSD,omitempty"`

	// Effort controls thinking effort level (low, medium, high).
	// +optional
	Effort EffortLevel `json:"effort,omitempty"`

	// FallbackModel specifies a fallback model if the primary is unavailable.
	// +optional
	FallbackModel string `json:"fallbackModel,omitempty"`

	// JSONSchema defines structured output schema.
	// +optional
	JSONSchema string `json:"jsonSchema,omitempty"`

	// SettingsFile path to a custom settings file. Mutually exclusive with Hooks.
	// +optional
	SettingsFile string `json:"settingsFile,omitempty"`

	// SettingSources controls which settings sources are loaded.
	// +optional
	SettingSources string `json:"settingSources,omitempty"`

	// Tools specifies tools to enable.
	// +optional
	Tools []string `json:"tools,omitempty"`

	// AllowedTools restricts which tools can be used.
	// +optional
	AllowedTools []string `json:"allowedTools,omitempty"`

	// DisallowedTools prevents specific tools from being used.
	// +optional
	DisallowedTools []string `json:"disallowedTools,omitempty"`

	// Agents defines JSON-format subagent configurations.
	// +optional
	Agents map[string]runtime.RawExtension `json:"agents,omitempty"`

	// ActiveAgent selects the top-level agent.
	// +optional
	ActiveAgent string `json:"activeAgent,omitempty"`

	// Mode selects the instance process mode.
	// "agent" (default): autonomous coding, new process per prompt, no session persistence.
	// "chat": interactive conversation, persistent process, sessions saved.
	// +kubebuilder:validation:Enum=agent;chat
	// +optional
	Mode *string `json:"mode,omitempty"`

	// IncludePartialMessages enables streaming partial messages.
	// +optional
	IncludePartialMessages *bool `json:"includePartialMessages,omitempty"`
}

ClaudeConfig contains all Claude Code agent configuration options. This mirrors the Helm chart's claude.* values.

func (*ClaudeConfig) DeepCopy

func (in *ClaudeConfig) DeepCopy() *ClaudeConfig

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

func (*ClaudeConfig) DeepCopyInto

func (in *ClaudeConfig) DeepCopyInto(out *ClaudeConfig)

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

type EffortLevel

type EffortLevel string

EffortLevel controls thinking effort level. +kubebuilder:validation:Enum=low;medium;high

const (
	EffortLow    EffortLevel = "low"
	EffortMedium EffortLevel = "medium"
	EffortHigh   EffortLevel = "high"
)

type GitSecretReference

type GitSecretReference struct {
	// Name is the name of the Kubernetes Secret in the operator namespace.
	Name string `json:"name"`

	// Key is the key in the Secret data containing the access token. Defaults to "token".
	// +kubebuilder:validation:Pattern=`^[a-zA-Z0-9._-]+$`
	// +optional
	Key string `json:"key,omitempty"`
}

GitSecretReference references a Kubernetes Secret containing a git access token (PAT or fine-grained token) for cloning private repositories over HTTPS.

func (*GitSecretReference) DeepCopy

func (in *GitSecretReference) DeepCopy() *GitSecretReference

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

func (*GitSecretReference) DeepCopyInto

func (in *GitSecretReference) DeepCopyInto(out *GitSecretReference)

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

type InstanceMode

type InstanceMode string

InstanceMode represents the process mode of a KlausInstance. +kubebuilder:validation:Enum=agent;chat

type InstanceState

type InstanceState string

InstanceState represents the lifecycle state of a KlausInstance. +kubebuilder:validation:Enum=Pending;Running;Error;Stopped

const (
	InstanceStatePending InstanceState = "Pending"
	InstanceStateRunning InstanceState = "Running"
	InstanceStateError   InstanceState = "Error"
	InstanceStateStopped InstanceState = "Stopped"
)

type KlausInstance

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

	Spec   KlausInstanceSpec   `json:"spec,omitempty"`
	Status KlausInstanceStatus `json:"status,omitempty"`
}

KlausInstance is the Schema for the klausinstances API. It represents a running Klaus agent instance with its configuration.

func (*KlausInstance) DeepCopy

func (in *KlausInstance) DeepCopy() *KlausInstance

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

func (*KlausInstance) DeepCopyInto

func (in *KlausInstance) DeepCopyInto(out *KlausInstance)

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

func (*KlausInstance) DeepCopyObject

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

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

type KlausInstanceList

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

KlausInstanceList contains a list of KlausInstance.

func (*KlausInstanceList) DeepCopy

func (in *KlausInstanceList) DeepCopy() *KlausInstanceList

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

func (*KlausInstanceList) DeepCopyInto

func (in *KlausInstanceList) DeepCopyInto(out *KlausInstanceList)

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

func (*KlausInstanceList) DeepCopyObject

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

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

type KlausInstanceSpec

type KlausInstanceSpec struct {
	// Owner is the user identity (email) that owns this instance.
	// Used for access control and namespace isolation.
	Owner string `json:"owner"`

	// Personality is an OCI reference to a personality artifact that provides
	// default configuration for this instance. The artifact must contain a
	// personality.yaml file describing plugins, image overrides, and system prompts.
	// Example: "gsoci.azurecr.io/giantswarm/personalities/go-dev:latest"
	// +optional
	Personality string `json:"personality,omitempty"`

	// Image overrides the container image for this instance.
	// Takes precedence over personality image and the operator default.
	// +optional
	Image string `json:"image,omitempty"`

	// Claude contains all Claude Code agent configuration.
	// +optional
	Claude ClaudeConfig `json:"claude,omitempty"`

	// Plugins defines OCI image references rendered as Kubernetes image volumes.
	// +optional
	Plugins []PluginReference `json:"plugins,omitempty"`

	// PluginDirs specifies additional user-provided plugin directory paths.
	// These are merged with the OCI plugin mount paths into CLAUDE_PLUGIN_DIRS.
	// +optional
	PluginDirs []string `json:"pluginDirs,omitempty"`

	// ImagePullSecrets specifies pull secrets for private registries used by plugins.
	// These are set on the instance pod spec.
	// +optional
	ImagePullSecrets []string `json:"imagePullSecrets,omitempty"`

	// MCPServers references shared KlausMCPServer CRDs by name.
	// +optional
	MCPServers []MCPServerReference `json:"mcpServers,omitempty"`

	// Skills defines inline skill configurations rendered as SKILL.md files.
	// +optional
	Skills map[string]SkillConfig `json:"skills,omitempty"`

	// AgentFiles defines inline markdown-format subagent definitions.
	// +optional
	AgentFiles map[string]AgentFileConfig `json:"agentFiles,omitempty"`

	// Hooks defines lifecycle hooks rendered to settings.json.
	// Mutually exclusive with Claude.SettingsFile.
	// +optional
	Hooks map[string]runtime.RawExtension `json:"hooks,omitempty"`

	// HookScripts defines executable scripts mounted at /etc/klaus/hooks/.
	// +optional
	HookScripts map[string]string `json:"hookScripts,omitempty"`

	// AddDirs specifies additional directories to load.
	// +optional
	AddDirs []string `json:"addDirs,omitempty"`

	// LoadAdditionalDirsMemory enables CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD.
	// +optional
	LoadAdditionalDirsMemory *bool `json:"loadAdditionalDirsMemory,omitempty"`

	// Workspace configures persistent storage for the instance.
	// +optional
	Workspace *WorkspaceConfig `json:"workspace,omitempty"`

	// Resources specifies compute resource requirements for the instance pod.
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// Telemetry configures OpenTelemetry and Prometheus metrics.
	// +optional
	Telemetry *TelemetryConfig `json:"telemetry,omitempty"`

	// Muster configures MCPServer CRD registration in the muster namespace.
	// +optional
	Muster *MusterConfig `json:"muster,omitempty"`

	// Stopped indicates that the instance should be scaled to zero replicas.
	// When true, the controller sets the Deployment replicas to 0 and the
	// instance status transitions to Stopped. Setting this back to false
	// causes the controller to scale the Deployment back to 1 replica.
	// +optional
	Stopped bool `json:"stopped"`
}

KlausInstanceSpec defines the desired state of a KlausInstance.

func (*KlausInstanceSpec) DeepCopy

func (in *KlausInstanceSpec) DeepCopy() *KlausInstanceSpec

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

func (*KlausInstanceSpec) DeepCopyInto

func (in *KlausInstanceSpec) DeepCopyInto(out *KlausInstanceSpec)

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

type KlausInstanceStatus

type KlausInstanceStatus struct {
	// State is the current lifecycle state.
	// +optional
	State InstanceState `json:"state,omitempty"`

	// Endpoint is the internal service URL for the instance.
	// +optional
	Endpoint string `json:"endpoint,omitempty"`

	// Mode indicates the process mode (agent or chat).
	// +optional
	Mode InstanceMode `json:"mode,omitempty"`

	// LastActivity is the timestamp of the last activity.
	// +optional
	LastActivity *metav1.Time `json:"lastActivity,omitempty"`

	// Personality is the OCI reference of the resolved personality artifact.
	// +optional
	Personality string `json:"personality,omitempty"`

	// PluginCount is the number of plugins loaded.
	// +optional
	PluginCount int `json:"pluginCount,omitempty"`

	// MCPServerCount is the number of MCP servers configured.
	// +optional
	MCPServerCount int `json:"mcpServerCount,omitempty"`

	// Conditions represent the latest available observations of the instance's state.
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the most recent generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Toolchain is the resolved container image name when different from the default.
	// +optional
	Toolchain string `json:"toolchain,omitempty"`
}

KlausInstanceStatus defines the observed state of a KlausInstance.

func (*KlausInstanceStatus) DeepCopy

func (in *KlausInstanceStatus) DeepCopy() *KlausInstanceStatus

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

func (*KlausInstanceStatus) DeepCopyInto

func (in *KlausInstanceStatus) DeepCopyInto(out *KlausInstanceStatus)

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

type KlausMCPServer

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

	Spec   KlausMCPServerSpec   `json:"spec,omitempty"`
	Status KlausMCPServerStatus `json:"status,omitempty"`
}

KlausMCPServer defines a shared MCP server configuration that can be referenced by KlausInstance resources. The operator resolves these references and assembles the MCP config with Secret injection.

func (*KlausMCPServer) DeepCopy

func (in *KlausMCPServer) DeepCopy() *KlausMCPServer

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

func (*KlausMCPServer) DeepCopyInto

func (in *KlausMCPServer) DeepCopyInto(out *KlausMCPServer)

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

func (*KlausMCPServer) DeepCopyObject

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

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

type KlausMCPServerList

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

KlausMCPServerList contains a list of KlausMCPServer.

func (*KlausMCPServerList) DeepCopy

func (in *KlausMCPServerList) DeepCopy() *KlausMCPServerList

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

func (*KlausMCPServerList) DeepCopyInto

func (in *KlausMCPServerList) DeepCopyInto(out *KlausMCPServerList)

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

func (*KlausMCPServerList) DeepCopyObject

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

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

type KlausMCPServerSpec

type KlausMCPServerSpec struct {
	// Type is the transport type (e.g. "streamable-http", "sse", "stdio").
	Type string `json:"type"`

	// URL for HTTP-based MCP servers.
	// +optional
	URL string `json:"url,omitempty"`

	// Command for stdio-based MCP servers.
	// +optional
	Command string `json:"command,omitempty"`

	// Args for stdio-based MCP servers.
	// +optional
	Args []string `json:"args,omitempty"`

	// Env contains static environment variables for the MCP server process.
	// Values support ${VAR} expansion -- the referenced variables are resolved
	// from SecretRefs at pod startup.
	// These are included in the .mcp.json config.
	// +optional
	Env map[string]string `json:"env,omitempty"`

	// Headers contains HTTP headers for HTTP-based MCP servers.
	// Values support ${VAR} expansion -- the referenced variables are resolved
	// from SecretRefs at pod startup.
	// These are included in the .mcp.json config.
	// +optional
	Headers map[string]string `json:"headers,omitempty"`

	// SecretRefs defines Kubernetes Secret references for credential injection.
	// Each entry maps environment variable names to Secret keys, enabling
	// ${VAR} expansion in the MCP config. Secrets must exist in the operator
	// namespace; they are copied to instance user namespaces at reconcile time.
	// +optional
	SecretRefs []MCPServerSecret `json:"secretRefs,omitempty"`
}

KlausMCPServerSpec defines a shared MCP server configuration. Fields map directly to the MCP server config format used in .mcp.json, except for SecretRefs which are used for pod-level credential injection only.

func (*KlausMCPServerSpec) DeepCopy

func (in *KlausMCPServerSpec) DeepCopy() *KlausMCPServerSpec

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

func (*KlausMCPServerSpec) DeepCopyInto

func (in *KlausMCPServerSpec) DeepCopyInto(out *KlausMCPServerSpec)

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

type KlausMCPServerStatus

type KlausMCPServerStatus struct {
	// Conditions represent the latest available observations of the server's state.
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// InstanceCount is the number of KlausInstance resources referencing this server.
	// +optional
	InstanceCount int `json:"instanceCount,omitempty"`

	// ObservedGeneration is the most recent generation observed by the controller.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

KlausMCPServerStatus defines the observed state of a KlausMCPServer.

func (*KlausMCPServerStatus) DeepCopy

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

func (*KlausMCPServerStatus) DeepCopyInto

func (in *KlausMCPServerStatus) DeepCopyInto(out *KlausMCPServerStatus)

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

type MCPServerReference

type MCPServerReference struct {
	// Name is the name of the KlausMCPServer resource.
	Name string `json:"name"`
}

MCPServerReference references a KlausMCPServer CRD by name. Merge semantics: if a referenced KlausMCPServer has the same name as an inline entry in claude.mcpServers, the resolved KlausMCPServer config takes precedence. An informational event is emitted when this override occurs.

func (*MCPServerReference) DeepCopy

func (in *MCPServerReference) DeepCopy() *MCPServerReference

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

func (*MCPServerReference) DeepCopyInto

func (in *MCPServerReference) DeepCopyInto(out *MCPServerReference)

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

type MCPServerSecret

type MCPServerSecret struct {
	// SecretName is the name of the Kubernetes Secret.
	SecretName string `json:"secretName"`

	// Env maps environment variable names to Secret keys.
	Env map[string]string `json:"env"`
}

MCPServerSecret defines a Kubernetes Secret reference for MCP server credential injection.

func (*MCPServerSecret) DeepCopy

func (in *MCPServerSecret) DeepCopy() *MCPServerSecret

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

func (*MCPServerSecret) DeepCopyInto

func (in *MCPServerSecret) DeepCopyInto(out *MCPServerSecret)

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

type MusterConfig

type MusterConfig struct {
	// Namespace is the namespace where the MCPServer CRD will be created.
	// +kubebuilder:default=muster
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// ToolPrefix is prepended to tool names in the MCPServer registration.
	// +optional
	ToolPrefix string `json:"toolPrefix,omitempty"`
}

MusterConfig configures MCPServer CRD registration.

func (*MusterConfig) DeepCopy

func (in *MusterConfig) DeepCopy() *MusterConfig

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

func (*MusterConfig) DeepCopyInto

func (in *MusterConfig) DeepCopyInto(out *MusterConfig)

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

type OTLPConfig

type OTLPConfig struct {
	// Protocol is the OTLP protocol (e.g. "grpc", "http/protobuf").
	// +optional
	Protocol string `json:"protocol,omitempty"`

	// Endpoint is the OTLP endpoint URL.
	// +optional
	Endpoint string `json:"endpoint,omitempty"`

	// Headers are additional OTLP headers.
	// +optional
	Headers string `json:"headers,omitempty"`
}

OTLPConfig contains OTLP exporter settings.

func (*OTLPConfig) DeepCopy

func (in *OTLPConfig) DeepCopy() *OTLPConfig

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

func (*OTLPConfig) DeepCopyInto

func (in *OTLPConfig) DeepCopyInto(out *OTLPConfig)

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

type PermissionMode

type PermissionMode string

PermissionMode controls how tool permissions are handled. +kubebuilder:validation:Enum=bypassPermissions;default

const (
	// PermissionModeBypass bypasses all tool permission prompts.
	PermissionModeBypass PermissionMode = "bypassPermissions"

	// PermissionModeDefault uses the default permission handling.
	PermissionModeDefault PermissionMode = "default"
)

type PluginReference

type PluginReference struct {
	// Repository is the OCI image repository.
	Repository string `json:"repository"`

	// Tag is the image tag. Mutually exclusive with Digest.
	// +optional
	Tag string `json:"tag,omitempty"`

	// Digest is the image digest (sha256:...). Mutually exclusive with Tag.
	// +optional
	Digest string `json:"digest,omitempty"`
}

PluginReference defines an OCI image reference for a Klaus plugin. +kubebuilder:validation:XValidation:rule="!(has(self.tag) && has(self.digest))",message="tag and digest are mutually exclusive" +kubebuilder:validation:XValidation:rule="has(self.tag) || has(self.digest)",message="must specify either tag or digest"

func (*PluginReference) DeepCopy

func (in *PluginReference) DeepCopy() *PluginReference

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

func (*PluginReference) DeepCopyInto

func (in *PluginReference) DeepCopyInto(out *PluginReference)

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

type SkillConfig

type SkillConfig struct {
	// Description is the skill description in frontmatter.
	// +optional
	Description string `json:"description,omitempty"`

	// Content is the body text of the SKILL.md file.
	Content string `json:"content"`

	// DisableModelInvocation prevents the model from invoking this skill.
	// +optional
	DisableModelInvocation *bool `json:"disableModelInvocation,omitempty"`

	// UserInvocable allows users to invoke this skill via slash commands.
	// +optional
	UserInvocable *bool `json:"userInvocable,omitempty"`

	// AllowedTools restricts which tools this skill can use.
	// +optional
	AllowedTools []string `json:"allowedTools,omitempty"`

	// Model overrides the model for this skill.
	// +optional
	Model string `json:"model,omitempty"`

	// Context provides additional context configuration.
	// +optional
	Context *runtime.RawExtension `json:"context,omitempty"`

	// Agent assigns this skill to a specific agent.
	// +optional
	Agent string `json:"agent,omitempty"`

	// ArgumentHint provides input hints for the skill.
	// +optional
	ArgumentHint string `json:"argumentHint,omitempty"`
}

SkillConfig defines an inline skill rendered as SKILL.md with YAML frontmatter.

func (*SkillConfig) DeepCopy

func (in *SkillConfig) DeepCopy() *SkillConfig

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

func (*SkillConfig) DeepCopyInto

func (in *SkillConfig) DeepCopyInto(out *SkillConfig)

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

type TelemetryConfig

type TelemetryConfig struct {
	// Enabled enables telemetry collection.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// MetricsExporter specifies the metrics exporter (e.g. "otlp").
	// +optional
	MetricsExporter string `json:"metricsExporter,omitempty"`

	// LogsExporter specifies the logs exporter (e.g. "otlp").
	// +optional
	LogsExporter string `json:"logsExporter,omitempty"`

	// OTLP contains OTLP exporter configuration.
	// +optional
	OTLP *OTLPConfig `json:"otlp,omitempty"`

	// MetricExportIntervalMs sets the metric export interval in milliseconds.
	// +optional
	MetricExportIntervalMs *int `json:"metricExportIntervalMs,omitempty"`

	// LogsExportIntervalMs sets the logs export interval in milliseconds.
	// +optional
	LogsExportIntervalMs *int `json:"logsExportIntervalMs,omitempty"`

	// LogUserPrompts enables logging of user prompts.
	// +optional
	LogUserPrompts *bool `json:"logUserPrompts,omitempty"`

	// LogToolDetails enables logging of tool details.
	// +optional
	LogToolDetails *bool `json:"logToolDetails,omitempty"`

	// IncludeSessionID includes session ID in telemetry.
	// +optional
	IncludeSessionID *bool `json:"includeSessionId,omitempty"`

	// IncludeVersion includes version in telemetry.
	// +optional
	IncludeVersion *bool `json:"includeVersion,omitempty"`

	// IncludeAccountUUID includes account UUID in telemetry.
	// +optional
	IncludeAccountUUID *bool `json:"includeAccountUuid,omitempty"`

	// ResourceAttributes sets OTEL_RESOURCE_ATTRIBUTES.
	// +optional
	ResourceAttributes string `json:"resourceAttributes,omitempty"`
}

TelemetryConfig configures OpenTelemetry and metrics for the instance.

func (*TelemetryConfig) DeepCopy

func (in *TelemetryConfig) DeepCopy() *TelemetryConfig

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

func (*TelemetryConfig) DeepCopyInto

func (in *TelemetryConfig) DeepCopyInto(out *TelemetryConfig)

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

type WorkspaceConfig

type WorkspaceConfig struct {
	// StorageClass is the storage class for the PVC.
	// +optional
	StorageClass string `json:"storageClass,omitempty"`

	// Size is the requested storage size.
	// +kubebuilder:default="5Gi"
	// +optional
	Size *resource.Quantity `json:"size,omitempty"`

	// GitRepo is a git repository URL to clone into the workspace.
	// +kubebuilder:validation:Pattern=`^[a-zA-Z0-9@._:/%+~-]+$`
	// +optional
	GitRepo string `json:"gitRepo,omitempty"`

	// GitRef is the git ref to checkout.
	// +kubebuilder:validation:Pattern=`^[a-zA-Z0-9._/^~-]+$`
	// +optional
	GitRef string `json:"gitRef,omitempty"`

	// GitSecretRef references a Secret containing an HTTPS access token for cloning
	// private repositories. The operator copies the Secret to the user namespace and
	// configures the git-clone init container to authenticate using the token.
	// The repository URL must use HTTPS (e.g., https://github.com/org/repo.git).
	// +optional
	GitSecretRef *GitSecretReference `json:"gitSecretRef,omitempty"`
}

WorkspaceConfig configures persistent storage for the instance.

func (*WorkspaceConfig) DeepCopy

func (in *WorkspaceConfig) DeepCopy() *WorkspaceConfig

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

func (*WorkspaceConfig) DeepCopyInto

func (in *WorkspaceConfig) DeepCopyInto(out *WorkspaceConfig)

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

Jump to

Keyboard shortcuts

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