Skip to content

Commit c9246c8

Browse files
csvirimetacosm
andauthored
docs: 3.1 migration docs (#1344)
Co-authored-by: Chris Laprun <[email protected]>
1 parent 3836ab0 commit c9246c8

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

docs/_data/sidebar.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,5 @@
2525
url: /docs/v2-migration
2626
- title: Migrating from v2 to v3
2727
url: /docs/v3-migration
28+
- title: Migrating from v3 to v3.1
29+
url: /docs/v3-1-migration

docs/documentation/v3-1-migration.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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

Comments
 (0)