Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the catalog v1alpha1 API group. +kubebuilder:object:generate=true +groupName=catalog.bubustack.io
Index ¶
- Variables
- type EngramTemplate
- type EngramTemplateList
- type EngramTemplateSpec
- type EngramTemplateStatus
- type ImpulseTemplate
- type ImpulseTemplateList
- type ImpulseTemplateSpec
- type ImpulseTemplateStatus
- type SecretDefinition
- type TemplateExecutionPolicy
- type TemplateImagePolicy
- type TemplateJobPolicy
- type TemplateProbePolicy
- type TemplateResourcePolicy
- type TemplateRetryPolicy
- type TemplateSecurityPolicy
- type TemplateServicePolicy
- type TemplateServicePort
- type TemplateSpec
- type TemplateStatus
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "catalog.bubustack.io", Version: "v1alpha1"} // 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 EngramTemplate ¶
type EngramTemplate struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec EngramTemplateSpec `json:"spec,omitempty"`
Status EngramTemplateStatus `json:"status,omitempty"`
}
EngramTemplate defines a reusable "worker" component for stories
Think of EngramTemplates as specialized tools in a toolbox: - "http-client": Makes HTTP requests with retry and timeout support - "openai-chat": Integrates with OpenAI's GPT models - "postgres-query": Executes SQL queries against PostgreSQL - "slack-notify": Sends messages to Slack channels - "image-resize": Processes and resizes images
Templates are cluster-scoped because they're meant to be shared across teams and namespaces. They define WHAT can be done, while Engrams define HOW to configure and run them.
The relationship is: EngramTemplate (defines capabilities) → Engram (configured instance) → Used in Story steps
+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,shortName=etpl,categories={bubu,ai,catalog} +kubebuilder:printcolumn:name="Description",type=string,JSONPath=.spec.description +kubebuilder:printcolumn:name="Version",type=string,JSONPath=.spec.version +kubebuilder:printcolumn:name="Usage",type=integer,JSONPath=.status.usageCount +kubebuilder:printcolumn:name="Status",type=string,JSONPath=.status.validationStatus +kubebuilder:printcolumn:name="Age",type=date,JSONPath=.metadata.creationTimestamp
func (*EngramTemplate) DeepCopy ¶
func (in *EngramTemplate) DeepCopy() *EngramTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EngramTemplate.
func (*EngramTemplate) DeepCopyInto ¶
func (in *EngramTemplate) DeepCopyInto(out *EngramTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EngramTemplate) DeepCopyObject ¶
func (in *EngramTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type EngramTemplateList ¶
type EngramTemplateList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []EngramTemplate `json:"items"`
}
+kubebuilder:object:root=true
func (*EngramTemplateList) DeepCopy ¶
func (in *EngramTemplateList) DeepCopy() *EngramTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EngramTemplateList.
func (*EngramTemplateList) DeepCopyInto ¶
func (in *EngramTemplateList) DeepCopyInto(out *EngramTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EngramTemplateList) DeepCopyObject ¶
func (in *EngramTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type EngramTemplateSpec ¶
type EngramTemplateSpec struct {
// Common template fields (version, description, image, etc.)
TemplateSpec `json:",inline"`
// What data does this engram expect as input?
// This defines the contract for the data flowing INTO this component
// Examples:
// - HTTP client: {"url": "string", "method": "string", "headers": "object"}
// - OpenAI: {"prompt": "string", "model": "string", "temperature": "number"}
// - Database: {"query": "string", "parameters": "object"}
// +kubebuilder:pruning:PreserveUnknownFields
InputSchema *runtime.RawExtension `json:"inputSchema,omitempty"`
// What data does this engram produce as output?
// This defines the contract for the data flowing OUT of this component
// Examples:
// - HTTP client: {"status": "integer", "body": "string", "headers": "object"}
// - OpenAI: {"response": "string", "usage": "object", "model": "string"}
// - Database: {"rows": "array", "rowCount": "integer", "duration": "number"}
// +kubebuilder:pruning:PreserveUnknownFields
OutputSchema *runtime.RawExtension `json:"outputSchema,omitempty"`
}
EngramTemplateSpec defines the capabilities and contract of a worker component
func (*EngramTemplateSpec) DeepCopy ¶
func (in *EngramTemplateSpec) DeepCopy() *EngramTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EngramTemplateSpec.
func (*EngramTemplateSpec) DeepCopyInto ¶
func (in *EngramTemplateSpec) DeepCopyInto(out *EngramTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EngramTemplateStatus ¶
type EngramTemplateStatus struct {
TemplateStatus `json:",inline"`
}
EngramTemplateStatus defines the observed state of EngramTemplate
func (*EngramTemplateStatus) DeepCopy ¶
func (in *EngramTemplateStatus) DeepCopy() *EngramTemplateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EngramTemplateStatus.
func (*EngramTemplateStatus) DeepCopyInto ¶
func (in *EngramTemplateStatus) DeepCopyInto(out *EngramTemplateStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImpulseTemplate ¶
type ImpulseTemplate struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ImpulseTemplateSpec `json:"spec,omitempty"`
Status ImpulseTemplateStatus `json:"status,omitempty"`
}
ImpulseTemplate defines a reusable "trigger" component that launches stories
Think of ImpulseTemplates as event listeners or sensors that know how to handle specific types of events: - "github-webhook": Handles GitHub webhook events (push, PR, release, etc.) - "slack-handler": Processes Slack events (mentions, slash commands, reactions) - "file-watcher": Monitors file uploads/changes in cloud storage - "cron-scheduler": Triggers stories on schedules (like GitHub Actions cron) - "kafka-consumer": Consumes messages from Kafka topics
Templates are cluster-scoped because they're meant to be shared across teams and namespaces. They define WHAT events can be handled, while Impulses define HOW to configure and use them.
The relationship is: ImpulseTemplate (defines trigger capabilities) → Impulse (configured trigger) → Launches Stories
+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,shortName=itpl,categories={bubu,ai,catalog} +kubebuilder:printcolumn:name="Description",type=string,JSONPath=.spec.description +kubebuilder:printcolumn:name="Version",type=string,JSONPath=.spec.version +kubebuilder:printcolumn:name="Usage",type=integer,JSONPath=.status.usageCount +kubebuilder:printcolumn:name="Status",type=string,JSONPath=.status.validationStatus +kubebuilder:printcolumn:name="Age",type=date,JSONPath=.metadata.creationTimestamp
func (*ImpulseTemplate) DeepCopy ¶
func (in *ImpulseTemplate) DeepCopy() *ImpulseTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImpulseTemplate.
func (*ImpulseTemplate) DeepCopyInto ¶
func (in *ImpulseTemplate) DeepCopyInto(out *ImpulseTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ImpulseTemplate) DeepCopyObject ¶
func (in *ImpulseTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ImpulseTemplateList ¶
type ImpulseTemplateList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ImpulseTemplate `json:"items"`
}
+kubebuilder:object:root=true
func (*ImpulseTemplateList) DeepCopy ¶
func (in *ImpulseTemplateList) DeepCopy() *ImpulseTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImpulseTemplateList.
func (*ImpulseTemplateList) DeepCopyInto ¶
func (in *ImpulseTemplateList) DeepCopyInto(out *ImpulseTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ImpulseTemplateList) DeepCopyObject ¶
func (in *ImpulseTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ImpulseTemplateSpec ¶
type ImpulseTemplateSpec struct {
// Common template fields (version, description, image, etc.)
TemplateSpec `json:",inline"`
// What data does this trigger provide when events occur?
// This defines the structure of the event context that will be available for mapping to Story inputs
// Examples:
// - GitHub webhook: {"repository": "object", "ref": "string", "commits": "array", "sender": "object"}
// - File watcher: {"bucket": "string", "objectKey": "string", "size": "integer", "timestamp": "string"}
// - Slack event: {"channel": "string", "user": "object", "message": "string", "timestamp": "string"}
// - Cron trigger: {"scheduledTime": "string", "timezone": "string", "schedule": "string"}
// +kubebuilder:pruning:PreserveUnknownFields
ContextSchema *runtime.RawExtension `json:"contextSchema,omitempty"`
}
ImpulseTemplateSpec defines the capabilities and contract of a trigger component
func (*ImpulseTemplateSpec) DeepCopy ¶
func (in *ImpulseTemplateSpec) DeepCopy() *ImpulseTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImpulseTemplateSpec.
func (*ImpulseTemplateSpec) DeepCopyInto ¶
func (in *ImpulseTemplateSpec) DeepCopyInto(out *ImpulseTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImpulseTemplateStatus ¶
type ImpulseTemplateStatus struct {
TemplateStatus `json:",inline"`
}
func (*ImpulseTemplateStatus) DeepCopy ¶
func (in *ImpulseTemplateStatus) DeepCopy() *ImpulseTemplateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImpulseTemplateStatus.
func (*ImpulseTemplateStatus) DeepCopyInto ¶
func (in *ImpulseTemplateStatus) DeepCopyInto(out *ImpulseTemplateStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretDefinition ¶
type SecretDefinition struct {
// Whether this secret is required for the template to function
Required bool `json:"required,omitempty"`
// Human-readable description of what this secret is used for
// Example: "API key for OpenAI authentication", "Database connection credentials"
Description string `json:"description,omitempty"`
// How this secret should be mounted and accessed
// - env: As environment variables (default for simple secrets)
// - file: As mounted files (better for certificates, config files)
// - both: Available as both env vars and files
MountType enums.SecretMountType `json:"mountType,omitempty"`
// For env mounting: what environment variable prefix to use
// If not specified, uses secret name in uppercase
// Example: "DATABASE" -> DATABASE_HOST, DATABASE_USER, DATABASE_PASSWORD
EnvPrefix string `json:"envPrefix,omitempty"`
// For file mounting: where to mount the secret files
// Example: "/etc/secrets/database", "/opt/certs"
MountPath string `json:"mountPath,omitempty"`
// Expected keys in this secret (for validation and documentation)
// Example: ["host", "username", "password"] or ["api-key", "org-id"]
ExpectedKeys []string `json:"expectedKeys,omitempty"`
}
SecretDefinition defines the structure and requirements of a secret This handles both simple key-value secrets and complex structured secrets
func (*SecretDefinition) DeepCopy ¶
func (in *SecretDefinition) DeepCopy() *SecretDefinition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretDefinition.
func (*SecretDefinition) DeepCopyInto ¶
func (in *SecretDefinition) DeepCopyInto(out *SecretDefinition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateExecutionPolicy ¶
type TemplateExecutionPolicy struct {
// Image handling recommendations (pull policies, etc.)
Images *TemplateImagePolicy `json:"images,omitempty"`
// Resource recommendations (how much CPU/memory this typically needs)
Resources *TemplateResourcePolicy `json:"resources,omitempty"`
// Security requirements and recommendations
Security *TemplateSecurityPolicy `json:"security,omitempty"`
// Job-specific recommendations (for templates that run as jobs)
Job *TemplateJobPolicy `json:"job,omitempty"`
// Retry behavior recommendations
Retry *TemplateRetryPolicy `json:"retry,omitempty"`
// Default timeout recommendation
Timeout *string `json:"timeout,omitempty"`
// Service exposure defaults for realtime components (and impulses)
Service *TemplateServicePolicy `json:"service,omitempty"`
// Health check probes (liveness, readiness, startup)
// These are defined using standard Kubernetes probe format
Probes *TemplateProbePolicy `json:"probes,omitempty"`
}
TemplateExecutionPolicy defines what template authors recommend for running this component These are the "manufacturer's recommended settings" that provide good defaults Users can override these when creating Engrams/Impulses if they have special requirements
func (*TemplateExecutionPolicy) DeepCopy ¶
func (in *TemplateExecutionPolicy) DeepCopy() *TemplateExecutionPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateExecutionPolicy.
func (*TemplateExecutionPolicy) DeepCopyInto ¶
func (in *TemplateExecutionPolicy) DeepCopyInto(out *TemplateExecutionPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateImagePolicy ¶
type TemplateImagePolicy struct {
// Default image pull policy for this template (Always, Never, IfNotPresent)
PullPolicy *string `json:"pullPolicy,omitempty"`
}
TemplateImagePolicy defines image-related template defaults Note: We don't include registry preferences as Kubernetes handles this natively
func (*TemplateImagePolicy) DeepCopy ¶
func (in *TemplateImagePolicy) DeepCopy() *TemplateImagePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateImagePolicy.
func (*TemplateImagePolicy) DeepCopyInto ¶
func (in *TemplateImagePolicy) DeepCopyInto(out *TemplateImagePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateJobPolicy ¶
type TemplateJobPolicy struct {
// Recommended backoff limit for this template
RecommendedBackoffLimit *int32 `json:"recommendedBackoffLimit,omitempty"`
// Recommended TTL after finished for this template
RecommendedTTLSecondsAfterFinished *int32 `json:"recommendedTtlSecondsAfterFinished,omitempty"`
// Recommended restart policy for this template
RecommendedRestartPolicy *string `json:"recommendedRestartPolicy,omitempty"`
}
TemplateJobPolicy defines job configuration defaults for this template
func (*TemplateJobPolicy) DeepCopy ¶
func (in *TemplateJobPolicy) DeepCopy() *TemplateJobPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateJobPolicy.
func (*TemplateJobPolicy) DeepCopyInto ¶
func (in *TemplateJobPolicy) DeepCopyInto(out *TemplateJobPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateProbePolicy ¶
type TemplateProbePolicy struct {
// Liveness probe checks if the container is alive
// If this probe fails, the container will be restarted
// +optional
Liveness *corev1.Probe `json:"liveness,omitempty"`
// Readiness probe checks if the container is ready to serve traffic
// If this probe fails, the pod will be removed from service endpoints
// +optional
Readiness *corev1.Probe `json:"readiness,omitempty"`
// Startup probe checks if the application has started
// All other probes are disabled until this succeeds
// Useful for slow-starting containers
// +optional
Startup *corev1.Probe `json:"startup,omitempty"`
}
TemplateProbePolicy defines health check probes recommended by the template Uses standard Kubernetes probe format for maximum compatibility
func (*TemplateProbePolicy) DeepCopy ¶
func (in *TemplateProbePolicy) DeepCopy() *TemplateProbePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateProbePolicy.
func (*TemplateProbePolicy) DeepCopyInto ¶
func (in *TemplateProbePolicy) DeepCopyInto(out *TemplateProbePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateResourcePolicy ¶
type TemplateResourcePolicy struct {
// Recommended CPU request for this template
RecommendedCPURequest *string `json:"recommendedCpuRequest,omitempty"`
// Recommended CPU limit for this template
RecommendedCPULimit *string `json:"recommendedCpuLimit,omitempty"`
// Recommended memory request for this template
RecommendedMemoryRequest *string `json:"recommendedMemoryRequest,omitempty"`
// Recommended memory limit for this template
RecommendedMemoryLimit *string `json:"recommendedMemoryLimit,omitempty"`
// Minimum resource requirements for this template
MinCPURequest *string `json:"minCpuRequest,omitempty"`
MinMemoryRequest *string `json:"minMemoryRequest,omitempty"`
}
TemplateResourcePolicy defines resource defaults for this template
func (*TemplateResourcePolicy) DeepCopy ¶
func (in *TemplateResourcePolicy) DeepCopy() *TemplateResourcePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateResourcePolicy.
func (*TemplateResourcePolicy) DeepCopyInto ¶
func (in *TemplateResourcePolicy) DeepCopyInto(out *TemplateResourcePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateRetryPolicy ¶
type TemplateRetryPolicy struct {
// Recommended max retries for this template
RecommendedMaxRetries *int `json:"recommendedMaxRetries,omitempty"`
// Recommended backoff strategy for this template
RecommendedBackoff *string `json:"recommendedBackoff,omitempty"`
// Recommended base delay for this template
RecommendedBaseDelay *string `json:"recommendedBaseDelay,omitempty"`
// Recommended max delay for this template
RecommendedMaxDelay *string `json:"recommendedMaxDelay,omitempty"`
}
TemplateRetryPolicy defines retry defaults for this template
func (*TemplateRetryPolicy) DeepCopy ¶
func (in *TemplateRetryPolicy) DeepCopy() *TemplateRetryPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateRetryPolicy.
func (*TemplateRetryPolicy) DeepCopyInto ¶
func (in *TemplateRetryPolicy) DeepCopyInto(out *TemplateRetryPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateSecurityPolicy ¶
type TemplateSecurityPolicy struct {
// Whether this template requires running as non-root
RequiresNonRoot *bool `json:"requiresNonRoot,omitempty"`
// Whether this template requires read-only root filesystem
RequiresReadOnlyRoot *bool `json:"requiresReadOnlyRoot,omitempty"`
// Whether this template requires no privilege escalation
RequiresNoPrivilegeEscalation *bool `json:"requiresNoPrivilegeEscalation,omitempty"`
// Recommended user ID for this template
RecommendedRunAsUser *int64 `json:"recommendedRunAsUser,omitempty"`
}
TemplateSecurityPolicy defines security defaults for this template
func (*TemplateSecurityPolicy) DeepCopy ¶
func (in *TemplateSecurityPolicy) DeepCopy() *TemplateSecurityPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateSecurityPolicy.
func (*TemplateSecurityPolicy) DeepCopyInto ¶
func (in *TemplateSecurityPolicy) DeepCopyInto(out *TemplateSecurityPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateServicePolicy ¶
type TemplateServicePolicy struct {
// Ports defines external service ports and their target container ports
Ports []TemplateServicePort `json:"ports,omitempty"`
}
TemplateServicePolicy defines default service exposure settings recommended by the template
func (*TemplateServicePolicy) DeepCopy ¶
func (in *TemplateServicePolicy) DeepCopy() *TemplateServicePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateServicePolicy.
func (*TemplateServicePolicy) DeepCopyInto ¶
func (in *TemplateServicePolicy) DeepCopyInto(out *TemplateServicePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateServicePort ¶
type TemplateServicePort struct {
Name string `json:"name,omitempty"`
Protocol string `json:"protocol,omitempty"`
Port int32 `json:"port"`
TargetPort int32 `json:"targetPort"`
}
TemplateServicePort maps a Service port to a target container port
func (*TemplateServicePort) DeepCopy ¶
func (in *TemplateServicePort) DeepCopy() *TemplateServicePort
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateServicePort.
func (*TemplateServicePort) DeepCopyInto ¶
func (in *TemplateServicePort) DeepCopyInto(out *TemplateServicePort)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateSpec ¶
type TemplateSpec struct {
// Version of this template package (use semantic versioning like "1.2.3")
// This allows users to pin to specific versions or upgrade safely
Version string `json:"version"`
// Human-readable description of what this template does
// Examples: "HTTP client with retry and timeout support", "OpenAI GPT integration"
Description string `json:"description,omitempty"`
// Which Kubernetes workload types this template supports
// - job: One-shot tasks (like batch processing, CI builds)
// - deployment: Always-on stateless services (like APIs, webhooks)
// - statefulset: Always-on stateful services (like databases, file processors)
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=3
SupportedModes []enums.WorkloadMode `json:"supportedModes"`
// JSON Schema defining how users can configure this template
// This validates the "with" field when users create Engrams/Impulses
// Example: {"timeout": {"type": "string"}, "retries": {"type": "integer"}}
// +kubebuilder:pruning:PreserveUnknownFields
ConfigSchema *runtime.RawExtension `json:"configSchema,omitempty"`
// Secret definitions that this template can use
// Defines what secrets this template expects and how they should be structured
// Users must provide corresponding secrets when creating Engrams/Impulses
SecretSchema map[string]SecretDefinition `json:"secretSchema,omitempty"`
// Container image that implements this template's functionality
// This is the actual code that runs when someone uses this template
// +kubebuilder:validation:MaxLength=512
Image string `json:"image,omitempty"`
// Default execution settings that template authors recommend
// These provide sensible defaults but can be overridden by users
Execution *TemplateExecutionPolicy `json:"execution,omitempty"`
}
TemplateSpec defines the common "package definition" fields for templates This is like a package.json, Chart.yaml, or Dockerfile - it describes what the component can do
func (*TemplateSpec) DeepCopy ¶
func (in *TemplateSpec) DeepCopy() *TemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateSpec.
func (*TemplateSpec) DeepCopyInto ¶
func (in *TemplateSpec) DeepCopyInto(out *TemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateStatus ¶
type TemplateStatus struct {
// observedGeneration is the most recent generation observed for this Template. It corresponds to the
// Template's generation, which is updated on mutation by the API Server.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Standard Kubernetes conditions (Ready, Available, etc.)
Conditions []metav1.Condition `json:"conditions,omitempty"`
// How many Engrams/Impulses are currently using this template
// Useful for understanding template popularity and impact of changes
UsageCount int32 `json:"usageCount,omitempty"`
// Whether this template passed validation checks
ValidationStatus enums.ValidationStatus `json:"validationStatus,omitempty"`
// If validation failed, what were the specific errors?
// Helps template authors fix issues with their schemas or configuration
ValidationErrors []string `json:"validationErrors,omitempty"`
}
TemplateStatus shows the current state and usage of this template
func (*TemplateStatus) DeepCopy ¶
func (in *TemplateStatus) DeepCopy() *TemplateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateStatus.
func (*TemplateStatus) DeepCopyInto ¶
func (in *TemplateStatus) DeepCopyInto(out *TemplateStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.