Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the mdai v1 API group. +kubebuilder:object:generate=true +groupName=hub.mydecisive.ai
Index ¶
- Constants
- Variables
- type AWSConfig
- type Action
- type AuditLogstreamConfig
- type AutomationRule
- type CallWebhookAction
- type CloudProvider
- type Config
- type IngressService
- type JoinTransformer
- type LogsConfig
- type LogstreamConfig
- type MDAILogStream
- type MapAction
- type MdaiCollector
- type MdaiCollectorList
- type MdaiCollectorSpec
- type MdaiCollectorStatus
- type MdaiHub
- type MdaiHubList
- type MdaiHubSpec
- type MdaiHubStatus
- type MdaiIngress
- type MdaiIngressList
- type MdaiIngressSpec
- type MdaiIngressStatus
- type MdaiObserver
- type MdaiObserverList
- type MdaiObserverSpec
- type MdaiObserverStatus
- type Observer
- type ObserverFilter
- type ObserverLogsFilter
- type ObserverResource
- type ObserverResourceType
- type OtelColRef
- type OtelMdaiIngressComb
- type OtlpLogsConfig
- type PrometheusAlert
- type S3LogsConfig
- type ScalarAction
- type Serializer
- type SetAction
- type SeverityLevel
- type StringOrFrom
- type TransformerType
- type ValueFromSource
- type Variable
- type VariableDataType
- type VariableSourceType
- type VariableStorageType
- type VariableTransform
- type VariableTransformer
- type VariableType
- type VariableUpdateOperation
- type When
Constants ¶
const ( AuditLogstream MDAILogStream = "audit" CollectorLogstream MDAILogStream = "collector" HubLogstream MDAILogStream = "hub" OtherLogstream MDAILogStream = "other" DebugSeverityLevel SeverityLevel = "debug" InfoSeverityLevel SeverityLevel = "info" WarnSeverityLevel SeverityLevel = "warn" ErrorSeverityLevel SeverityLevel = "error" )
const ( VariableSourceTypeBuiltInValkey VariableStorageType = "mdai-valkey" // VariableTypeManual Variable type that is managed externally by the user, not attached to any automation rule VariableTypeManual VariableType = "manual" // VariableTypeComputed Variable type that is computed internally by MDAI, attached to an automation rule VariableTypeComputed VariableType = "computed" // VariableTypeMeta Variable type that is derived from manual and computed variables VariableTypeMeta VariableType = "meta" // computed variable types VariableDataTypeInt VariableDataType = "int" // internally stored in string VariableDataTypeFloat VariableDataType = "float" // internally stored in string, disabled for now VariableDataTypeBoolean VariableDataType = "boolean" // 0 or 1 as string in valkey // VariableDataTypeString the string variable, could be used to store yaml or any other string VariableDataTypeString VariableDataType = "string" VariableDataTypeSet VariableDataType = "set" // valkey set // VariableDataTypeMap implemented as hash map. Order is not guaranteed. Keys and values are strings. VariableDataTypeMap VariableDataType = "map" // valkey hashes // MetaVariableDataTypeHashSet LookupTable takes an input/key variable and a lookup variable. Returns a string. MetaVariableDataTypeHashSet VariableDataType = "metaHashSet" // MetaVariableDataTypePriorityList takes a list of variable refs, and will evaluate to the first one that is not empty. Returns an array of strings. MetaVariableDataTypePriorityList VariableDataType = "metaPriorityList" TransformerTypeJoin TransformerType = "join" TemplateRefSlack = "slackAlertTemplate" TemplateRefJSON = "jsonTemplate" )
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "hub.mydecisive.ai", Version: "v1"} // 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 AWSConfig ¶
type AWSConfig struct {
AWSAccessKeySecret *string `json:"awsAccessKeySecret,omitempty" yaml:"awsAccessKeySecret,omitempty"`
}
func (*AWSConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSConfig.
func (*AWSConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Action ¶ added in v0.2.0
type Action struct {
// Payloads (one required depending on Type)
AddToSet *SetAction `json:"addToSet,omitempty"`
RemoveFromSet *SetAction `json:"removeFromSet,omitempty"`
SetVariable *ScalarAction `json:"setVariable,omitempty"`
AddToMap *MapAction `json:"addToMap,omitempty"`
RemoveFromMap *MapAction `json:"removeFromMap,omitempty"`
CallWebhook *CallWebhookAction `json:"callWebhook,omitempty"`
}
func (*Action) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Action.
func (*Action) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuditLogstreamConfig ¶ added in v0.1.21
type AuditLogstreamConfig struct {
// +optional
Disabled bool `json:"disabled" yaml:"disabled"`
}
func (*AuditLogstreamConfig) DeepCopy ¶ added in v0.1.21
func (in *AuditLogstreamConfig) DeepCopy() *AuditLogstreamConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditLogstreamConfig.
func (*AuditLogstreamConfig) DeepCopyInto ¶ added in v0.1.21
func (in *AuditLogstreamConfig) DeepCopyInto(out *AuditLogstreamConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AutomationRule ¶ added in v0.2.0
type AutomationRule struct {
// Name How this rule will be referred to elsewhere in the config and audit.
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Required
Name string `json:"name"`
// When specifies the conditions under which the rule is triggered.
// +kubebuilder:validation:Required
When When `json:"when"`
// Then specifies the actions to be taken when the rule is triggered.
// +kubebuilder:validation:Required
Then []Action `json:"then"`
}
func (*AutomationRule) DeepCopy ¶ added in v0.2.0
func (in *AutomationRule) DeepCopy() *AutomationRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutomationRule.
func (*AutomationRule) DeepCopyInto ¶ added in v0.2.0
func (in *AutomationRule) DeepCopyInto(out *AutomationRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CallWebhookAction ¶ added in v0.2.0
type CallWebhookAction struct {
// URL provided as string or read from secret or configmap within hub namespace.
// +kubebuilder: required
URL StringOrFrom `json:"url"`
// Method defaults to POST if not provided. If template is used, POST method has to be used.
// +kubebuilder:default=POST
// +kubebuilder:validation:Enum=POST;PUT;PATCH
Method string `json:"method,omitempty"`
// TemplateRef uses built-in templates or custom ones.
// `slackAlertTemplate` uses Slack's built-in alert template.
// `jsonTemplate` is default and uses a custom JSON payload template referenced from a ConfigMap/Secret.
// +kubebuilder:validation:Enum=slackAlertTemplate;jsonTemplate
// +kubebuilder:default=jsonTemplate
TemplateRef string `json:"templateRef"`
// PayloadTemplate A reusable JSON payload template stored inline or referenced from a ConfigMap/Secret.
// Used when TemplateRef is "jsonTemplate".
// +optional
PayloadTemplate *StringOrFrom `json:"payloadTemplate,omitempty"`
// TemplateValues literal key/value pairs available to the template as ${template:KEY}.
// +optional
TemplateValues map[string]string `json:"templateValues,omitempty"`
// TemplateValuesFrom sourced from Secrets/ConfigMaps (overridden by TemplateValues).
// +optional
TemplateValuesFrom map[string]ValueFromSource `json:"templateValuesFrom,omitempty"`
// Headers additional HTTP headers to be included in the request.
// +optional
Headers map[string]string `json:"headers,omitempty"`
// HeadersFrom additional HTTP headers to be included in the request from a Secret or ConfigMap.
// +optional
HeadersFrom map[string]ValueFromSource `json:"headersFrom,omitempty"`
// Timeout specifies the maximum time to wait for the response from the webhook before retry.
// Default is 0s, means no timeout should be applied.
// +kubebuilder: default= 0s
Timeout *metav1.Duration `json:"timeout,omitempty"`
}
CallWebhookAction is used to call a webhook with the provided template.
func (*CallWebhookAction) DeepCopy ¶ added in v0.2.0
func (in *CallWebhookAction) DeepCopy() *CallWebhookAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CallWebhookAction.
func (*CallWebhookAction) DeepCopyInto ¶ added in v0.2.0
func (in *CallWebhookAction) DeepCopyInto(out *CallWebhookAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CloudProvider ¶ added in v0.2.1
type CloudProvider string
CloudProvider represents what Could provider is it . +kubebuilder:validation:Enum=aws
const ( // CLoudProviderAws specifies that an aws specific ingress should be created. CloudProviderAws CloudProvider = "aws" )
type Config ¶
type Config struct {
// EvaluationInterval Specify the interval at which all evaluations within this hub are assessed in the Prometheus infrastructure.
// +kubebuilder:validation:Optional
EvaluationInterval *prometheusv1.Duration `json:"evaluation_interval,omitempty" yaml:"evaluation_interval,omitempty"` //nolint:tagliatelle
}
func (*Config) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.
func (*Config) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IngressService ¶ added in v0.2.1
type IngressService struct {
// Type defines the type of the Service.
// +kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer;ExternalName
Type corev1.ServiceType `json:"type"`
// Annotations to add to service.
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
}
IngressService defines Service properties related to Ingress configuration.
func (*IngressService) DeepCopy ¶ added in v0.2.1
func (in *IngressService) DeepCopy() *IngressService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressService.
func (*IngressService) DeepCopyInto ¶ added in v0.2.1
func (in *IngressService) DeepCopyInto(out *IngressService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JoinTransformer ¶
type JoinTransformer struct {
// Delimiter The delimiter inserted between each item in the collection during the Join
// +kubebuilder:validation:Required
Delimiter string `json:"delimiter" yaml:"delimiter"`
}
func (*JoinTransformer) DeepCopy ¶
func (in *JoinTransformer) DeepCopy() *JoinTransformer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JoinTransformer.
func (*JoinTransformer) DeepCopyInto ¶
func (in *JoinTransformer) DeepCopyInto(out *JoinTransformer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LogsConfig ¶
type LogsConfig struct {
// +optional
S3 *S3LogsConfig `json:"s3,omitempty" yaml:"s3,omitempty"`
// +optional
Otlp *OtlpLogsConfig `json:"otlp,omitempty" yaml:"otlp,omitempty"`
}
func (*LogsConfig) DeepCopy ¶
func (in *LogsConfig) DeepCopy() *LogsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsConfig.
func (*LogsConfig) DeepCopyInto ¶
func (in *LogsConfig) DeepCopyInto(out *LogsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LogstreamConfig ¶ added in v0.1.21
type LogstreamConfig struct {
// +optional
MinSeverity *SeverityLevel `json:"minSeverity,omitempty" yaml:"minSeverity,omitempty"`
// +optional
Disabled bool `json:"disabled" yaml:"disabled"`
}
func (*LogstreamConfig) DeepCopy ¶ added in v0.1.21
func (in *LogstreamConfig) DeepCopy() *LogstreamConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogstreamConfig.
func (*LogstreamConfig) DeepCopyInto ¶ added in v0.1.21
func (in *LogstreamConfig) DeepCopyInto(out *LogstreamConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MDAILogStream ¶ added in v0.1.21
type MDAILogStream string
type MapAction ¶ added in v0.2.2
type MapAction struct {
// Map Target map variable name
// +kubebuilder:validation:Pattern:="^[a-zA-Z_][a-zA-Z0-9_]*$"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=63
// +kubebuilder:validation:Required
Map string `json:"map"`
// Key to add or remove
// +kubebuilder:validation:MinLength=1
Key string `json:"key"`
// +optional
// Value for key. Is not required for remove operations.
Value *string `json:"value,omitempty"`
}
func (*MapAction) DeepCopy ¶ added in v0.2.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MapAction.
func (*MapAction) DeepCopyInto ¶ added in v0.2.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MdaiCollector ¶
type MdaiCollector struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MdaiCollectorSpec `json:"spec,omitempty"`
Status MdaiCollectorStatus `json:"status,omitempty"`
}
MdaiCollector is the Schema for the mdaicollectors API.
func (*MdaiCollector) DeepCopy ¶
func (in *MdaiCollector) DeepCopy() *MdaiCollector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiCollector.
func (*MdaiCollector) DeepCopyInto ¶
func (in *MdaiCollector) DeepCopyInto(out *MdaiCollector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MdaiCollector) DeepCopyObject ¶
func (in *MdaiCollector) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MdaiCollectorList ¶
type MdaiCollectorList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []MdaiCollector `json:"items"`
}
MdaiCollectorList contains a list of MdaiCollector.
func (*MdaiCollectorList) DeepCopy ¶
func (in *MdaiCollectorList) DeepCopy() *MdaiCollectorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiCollectorList.
func (*MdaiCollectorList) DeepCopyInto ¶
func (in *MdaiCollectorList) DeepCopyInto(out *MdaiCollectorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MdaiCollectorList) DeepCopyObject ¶
func (in *MdaiCollectorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MdaiCollectorSpec ¶
type MdaiCollectorSpec struct {
// +optional
AWSConfig *AWSConfig `json:"aws,omitempty"`
// +optional
Logs *LogsConfig `json:"logs,omitempty"`
// +kubebuilder:default="public.ecr.aws/decisiveai/mdai-collector:0.1.6"
// +optional
Image string `json:"image,omitempty"`
// +kubebuilder:default=1
// +optional
Replicas int32 `json:"replicas,omitempty"`
// +kubebuilder:default={}
// +optional
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}
MdaiCollectorSpec defines the desired state of MdaiCollector.
func (*MdaiCollectorSpec) DeepCopy ¶
func (in *MdaiCollectorSpec) DeepCopy() *MdaiCollectorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiCollectorSpec.
func (*MdaiCollectorSpec) DeepCopyInto ¶
func (in *MdaiCollectorSpec) DeepCopyInto(out *MdaiCollectorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MdaiCollectorStatus ¶
type MdaiCollectorStatus struct {
// Time when last MDAI Collector Configuration change was detected
// Right now it's updated on each reconcile, we have to skip when reconciliation detects no changes
// +optional
LastUpdatedTime *metav1.Time `json:"lastUpdatedTime,omitempty"`
// Conditions store the status conditions of the MDAI Collector instances
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
MdaiCollectorStatus defines the observed state of MdaiCollector.
func (*MdaiCollectorStatus) DeepCopy ¶
func (in *MdaiCollectorStatus) DeepCopy() *MdaiCollectorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiCollectorStatus.
func (*MdaiCollectorStatus) DeepCopyInto ¶
func (in *MdaiCollectorStatus) DeepCopyInto(out *MdaiCollectorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MdaiHub ¶
type MdaiHub struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MdaiHubSpec `json:"spec,omitempty"`
Status MdaiHubStatus `json:"status,omitempty"`
}
MdaiHub is the Schema for the mdaihubs API.
func (*MdaiHub) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiHub.
func (*MdaiHub) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MdaiHub) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MdaiHubList ¶
type MdaiHubList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []MdaiHub `json:"items"`
}
MdaiHubList contains a list of MdaiHub.
func (*MdaiHubList) DeepCopy ¶
func (in *MdaiHubList) DeepCopy() *MdaiHubList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiHubList.
func (*MdaiHubList) DeepCopyInto ¶
func (in *MdaiHubList) DeepCopyInto(out *MdaiHubList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MdaiHubList) DeepCopyObject ¶
func (in *MdaiHubList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MdaiHubSpec ¶
type MdaiHubSpec struct {
// +optional
Config *Config `json:"config,omitempty" yaml:"config,omitempty"`
// +optional
Variables []Variable `json:"variables,omitempty"`
// +optional
PrometheusAlerts []PrometheusAlert `json:"prometheusAlerts,omitempty"` // evaluation configuration (alerting rules)
// +optional
Rules []AutomationRule `json:"rules,omitempty"`
}
MdaiHubSpec defines the desired state of MdaiHub.
func (*MdaiHubSpec) DeepCopy ¶
func (in *MdaiHubSpec) DeepCopy() *MdaiHubSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiHubSpec.
func (*MdaiHubSpec) DeepCopyInto ¶
func (in *MdaiHubSpec) DeepCopyInto(out *MdaiHubSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MdaiHubStatus ¶
type MdaiHubStatus struct {
// Status of the Cluster defined by its modules and dependencies statuses
HubStatus string `json:"hubStatus"`
// Time when last Cluster Configuration change was detected
// Right now it's updated on each reconcile, we have to skip when reconciliation detects no changes
// +optional
LastUpdatedTime *metav1.Time `json:"lastUpdatedTime,omitempty"`
// Conditions store the status conditions of the Cluster instances
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
MdaiHubStatus defines the observed state of MdaiHub.
func (*MdaiHubStatus) DeepCopy ¶
func (in *MdaiHubStatus) DeepCopy() *MdaiHubStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiHubStatus.
func (*MdaiHubStatus) DeepCopyInto ¶
func (in *MdaiHubStatus) DeepCopyInto(out *MdaiHubStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MdaiIngress ¶ added in v0.2.1
type MdaiIngress struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MdaiIngressSpec `json:"spec,omitempty"`
Status MdaiIngressStatus `json:"status,omitempty"`
}
MdaiIngress is the Schema for the mdaiingresses API
func (*MdaiIngress) DeepCopy ¶ added in v0.2.1
func (in *MdaiIngress) DeepCopy() *MdaiIngress
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiIngress.
func (*MdaiIngress) DeepCopyInto ¶ added in v0.2.1
func (in *MdaiIngress) DeepCopyInto(out *MdaiIngress)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MdaiIngress) DeepCopyObject ¶ added in v0.2.1
func (in *MdaiIngress) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MdaiIngressList ¶ added in v0.2.1
type MdaiIngressList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []MdaiIngress `json:"items"`
}
MdaiIngressList contains a list of MdaiIngress
func (*MdaiIngressList) DeepCopy ¶ added in v0.2.1
func (in *MdaiIngressList) DeepCopy() *MdaiIngressList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiIngressList.
func (*MdaiIngressList) DeepCopyInto ¶ added in v0.2.1
func (in *MdaiIngressList) DeepCopyInto(out *MdaiIngressList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MdaiIngressList) DeepCopyObject ¶ added in v0.2.1
func (in *MdaiIngressList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MdaiIngressSpec ¶ added in v0.2.1
type MdaiIngressSpec struct {
// Name of the Otel Collector, current Custom Resource belongs to.
OtelCollector OtelColRef `json:"otelCollector"`
// Supported types are: aws
CloudType CloudProvider `json:"cloudType"`
// Annotations to add to ingress.
// e.g. 'cert-manager.io/cluster-issuer: "letsencrypt"'
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// IngressClassName is the name of an IngressClass cluster resource. Ingress
// controller implementations use this field to know whether they should be
// serving this Ingress resource.
// +optional
IngressClassName *string `json:"ingressClassName,omitempty"`
GrpcService *IngressService `json:"grpcService"`
NonGrpcService *IngressService `json:"nonGrpcService"`
// CollectorEndpoints should contain dns names for all collectors endpoints (grpc receivers)
// mapped to receivers names e.g. :
// otlp/1: otlp1.grpc.some.domain
// otlp/2: otlp2.grpc.some.domain
// +optional
CollectorEndpoints map[string]string `json:"collectorEndpoints,omitempty"`
}
MdaiIngressSpec defines the desired state of MdaiIngress
func (*MdaiIngressSpec) DeepCopy ¶ added in v0.2.1
func (in *MdaiIngressSpec) DeepCopy() *MdaiIngressSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiIngressSpec.
func (*MdaiIngressSpec) DeepCopyInto ¶ added in v0.2.1
func (in *MdaiIngressSpec) DeepCopyInto(out *MdaiIngressSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MdaiIngressStatus ¶ added in v0.2.1
type MdaiIngressStatus struct {
}
MdaiIngressStatus defines the observed state of MdaiIngress
func (*MdaiIngressStatus) DeepCopy ¶ added in v0.2.1
func (in *MdaiIngressStatus) DeepCopy() *MdaiIngressStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiIngressStatus.
func (*MdaiIngressStatus) DeepCopyInto ¶ added in v0.2.1
func (in *MdaiIngressStatus) DeepCopyInto(out *MdaiIngressStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MdaiObserver ¶ added in v0.1.21
type MdaiObserver struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec MdaiObserverSpec `json:"spec,omitempty"`
Status MdaiObserverStatus `json:"status,omitempty"`
}
MdaiObserver is the Schema for the mdaiobservers API.
func (*MdaiObserver) DeepCopy ¶ added in v0.1.21
func (in *MdaiObserver) DeepCopy() *MdaiObserver
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiObserver.
func (*MdaiObserver) DeepCopyInto ¶ added in v0.1.21
func (in *MdaiObserver) DeepCopyInto(out *MdaiObserver)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MdaiObserver) DeepCopyObject ¶ added in v0.1.21
func (in *MdaiObserver) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MdaiObserverList ¶ added in v0.1.21
type MdaiObserverList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []MdaiObserver `json:"items"`
}
MdaiObserverList contains a list of MdaiObserver.
func (*MdaiObserverList) DeepCopy ¶ added in v0.1.21
func (in *MdaiObserverList) DeepCopy() *MdaiObserverList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiObserverList.
func (*MdaiObserverList) DeepCopyInto ¶ added in v0.1.21
func (in *MdaiObserverList) DeepCopyInto(out *MdaiObserverList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MdaiObserverList) DeepCopyObject ¶ added in v0.1.21
func (in *MdaiObserverList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type MdaiObserverSpec ¶ added in v0.1.21
type MdaiObserverSpec struct {
// +optional
Observers []Observer `json:"observers,omitempty"`
// +optional
ObserverResource ObserverResource `json:"observerResource,omitempty"`
}
MdaiObserverSpec defines the desired state of MdaiObserver.
func (*MdaiObserverSpec) DeepCopy ¶ added in v0.1.21
func (in *MdaiObserverSpec) DeepCopy() *MdaiObserverSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiObserverSpec.
func (*MdaiObserverSpec) DeepCopyInto ¶ added in v0.1.21
func (in *MdaiObserverSpec) DeepCopyInto(out *MdaiObserverSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MdaiObserverStatus ¶ added in v0.1.21
type MdaiObserverStatus struct {
// Status of the Cluster defined by its modules and dependencies statuses
ObserverStatus string `json:"observerStatus"`
// +optional
LastUpdatedTime *metav1.Time `json:"lastUpdatedTime,omitempty"`
// Conditions store the status conditions of the Cluster instances
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
MdaiObserverStatus defines the observed state of MdaiObserver.
func (*MdaiObserverStatus) DeepCopy ¶ added in v0.1.21
func (in *MdaiObserverStatus) DeepCopy() *MdaiObserverStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MdaiObserverStatus.
func (*MdaiObserverStatus) DeepCopyInto ¶ added in v0.1.21
func (in *MdaiObserverStatus) DeepCopyInto(out *MdaiObserverStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Observer ¶
type Observer struct {
// +kubebuilder:validation:Required
Name string `json:"name" yaml:"name"`
// +kubebuilder:validation:Required
LabelResourceAttributes []string `json:"labelResourceAttributes" yaml:"labelResourceAttributes"`
// +optional
CountMetricName *string `json:"countMetricName,omitempty" yaml:"countMetricName,omitempty"`
// +optional
BytesMetricName *string `json:"bytesMetricName,omitempty" yaml:"bytesMetricName,omitempty"`
// +optional
Filter *ObserverFilter `json:"filter,omitempty" yaml:"filter,omitempty"`
}
func (*Observer) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Observer.
func (*Observer) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObserverFilter ¶
type ObserverFilter struct {
// +optional
ErrorMode *string `json:"error_mode" yaml:"error_mode"` //nolint:tagliatelle
// +optional
Logs *ObserverLogsFilter `json:"logs" yaml:"logs"`
}
func (*ObserverFilter) DeepCopy ¶
func (in *ObserverFilter) DeepCopy() *ObserverFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObserverFilter.
func (*ObserverFilter) DeepCopyInto ¶
func (in *ObserverFilter) DeepCopyInto(out *ObserverFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObserverLogsFilter ¶
type ObserverLogsFilter struct {
// +kubebuilder:validation:Required
LogRecord []string `json:"log_record" yaml:"log_record"` //nolint:tagliatelle
}
func (*ObserverLogsFilter) DeepCopy ¶
func (in *ObserverLogsFilter) DeepCopy() *ObserverLogsFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObserverLogsFilter.
func (*ObserverLogsFilter) DeepCopyInto ¶
func (in *ObserverLogsFilter) DeepCopyInto(out *ObserverLogsFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObserverResource ¶
type ObserverResource struct {
// +kubebuilder:default="public.ecr.aws/decisiveai/observer-collector:0.1.6"
// +optional
Image string `json:"image,omitempty"`
// +kubebuilder:default=1
// +optional
Replicas int32 `json:"replicas,omitempty"`
// +optional
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
// +optional
// +kubebuilder:validation:Minimum=1
GrpcReceiverMaxMsgSize *uint64 `json:"grpcReceiverMaxMsgSize,omitempty"`
// +optional
OwnLogsOtlpEndpoint *string `json:"ownLogsOtlpEndpoint,omitempty"`
// +kubebuilder:default={}
// +optional
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}
func (*ObserverResource) DeepCopy ¶
func (in *ObserverResource) DeepCopy() *ObserverResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObserverResource.
func (*ObserverResource) DeepCopyInto ¶
func (in *ObserverResource) DeepCopyInto(out *ObserverResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObserverResourceType ¶
type ObserverResourceType string
type OtelColRef ¶ added in v0.2.6
type OtelColRef struct {
// +kubebuilder:validation:MinLength=1
Name string `json:"name"`
}
OtelColRef represents reference to Otel Collector Custom Resource
func (*OtelColRef) DeepCopy ¶ added in v0.2.6
func (in *OtelColRef) DeepCopy() *OtelColRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OtelColRef.
func (*OtelColRef) DeepCopyInto ¶ added in v0.2.6
func (in *OtelColRef) DeepCopyInto(out *OtelColRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OtelMdaiIngressComb ¶ added in v0.2.1
type OtelMdaiIngressComb struct {
Otelcol v1beta1.OpenTelemetryCollector
MdaiIngress MdaiIngress
}
Config encapsulates collector & ingress config.
func NewOtelIngressConfig ¶ added in v0.2.1
func NewOtelIngressConfig(otelcolConfig v1beta1.OpenTelemetryCollector, ingressConfig MdaiIngress) *OtelMdaiIngressComb
func (*OtelMdaiIngressComb) DeepCopy ¶ added in v0.2.1
func (in *OtelMdaiIngressComb) DeepCopy() *OtelMdaiIngressComb
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OtelMdaiIngressComb.
func (*OtelMdaiIngressComb) DeepCopyInto ¶ added in v0.2.1
func (in *OtelMdaiIngressComb) DeepCopyInto(out *OtelMdaiIngressComb)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OtelMdaiIngressComb) GetReceiverPortsWithUrlPaths ¶ added in v0.2.1
func (c *OtelMdaiIngressComb) GetReceiverPortsWithUrlPaths(logger *zap.Logger) (components.ComponentsPortsUrlPaths, error)
mydecisive
type OtlpLogsConfig ¶ added in v0.1.21
type OtlpLogsConfig struct {
// +optional
AuditLogs *AuditLogstreamConfig `json:"auditLogs,omitempty" yaml:"auditLogs,omitempty"`
// +optional
CollectorLogs *LogstreamConfig `json:"collectorLogs,omitempty" yaml:"collectorLogs,omitempty"`
// +optional
HubLogs *LogstreamConfig `json:"hubLogs,omitempty" yaml:"hubLogs,omitempty"`
// +optional
OtherLogs *LogstreamConfig `json:"otherLogs,omitempty" yaml:"otherLogs,omitempty"`
Endpoint string `json:"endpoint" yaml:"endpoint"`
}
func (*OtlpLogsConfig) DeepCopy ¶ added in v0.1.21
func (in *OtlpLogsConfig) DeepCopy() *OtlpLogsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OtlpLogsConfig.
func (*OtlpLogsConfig) DeepCopyInto ¶ added in v0.1.21
func (in *OtlpLogsConfig) DeepCopyInto(out *OtlpLogsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrometheusAlert ¶
type PrometheusAlert struct {
// Name How this evaluation will be referred to elsewhere in the config. Also, the name applied to the Prometheus Alert
// +kubebuilder:validation:Pattern:="^[a-zA-Z_][a-zA-Z0-9_]*$"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Required
Name string `json:"name" yaml:"name"`
// +kubebuilder:validation:Required
Expr intstr.IntOrString `json:"expr" yaml:"expr"`
// For Alerts are considered firing once they have been returned for this long.
// +kubebuilder:validation:Optional
For *prometheusv1.Duration `json:"for,omitempty" yaml:"for,omitempty"`
// KeepFiringFor defines how long an alert will continue firing after the condition that triggered it has cleared.
// +kubebuilder:validation:Optional
KeepFiringFor *prometheusv1.NonEmptyDuration `json:"keep_firing_for,omitempty" yaml:"keep_firing_for,omitempty"` //nolint:tagliatelle
// +kubebuilder:validation:Pattern:="^(warning|critical)$"
// +kubebuilder:validation:Required
Severity string `json:"severity" yaml:"severity"`
}
func (*PrometheusAlert) DeepCopy ¶
func (in *PrometheusAlert) DeepCopy() *PrometheusAlert
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusAlert.
func (*PrometheusAlert) DeepCopyInto ¶
func (in *PrometheusAlert) DeepCopyInto(out *PrometheusAlert)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type S3LogsConfig ¶
type S3LogsConfig struct {
// +optional
AuditLogs *AuditLogstreamConfig `json:"auditLogs,omitempty" yaml:"auditLogs,omitempty"`
// +optional
CollectorLogs *LogstreamConfig `json:"collectorLogs,omitempty" yaml:"collectorLogs,omitempty"`
// +optional
HubLogs *LogstreamConfig `json:"hubLogs,omitempty" yaml:"hubLogs,omitempty"`
// +optional
OtherLogs *LogstreamConfig `json:"otherLogs,omitempty" yaml:"otherLogs,omitempty"`
S3Region string `json:"s3Region" yaml:"s3Region"`
S3Bucket string `json:"s3Bucket" yaml:"s3Bucket"`
}
func (*S3LogsConfig) DeepCopy ¶
func (in *S3LogsConfig) DeepCopy() *S3LogsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3LogsConfig.
func (*S3LogsConfig) DeepCopyInto ¶
func (in *S3LogsConfig) DeepCopyInto(out *S3LogsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalarAction ¶ added in v0.2.0
type ScalarAction struct {
// Target set variable name
// +kubebuilder:validation:Pattern:="^[a-zA-Z_][a-zA-Z0-9_]*$"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=63
// +kubebuilder:validation:Required
Scalar string `json:"scalar"`
// Value to add (templated string allowed)
// +kubebuilder:validation:MinLength=1
Value string `json:"value"`
}
func (*ScalarAction) DeepCopy ¶ added in v0.2.0
func (in *ScalarAction) DeepCopy() *ScalarAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalarAction.
func (*ScalarAction) DeepCopyInto ¶ added in v0.2.0
func (in *ScalarAction) DeepCopyInto(out *ScalarAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Serializer ¶
type Serializer struct {
// Name The environment variable name to be used to access the variable's value.
// +kubeuilder:validation:Pattern:="^[a-zA-Z_][a-zA-Z0-9_]*$"
// +kubebuilder:validation:MinLength=1
// + required
Name string `json:"name" yaml:"name"`
// Transformers The transformation applied to the value of the variable in the order provided before it is assigned
// as an environment variable.
// +optional
Transformers []VariableTransformer `json:"transformers,omitempty" yaml:"transformers,omitempty"`
}
func (*Serializer) DeepCopy ¶
func (in *Serializer) DeepCopy() *Serializer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Serializer.
func (*Serializer) DeepCopyInto ¶
func (in *Serializer) DeepCopyInto(out *Serializer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SetAction ¶ added in v0.2.0
type SetAction struct {
// Target set variable name
// +kubebuilder:validation:Pattern:="^[a-zA-Z_][a-zA-Z0-9_]*$"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=63
// +kubebuilder:validation:Required
Set string `json:"set"`
// Value to add (templated string allowed)
// +kubebuilder:validation:MinLength=1
Value string `json:"value"`
}
func (*SetAction) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SetAction.
func (*SetAction) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SeverityLevel ¶ added in v0.1.21
type SeverityLevel string
type StringOrFrom ¶ added in v0.2.0
type StringOrFrom struct {
// +optional
Value *string `json:"value,omitempty"`
// +optional
ValueFrom *ValueFromSource `json:"valueFrom,omitempty"`
}
StringOrFrom represents a string value or a reference to a value in a Secret or ConfigMap. +kubebuilder:validation:XValidation:rule="(has(self.value)?1:0)+(has(self.valueFrom)?1:0)==1",message="set exactly one of value or valueFrom"
func (*StringOrFrom) DeepCopy ¶ added in v0.2.0
func (in *StringOrFrom) DeepCopy() *StringOrFrom
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringOrFrom.
func (*StringOrFrom) DeepCopyInto ¶ added in v0.2.0
func (in *StringOrFrom) DeepCopyInto(out *StringOrFrom)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TransformerType ¶
type TransformerType string
type ValueFromSource ¶ added in v0.2.0
type ValueFromSource struct {
// +optional
SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef,omitempty"`
// +optional
ConfigMapKeyRef *corev1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty"`
}
ValueFromSource refers to a key in a Secret or ConfigMap. +kubebuilder:validation:XValidation:rule="(has(self.secretKeyRef)?1:0)+(has(self.configMapKeyRef)?1:0)==1",message="set exactly one of secretKeyRef or configMapKeyRef"
func (*ValueFromSource) DeepCopy ¶ added in v0.2.0
func (in *ValueFromSource) DeepCopy() *ValueFromSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueFromSource.
func (*ValueFromSource) DeepCopyInto ¶ added in v0.2.0
func (in *ValueFromSource) DeepCopyInto(out *ValueFromSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Variable ¶
type Variable struct {
// Key The key for which this variable's managed value is assigned. Will also be used as the environment variable name for variables of type "string"
// +kubebuilder:validation:Pattern:="^[a-zA-Z_][a-zA-Z0-9_]*$"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=63
// +kubebuilder:validation:Required
Key string `json:"key" yaml:"key"`
// Type for the variable, defaults to "computed" if not provided
// +kubebuilder:validation:Required
// +kubebuilder:default="computed"
// +kubebuilder:validation:Enum:=manual;computed;meta
Type VariableType `json:"type" yaml:"type"`
// DataType Data type for the managed variable value
// +kubebuilder:validation:Required
// +kubebuilder:validation:Enum:=string;int;set;map;boolean;metaHashSet;metaPriorityList
DataType VariableDataType `json:"dataType" yaml:"dataType"`
// StorageType defaults to "mdai-valkey" if not provided
// +kubebuilder:default="mdai-valkey"
// +kubebuilder:validation:Enum:=mdai-valkey
StorageType VariableStorageType `json:"storageType" yaml:"storageType"`
// VariableRefs name references to other managed variables to be included in meta calculation. Listed variables should be of the same data type.
// +kubebuilder:validation:Optional
VariableRefs []string `json:"variableRefs,omitempty" yaml:"variableRefs,omitempty"`
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinItems=1
SerializeAs []Serializer `json:"serializeAs" yaml:"serializeAs"`
}
Variable defines mdai variable +kubebuilder:validation:XValidation:rule="self.type == 'meta' ? self.dataType in ['metaHashSet', 'metaPriorityList'] : self.dataType in ['string', 'int', 'boolean', 'set', 'map']",messageExpression="\"variable '\" + self.key + \"': dataType is not allowed for type specified\"",reason="FieldValueInvalid"
func (*Variable) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Variable.
func (*Variable) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VariableDataType ¶
type VariableDataType string
type VariableSourceType ¶
type VariableSourceType string
type VariableStorageType ¶
type VariableStorageType string
type VariableTransform ¶
type VariableTransform string
type VariableTransformer ¶
type VariableTransformer struct {
Type TransformerType `json:"type" yaml:"type"`
// Join For use with "set" or "array" type variables, joins the items of the collection into a string.
// +optional
Join *JoinTransformer `json:"join,omitempty" yaml:"join,omitempty"`
}
func (*VariableTransformer) DeepCopy ¶
func (in *VariableTransformer) DeepCopy() *VariableTransformer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VariableTransformer.
func (*VariableTransformer) DeepCopyInto ¶
func (in *VariableTransformer) DeepCopyInto(out *VariableTransformer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VariableType ¶
type VariableType string
type VariableUpdateOperation ¶
type VariableUpdateOperation string
type When ¶ added in v0.2.0
type When struct {
// Variant 1: alert
// +optional
AlertName *string `json:"alertName,omitempty"`
// +optional
Status *string `json:"status,omitempty"`
// Variant 2: variable-driven
// +optional
VariableUpdated *string `json:"variableUpdated,omitempty"`
// +optional
// +kubebuilder:validation:Enum=added;removed;set
UpdateType *string `json:"updateType,omitempty"`
}
When represents one of two trigger variants:
- alertName + status
- variableUpdated + UpdateType
Exactly one variant must be set. TODO check the validation logic for this. +kubebuilder:validation:XValidation:rule="(has(self.alertName)) != (has(self.variableUpdated))",message="exactly one variant must be set"
func (*When) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new When.
func (*When) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.