diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml
index fbac44faa9..f133ddabc9 100644
--- a/.github/workflows/integration-tests.yml
+++ b/.github/workflows/integration-tests.yml
@@ -12,7 +12,7 @@ on:
http-client:
type: string
required: false
- default: 'okhttp'
+ default: 'jdk'
experimental:
type: boolean
required: false
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index e1116df546..f3947c759a 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -34,7 +34,7 @@ jobs:
integration_tests:
strategy:
matrix:
- java: [ 11, 17 ]
+ java: [ 17, 21 ]
kubernetes: [ 'v1.26.13', 'v1.27.10', 'v1.28.6', 'v1.29.1' ]
uses: ./.github/workflows/integration-tests.yml
with:
@@ -56,7 +56,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- java: [ 11, 17 ]
+ java: [ 17, 21 ]
steps:
- uses: actions/checkout@v4
- name: Set up Java and Maven
diff --git a/.github/workflows/release-project-in-dir.yml b/.github/workflows/release-project-in-dir.yml
index b271f05f02..dc79b6f6c2 100644
--- a/.github/workflows/release-project-in-dir.yml
+++ b/.github/workflows/release-project-in-dir.yml
@@ -26,7 +26,7 @@ jobs:
- name: Set up Java and Maven
uses: actions/setup-java@v4
with:
- java-version: 11
+ java-version: 17
distribution: temurin
cache: 'maven'
@@ -61,7 +61,7 @@ jobs:
- name: Set up Java and Maven
uses: actions/setup-java@v4
with:
- java-version: 11
+ java-version: 17
distribution: temurin
cache: 'maven'
diff --git a/.github/workflows/snapshot-releases.yml b/.github/workflows/snapshot-releases.yml
index e5aff55e62..66fe9d25a3 100644
--- a/.github/workflows/snapshot-releases.yml
+++ b/.github/workflows/snapshot-releases.yml
@@ -21,7 +21,7 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: temurin
- java-version: 11
+ java-version: 17
cache: 'maven'
- name: Build and test project
run: ./mvnw ${MAVEN_ARGS} clean install --file pom.xml
@@ -34,7 +34,7 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: temurin
- java-version: 11
+ java-version: 17
cache: 'maven'
- name: Release Maven package
uses: samuelmeuli/action-maven-publish@v1
diff --git a/bootstrapper-maven-plugin/pom.xml b/bootstrapper-maven-plugin/pom.xml
index 2ccc24e23d..dd041b22b7 100644
--- a/bootstrapper-maven-plugin/pom.xml
+++ b/bootstrapper-maven-plugin/pom.xml
@@ -5,7 +5,7 @@
java-operator-sdk
io.javaoperatorsdk
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
bootstrapper
diff --git a/bootstrapper-maven-plugin/src/main/resources/templates/Reconciler.java b/bootstrapper-maven-plugin/src/main/resources/templates/Reconciler.java
index 03ac06f882..45967767b5 100644
--- a/bootstrapper-maven-plugin/src/main/resources/templates/Reconciler.java
+++ b/bootstrapper-maven-plugin/src/main/resources/templates/Reconciler.java
@@ -11,13 +11,17 @@
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
import java.util.Map;
import java.util.Optional;
-@ControllerConfiguration(dependents = {@Dependent(type = ConfigMapDependentResource.class)})
+@ControllerConfiguration(
+ workflow = @Workflow(dependents = {
+ @Dependent(type = ConfigMapDependentResource.class)
+ }))
public class {{artifactClassId}}Reconciler implements Reconciler<{{artifactClassId}}CustomResource> {
public UpdateControl<{{artifactClassId}}CustomResource> reconcile({{artifactClassId}}CustomResource primary,
diff --git a/caffeine-bounded-cache-support/pom.xml b/caffeine-bounded-cache-support/pom.xml
index dac6530fea..6ba5441db5 100644
--- a/caffeine-bounded-cache-support/pom.xml
+++ b/caffeine-bounded-cache-support/pom.xml
@@ -5,7 +5,7 @@
java-operator-sdk
io.javaoperatorsdk
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
4.0.0
diff --git a/docs/_data/sidebar.yml b/docs/_data/sidebar.yml
index 8c083a6cc1..01918ca31f 100644
--- a/docs/_data/sidebar.yml
+++ b/docs/_data/sidebar.yml
@@ -32,4 +32,6 @@
- title: Migrating from v4.3 to v4.4
url: /docs/v4-4-migration
- title: Migrating from v4.4 to v4.5
- url: /docs/v4-5-migration
\ No newline at end of file
+ url: /docs/v4-5-migration
+ - title: Migrating from v4.7 to v5.0
+ url: /docs/v5-0-migration
diff --git a/docs/documentation/v5-0-migration.md b/docs/documentation/v5-0-migration.md
new file mode 100644
index 0000000000..0cec56235d
--- /dev/null
+++ b/docs/documentation/v5-0-migration.md
@@ -0,0 +1,45 @@
+---
+title: Migrating from v4.7 to v5.0
+description: Migrating from v4.7 to v5.0
+layout: docs
+permalink: /docs/v5-0-migration
+---
+
+# Migrating from v4.7 to v5.0
+
+## API Tweaks
+
+1. [Result of managed dependent resources](https://github.com/operator-framework/java-operator-sdk/blob/main/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/ManagedDependentResourceContext.java#L55-L57)
+ is not `Optional` anymore. In case you use this result, simply use the result
+ objects directly.
+
+2. Workflow is now explicit for managed dependent resources:
+ So instead (from WebPage sample):
+
+```java
+
+@ControllerConfiguration(
+ dependents = {
+ @Dependent(type = ConfigMapDependentResource.class),
+ @Dependent(type = DeploymentDependentResource.class),
+ @Dependent(type = ServiceDependentResource.class),
+ @Dependent(type = IngressDependentResource.class,
+ reconcilePrecondition = ExposedIngressCondition.class)
+ }))
+// Omitted code
+```
+
+
+ Now the following structure is used:
+
+```java
+@ControllerConfiguration(
+ workflow = @Workflow(dependents = {
+ @Dependent(type = ConfigMapDependentResource.class),
+ @Dependent(type = DeploymentDependentResource.class),
+ @Dependent(type = ServiceDependentResource.class),
+ @Dependent(type = IngressDependentResource.class,
+ reconcilePrecondition = ExposedIngressCondition.class)
+ }))
+// Omitted code
+```
\ No newline at end of file
diff --git a/micrometer-support/pom.xml b/micrometer-support/pom.xml
index 5e2d38702e..89aa81f76b 100644
--- a/micrometer-support/pom.xml
+++ b/micrometer-support/pom.xml
@@ -5,7 +5,7 @@
java-operator-sdk
io.javaoperatorsdk
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
4.0.0
diff --git a/operator-framework-bom/pom.xml b/operator-framework-bom/pom.xml
index a1ff5a4c5d..b4d013bc90 100644
--- a/operator-framework-bom/pom.xml
+++ b/operator-framework-bom/pom.xml
@@ -5,7 +5,7 @@
io.javaoperatorsdk
operator-framework-bom
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
Operator SDK - Bill of Materials
pom
Java SDK for implementing Kubernetes operators
diff --git a/operator-framework-core/pom.xml b/operator-framework-core/pom.xml
index 00a502a6d2..92a5a5f1ec 100644
--- a/operator-framework-core/pom.xml
+++ b/operator-framework-core/pom.xml
@@ -6,7 +6,7 @@
io.javaoperatorsdk
java-operator-sdk
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
../pom.xml
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java
index d908f52ebe..9b3f8d9983 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java
@@ -25,8 +25,6 @@
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
import io.javaoperatorsdk.operator.processing.dependent.workflow.Condition;
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilters;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter;
@@ -163,47 +161,19 @@ protected
ControllerConfiguration
configFor(Reconcile
Utils.instantiate(annotation.itemStore(), ItemStore.class, context), dependentFieldManager,
this, informerListLimit);
- ResourceEventFilter
answer = deprecatedEventFilter(annotation);
- config.setEventFilter(answer != null ? answer : ResourceEventFilters.passthrough());
-
List specs = dependentResources(annotation, config);
config.setDependentResources(specs);
return config;
}
- @SuppressWarnings("unchecked")
- private static ResourceEventFilter
deprecatedEventFilter(
- io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration annotation) {
- ResourceEventFilter
answer = null;
-
- Class>[] filterTypes =
- (Class>[]) valueOrDefault(annotation,
- io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::eventFilters,
- new Object[] {});
- for (var filterType : filterTypes) {
- try {
- ResourceEventFilter filter = filterType.getConstructor().newInstance();
-
- if (answer == null) {
- answer = filter;
- } else {
- answer = answer.and(filter);
- }
- } catch (Exception e) {
- throw new IllegalArgumentException(e);
- }
- }
- return answer;
- }
-
@SuppressWarnings({"unchecked", "rawtypes"})
private static List dependentResources(
io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration annotation,
ControllerConfiguration> parent) {
final var dependents =
valueOrDefault(annotation,
- io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::dependents,
+ c -> c.workflow().dependents(),
new Dependent[] {});
if (dependents.length == 0) {
return Collections.emptyList();
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java
index 13ddd995ad..d9bac430a7 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java
@@ -12,10 +12,7 @@
import io.javaoperatorsdk.operator.api.reconciler.MaxReconciliationInterval;
import io.javaoperatorsdk.operator.processing.event.rate.LinearRateLimiter;
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilters;
import io.javaoperatorsdk.operator.processing.retry.GenericRetry;
-import io.javaoperatorsdk.operator.processing.retry.GradualRetry;
import io.javaoperatorsdk.operator.processing.retry.Retry;
public interface ControllerConfiguration extends ResourceConfiguration
{
@@ -60,22 +57,7 @@ default boolean isGenerationAware() {
String getAssociatedReconcilerClassName();
default Retry getRetry() {
- final var configuration = getRetryConfiguration();
- return !RetryConfiguration.DEFAULT.equals(configuration)
- ? GenericRetry.fromConfiguration(configuration)
- : GenericRetry.DEFAULT; // NOSONAR
- }
-
- /**
- * Use {@link #getRetry()} instead.
- *
- * @return configuration for retry.
- * @deprecated provide your own {@link Retry} implementation or use the {@link GradualRetry}
- * annotation instead
- */
- @Deprecated(forRemoval = true)
- default RetryConfiguration getRetryConfiguration() {
- return RetryConfiguration.DEFAULT;
+ return GenericRetry.DEFAULT;
}
@SuppressWarnings("rawtypes")
@@ -83,25 +65,6 @@ default RateLimiter getRateLimiter() {
return DEFAULT_RATE_LIMITER;
}
- /**
- * Allow controllers to filter events before they are passed to the
- * {@link io.javaoperatorsdk.operator.processing.event.EventHandler}.
- *
- *
- * Resource event filters only applies on events of the main custom resource. Not on events from
- * other event sources nor the periodic events.
- *
- *
- * @return filter
- * @deprecated use {@link ResourceConfiguration#onAddFilter()},
- * {@link ResourceConfiguration#onUpdateFilter()} or
- * {@link ResourceConfiguration#genericFilter()} instead
- */
- @Deprecated(forRemoval = true)
- default ResourceEventFilter getEventFilter() {
- return ResourceEventFilters.passthrough();
- }
-
@SuppressWarnings("rawtypes")
default List getDependentResources() {
return Collections.emptyList();
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java
index 328d912109..ba270baadd 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java
@@ -11,11 +11,9 @@
import io.fabric8.kubernetes.client.informers.cache.ItemStore;
import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceSpec;
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter;
-import io.javaoperatorsdk.operator.processing.retry.GenericRetry;
import io.javaoperatorsdk.operator.processing.retry.Retry;
import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES_SET;
@@ -29,7 +27,6 @@ public class ControllerConfigurationOverrider {
private Set namespaces;
private Retry retry;
private String labelSelector;
- private ResourceEventFilter customResourcePredicate;
private final ControllerConfiguration original;
private Duration reconciliationMaxInterval;
private OnAddFilter super R> onAddFilter;
@@ -48,7 +45,6 @@ private ControllerConfigurationOverrider(ControllerConfiguration original) {
this.namespaces = new HashSet<>(original.getNamespaces());
this.retry = original.getRetry();
this.labelSelector = original.getLabelSelector();
- this.customResourcePredicate = original.getEventFilter();
this.reconciliationMaxInterval = original.maxReconciliationInterval().orElse(null);
this.onAddFilter = original.onAddFilter().orElse(null);
this.onUpdateFilter = original.onUpdateFilter().orElse(null);
@@ -110,17 +106,6 @@ public ControllerConfigurationOverrider watchingAllNamespaces() {
return this;
}
- /**
- * @param retry configuration
- * @return current instance of overrider
- * @deprecated Use {@link #withRetry(Retry)} instead
- */
- @Deprecated(forRemoval = true)
- public ControllerConfigurationOverrider withRetry(RetryConfiguration retry) {
- this.retry = GenericRetry.fromConfiguration(retry);
- return this;
- }
-
public ControllerConfigurationOverrider withRetry(Retry retry) {
this.retry = retry;
return this;
@@ -136,12 +121,6 @@ public ControllerConfigurationOverrider withLabelSelector(String labelSelecto
return this;
}
- public ControllerConfigurationOverrider withCustomResourcePredicate(
- ResourceEventFilter customResourcePredicate) {
- this.customResourcePredicate = customResourcePredicate;
- return this;
- }
-
public ControllerConfigurationOverrider withReconciliationMaxInterval(
Duration reconciliationMaxInterval) {
this.reconciliationMaxInterval = reconciliationMaxInterval;
@@ -210,15 +189,13 @@ public ControllerConfigurationOverrider replacingNamedDependentResourceConfig
}
public ControllerConfiguration build() {
- final var overridden = new ResolvedControllerConfiguration<>(original.getResourceClass(),
+ return new ResolvedControllerConfiguration<>(original.getResourceClass(),
name,
generationAware, original.getAssociatedReconcilerClassName(), retry, rateLimiter,
reconciliationMaxInterval, onAddFilter, onUpdateFilter, genericFilter,
original.getDependentResources(),
namespaces, finalizer, labelSelector, configurations, itemStore, fieldManager,
original.getConfigurationService(), informerListLimit);
- overridden.setEventFilter(customResourcePredicate);
- return overridden;
}
public static ControllerConfigurationOverrider override(
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultRetryConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultRetryConfiguration.java
deleted file mode 100644
index 40fbb38aa7..0000000000
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultRetryConfiguration.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package io.javaoperatorsdk.operator.api.config;
-
-public class DefaultRetryConfiguration implements RetryConfiguration {
-
-}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java
index 307e75080f..c36daa8f62 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java
@@ -10,7 +10,6 @@
import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceSpec;
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter;
@@ -34,7 +33,6 @@ public class ResolvedControllerConfiguration
private final ConfigurationService configurationService;
private final String fieldManager;
- private ResourceEventFilter
eventFilter;
private List dependentResources;
public ResolvedControllerConfiguration(Class resourceClass, ControllerConfiguration
other) {
@@ -166,21 +164,6 @@ public ConfigurationService getConfigurationService() {
return configurationService;
}
- @Override
- public ResourceEventFilter
getEventFilter() {
- return eventFilter;
- }
-
- /**
- * @deprecated Use {@link OnAddFilter}, {@link OnUpdateFilter} and {@link GenericFilter} instead
- *
- * @param eventFilter generic event filter
- */
- @Deprecated(forRemoval = true)
- protected void setEventFilter(ResourceEventFilter
eventFilter) {
- this.eventFilter = eventFilter;
- }
-
@Override
public Object getConfigurationFor(DependentResourceSpec spec) {
return configurations.get(spec);
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/RetryConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/RetryConfiguration.java
deleted file mode 100644
index b293c7e33f..0000000000
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/RetryConfiguration.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package io.javaoperatorsdk.operator.api.config;
-
-import io.javaoperatorsdk.operator.processing.retry.GradualRetry;
-
-/**
- * @deprecated specify your own {@link io.javaoperatorsdk.operator.processing.retry.Retry}
- * implementation or use {@link GradualRetry} annotation instead
- */
-@Deprecated(forRemoval = true)
-public interface RetryConfiguration {
-
- RetryConfiguration DEFAULT = new DefaultRetryConfiguration();
-
- int DEFAULT_MAX_ATTEMPTS = 5;
- long DEFAULT_INITIAL_INTERVAL = 2000L;
- double DEFAULT_MULTIPLIER = 1.5D;
-
- default int getMaxAttempts() {
- return DEFAULT_MAX_ATTEMPTS;
- }
-
- default long getInitialInterval() {
- return DEFAULT_INITIAL_INTERVAL;
- }
-
- default double getIntervalMultiplier() {
- return DEFAULT_MULTIPLIER;
- }
-
- default long getMaxInterval() {
- return (long) (DEFAULT_INITIAL_INTERVAL * Math.pow(DEFAULT_MULTIPLIER, DEFAULT_MAX_ATTEMPTS));
- }
-}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java
index c064e669e0..3500cc1c9e 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java
@@ -7,11 +7,10 @@
import java.lang.annotation.Target;
import io.fabric8.kubernetes.client.informers.cache.ItemStore;
-import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.event.rate.LinearRateLimiter;
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
import io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter;
@@ -64,19 +63,6 @@
*/
String labelSelector() default Constants.NO_VALUE_SET;
- /**
- * @deprecated Use onAddFilter, onUpdateFilter instead.
- *
- *
- * Resource event filters only applies on events of the main custom resource. Not on
- * events from other event sources nor the periodic events.
- *
- *
- * @return the list of event filters.
- */
- @Deprecated(forRemoval = true)
- Class extends ResourceEventFilter>[] eventFilters() default {};
-
/**
* Filter of onAdd events of resources.
*
@@ -108,13 +94,7 @@ MaxReconciliationInterval maxReconciliationInterval() default @MaxReconciliation
interval = MaxReconciliationInterval.DEFAULT_INTERVAL);
- /**
- * Optional list of {@link Dependent} configurations which associate a resource type to a
- * {@link io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource} implementation
- *
- * @return the array of {@link Dependent} configurations
- */
- Dependent[] dependents() default {};
+ Workflow workflow() default @Workflow(dependents = {});
/**
* Optional {@link Retry} implementation for the associated controller to use.
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedDependentResourceContext.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedDependentResourceContext.java
index 5b1a21e5dd..d6fa5c7b32 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedDependentResourceContext.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedDependentResourceContext.java
@@ -50,12 +50,12 @@ public DefaultManagedDependentResourceContext setWorkflowCleanupResult(
}
@Override
- public Optional getWorkflowReconcileResult() {
- return Optional.ofNullable(workflowReconcileResult);
+ public WorkflowReconcileResult getWorkflowReconcileResult() {
+ return workflowReconcileResult;
}
@Override
- public Optional getWorkflowCleanupResult() {
- return Optional.ofNullable(workflowCleanupResult);
+ public WorkflowCleanupResult getWorkflowCleanupResult() {
+ return workflowCleanupResult;
}
}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/ManagedDependentResourceContext.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/ManagedDependentResourceContext.java
index 9c5b3dddb1..47534cc30d 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/ManagedDependentResourceContext.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/ManagedDependentResourceContext.java
@@ -52,7 +52,7 @@ public interface ManagedDependentResourceContext {
@SuppressWarnings("unused")
T getMandatory(Object key, Class expectedType);
- Optional getWorkflowReconcileResult();
+ WorkflowReconcileResult getWorkflowReconcileResult();
- Optional getWorkflowCleanupResult();
+ WorkflowCleanupResult getWorkflowCleanupResult();
}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/workflow/Workflow.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/workflow/Workflow.java
new file mode 100644
index 0000000000..37487082d4
--- /dev/null
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/workflow/Workflow.java
@@ -0,0 +1,15 @@
+package io.javaoperatorsdk.operator.api.reconciler.workflow;
+
+import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+
+public @interface Workflow {
+
+ /**
+ * List of {@link Dependent} configurations which associate a resource type to a
+ * {@link io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource} implementation
+ *
+ * @return the array of {@link Dependent} configurations
+ */
+ Dependent[] dependents();
+
+}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceEventSource.java
index 5aa05f146c..198d9eb0c1 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceEventSource.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceEventSource.java
@@ -28,7 +28,6 @@ public class ControllerResourceEventSource
private static final Logger log = LoggerFactory.getLogger(ControllerResourceEventSource.class);
private final Controller controller;
- private final ResourceEventFilter legacyFilters;
@SuppressWarnings({"unchecked", "rawtypes"})
public ControllerResourceEventSource(Controller controller) {
@@ -42,8 +41,6 @@ public ControllerResourceEventSource(Controller controller) {
.or(onUpdateGenerationAware(config.isGenerationAware()))
.or(onUpdateMarkedForDeletion());
- legacyFilters = config.getEventFilter();
-
// by default the on add should be processed in all cases regarding internal filters
config.onAddFilter().ifPresent(this::setOnAddFilter);
config.onUpdateFilter()
@@ -69,9 +66,7 @@ public void eventReceived(ResourceAction action, T resource, T oldResource) {
log.debug("Event received for resource: {}", getName(resource));
MDCUtils.addResourceInfo(resource);
controller.getEventSourceManager().broadcastOnResourceEvent(action, resource, oldResource);
- if ((legacyFilters == null ||
- legacyFilters.acceptChange(controller, oldResource, resource))
- && isAcceptedByFilters(action, resource, oldResource)) {
+ if (isAcceptedByFilters(action, resource, oldResource)) {
getEventHandler().handleEvent(
new ResourceEvent(action, ResourceID.fromResource(resource), resource));
} else {
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilter.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilter.java
deleted file mode 100644
index 08a86c92ae..0000000000
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilter.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package io.javaoperatorsdk.operator.processing.event.source.controller;
-
-import io.fabric8.kubernetes.api.model.HasMetadata;
-import io.javaoperatorsdk.operator.processing.Controller;
-
-/**
- * A functional interface to determine whether resource events should be processed by the SDK. This
- * allows users to more finely tuned which events trigger a reconciliation than was previously
- * possible (where the logic was limited to generation-based checking).
- *
- * @param the type of custom resources handled by this filter
- */
-@Deprecated(forRemoval = true)
-@FunctionalInterface
-public interface ResourceEventFilter
{
-
- /**
- * Determines whether the change between the old version of the resource and the new one needs to
- * be propagated to the controller or not.
- *
- * @param controller the target controller
- * @param oldResource the old version of the resource, null if no old resource available
- * @param newResource the new version of the resource
- * @return {@code true} if the change needs to be propagated to the controller, {@code false}
- * otherwise
- */
- boolean acceptChange(Controller
controller, P oldResource, P newResource);
-
- /**
- * Combines this filter with the provided one with an AND logic, i.e. the resulting filter will
- * only accept the change if both this and the other filter accept it, reject it otherwise.
- *
- * @param other the possibly {@code null} other filter to combine this one with
- * @return a composite filter implementing the AND logic between this and the provided filter
- */
- default ResourceEventFilter
and(ResourceEventFilter
other) {
- return other == null ? this
- : (Controller
controller, P oldResource, P newResource) -> {
- boolean result = acceptChange(controller, oldResource, newResource);
- return result && other.acceptChange(controller, oldResource, newResource);
- };
- }
-
- /**
- * Combines this filter with the provided one with an OR logic, i.e. the resulting filter will
- * accept the change if any of this or the other filter accept it, rejecting it only if both
- * reject it.
- *
- * @param other the possibly {@code null} other filter to combine this one with
- * @return a composite filter implementing the OR logic between this and the provided filter
- */
- default ResourceEventFilter
or(ResourceEventFilter
other) {
- return other == null ? this
- : (Controller
controller, P oldResource, P newResource) -> {
- boolean result = acceptChange(controller, oldResource, newResource);
- return result || other.acceptChange(controller, oldResource, newResource);
- };
- }
-}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilters.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilters.java
deleted file mode 100644
index 7024388b8b..0000000000
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilters.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package io.javaoperatorsdk.operator.processing.event.source.controller;
-
-import io.fabric8.kubernetes.api.model.HasMetadata;
-
-/**
- * Convenience implementations of, and utility methods for, {@link ResourceEventFilter}.
- */
-@Deprecated
-public final class ResourceEventFilters {
-
- private static final ResourceEventFilter PASSTHROUGH =
- (configuration, oldResource, newResource) -> true;
-
- private ResourceEventFilters() {}
-
- /**
- * Retrieves a filter that accepts all events.
- *
- * @param the type of custom resource the filter should handle
- * @return a filter that accepts all events
- */
- @SuppressWarnings("unchecked")
- public static ResourceEventFilter passthrough() {
- return (ResourceEventFilter) PASSTHROUGH;
- }
-
-}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetry.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetry.java
index 9d5a83dc51..d1809de566 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetry.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetry.java
@@ -1,7 +1,6 @@
package io.javaoperatorsdk.operator.processing.retry;
import io.javaoperatorsdk.operator.api.config.AnnotationConfigurable;
-import io.javaoperatorsdk.operator.api.config.RetryConfiguration;
public class GenericRetry implements Retry, AnnotationConfigurable {
private int maxAttempts = GradualRetry.DEFAULT_MAX_ATTEMPTS;
@@ -19,23 +18,6 @@ public static GenericRetry noRetry() {
return new GenericRetry().setMaxAttempts(0);
}
- /**
- * @deprecated Use the {@link GradualRetry} annotation instead
- *
- * @param configuration retry config
- * @return Retry instance
- */
- @Deprecated(forRemoval = true)
- public static Retry fromConfiguration(RetryConfiguration configuration) {
- return configuration == null ? defaultLimitedExponentialRetry()
- : new GenericRetry()
- .setInitialInterval(configuration.getInitialInterval())
- .setMaxAttempts(configuration.getMaxAttempts())
- .setIntervalMultiplier(configuration.getIntervalMultiplier())
- .setMaxInterval(configuration.getMaxInterval());
- }
-
-
public static GenericRetry every10second10TimesRetry() {
return new GenericRetry().withLinearRetry().setMaxAttempts(10).setInitialInterval(10000);
}
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java
index 1c86886d89..f4280543d1 100644
--- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java
+++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java
@@ -20,6 +20,7 @@
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
import io.javaoperatorsdk.operator.api.reconciler.dependent.ReconcileResult;
import io.javaoperatorsdk.operator.api.reconciler.dependent.managed.DependentResourceConfigurator;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResourceConfig;
@@ -68,10 +69,10 @@ void overridingNSShouldPreserveUntouchedDependents() {
assertEquals(stringConfig, resourceConfig);
}
- @ControllerConfiguration(dependents = {
+ @ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(type = NamedDependentReconciler.NamedDependentResource.class),
@Dependent(type = NamedDependentReconciler.ExternalDependentResource.class)
- })
+ }))
private static class NamedDependentReconciler implements Reconciler {
@Override
@@ -366,7 +367,8 @@ void replaceNamedDependentResourceConfigShouldWork() {
assertTrue(dependentSpec.getReadyCondition() instanceof TestCondition);
}
- @ControllerConfiguration(dependents = @Dependent(type = ReadOnlyDependent.class))
+ @ControllerConfiguration(
+ workflow = @Workflow(dependents = @Dependent(type = ReadOnlyDependent.class)))
private static class WatchAllNamespacesReconciler implements Reconciler {
@Override
@@ -375,7 +377,8 @@ public UpdateControl reconcile(ConfigMap resource, Context
}
}
- @ControllerConfiguration(dependents = @Dependent(type = WatchAllNSDependent.class))
+ @ControllerConfiguration(
+ workflow = @Workflow(dependents = @Dependent(type = WatchAllNSDependent.class)))
private static class DependentWatchesAllNSReconciler implements Reconciler {
@Override
@@ -395,8 +398,8 @@ public boolean isMet(DependentResource dependentResource,
}
@ControllerConfiguration(namespaces = OneDepReconciler.CONFIGURED_NS,
- dependents = @Dependent(type = ReadOnlyDependent.class,
- readyPostcondition = TestCondition.class))
+ workflow = @Workflow(dependents = @Dependent(type = ReadOnlyDependent.class,
+ readyPostcondition = TestCondition.class)))
private static class OneDepReconciler implements Reconciler {
private static final String CONFIGURED_NS = "foo";
@@ -424,7 +427,7 @@ public WatchAllNSDependent() {
}
@ControllerConfiguration(namespaces = OverriddenNSOnDepReconciler.CONFIGURED_NS,
- dependents = @Dependent(type = OverriddenNSDependent.class))
+ workflow = @Workflow(dependents = @Dependent(type = OverriddenNSDependent.class)))
private static class OverriddenNSOnDepReconciler implements Reconciler {
private static final String CONFIGURED_NS = "parentNS";
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolverTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolverTest.java
index 3187b32645..a85269ed7a 100644
--- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolverTest.java
+++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolverTest.java
@@ -20,6 +20,7 @@
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
import io.javaoperatorsdk.operator.api.reconciler.dependent.ReconcileResult;
import io.javaoperatorsdk.operator.api.reconciler.dependent.managed.DependentResourceConfigurator;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentConverter;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource;
@@ -125,12 +126,12 @@ public Object configFrom(Annotation configAnnotation,
assertEquals(overriddenConverter, converter);
}
- @ControllerConfiguration(dependents = {
+ @ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(type = CustomAnnotatedDep.class, name = DR_NAME),
@Dependent(type = ChildCustomAnnotatedDep.class),
@Dependent(type = ConfigMapDep.class),
@Dependent(type = ServiceDep.class)
- })
+ }))
static class CustomAnnotationReconciler implements Reconciler {
public static final String DR_NAME = "first";
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventProcessorTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventProcessorTest.java
index 9d538713c1..c52a976b86 100644
--- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventProcessorTest.java
+++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventProcessorTest.java
@@ -18,7 +18,6 @@
import io.javaoperatorsdk.operator.api.config.BaseConfigurationService;
import io.javaoperatorsdk.operator.api.config.ConfigurationService;
import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
-import io.javaoperatorsdk.operator.api.config.RetryConfiguration;
import io.javaoperatorsdk.operator.api.monitoring.Metrics;
import io.javaoperatorsdk.operator.processing.event.rate.LinearRateLimiter;
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
@@ -28,6 +27,7 @@
import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEvent;
import io.javaoperatorsdk.operator.processing.event.source.timer.TimerEventSource;
import io.javaoperatorsdk.operator.processing.retry.GenericRetry;
+import io.javaoperatorsdk.operator.processing.retry.GradualRetry;
import io.javaoperatorsdk.operator.processing.retry.Retry;
import io.javaoperatorsdk.operator.processing.retry.RetryExecution;
import io.javaoperatorsdk.operator.sample.simple.TestCustomResource;
@@ -135,7 +135,7 @@ void schedulesAnEventRetryOnException() {
verify(retryTimerEventSourceMock, times(1))
.scheduleOnce(eq(ResourceID.fromResource(customResource)),
- eq(RetryConfiguration.DEFAULT_INITIAL_INTERVAL));
+ eq(GradualRetry.DEFAULT_INITIAL_INTERVAL));
}
@Test
@@ -167,7 +167,7 @@ void executesTheControllerInstantlyAfterErrorIfNewEventsReceived() {
assertThat(allValues).hasSize(2);
verify(retryTimerEventSourceMock, never())
.scheduleOnce(eq(ResourceID.fromResource(customResource)),
- eq(RetryConfiguration.DEFAULT_INITIAL_INTERVAL));
+ eq(GradualRetry.DEFAULT_INITIAL_INTERVAL));
}
@Test
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/ResourceEventFilterTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/ResourceEventFilterTest.java
deleted file mode 100644
index c8ec839b59..0000000000
--- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/ResourceEventFilterTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-package io.javaoperatorsdk.operator.processing.event.source;
-
-import java.util.List;
-import java.util.Objects;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import io.fabric8.kubernetes.api.model.HasMetadata;
-import io.javaoperatorsdk.operator.MockKubernetesClient;
-import io.javaoperatorsdk.operator.ReconcilerUtils;
-import io.javaoperatorsdk.operator.TestUtils;
-import io.javaoperatorsdk.operator.api.config.BaseConfigurationService;
-import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
-import io.javaoperatorsdk.operator.api.config.ResolvedControllerConfiguration;
-import io.javaoperatorsdk.operator.processing.Controller;
-import io.javaoperatorsdk.operator.processing.event.EventHandler;
-import io.javaoperatorsdk.operator.processing.event.EventSourceManager;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ControllerResourceEventSource;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceAction;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
-import io.javaoperatorsdk.operator.sample.simple.TestCustomResource;
-
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-class ResourceEventFilterTest {
- public static final String FINALIZER =
- ReconcilerUtils.getDefaultFinalizerName(TestCustomResource.class);
-
- private EventHandler eventHandler;
-
- @BeforeEach
- public void before() {
- this.eventHandler = mock(EventHandler.class);
- }
-
- private ControllerResourceEventSource init(Controller controller) {
- var eventSource = new ControllerResourceEventSource<>(controller);
- eventSource.setEventHandler(eventHandler);
- return eventSource;
- }
-
- @Test
- public void eventFilteredByCustomPredicate() {
- var config = new TestControllerConfig(
- FINALIZER,
- false,
- (configuration, oldResource, newResource) -> oldResource == null || !Objects.equals(
- oldResource.getStatus().getConfigMapStatus(),
- newResource.getStatus().getConfigMapStatus()));
-
- final var eventSource = init(new TestController(config));
-
- TestCustomResource cr = TestUtils.testCustomResource();
- cr.getMetadata().setFinalizers(List.of(FINALIZER));
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("1");
-
- TestCustomResource cr2 = TestUtils.testCustomResource();
- cr.getMetadata().setFinalizers(List.of(FINALIZER));
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("2");
-
- eventSource.eventReceived(ResourceAction.UPDATED, cr, cr2);
- verify(eventHandler, times(1)).handleEvent(any());
-
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("1");
-
- eventSource.eventReceived(ResourceAction.UPDATED, cr, cr);
- verify(eventHandler, times(1)).handleEvent(any());
- }
-
- @Test
- public void eventFilteredByCustomPredicateAndGenerationAware() {
- var config = new TestControllerConfig(
- FINALIZER,
- true,
- (configuration, oldResource, newResource) -> oldResource == null || !Objects.equals(
- oldResource.getStatus().getConfigMapStatus(),
- newResource.getStatus().getConfigMapStatus()));
-
- final var eventSource = init(new TestController(config));
-
- TestCustomResource cr = TestUtils.testCustomResource();
- cr.getMetadata().setFinalizers(List.of(FINALIZER));
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("1");
-
- TestCustomResource cr2 = TestUtils.testCustomResource();
- cr.getMetadata().setFinalizers(List.of(FINALIZER));
- cr.getMetadata().setGeneration(2L);
- cr.getStatus().setConfigMapStatus("1");
-
- eventSource.eventReceived(ResourceAction.UPDATED, cr, cr2);
- verify(eventHandler, times(1)).handleEvent(any());
-
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("2");
-
- eventSource.eventReceived(ResourceAction.UPDATED, cr, cr);
- verify(eventHandler, times(1)).handleEvent(any());
- }
-
- @Test
- public void eventAlwaysFilteredByCustomPredicate() {
- var config = new TestControllerConfig(
- FINALIZER,
- false,
- (configuration, oldResource, newResource) -> !Objects.equals(
- oldResource.getStatus().getConfigMapStatus(),
- newResource.getStatus().getConfigMapStatus()));
-
- final var eventSource = init(new TestController(config));
-
- TestCustomResource cr = TestUtils.testCustomResource();
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("1");
-
- eventSource.eventReceived(ResourceAction.UPDATED, cr, cr);
- verify(eventHandler, times(0)).handleEvent(any());
- }
-
- private static class TestControllerConfig extends ControllerConfig {
- public TestControllerConfig(String finalizer, boolean generationAware,
- ResourceEventFilter eventFilter) {
- super(finalizer, generationAware, eventFilter, TestCustomResource.class);
- }
- }
-
- private static class ControllerConfig extends
- ResolvedControllerConfiguration {
-
- public ControllerConfig(String finalizer, boolean generationAware,
- ResourceEventFilter eventFilter, Class customResourceClass) {
- super(customResourceClass,
- "test",
- generationAware,
- null,
- null,
- null,
- null,
- null,
- null,
- null, null, null, finalizer, null, null, null, new BaseConfigurationService(), null);
- setEventFilter(eventFilter);
- }
- }
-
- private static class TestController extends Controller {
-
- public TestController(ControllerConfiguration configuration) {
- super(null, configuration, MockKubernetesClient.client(TestCustomResource.class));
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public EventSourceManager getEventSourceManager() {
- return mock(EventSourceManager.class);
- }
- }
-
-}
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecutionTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecutionTest.java
index 1dcd9df464..1659995877 100644
--- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecutionTest.java
+++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecutionTest.java
@@ -4,38 +4,10 @@
import org.junit.jupiter.api.Test;
-import io.javaoperatorsdk.operator.api.config.RetryConfiguration;
-
import static org.assertj.core.api.Assertions.assertThat;
public class GenericRetryExecutionTest {
- @Test
- public void forFirstBackOffAlwaysReturnsInitialInterval() {
- assertThat(getDefaultRetryExecution().nextDelay().get())
- .isEqualTo(RetryConfiguration.DEFAULT_INITIAL_INTERVAL);
- }
-
- @Test
- public void delayIsMultipliedEveryNextDelayCall() {
- RetryExecution retryExecution = getDefaultRetryExecution();
-
- Optional res = callNextDelayNTimes(retryExecution, 1);
- assertThat(res.get()).isEqualTo(RetryConfiguration.DEFAULT_INITIAL_INTERVAL);
-
- res = retryExecution.nextDelay();
- assertThat(res.get())
- .isEqualTo((long) (RetryConfiguration.DEFAULT_INITIAL_INTERVAL
- * RetryConfiguration.DEFAULT_MULTIPLIER));
-
- res = retryExecution.nextDelay();
- assertThat(res.get())
- .isEqualTo(
- (long) (RetryConfiguration.DEFAULT_INITIAL_INTERVAL
- * RetryConfiguration.DEFAULT_MULTIPLIER
- * RetryConfiguration.DEFAULT_MULTIPLIER));
- }
-
@Test
public void noNextDelayIfMaxAttemptLimitReached() {
RetryExecution retryExecution =
diff --git a/operator-framework-junit5/pom.xml b/operator-framework-junit5/pom.xml
index 152cd353e6..39dd82ab1a 100644
--- a/operator-framework-junit5/pom.xml
+++ b/operator-framework-junit5/pom.xml
@@ -5,7 +5,7 @@
java-operator-sdk
io.javaoperatorsdk
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
4.0.0
diff --git a/operator-framework/pom.xml b/operator-framework/pom.xml
index 25cd05b4c5..c0cfc5e44d 100644
--- a/operator-framework/pom.xml
+++ b/operator-framework/pom.xml
@@ -5,7 +5,7 @@
java-operator-sdk
io.javaoperatorsdk
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
4.0.0
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CustomResourceFilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CustomResourceFilterIT.java
deleted file mode 100644
index 6733abaa47..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CustomResourceFilterIT.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package io.javaoperatorsdk.operator;
-
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.RegisterExtension;
-
-import io.fabric8.kubernetes.api.model.ObjectMeta;
-import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
-import io.javaoperatorsdk.operator.sample.customfilter.CustomFilteringTestReconciler;
-import io.javaoperatorsdk.operator.sample.customfilter.CustomFilteringTestResource;
-import io.javaoperatorsdk.operator.sample.customfilter.CustomFilteringTestResourceSpec;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-class CustomResourceFilterIT {
-
- @RegisterExtension
- LocallyRunOperatorExtension operator =
- LocallyRunOperatorExtension.builder().withReconciler(new CustomFilteringTestReconciler())
- .build();
-
- @Test
- void doesCustomFiltering() throws InterruptedException {
- var filtered1 = createTestResource("filtered1", true, false);
- var filtered2 = createTestResource("filtered2", false, true);
- var notFiltered = createTestResource("notfiltered", true, true);
- operator.create(filtered1);
- operator.create(filtered2);
- operator.create(notFiltered);
-
- Thread.sleep(300);
-
- assertThat(
- ((CustomFilteringTestReconciler) operator.getReconcilers().get(0)).getNumberOfExecutions())
- .isEqualTo(1);
- }
-
-
- CustomFilteringTestResource createTestResource(String name, boolean filter1, boolean filter2) {
- CustomFilteringTestResource resource = new CustomFilteringTestResource();
- resource.setMetadata(new ObjectMeta());
- resource.getMetadata().setName(name);
- resource.setSpec(new CustomFilteringTestResourceSpec());
- resource.getSpec().setFilter1(filter1);
- resource.getSpec().setFilter2(filter2);
- return resource;
- }
-
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java
index e107623347..9094b0c7c4 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java
@@ -31,6 +31,7 @@
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
import io.javaoperatorsdk.operator.api.reconciler.dependent.ReconcileResult;
import io.javaoperatorsdk.operator.api.reconciler.dependent.managed.DependentResourceConfigurator;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResourceConfig;
@@ -254,7 +255,7 @@ public UpdateControl reconcile(ConfigMap resource, Context
}
@ControllerConfiguration(namespaces = OneDepReconciler.CONFIGURED_NS,
- dependents = @Dependent(type = ReadOnlyDependent.class))
+ workflow = @Workflow(dependents = @Dependent(type = ReadOnlyDependent.class)))
private static class OneDepReconciler implements Reconciler {
private static final String CONFIGURED_NS = "foo";
@@ -266,7 +267,8 @@ public UpdateControl reconcile(ConfigMap resource, Context
}
@ControllerConfiguration(
- dependents = @Dependent(type = ReadOnlyDependent.class, name = NamedDepReconciler.NAME))
+ workflow = @Workflow(
+ dependents = @Dependent(type = ReadOnlyDependent.class, name = NamedDepReconciler.NAME)))
private static class NamedDepReconciler implements Reconciler {
private static final String NAME = "foo";
@@ -278,10 +280,10 @@ public UpdateControl reconcile(ConfigMap resource, Context
}
@ControllerConfiguration(
- dependents = {
+ workflow = @Workflow(dependents = {
@Dependent(type = ReadOnlyDependent.class),
@Dependent(type = ReadOnlyDependent.class)
- })
+ }))
private static class DuplicatedDepReconciler implements Reconciler {
@Override
@@ -291,10 +293,10 @@ public UpdateControl reconcile(ConfigMap resource, Context
}
@ControllerConfiguration(
- dependents = {
+ workflow = @Workflow(dependents = {
@Dependent(type = ReadOnlyDependent.class, name = NamedDuplicatedDepReconciler.NAME),
@Dependent(type = ReadOnlyDependent.class)
- })
+ }))
private static class NamedDuplicatedDepReconciler implements Reconciler {
private static final String NAME = "duplicated";
@@ -314,10 +316,10 @@ public UpdateControl reconcile(ConfigMap resource, Context
}
}
- @ControllerConfiguration(dependents = {
+ @ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(type = SelectorReconciler.WithAnnotation.class),
@Dependent(type = ReadOnlyDependent.class)
- })
+ }))
private static class SelectorReconciler implements Reconciler {
@Override
@@ -438,10 +440,10 @@ public UpdateControl reconcile(ConfigMap resource, Context
}
}
- @ControllerConfiguration(dependents = {
+ @ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(type = CustomAnnotatedDep.class),
@Dependent(type = ChildCustomAnnotatedDep.class)
- })
+ }))
private static class CustomAnnotationReconciler implements Reconciler {
@Override
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedBulkDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedBulkDependentReconciler.java
index 3b2acd942e..65808c855d 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedBulkDependentReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedBulkDependentReconciler.java
@@ -7,8 +7,10 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
-@ControllerConfiguration(dependents = @Dependent(type = CRUDConfigMapBulkDependentResource.class))
+@ControllerConfiguration(
+ workflow = @Workflow(dependents = @Dependent(type = CRUDConfigMapBulkDependentResource.class)))
public class ManagedBulkDependentReconciler
implements Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedBulkDependentWithReadyConditionReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedBulkDependentWithReadyConditionReconciler.java
index aca78d5d25..08dfa2c553 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedBulkDependentWithReadyConditionReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedBulkDependentWithReadyConditionReconciler.java
@@ -7,10 +7,11 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
-import io.javaoperatorsdk.operator.processing.dependent.workflow.WorkflowReconcileResult;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
-@ControllerConfiguration(dependents = @Dependent(readyPostcondition = SampleBulkCondition.class,
- type = CRUDConfigMapBulkDependentResource.class))
+@ControllerConfiguration(
+ workflow = @Workflow(dependents = @Dependent(readyPostcondition = SampleBulkCondition.class,
+ type = CRUDConfigMapBulkDependentResource.class)))
public class ManagedBulkDependentWithReadyConditionReconciler
implements Reconciler {
@@ -23,7 +24,8 @@ public UpdateControl reconcile(
numberOfExecutions.incrementAndGet();
var ready = context.managedDependentResourceContext().getWorkflowReconcileResult()
- .map(WorkflowReconcileResult::allDependentResourcesReady).orElseThrow();
+ .allDependentResourcesReady();
+
resource.setStatus(new BulkDependentTestStatus());
resource.getStatus().setReady(ready);
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedDeleterBulkReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedDeleterBulkReconciler.java
index e759bdd200..124f26f1f0 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedDeleterBulkReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedDeleterBulkReconciler.java
@@ -5,9 +5,11 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
@ControllerConfiguration(
- dependents = @Dependent(type = ConfigMapDeleterBulkDependentResource.class))
+ workflow = @Workflow(
+ dependents = @Dependent(type = ConfigMapDeleterBulkDependentResource.class)))
public class ManagedDeleterBulkReconciler implements Reconciler {
@Override
public UpdateControl reconcile(
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/external/ExternalBulkResourceReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/external/ExternalBulkResourceReconciler.java
index 2543422d74..e5ec914cab 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/external/ExternalBulkResourceReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/external/ExternalBulkResourceReconciler.java
@@ -5,9 +5,11 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.sample.bulkdependent.BulkDependentTestCustomResource;
-@ControllerConfiguration(dependents = @Dependent(type = ExternalBulkDependentResource.class))
+@ControllerConfiguration(
+ workflow = @Workflow(dependents = @Dependent(type = ExternalBulkDependentResource.class)))
public class ExternalBulkResourceReconciler implements Reconciler {
@Override
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/cleanermanageddependent/CleanerForManagedDependentTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/cleanermanageddependent/CleanerForManagedDependentTestReconciler.java
index 6be29c5092..3cfe3465c0 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/cleanermanageddependent/CleanerForManagedDependentTestReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/cleanermanageddependent/CleanerForManagedDependentTestReconciler.java
@@ -4,9 +4,11 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
-@ControllerConfiguration(dependents = {@Dependent(type = ConfigMapDependentResource.class)})
+@ControllerConfiguration(
+ workflow = @Workflow(dependents = {@Dependent(type = ConfigMapDependentResource.class)}))
public class CleanerForManagedDependentTestReconciler
implements Reconciler,
TestExecutionInfoProvider {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/ComplexDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/ComplexDependentReconciler.java
index da0aaf1060..6a81760b9c 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/ComplexDependentReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/ComplexDependentReconciler.java
@@ -8,6 +8,7 @@
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
import io.javaoperatorsdk.operator.sample.complexdependent.dependent.*;
@@ -17,7 +18,7 @@
@ControllerConfiguration(
name = "project-operator",
- dependents = {
+ workflow = @Workflow(dependents = {
@Dependent(name = "first-svc", type = FirstService.class,
useEventSourceWithName = SERVICE_EVENT_SOURCE_NAME),
@Dependent(name = "second-svc", type = SecondService.class,
@@ -31,7 +32,7 @@
useEventSourceWithName = STATEFUL_SET_EVENT_SOURCE_NAME,
dependsOn = {"second-svc", "first"},
readyPostcondition = StatefulSetReadyCondition.class),
- })
+ }))
public class ComplexDependentReconciler implements Reconciler,
EventSourceInitializer {
@@ -43,7 +44,7 @@ public UpdateControl reconcile(
ComplexDependentCustomResource resource,
Context context) throws Exception {
var ready = context.managedDependentResourceContext().getWorkflowReconcileResult()
- .orElseThrow().allDependentResourcesReady();
+ .allDependentResourcesReady();
var status = Objects.requireNonNullElseGet(resource.getStatus(), ComplexDependentStatus::new);
status.setStatus(ready ? RECONCILE_STATUS.READY : RECONCILE_STATUS.NOT_READY);
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAReconciler.java
index 884b5a859d..d322b7faac 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAReconciler.java
@@ -7,9 +7,10 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
-@ControllerConfiguration(dependents = {
- @Dependent(type = ConfigMapDependentResource.class)})
+@ControllerConfiguration(workflow = @Workflow(dependents = {
+ @Dependent(type = ConfigMapDependentResource.class)}))
public class CreateOnlyIfNotExistingDependentWithSSAReconciler
implements Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestReconciler.java
deleted file mode 100644
index 1e42e8e6e1..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestReconciler.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package io.javaoperatorsdk.operator.sample.customfilter;
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
-import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
-import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
-
-@ControllerConfiguration(eventFilters = {CustomFlagFilter.class, CustomFlagFilter2.class})
-public class CustomFilteringTestReconciler implements Reconciler {
-
- private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
-
- @Override
- public UpdateControl reconcile(CustomFilteringTestResource resource,
- Context context) {
- numberOfExecutions.incrementAndGet();
- return UpdateControl.noUpdate();
- }
-
- public int getNumberOfExecutions() {
- return numberOfExecutions.get();
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResource.java
deleted file mode 100644
index dec7b6c40a..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResource.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package io.javaoperatorsdk.operator.sample.customfilter;
-
-import io.fabric8.kubernetes.api.model.Namespaced;
-import io.fabric8.kubernetes.client.CustomResource;
-import io.fabric8.kubernetes.model.annotation.Group;
-import io.fabric8.kubernetes.model.annotation.ShortNames;
-import io.fabric8.kubernetes.model.annotation.Version;
-
-@Group("sample.javaoperatorsdk")
-@Version("v1")
-@ShortNames("cft")
-public class CustomFilteringTestResource
- extends CustomResource
- implements Namespaced {
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResourceSpec.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResourceSpec.java
deleted file mode 100644
index 8bb1f48054..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResourceSpec.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package io.javaoperatorsdk.operator.sample.customfilter;
-
-public class CustomFilteringTestResourceSpec {
-
- private boolean filter1;
-
- private boolean filter2;
-
- public boolean isFilter1() {
- return filter1;
- }
-
- public CustomFilteringTestResourceSpec setFilter1(boolean filter1) {
- this.filter1 = filter1;
- return this;
- }
-
- public boolean isFilter2() {
- return filter2;
- }
-
- public CustomFilteringTestResourceSpec setFilter2(boolean filter2) {
- this.filter2 = filter2;
- return this;
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter.java
deleted file mode 100644
index bba45a44ac..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package io.javaoperatorsdk.operator.sample.customfilter;
-
-import io.javaoperatorsdk.operator.processing.Controller;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
-
-public class CustomFlagFilter implements ResourceEventFilter {
-
- @Override
- public boolean acceptChange(Controller configuration,
- CustomFilteringTestResource oldResource, CustomFilteringTestResource newResource) {
- return newResource.getSpec().isFilter1();
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter2.java
deleted file mode 100644
index ae6b5d684f..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter2.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package io.javaoperatorsdk.operator.sample.customfilter;
-
-import io.javaoperatorsdk.operator.processing.Controller;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
-
-public class CustomFlagFilter2 implements ResourceEventFilter {
-
- @Override
- public boolean acceptChange(Controller configuration,
- CustomFilteringTestResource oldResource, CustomFilteringTestResource newResource) {
- return newResource.getSpec().isFilter2();
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperReconciler.java
index ec4a2c86b9..ae8317fc59 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperReconciler.java
@@ -8,13 +8,14 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Deleter;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.dependent.Creator;
import io.javaoperatorsdk.operator.processing.dependent.Updater;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
-@ControllerConfiguration(dependents = @Dependent(
- type = DependentAnnotationSecondaryMapperReconciler.ConfigMapDependentResource.class))
+@ControllerConfiguration(workflow = @Workflow(dependents = @Dependent(
+ type = DependentAnnotationSecondaryMapperReconciler.ConfigMapDependentResource.class)))
public class DependentAnnotationSecondaryMapperReconciler
implements Reconciler, TestExecutionInfoProvider {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentcustommappingannotation/DependentCustomMappingReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentcustommappingannotation/DependentCustomMappingReconciler.java
index 8c14f829ff..b75604c1eb 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentcustommappingannotation/DependentCustomMappingReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentcustommappingannotation/DependentCustomMappingReconciler.java
@@ -2,9 +2,11 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
@ControllerConfiguration(
- dependents = {@Dependent(type = CustomMappingConfigMapDependentResource.class)})
+ workflow = @Workflow(
+ dependents = {@Dependent(type = CustomMappingConfigMapDependentResource.class)}))
public class DependentCustomMappingReconciler
implements Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentdifferentnamespace/DependentDifferentNamespaceReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentdifferentnamespace/DependentDifferentNamespaceReconciler.java
index de9ea20f4a..47fffae973 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentdifferentnamespace/DependentDifferentNamespaceReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentdifferentnamespace/DependentDifferentNamespaceReconciler.java
@@ -4,12 +4,13 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
@ControllerConfiguration(
- dependents = {
+ workflow = @Workflow(dependents = {
@Dependent(type = ConfigMapDependentResource.class),
- })
+ }))
public class DependentDifferentNamespaceReconciler
implements Reconciler,
TestExecutionInfoProvider {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentfilter/DependentFilterTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentfilter/DependentFilterTestReconciler.java
index 114491d9b9..248018742b 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentfilter/DependentFilterTestReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentfilter/DependentFilterTestReconciler.java
@@ -4,9 +4,10 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
@ControllerConfiguration(onUpdateFilter = UpdateFilter.class,
- dependents = {@Dependent(type = FilteredDependentConfigMap.class)})
+ workflow = @Workflow(dependents = {@Dependent(type = FilteredDependentConfigMap.class)}))
public class DependentFilterTestReconciler
implements Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentoperationeventfiltering/DependentOperationEventFilterCustomResourceTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentoperationeventfiltering/DependentOperationEventFilterCustomResourceTestReconciler.java
index 4ce74c75eb..3196cb2428 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentoperationeventfiltering/DependentOperationEventFilterCustomResourceTestReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentoperationeventfiltering/DependentOperationEventFilterCustomResourceTestReconciler.java
@@ -4,13 +4,14 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
@ControllerConfiguration(
namespaces = Constants.WATCH_CURRENT_NAMESPACE,
- dependents = {
+ workflow = @Workflow(dependents = {
@Dependent(type = ConfigMapDependentResource.class),
- })
+ }))
public class DependentOperationEventFilterCustomResourceTestReconciler
implements Reconciler,
TestExecutionInfoProvider {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentresourcecrossref/DependentResourceCrossRefReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentresourcecrossref/DependentResourceCrossRefReconciler.java
index bb319741b3..9d16fdd0de 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentresourcecrossref/DependentResourceCrossRefReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/dependentresourcecrossref/DependentResourceCrossRefReconciler.java
@@ -10,15 +10,16 @@
import io.fabric8.kubernetes.api.model.Secret;
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
import static io.javaoperatorsdk.operator.sample.dependentresourcecrossref.DependentResourceCrossRefReconciler.SECRET_NAME;
-@ControllerConfiguration(dependents = {
+@ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(name = SECRET_NAME,
type = DependentResourceCrossRefReconciler.SecretDependentResource.class),
@Dependent(type = DependentResourceCrossRefReconciler.ConfigMapDependentResource.class,
- dependsOn = SECRET_NAME)})
+ dependsOn = SECRET_NAME)}))
public class DependentResourceCrossRefReconciler
implements Reconciler,
ErrorStatusHandler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/externalstate/ExternalStateDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/externalstate/ExternalStateDependentReconciler.java
index 8755e7099c..0f70ca21d8 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/externalstate/ExternalStateDependentReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/externalstate/ExternalStateDependentReconciler.java
@@ -7,12 +7,13 @@
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
-@ControllerConfiguration(
- dependents = @Dependent(type = ExternalWithStateDependentResource.class))
+@ControllerConfiguration(workflow = @Workflow(
+ dependents = @Dependent(type = ExternalWithStateDependentResource.class)))
public class ExternalStateDependentReconciler
implements Reconciler,
EventSourceInitializer,
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/externalstate/externalstatebulkdependent/ExternalStateBulkDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/externalstate/externalstatebulkdependent/ExternalStateBulkDependentReconciler.java
index ebc1655c38..27a41bc5dc 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/externalstate/externalstatebulkdependent/ExternalStateBulkDependentReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/externalstate/externalstatebulkdependent/ExternalStateBulkDependentReconciler.java
@@ -12,12 +12,14 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
@ControllerConfiguration(
- dependents = @Dependent(type = BulkDependentResourceExternalWithState.class))
+ workflow = @Workflow(
+ dependents = @Dependent(type = BulkDependentResourceExternalWithState.class)))
public class ExternalStateBulkDependentReconciler
implements Reconciler,
EventSourceInitializer,
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedReconciler.java
index 64651ec23e..663fb0fb40 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedReconciler.java
@@ -2,9 +2,11 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
@ControllerConfiguration(
- dependents = {@Dependent(type = ConfigMapGenericKubernetesDependent.class)})
+ workflow = @Workflow(
+ dependents = {@Dependent(type = ConfigMapGenericKubernetesDependent.class)}))
public class GenericKubernetesDependentManagedReconciler
implements Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/informerrelatedbehavior/InformerRelatedBehaviorTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/informerrelatedbehavior/InformerRelatedBehaviorTestReconciler.java
index f71f243c79..589024513b 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/informerrelatedbehavior/InformerRelatedBehaviorTestReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/informerrelatedbehavior/InformerRelatedBehaviorTestReconciler.java
@@ -11,14 +11,15 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.event.ResourceID;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
@ControllerConfiguration(
name = InformerRelatedBehaviorTestReconciler.INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER,
- dependents = @Dependent(
+ workflow = @Workflow(dependents = @Dependent(
name = InformerRelatedBehaviorTestReconciler.CONFIG_MAP_DEPENDENT_RESOURCE,
- type = ConfigMapDependentResource.class))
+ type = ConfigMapDependentResource.class)))
public class InformerRelatedBehaviorTestReconciler
implements Reconciler, TestExecutionInfoProvider {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionReconciler.java
index 8ef1035e9b..95675a8e56 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionReconciler.java
@@ -5,13 +5,14 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.dependent.workflow.KubernetesResourceDeletedCondition;
-@ControllerConfiguration(dependents = {
+@ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(name = "ConfigMap", type = ConfigMapDependent.class),
@Dependent(type = SecretDependent.class, dependsOn = "ConfigMap",
deletePostcondition = KubernetesResourceDeletedCondition.class)
-})
+}))
public class ManagedDependentDefaultDeleteConditionReconciler
implements Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerReconciler.java
index 81c2308eb5..b9688bc0df 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerReconciler.java
@@ -4,19 +4,19 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
-@ControllerConfiguration(dependents = {
+@ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(name = MultipleManagedDependentResourceMultiInformerReconciler.CONFIG_MAP_1_DR,
type = MultipleManagedDependentResourceMultiInformerConfigMap1.class),
@Dependent(name = MultipleManagedDependentResourceMultiInformerReconciler.CONFIG_MAP_2_DR,
type = MultipleManagedDependentResourceMultiInformerConfigMap2.class)
-})
+}))
public class MultipleManagedDependentResourceMultiInformerReconciler
implements Reconciler,
TestExecutionInfoProvider {
- public static final String CONFIG_MAP_EVENT_SOURCE = "ConfigMapEventSource";
public static final String DATA_KEY = "key";
public static final String CONFIG_MAP_1_DR = "ConfigMap1";
public static final String CONFIG_MAP_2_DR = "ConfigMap2";
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceReconciler.java
index 2d9b4f3ee9..2b091bbba2 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceReconciler.java
@@ -7,18 +7,19 @@
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
import static io.javaoperatorsdk.operator.sample.multiplemanageddependentsametype.MultipleManagedDependentResourceReconciler.CONFIG_MAP_EVENT_SOURCE;
-@ControllerConfiguration(dependents = {
+@ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(type = MultipleManagedDependentResourceConfigMap1.class,
useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE),
@Dependent(type = MultipleManagedDependentResourceConfigMap2.class,
useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE)
-})
+}))
public class MultipleManagedDependentResourceReconciler
implements Reconciler,
TestExecutionInfoProvider,
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceReconciler.java
index 349409ec73..d4b397f093 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceReconciler.java
@@ -8,6 +8,7 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.event.ResourceID;
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
import io.javaoperatorsdk.operator.processing.event.source.polling.PollingEventSource;
@@ -17,12 +18,12 @@
import static io.javaoperatorsdk.operator.sample.multiplemanagedexternaldependenttype.MultipleManagedExternalDependentResourceReconciler.CONFIG_MAP_EVENT_SOURCE;
-@ControllerConfiguration(dependents = {
+@ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(type = ExternalDependentResource1.class,
useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE),
@Dependent(type = ExternalDependentResource2.class,
useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE)
-})
+}))
public class MultipleManagedExternalDependentResourceReconciler
implements Reconciler,
TestExecutionInfoProvider,
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipleupdateondependent/MultipleOwnerDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipleupdateondependent/MultipleOwnerDependentReconciler.java
index c1f1262414..9a523346f2 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipleupdateondependent/MultipleOwnerDependentReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipleupdateondependent/MultipleOwnerDependentReconciler.java
@@ -7,11 +7,12 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
-@ControllerConfiguration(dependents = {
+@ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(type = MultipleOwnerDependentConfigMap.class)
-})
+}))
public class MultipleOwnerDependentReconciler
implements Reconciler,
TestExecutionInfoProvider {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/OrderedManagedDependentTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/OrderedManagedDependentTestReconciler.java
index f7172ca44d..cdec899569 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/OrderedManagedDependentTestReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/OrderedManagedDependentTestReconciler.java
@@ -11,14 +11,15 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
@ControllerConfiguration(
namespaces = Constants.WATCH_CURRENT_NAMESPACE,
- dependents = {
+ workflow = @Workflow(dependents = {
@Dependent(type = ConfigMapDependentResource1.class, name = "cm1"),
@Dependent(type = ConfigMapDependentResource2.class, dependsOn = "cm1")
- })
+ }))
public class OrderedManagedDependentTestReconciler
implements Reconciler,
TestExecutionInfoProvider {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/primaryindexer/DependentPrimaryIndexerTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/primaryindexer/DependentPrimaryIndexerTestReconciler.java
index 89b2a43700..263b993d3f 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/primaryindexer/DependentPrimaryIndexerTestReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/primaryindexer/DependentPrimaryIndexerTestReconciler.java
@@ -9,14 +9,15 @@
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource;
import io.javaoperatorsdk.operator.processing.event.ResourceID;
import io.javaoperatorsdk.operator.processing.event.source.IndexerResourceCache;
import io.javaoperatorsdk.operator.processing.event.source.SecondaryToPrimaryMapper;
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
-@ControllerConfiguration(dependents = @Dependent(
- type = DependentPrimaryIndexerTestReconciler.ReadOnlyConfigMapDependent.class))
+@ControllerConfiguration(workflow = @Workflow(dependents = @Dependent(
+ type = DependentPrimaryIndexerTestReconciler.ReadOnlyConfigMapDependent.class)))
public class DependentPrimaryIndexerTestReconciler extends AbstractPrimaryIndexerTestReconciler
implements
Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/primarytosecondaydependent/PrimaryToSecondaryDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/primarytosecondaydependent/PrimaryToSecondaryDependentReconciler.java
index c51111b206..30e69bbb1d 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/primarytosecondaydependent/PrimaryToSecondaryDependentReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/primarytosecondaydependent/PrimaryToSecondaryDependentReconciler.java
@@ -10,6 +10,7 @@
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.processing.event.ResourceID;
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
import io.javaoperatorsdk.operator.processing.event.source.PrimaryToSecondaryMapper;
@@ -24,11 +25,12 @@
* Note that this is usually just used with read only resources. So it has limited usage, one reason
* to use it is to have nice condition on that resource within a workflow.
*/
-@ControllerConfiguration(dependents = {@Dependent(type = ConfigMapDependent.class,
- name = CONFIG_MAP,
- reconcilePrecondition = ConfigMapReconcilePrecondition.class,
- useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE),
- @Dependent(type = SecretDependent.class, dependsOn = CONFIG_MAP)})
+@ControllerConfiguration(workflow = @Workflow(dependents = {
+ @Dependent(type = ConfigMapDependent.class,
+ name = CONFIG_MAP,
+ reconcilePrecondition = ConfigMapReconcilePrecondition.class,
+ useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE),
+ @Dependent(type = SecretDependent.class, dependsOn = CONFIG_MAP)}))
public class PrimaryToSecondaryDependentReconciler
implements Reconciler, TestExecutionInfoProvider,
EventSourceInitializer {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/restart/RestartTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/restart/RestartTestReconciler.java
index decd9b597b..57216d28ca 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/restart/RestartTestReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/restart/RestartTestReconciler.java
@@ -7,10 +7,11 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
@ControllerConfiguration(
- dependents = @Dependent(type = ConfigMapDependentResource.class))
+ workflow = @Workflow(dependents = @Dependent(type = ConfigMapDependentResource.class)))
public class RestartTestReconciler
implements Reconciler, TestExecutionInfoProvider {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/servicestrictmatcher/ServiceStrictMatcherTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/servicestrictmatcher/ServiceStrictMatcherTestReconciler.java
index 64e81e7c31..001b08a3df 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/servicestrictmatcher/ServiceStrictMatcherTestReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/servicestrictmatcher/ServiceStrictMatcherTestReconciler.java
@@ -7,8 +7,10 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
-@ControllerConfiguration(dependents = {@Dependent(type = ServiceDependentResource.class)})
+@ControllerConfiguration(
+ workflow = @Workflow(dependents = {@Dependent(type = ServiceDependentResource.class)}))
public class ServiceStrictMatcherTestReconciler
implements Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/specialresourcesdependent/SpecialResourceTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/specialresourcesdependent/SpecialResourceTestReconciler.java
index 5fa7d778b3..a0737b7f0b 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/specialresourcesdependent/SpecialResourceTestReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/specialresourcesdependent/SpecialResourceTestReconciler.java
@@ -4,13 +4,14 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
@ControllerConfiguration(
namespaces = Constants.WATCH_CURRENT_NAMESPACE,
- dependents = {
+ workflow = @Workflow(dependents = {
@Dependent(type = ServiceAccountDependentResource.class),
- })
+ }))
public class SpecialResourceTestReconciler
implements Reconciler,
TestExecutionInfoProvider {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/ssalegacymatcher/SSALegacyMatcherReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/ssalegacymatcher/SSALegacyMatcherReconciler.java
index a513133670..782d2ca72f 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/ssalegacymatcher/SSALegacyMatcherReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/ssalegacymatcher/SSALegacyMatcherReconciler.java
@@ -7,8 +7,10 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
-@ControllerConfiguration(dependents = {@Dependent(type = ServiceDependentResource.class)})
+@ControllerConfiguration(
+ workflow = @Workflow(dependents = {@Dependent(type = ServiceDependentResource.class)}))
public class SSALegacyMatcherReconciler
implements Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerReconciler.java
index c884619227..9e695fcb9f 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerReconciler.java
@@ -5,9 +5,11 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
@ControllerConfiguration(
- dependents = {@Dependent(type = StatefulSetDesiredSanitizerDependentResource.class)})
+ workflow = @Workflow(
+ dependents = {@Dependent(type = StatefulSetDesiredSanitizerDependentResource.class)}))
public class StatefulSetDesiredSanitizerReconciler
implements Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/unmodifiabledependentpart/UnmodifiableDependentPartReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/unmodifiabledependentpart/UnmodifiableDependentPartReconciler.java
index fd63a2cb12..e8b4d5c50e 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/unmodifiabledependentpart/UnmodifiableDependentPartReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/unmodifiabledependentpart/UnmodifiableDependentPartReconciler.java
@@ -7,8 +7,10 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
-@ControllerConfiguration(dependents = {@Dependent(type = UnmodifiablePartConfigMapDependent.class)})
+@ControllerConfiguration(workflow = @Workflow(
+ dependents = {@Dependent(type = UnmodifiablePartConfigMapDependent.class)}))
public class UnmodifiableDependentPartReconciler
implements Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowactivationcleanup/WorkflowActivationCleanupReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowactivationcleanup/WorkflowActivationCleanupReconciler.java
index 3f2fba15c5..f8579f336b 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowactivationcleanup/WorkflowActivationCleanupReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowactivationcleanup/WorkflowActivationCleanupReconciler.java
@@ -2,11 +2,11 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
-@ControllerConfiguration(dependents = {
- @Dependent(type = ConfigMapDependentResource.class,
- activationCondition = TestActivcationCondition.class),
-})
+@ControllerConfiguration(
+ workflow = @Workflow(dependents = @Dependent(type = ConfigMapDependentResource.class,
+ activationCondition = TestActivcationCondition.class)))
public class WorkflowActivationCleanupReconciler
implements Reconciler,
Cleaner {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowactivationcondition/WorkflowActivationConditionReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowactivationcondition/WorkflowActivationConditionReconciler.java
index 33db3043ba..fc47f5a128 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowactivationcondition/WorkflowActivationConditionReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowactivationcondition/WorkflowActivationConditionReconciler.java
@@ -2,12 +2,13 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
-@ControllerConfiguration(dependents = {
+@ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(type = ConfigMapDependentResource.class),
@Dependent(type = RouteDependentResource.class,
activationCondition = IsOpenShiftCondition.class)
-})
+}))
public class WorkflowActivationConditionReconciler
implements Reconciler {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowallfeature/WorkflowAllFeatureReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowallfeature/WorkflowAllFeatureReconciler.java
index 2c25d13924..972158a5d1 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowallfeature/WorkflowAllFeatureReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowallfeature/WorkflowAllFeatureReconciler.java
@@ -4,17 +4,18 @@
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import static io.javaoperatorsdk.operator.sample.workflowallfeature.WorkflowAllFeatureReconciler.DEPLOYMENT_NAME;
-@ControllerConfiguration(dependents = {
+@ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(name = DEPLOYMENT_NAME, type = DeploymentDependentResource.class,
readyPostcondition = DeploymentReadyCondition.class),
@Dependent(type = ConfigMapDependentResource.class,
reconcilePrecondition = ConfigMapReconcileCondition.class,
deletePostcondition = ConfigMapDeletePostCondition.class,
dependsOn = DEPLOYMENT_NAME)
-})
+}))
public class WorkflowAllFeatureReconciler
implements Reconciler,
Cleaner {
@@ -35,7 +36,7 @@ public UpdateControl reconcile(
resource.getStatus()
.setReady(
context.managedDependentResourceContext()
- .getWorkflowReconcileResult().orElseThrow()
+ .getWorkflowReconcileResult()
.allDependentResourcesReady());
return UpdateControl.patchStatus(resource);
}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowmultipleactivation/WorkflowMultipleActivationReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowmultipleactivation/WorkflowMultipleActivationReconciler.java
index 8277e7f8e7..070b502eb1 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowmultipleactivation/WorkflowMultipleActivationReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/workflowmultipleactivation/WorkflowMultipleActivationReconciler.java
@@ -7,12 +7,13 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
-@ControllerConfiguration(dependents = {
+@ControllerConfiguration(workflow = @Workflow(dependents = {
@Dependent(type = ConfigMapDependentResource.class,
activationCondition = ActivationCondition.class),
@Dependent(type = SecretDependentResource.class)
-})
+}))
public class WorkflowMultipleActivationReconciler
implements Reconciler {
diff --git a/pom.xml b/pom.xml
index 7910b43abe..3925d68aa1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
io.javaoperatorsdk
java-operator-sdk
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
Operator SDK for Java
Java SDK for implementing Kubernetes operators
pom
@@ -29,8 +29,8 @@
- scm:git:git://github.com/java-operator-sdk/java-operator-sdk.git
- scm:git:git@github.com/java-operator-sdk/java-operator-sdk.git
+ scm:git:git://github.com/operator-framework/java-operator-sdk.git
+ scm:git:git@github.com/operator-framework/java-operator-sdk.git
https://github.com/operator-framework/java-operator-sdk/tree/main
@@ -41,7 +41,7 @@
${java.version}
java-operator-sdk
https://sonarcloud.io
- okhttp
+ jdk
5.10.1
6.10.0
diff --git a/sample-operators/leader-election/pom.xml b/sample-operators/leader-election/pom.xml
index e6d6893ab0..ed975e0472 100644
--- a/sample-operators/leader-election/pom.xml
+++ b/sample-operators/leader-election/pom.xml
@@ -7,7 +7,7 @@
io.javaoperatorsdk
sample-operators
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
sample-leader-election
diff --git a/sample-operators/mysql-schema/pom.xml b/sample-operators/mysql-schema/pom.xml
index f4d65ccf01..82131b7c42 100644
--- a/sample-operators/mysql-schema/pom.xml
+++ b/sample-operators/mysql-schema/pom.xml
@@ -7,7 +7,7 @@
io.javaoperatorsdk
sample-operators
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
sample-mysql-schema-operator
diff --git a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaReconciler.java b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaReconciler.java
index 95db43b228..8391cab0b4 100644
--- a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaReconciler.java
+++ b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaReconciler.java
@@ -11,6 +11,7 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.sample.dependent.SchemaDependentResource;
import io.javaoperatorsdk.operator.sample.dependent.SecretDependentResource;
import io.javaoperatorsdk.operator.sample.schema.Schema;
@@ -20,11 +21,11 @@
import static java.lang.String.format;
@ControllerConfiguration(
- dependents = {
+ workflow = @Workflow(dependents = {
@Dependent(type = SecretDependentResource.class, name = SecretDependentResource.NAME),
@Dependent(type = SchemaDependentResource.class, name = SchemaDependentResource.NAME,
dependsOn = SecretDependentResource.NAME)
- })
+ }))
public class MySQLSchemaReconciler
implements Reconciler, ErrorStatusHandler {
diff --git a/sample-operators/pom.xml b/sample-operators/pom.xml
index a0553af8b4..c485af3052 100644
--- a/sample-operators/pom.xml
+++ b/sample-operators/pom.xml
@@ -7,7 +7,7 @@
io.javaoperatorsdk
java-operator-sdk
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
sample-operators
diff --git a/sample-operators/tomcat-operator/pom.xml b/sample-operators/tomcat-operator/pom.xml
index 6fb7bae9e1..8271168985 100644
--- a/sample-operators/tomcat-operator/pom.xml
+++ b/sample-operators/tomcat-operator/pom.xml
@@ -7,7 +7,7 @@
io.javaoperatorsdk
sample-operators
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
sample-tomcat-operator
diff --git a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java
index de4a63431b..25bde5f6e2 100644
--- a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java
+++ b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java
@@ -12,16 +12,17 @@
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
/**
* Runs a specified number of Tomcat app server Pods. It uses a Deployment to create the Pods. Also
* creates a Service over which the Pods can be accessed.
*/
@ControllerConfiguration(
- dependents = {
+ workflow = @Workflow(dependents = {
@Dependent(type = DeploymentDependentResource.class),
@Dependent(type = ServiceDependentResource.class)
- })
+ }))
public class TomcatReconciler implements Reconciler {
private final Logger log = LoggerFactory.getLogger(getClass());
diff --git a/sample-operators/webpage/pom.xml b/sample-operators/webpage/pom.xml
index 2fba19290a..fc567edb27 100644
--- a/sample-operators/webpage/pom.xml
+++ b/sample-operators/webpage/pom.xml
@@ -7,7 +7,7 @@
io.javaoperatorsdk
sample-operators
- 4.7.2-SNAPSHOT
+ 5.0.0-SNAPSHOT
sample-webpage-operator
diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageManagedDependentsReconciler.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageManagedDependentsReconciler.java
index d370cd3315..d0b1290319 100644
--- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageManagedDependentsReconciler.java
+++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageManagedDependentsReconciler.java
@@ -3,6 +3,7 @@
import io.fabric8.kubernetes.api.model.ConfigMap;
import io.javaoperatorsdk.operator.api.reconciler.*;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
+import io.javaoperatorsdk.operator.api.reconciler.workflow.Workflow;
import io.javaoperatorsdk.operator.sample.customresource.WebPage;
import io.javaoperatorsdk.operator.sample.dependentresource.*;
@@ -14,13 +15,13 @@
* Shows how to implement a reconciler with managed dependent resources.
*/
@ControllerConfiguration(
- dependents = {
+ workflow = @Workflow(dependents = {
@Dependent(type = ConfigMapDependentResource.class),
@Dependent(type = DeploymentDependentResource.class),
@Dependent(type = ServiceDependentResource.class),
@Dependent(type = IngressDependentResource.class,
reconcilePrecondition = ExposedIngressCondition.class)
- })
+ }))
public class WebPageManagedDependentsReconciler
implements Reconciler, ErrorStatusHandler, Cleaner {