|
10 | 10 | import io.javaoperatorsdk.operator.api.config.Utils;
|
11 | 11 | import io.javaoperatorsdk.operator.api.config.dependent.ConfigurationConverter;
|
12 | 12 | import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceSpec;
|
13 |
| -import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration; |
14 | 13 | import io.javaoperatorsdk.operator.api.reconciler.Constants;
|
15 |
| -import io.javaoperatorsdk.operator.processing.GroupVersionKind; |
16 | 14 | import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
|
17 | 15 | import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
|
18 | 16 | import io.javaoperatorsdk.operator.processing.event.source.filter.OnDeleteFilter;
|
@@ -49,75 +47,58 @@ public KubernetesDependentResourceConfig<R> configFrom(KubernetesDependent confi
|
49 | 47 | }
|
50 | 48 |
|
51 | 49 | @SuppressWarnings({"unchecked", "rawtypes"})
|
52 |
| - private InformerConfiguration.InformerConfigurationBuilder<R> createInformerConfig( |
| 50 | + private KubernetesDependentInformerConfig<R> createInformerConfig( |
53 | 51 | KubernetesDependent configAnnotation,
|
54 | 52 | DependentResourceSpec<R, P, KubernetesDependentResourceConfig<R>> spec,
|
55 | 53 | ControllerConfiguration<? extends HasMetadata> controllerConfig) {
|
56 | 54 | Class<? extends KubernetesDependentResource<?, ?>> dependentResourceClass =
|
57 | 55 | (Class<? extends KubernetesDependentResource<?, ?>>) spec.getDependentResourceClass();
|
58 | 56 |
|
59 |
| - InformerConfiguration.InformerConfigurationBuilder informerBuilder; |
60 |
| - if (configAnnotation != null && configAnnotation.informerConfig() != null && |
61 |
| - !Constants.NO_VALUE_SET.equals(configAnnotation.informerConfig().groupVersionKind())) { |
62 |
| - |
63 |
| - informerBuilder = InformerConfiguration.from( |
64 |
| - GroupVersionKind.fromString(configAnnotation.informerConfig().groupVersionKind()), |
65 |
| - controllerConfig.getResourceClass()); |
66 |
| - } else { |
67 |
| - informerBuilder = new InternalInformerConfigBuilder(controllerConfig.getResourceClass()); |
68 |
| - } |
69 |
| - |
70 | 57 | if (configAnnotation != null && configAnnotation.informerConfig() != null) {
|
| 58 | + var config = new KubernetesDependentInformerConfigBuilder<>(); |
| 59 | + |
71 | 60 | // override default name if more specific one is provided
|
72 | 61 | if (!Constants.NO_VALUE_SET.equals(configAnnotation.informerConfig().name())) {
|
73 |
| - informerBuilder.withName(configAnnotation.informerConfig().name()); |
74 |
| - } else if (spec.getName() != null && !Constants.NO_VALUE_SET.equals(spec.getName())) { |
75 |
| - informerBuilder.withName(spec.getName()); |
| 62 | + config.withName(configAnnotation.informerConfig().name()); |
76 | 63 | }
|
77 | 64 |
|
78 | 65 | var namespaces = Set.of(configAnnotation.informerConfig().namespaces());
|
79 |
| - informerBuilder.withNamespaces(namespaces); |
| 66 | + config.withNamespaces(namespaces); |
80 | 67 |
|
81 | 68 | final var fromAnnotation = configAnnotation.informerConfig().labelSelector();
|
82 | 69 | var labelSelector = Constants.NO_VALUE_SET.equals(fromAnnotation) ? null : fromAnnotation;
|
83 |
| - informerBuilder.withLabelSelector(labelSelector); |
| 70 | + config.withLabelSelector(labelSelector); |
84 | 71 |
|
85 | 72 | final var context = Utils.contextFor(controllerConfig, dependentResourceClass,
|
86 | 73 | configAnnotation.annotationType());
|
87 | 74 |
|
88 | 75 | var onAddFilter = Utils.instantiate(configAnnotation.informerConfig().onAddFilter(),
|
89 | 76 | OnAddFilter.class, context);
|
90 |
| - informerBuilder.withOnAddFilter((OnAddFilter<? super R>) onAddFilter); |
| 77 | + config.withOnAddFilter(onAddFilter); |
91 | 78 |
|
92 | 79 | var onUpdateFilter =
|
93 | 80 | Utils.instantiate(configAnnotation.informerConfig().onUpdateFilter(),
|
94 | 81 | OnUpdateFilter.class, context);
|
95 |
| - informerBuilder.withOnUpdateFilter((OnUpdateFilter<? super R>) onUpdateFilter); |
| 82 | + config.withOnUpdateFilter(onUpdateFilter); |
96 | 83 |
|
97 | 84 | var onDeleteFilter =
|
98 | 85 | Utils.instantiate(configAnnotation.informerConfig().onDeleteFilter(),
|
99 | 86 | OnDeleteFilter.class, context);
|
100 |
| - informerBuilder.withOnDeleteFilter((OnDeleteFilter<? super R>) onDeleteFilter); |
| 87 | + config.withOnDeleteFilter(onDeleteFilter); |
101 | 88 |
|
102 | 89 | var genericFilter =
|
103 | 90 | Utils.instantiate(configAnnotation.informerConfig().genericFilter(),
|
104 | 91 | GenericFilter.class,
|
105 | 92 | context);
|
106 | 93 |
|
107 |
| - informerBuilder.withGenericFilter((GenericFilter<? super R>) genericFilter); |
| 94 | + config.withGenericFilter(genericFilter); |
108 | 95 |
|
109 |
| - informerBuilder.followControllerNamespacesOnChange( |
| 96 | + config.withFollowControllerNamespacesOnChange( |
110 | 97 | configAnnotation.informerConfig().followControllerNamespacesOnChange());
|
111 | 98 |
|
| 99 | + return config.build(); |
112 | 100 | }
|
113 |
| - return informerBuilder; |
114 |
| - } |
115 |
| - |
116 |
| - private class InternalInformerConfigBuilder |
117 |
| - extends InformerConfiguration.InformerConfigurationBuilder<R> { |
118 |
| - public InternalInformerConfigBuilder(Class<? extends HasMetadata> primaryResourceClass) { |
119 |
| - this.primaryResourceClass = primaryResourceClass; |
120 |
| - } |
| 101 | + return new KubernetesDependentInformerConfigBuilder<>().build(); |
121 | 102 | }
|
122 | 103 |
|
123 | 104 | }
|
0 commit comments