Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the klaus v1alpha1 API group. +kubebuilder:object:generate=true +groupName=klaus.giantswarm.io
Index ¶
- Constants
- Variables
- type AgentFileConfig
- type ClaudeConfig
- type EffortLevel
- type GitSecretReference
- type InstanceMode
- type InstanceState
- type KlausInstance
- type KlausInstanceList
- type KlausInstanceSpec
- type KlausInstanceStatus
- type KlausMCPServer
- type KlausMCPServerList
- type KlausMCPServerSpec
- type KlausMCPServerStatus
- type MCPServerReference
- type MCPServerSecret
- type MusterConfig
- type OTLPConfig
- type PermissionMode
- type PluginReference
- type SkillConfig
- type TelemetryConfig
- type WorkspaceConfig
Constants ¶
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 ¶
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 ¶
func (in *KlausMCPServerStatus) DeepCopy() *KlausMCPServerStatus
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.