|
| 1 | +--- |
| 2 | +title: Migrating from v3 to v3.1 |
| 3 | +description: Migrating from v3 to v3.1 |
| 4 | +layout: docs |
| 5 | +permalink: /docs/v3-1-migration |
| 6 | +--- |
| 7 | + |
| 8 | +# Migrating from v3 to v3.1 |
| 9 | + |
| 10 | +## Workflows Impact on Managed Dependent Resources Behavior |
| 11 | + |
| 12 | +Version 3.1 comes with a workflow engine that replaces the previous behavior of managed dependent |
| 13 | +resources. |
| 14 | +See [Workflows documentation](https://javaoperatorsdk.io/docs/workflows) for further details. |
| 15 | +The primary impact after upgrade is a change of the order in which managed dependent resources |
| 16 | +are reconciled. They are now reconciled in parallel with optional ordering defined using the |
| 17 | +['depends_on'](https://github.com/java-operator-sdk/java-operator-sdk/blob/df44917ef81725c10bbcb772ab7b434d511b13b9/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/Dependent.java#L23-L23) |
| 18 | +relation to define order between resources if needed. In v3, managed dependent resources were |
| 19 | +implicitly reconciled in the order they were defined in. |
| 20 | + |
| 21 | +## Garbage Collected Kubernetes Dependent Resources |
| 22 | + |
| 23 | +In version 3 all Kubernetes Dependent Resource |
| 24 | +implementing [`Deleter`](https://github.com/java-operator-sdk/java-operator-sdk/blob/bd063ccb7d55c110e96f24d2a10860d10aedfdb6/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/Deleter.java#L13-L13) |
| 25 | +interface were meant to be also using owner references (thus garbage collected by Kubernetes). |
| 26 | +In 3.1 there is a |
| 27 | +dedicated [`GarbageCollected`](https://github.com/java-operator-sdk/java-operator-sdk/blob/bd063ccb7d55c110e96f24d2a10860d10aedfdb6/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/GarbageCollected.java#L28-L28) |
| 28 | +interface to distinguish between Kubernetes resources meant to be garbage collected or explicitly |
| 29 | +deleted. Please refer also to the `GarbageCollected` javadoc for more details on how this |
| 30 | +impacts how owner references are managed. |
| 31 | + |
| 32 | +The supporting classes were also updated. Instead |
| 33 | +of [`CRUKubernetesDependentResource`](https://github.com/java-operator-sdk/java-operator-sdk/blob/d99f65a736e9180e3f6de9a4239f80e47fc653fc/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUKubernetesDependentResource.java) |
| 34 | +there are two: |
| 35 | + |
| 36 | +- [`CRUDKubernetesDependentResource`](https://github.com/java-operator-sdk/java-operator-sdk/blob/bd063ccb7d55c110e96f24d2a10860d10aedfdb6/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDKubernetesDependentResource.java) |
| 37 | + that is `GarbageCollected` |
| 38 | +- [`CRUDNoGCKubernetesDependentResource`](https://github.com/java-operator-sdk/java-operator-sdk/blob/bd063ccb7d55c110e96f24d2a10860d10aedfdb6/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDNoGCKubernetesDependentResource.java) |
| 39 | + what is `Deleter` but not `GarbageCollected` |
| 40 | + |
| 41 | +Use the one according to your use case. We anticipate that most people would want to use |
| 42 | +`CRUDKubernetesDependentResource` whenever they have to work with Kubernetes dependent resources. |
0 commit comments