@@ -62,7 +62,11 @@ type FunctionSpec struct {
6262 FilebeatImage string `json:"filebeatImage,omitempty"`
6363 // +kubebuilder:validation:Optional
6464 // +kubebuilder:pruning:PreserveUnknownFields
65- FuncConfig * Config `json:"funcConfig,omitempty"`
65+ FuncConfig * Config `json:"funcConfig,omitempty"`
66+ // +kubebuilder:validation:Optional
67+ SourceConfig * SourceConnectorSpec `json:"sourceConfig,omitempty"`
68+ // +kubebuilder:validation:Optional
69+ SinkConfig * SinkConnectorSpec `json:"sinkConfig,omitempty"`
6670 Resources corev1.ResourceRequirements `json:"resources,omitempty"`
6771 SecretsMap map [string ]SecretRef `json:"secretsMap,omitempty"`
6872 VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
@@ -152,6 +156,44 @@ type FunctionList struct {
152156 Items []Function `json:"items"`
153157}
154158
159+ // SourceConnectorSpec describes configurable fields when a function overrides its source implementation.
160+ type SourceConnectorSpec struct {
161+ // Archive points to a nar archive containing the connector. It can reference built-in connectors using the
162+ // builtin:// scheme.
163+ // +kubebuilder:validation:Optional
164+ SourceType string `json:"sourceType,omitempty"` // refer to `--source-type` as builtin connector
165+ // Builtin holds the resolved name of a built-in source connector.
166+ // +kubebuilder:validation:Optional
167+ BatchSourceConfig * BatchSourceConfig `json:"batchSourceConfig,omitempty"`
168+ // ClassName is the fully qualified source implementation class.
169+ // +kubebuilder:validation:Optional
170+ ClassName string `json:"className,omitempty"`
171+ // TypeClassName overrides the expected message type.
172+ // +kubebuilder:validation:Optional
173+ TypeClassName string `json:"typeClassName,omitempty"`
174+ // Configs contains connector specific options.
175+ // +kubebuilder:validation:Optional
176+ // +kubebuilder:pruning:PreserveUnknownFields
177+ Configs * Config `json:"configs,omitempty"`
178+ }
179+
180+ // SinkConnectorSpec describes configurable fields when a function overrides its sink implementation.
181+ type SinkConnectorSpec struct {
182+ // SinkType refers to the built-in sink identifier when using connectors packaged with Pulsar.
183+ // +kubebuilder:validation:Optional
184+ SinkType string `json:"sinkType,omitempty"`
185+ // ClassName is the fully qualified sink implementation class.
186+ // +kubebuilder:validation:Optional
187+ ClassName string `json:"className,omitempty"`
188+ // TypeClassName overrides the message type for the sink.
189+ // +kubebuilder:validation:Optional
190+ TypeClassName string `json:"typeClassName,omitempty"`
191+ // Configs contains connector specific options.
192+ // +kubebuilder:validation:Optional
193+ // +kubebuilder:pruning:PreserveUnknownFields
194+ Configs * Config `json:"configs,omitempty"`
195+ }
196+
155197func init () {
156198 SchemeBuilder .Register (& Function {}, & FunctionList {})
157199}
0 commit comments