@@ -29,6 +29,11 @@ import (
2929type EndpointPickerConfig struct {
3030 metav1.TypeMeta `json:",inline"`
3131
32+ // +optional
33+ // FeatureGates is a set of flags that enable various experimental features with the EPP.
34+ // If omitted non of these experimental features will be enabled.
35+ FeatureGates FeatureGates `json:"featureGates,omitempty"`
36+
3237 // +required
3338 // +kubebuilder:validation:Required
3439 // Plugins is the list of plugins that will be instantiated.
@@ -40,11 +45,6 @@ type EndpointPickerConfig struct {
4045 // that will be created.
4146 SchedulingProfiles []SchedulingProfile `json:"schedulingProfiles"`
4247
43- // +optional
44- // FeatureGates is a set of flags that enable various experimental features with the EPP.
45- // If omitted non of these experimental features will be enabled.
46- FeatureGates FeatureGates `json:"featureGates,omitempty"`
47-
4848 // +optional
4949 // SaturationDetector when present specifies the configuration of the
5050 // Saturation detector. If not present, default values are used.
@@ -57,11 +57,11 @@ type EndpointPickerConfig struct {
5757
5858func (cfg EndpointPickerConfig ) String () string {
5959 return fmt .Sprintf (
60- "{Plugins: %v, SchedulingProfiles: %v, Data: %v, FeatureGates: %v, SaturationDetector: %v}" ,
60+ "{FeatureGates: %v, Plugins: %v, SchedulingProfiles: %v, Data: %v, SaturationDetector: %v}" ,
61+ cfg .FeatureGates ,
6162 cfg .Plugins ,
6263 cfg .SchedulingProfiles ,
6364 cfg .Data ,
64- cfg .FeatureGates ,
6565 cfg .SaturationDetector ,
6666 )
6767}
@@ -209,6 +209,7 @@ func (dlc DataLayerConfig) String() string {
209209 return fmt .Sprintf ("{Sources: %v}" , dlc .Sources )
210210}
211211
212+ // DataLayerSource contains the configuration of a DataSource of the V2 DataLayer feature
212213type DataLayerSource struct {
213214 // +required
214215 // +kubebuilder:validation:Required
@@ -222,9 +223,23 @@ type DataLayerSource struct {
222223 // Extractors specifies the list of Plugin instances to be associated with
223224 // this Source. The entries are references to the names of entries of the Plugins
224225 // defined in the configuration's Plugins section
225- Extractors []string `json:"extractors"`
226+ Extractors []DataLayerExtractor `json:"extractors"`
226227}
227228
228229func (dls DataLayerSource ) String () string {
229230 return fmt .Sprintf ("{PluginRef: %s, Extractors: %v}" , dls .PluginRef , dls .Extractors )
230231}
232+
233+ // DataLayerExtractor contains the configuration of an Extractor of the V2 DataLayer feature
234+ type DataLayerExtractor struct {
235+ // +required
236+ // +kubebuilder:validation:Required
237+ // PluginRef specifies a partiular Plugin instance to be associated with
238+ // this Extractor. The reference is to the name of an entry of the Plugins
239+ // defined in the configuration's Plugins section
240+ PluginRef string `json:"pluginRef"`
241+ }
242+
243+ func (dle DataLayerExtractor ) String () string {
244+ return "{PluginRef: " + dle .PluginRef + "}"
245+ }
0 commit comments