|
16 | 16 | import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
|
17 | 17 | import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
|
18 | 18 | import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResourceConfiguration;
|
| 19 | +import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResourceConfiguration.DEFAULT_PRIMARIES_MAPPER; |
| 20 | +import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResourceConfiguration.DEFAULT_SECONDARY_MAPPER; |
| 21 | +import io.javaoperatorsdk.operator.processing.event.ResourceID; |
19 | 22 | import io.javaoperatorsdk.operator.processing.event.source.ResourceEventFilter;
|
20 | 23 | import io.javaoperatorsdk.operator.processing.event.source.ResourceEventFilters;
|
21 | 24 |
|
@@ -117,30 +120,32 @@ public List<? extends DependentResource> getDependentResources() {
|
117 | 120 | if (dependentConfigs.length > 0) {
|
118 | 121 | final List<DependentResource> result = new ArrayList<>(dependentConfigs.length);
|
119 | 122 | for (DependentResourceConfiguration dependentConfig : dependentConfigs) {
|
120 |
| - final var creatable = valueOrDefault(dependentConfig, |
121 |
| - DependentResourceConfiguration::creatable, |
122 |
| - DependentResourceConfiguration.CREATABLE_DEFAULT); |
123 |
| - final var updatable = valueOrDefault(dependentConfig, |
124 |
| - DependentResourceConfiguration::updatable, |
125 |
| - DependentResourceConfiguration.UPDATABLE_DEFAULT); |
126 |
| - final var owned = valueOrDefault(dependentConfig, |
127 |
| - DependentResourceConfiguration::owned, |
128 |
| - DependentResourceConfiguration.OWNED_DEFAULT); |
129 |
| - |
130 |
| - final var resourceType = |
131 |
| - valueOrDefault(dependentConfig, DependentResourceConfiguration::resourceType, null); |
| 123 | + final var creatable = dependentConfig.creatable(); |
| 124 | + final var updatable = dependentConfig.updatable(); |
| 125 | + final var owned = dependentConfig.owned(); |
| 126 | + |
| 127 | + final var resourceType = dependentConfig.resourceType(); |
132 | 128 | final var crdName = CustomResource.getCRDName(resourceType);
|
133 | 129 | final var namespaces = Set.of(
|
134 | 130 | valueOrDefault(dependentConfig, DependentResourceConfiguration::namespaces,
|
135 | 131 | new String[] {}));
|
136 |
| - final var labelSelector = |
137 |
| - valueOrDefault(dependentConfig, DependentResourceConfiguration::labelSelector, ""); |
| 132 | + final var labelSelector = dependentConfig.labelSelector(); |
| 133 | + |
| 134 | + final Function<? extends HasMetadata, Set<ResourceID>> primariesMapper = |
| 135 | + valueIfPresentOrNull( |
| 136 | + dependentConfig, DependentResourceConfiguration::associatedPrimariesMapper, |
| 137 | + DEFAULT_PRIMARIES_MAPPER.class); |
| 138 | + final Function<? extends HasMetadata, ? extends HasMetadata> secondaryMapper = |
| 139 | + valueIfPresentOrNull( |
| 140 | + dependentConfig, DependentResourceConfiguration::associatedSecondaryMapper, |
| 141 | + DEFAULT_SECONDARY_MAPPER.class); |
| 142 | + |
138 | 143 |
|
139 | 144 | final DefaultDependentResourceConfiguration<? extends HasMetadata> configuration =
|
140 |
| - new DefaultDependentResourceConfiguration<>( |
| 145 | + new DefaultDependentResourceConfiguration( |
141 | 146 | crdName, resourceType, namespaces, labelSelector, service, creatable, updatable,
|
142 |
| - owned, |
143 |
| - null, null, true); |
| 147 | + owned, primariesMapper, secondaryMapper, |
| 148 | + dependentConfig.skipUpdateIfUnchanged()); |
144 | 149 |
|
145 | 150 | final var builder =
|
146 | 151 | valueIfPresentOrNull(dependentConfig, DependentResourceConfiguration::builder,
|
|
0 commit comments