Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: operator-framework/java-operator-sdk
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v5.0.4
Choose a base ref
...
head repository: operator-framework/java-operator-sdk
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Showing with 3,067 additions and 1,939 deletions.
  1. +4 −4 .github/workflows/build.yml
  2. +2 −2 .github/workflows/e2e-test.yml
  3. +0 −30 .github/workflows/fabric8-next-version-schedule.yml
  4. +1 −1 .github/workflows/integration-tests.yml
  5. +1 −1 .github/workflows/pr.yml
  6. +2 −2 bootstrapper-maven-plugin/pom.xml
  7. +0 −4 bootstrapper-maven-plugin/src/main/resources/templates/ConfigMapDependentResource.java
  8. +1 −1 caffeine-bounded-cache-support/pom.xml
  9. +1 −1 ...src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/BoundedCacheTestBase.java
  10. +1 −1 docs/content/en/_index.md
  11. +1 −1 docs/content/en/blog/_index.md
  12. +1 −1 docs/content/en/blog/news/_index.md
  13. +1 −1 docs/content/en/blog/releases/_index.md
  14. +1 −1 docs/content/en/community/_index.md
  15. +2 −2 docs/content/en/docs/_index.md
  16. +1 −1 docs/content/en/docs/contributing/_index.md
  17. +4 −0 docs/content/en/docs/documentation/_index.md
  18. +1 −2 docs/content/en/docs/{architecture/_index.md → documentation/architecture.md}
  19. +65 −6 docs/content/en/docs/{configuration/_index.md → documentation/configuration.md}
  20. +9 −0 docs/content/en/docs/documentation/dependent-resource-and-workflows/_index.md
  21. +2 −6 ...dent-resources/_index.md → documentation/dependent-resource-and-workflows/dependent-resources.md}
  22. +1 −1 ...ntent/en/docs/{workflows/_index.md → documentation/dependent-resource-and-workflows/workflows.md}
  23. +115 −0 docs/content/en/docs/documentation/error-handling-retries.md
  24. +327 −0 docs/content/en/docs/documentation/eventing.md
  25. +73 −0 docs/content/en/docs/documentation/features.md
  26. +112 −0 docs/content/en/docs/documentation/observability.md
  27. +217 −0 docs/content/en/docs/documentation/reconciler.md
  28. +38 −7 docs/content/en/docs/faq/_index.md
  29. +0 −853 docs/content/en/docs/features/_index.md
  30. +3 −57 docs/content/en/docs/getting-started/_index.md
  31. +38 −0 docs/content/en/docs/getting-started/bootstrap-and-samples.md
  32. +32 −0 docs/content/en/docs/getting-started/intro-to-operators.md
  33. +1 −2 ...tent/en/docs/{patterns-and-best-practices/_index.md → getting-started/patterns-best-practices.md}
  34. +1 −1 docs/content/en/docs/glossary/_index.md
  35. +0 −16 docs/content/en/docs/intro-to-operators/_index.md
  36. +1 −0 docs/content/en/docs/migration/_index.md
  37. +0 −255 docs/content/en/docs/using-samples/_index.md
  38. +6 −6 docs/hugo.toml
  39. BIN docs/static/images/event-sources.png
  40. +1 −1 micrometer-support/pom.xml
  41. +1 −1 operator-framework-bom/pom.xml
  42. +1 −1 operator-framework-core/pom.xml
  43. +31 −1 ...tor-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java
  44. +15 −0 ...work-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java
  45. +33 −0 operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Utils.java
  46. +7 −0 operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/Context.java
  47. +3 −1 ...mework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java
  48. +17 −16 operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/DefaultContext.java
  49. +193 −0 ...ork-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/PrimaryUpdateAndCacheUtils.java
  50. +11 −1 .../io/javaoperatorsdk/operator/processing/dependent/AbstractEventSourceHolderDependentResource.java
  51. +2 −0 ...main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java
  52. +2 −0 ...a/io/javaoperatorsdk/operator/processing/dependent/external/AbstractPollingDependentResource.java
  53. +2 −0 ...o/javaoperatorsdk/operator/processing/dependent/external/PerResourcePollingDependentResource.java
  54. +2 −0 .../io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDKubernetesDependentResource.java
  55. +2 −0 ...javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDNoGCKubernetesDependentResource.java
  56. +19 −0 ...rc/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependent.java
  57. +13 −1 ...ava/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentConverter.java
  58. +20 −5 ...java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java
  59. +9 −1 ...o/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java
  60. +8 −1 ...peratorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfigBuilder.java
  61. +72 −15 ...cessing/dependent/kubernetes/{ResourceRequirementsSanitizer.java → PodTemplateSpecSanitizer.java}
  62. +188 −168 ...peratorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcher.java
  63. +23 −15 ...tor-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java
  64. +1 −0 ...framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSourceManager.java
  65. +3 −0 ...amework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSourceRetriever.java
  66. +24 −7 ...ork-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ReconciliationDispatcher.java
  67. +30 −34 ...c/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSource.java
  68. +4 −4 ...ain/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java
  69. +3 −22 ...re/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java
  70. +1 −6 operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/UtilsTest.java
  71. +2 −12 .../io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolverTest.java
  72. +12 −5 ...r-framework-core/src/test/java/io/javaoperatorsdk/operator/api/reconciler/DefaultContextTest.java
  73. +111 −0 ...core/src/test/java/io/javaoperatorsdk/operator/api/reconciler/PrimaryUpdateAndCacheUtilsTest.java
  74. +0 −4 ...avaoperatorsdk/operator/processing/dependent/kubernetes/GenericKubernetesResourceMatcherTest.java
  75. +76 −0 .../io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceTest.java
  76. +170 −27 ...dependent/kubernetes/{ResourceRequirementsSanitizerTest.java → PodTemplateSpecSanitizerTest.java}
  77. +213 −40 ...torsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcherTest.java
  78. +1 −1 .../event/source/informer/{TemporaryResourceCacheTest.java → TemporaryPrimaryResourceCacheTest.java}
  79. +0 −2 ...operatorsdk/operator/processing/dependent/kubernetes/configmap.empty-owner-reference-desired.yaml
  80. +1 −0 ...perator/processing/dependent/kubernetes/deployment-with-managed-fields-additional-controller.yaml
  81. +1 −1 ...rces/io/javaoperatorsdk/operator/processing/dependent/kubernetes/multi-container-pod-desired.yaml
  82. +1 −1 ...st/resources/io/javaoperatorsdk/operator/processing/dependent/kubernetes/multi-container-pod.yaml
  83. +7 −0 ...rc/test/resources/io/javaoperatorsdk/operator/processing/dependent/kubernetes/secret-desired.yaml
  84. +9 −0 ...es/io/javaoperatorsdk/operator/processing/dependent/kubernetes/secret-with-finalizer-desired.yaml
  85. +25 −0 .../resources/io/javaoperatorsdk/operator/processing/dependent/kubernetes/secret-with-finalizer.yaml
  86. +19 −0 ...k-core/src/test/resources/io/javaoperatorsdk/operator/processing/dependent/kubernetes/secret.yaml
  87. +1 −1 operator-framework-junit5/pom.xml
  88. +10 −1 operator-framework/pom.xml
  89. +13 −0 ...atorsdk/operator/baseapi/concurrentfinalizerremoval/ConcurrentFinalizerRemovalCustomResource.java
  90. +68 −0 .../io/javaoperatorsdk/operator/baseapi/concurrentfinalizerremoval/ConcurrentFinalizerRemovalIT.java
  91. +29 −0 ...peratorsdk/operator/baseapi/concurrentfinalizerremoval/ConcurrentFinalizerRemovalReconciler1.java
  92. +29 −0 ...peratorsdk/operator/baseapi/concurrentfinalizerremoval/ConcurrentFinalizerRemovalReconciler2.java
  93. +15 −0 ...o/javaoperatorsdk/operator/baseapi/concurrentfinalizerremoval/ConcurrentFinalizerRemovalSpec.java
  94. +52 −0 ...ork/src/test/java/io/javaoperatorsdk/operator/baseapi/statuscache/PeriodicTriggerEventSource.java
  95. +14 −0 .../java/io/javaoperatorsdk/operator/baseapi/statuscache/StatusPatchCacheWithLockCustomResource.java
  96. +48 −0 ...ork/src/test/java/io/javaoperatorsdk/operator/baseapi/statuscache/StatusPatchCacheWithLockIT.java
  97. +71 −0 ...test/java/io/javaoperatorsdk/operator/baseapi/statuscache/StatusPatchCacheWithLockReconciler.java
  98. +14 −0 ...k/src/test/java/io/javaoperatorsdk/operator/baseapi/statuscache/StatusPatchCacheWithLockSpec.java
  99. +15 −0 ...src/test/java/io/javaoperatorsdk/operator/baseapi/statuscache/StatusPatchCacheWithLockStatus.java
  100. +0 −4 ...avaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiablePartConfigMapDependent.java
  101. +3 −16 ...ator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java
  102. +0 −4 ...va/io/javaoperatorsdk/operator/dependent/bulkdependent/ConfigMapDeleterBulkDependentResource.java
  103. +0 −4 ...a/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkDependentResource.java
  104. +0 −4 ...ava/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/ConfigMapDependentResource.java
  105. +0 −4 ...ratorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/ConfigMapDependentResource.java
  106. +0 −4 ...or/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperReconciler.java
  107. +0 −4 .../operator/dependent/dependentcustommappingannotation/CustomMappingConfigMapDependentResource.java
  108. +0 −4 ...io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/ConfigMapDependentResource.java
  109. +0 −4 ...c/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/FilteredDependentConfigMap.java
  110. +0 −4 ...vaoperatorsdk/operator/dependent/dependentoperationeventfiltering/ConfigMapDependentResource.java
  111. +0 −4 ...a/io/javaoperatorsdk/operator/dependent/dependentreinitialization/ConfigMapDependentResource.java
  112. +0 −8 ...operatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefReconciler.java
  113. +0 −4 ...ework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/SSAConfigMapDependent.java
  114. +0 −4 ...ava/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/ConfigMapDependentResource.java
  115. +0 −4 ...ator/dependent/kubernetesdependentgarbagecollection/DependentGarbageCollectionTestReconciler.java
  116. +0 −4 ...ltipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap1.java
  117. +0 −4 ...ltipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap2.java
  118. +0 −4 ...ependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorConfigMap1.java
  119. +0 −4 ...ependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorConfigMap2.java
  120. +0 −4 ...erator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap1.java
  121. +0 −4 ...erator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap2.java
  122. +0 −4 ...javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentConfigMap.java
  123. +95 −0 ...mework/src/test/java/io/javaoperatorsdk/operator/dependent/prevblocklist/DeploymentDependent.java
  124. +13 −0 ...t/java/io/javaoperatorsdk/operator/dependent/prevblocklist/PrevAnnotationBlockCustomResource.java
  125. +34 −0 .../test/java/io/javaoperatorsdk/operator/dependent/prevblocklist/PrevAnnotationBlockReconciler.java
  126. +50 −0 ...est/java/io/javaoperatorsdk/operator/dependent/prevblocklist/PrevAnnotationBlockReconcilerIT.java
  127. +15 −0 ...rk/src/test/java/io/javaoperatorsdk/operator/dependent/prevblocklist/PrevAnnotationBlockSpec.java
  128. +0 −4 ...a/io/javaoperatorsdk/operator/dependent/primaryindexer/DependentPrimaryIndexerTestReconciler.java
  129. +0 −4 ...est/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/ConfigMapDependent.java
  130. +0 −4 ...c/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/SecretDependent.java
  131. +1 −6 ...tor-framework/src/test/java/io/javaoperatorsdk/operator/dependent/readonly/ReadOnlyDependent.java
  132. +0 −4 ...ework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/ConfigMapDependentResource.java
  133. +0 −4 ...est/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceDependentResource.java
  134. +0 −4 ...javaoperatorsdk/operator/dependent/specialresourcesdependent/ServiceAccountDependentResource.java
  135. +0 −4 ...rc/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/ServiceDependentResource.java
  136. +0 −4 .../io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentTestReconciler.java
  137. +0 −4 .../operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerDependentResource.java
  138. +0 −4 ...java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationDependent.java
  139. +0 −4 ...t/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/ConfigMapDependentResource.java
  140. +0 −4 .../test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/RouteDependentResource.java
  141. +0 −4 ...java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ConfigMapDependent.java
  142. +0 −4 ...st/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/SecretDependent.java
  143. +0 −4 ...avaoperatorsdk/operator/workflow/multipledependentwithactivation/ConfigMapDependentResource1.java
  144. +0 −4 ...avaoperatorsdk/operator/workflow/multipledependentwithactivation/ConfigMapDependentResource2.java
  145. +0 −4 ...io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/SecretDependentResource.java
  146. +0 −4 ...ava/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/ConfigMapDependentResource1.java
  147. +0 −4 ...ava/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/ConfigMapDependentResource2.java
  148. +0 −4 ...va/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/ConfigMapDependentResource.java
  149. +0 −4 .../io/javaoperatorsdk/operator/workflow/workflowactivationcondition/ConfigMapDependentResource.java
  150. +0 −4 ...java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/RouteDependentResource.java
  151. +0 −4 ...test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/ConfigMapDependentResource.java
  152. +0 −4 ...est/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/DeploymentDependentResource.java
  153. +0 −4 ...rc/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/ConfigMapDependent.java
  154. +0 −4 ...test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/ConfigMapDependent.java
  155. +0 −4 ...a/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/ConfigMapDependentResource.java
  156. +0 −4 ...java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/SecretDependentResource.java
  157. +0 −4 ...java/io/javaoperatorsdk/operator/workflow/workflowsilentexceptionhandling/ConfigMapDependent.java
  158. +7 −0 operator-framework/src/test/resources/io/javaoperatorsdk/operator/statefulset.yaml
  159. +9 −9 pom.xml
  160. +1 −1 sample-operators/controller-namespace-deletion/pom.xml
  161. +1 −1 sample-operators/leader-election/pom.xml
  162. +1 −1 sample-operators/mysql-schema/pom.xml
  163. +0 −4 ...ql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SchemaDependentResource.java
  164. +0 −4 ...ql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SecretDependentResource.java
  165. +1 −1 sample-operators/pom.xml
  166. +1 −1 sample-operators/tomcat-operator/pom.xml
  167. +0 −4 ...tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/DeploymentDependentResource.java
  168. +0 −4 ...rs/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/ServiceDependentResource.java
  169. +1 −1 sample-operators/webpage/pom.xml
  170. +0 −4 ...rc/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ConfigMapDependentResource.java
  171. +0 −4 ...c/main/java/io/javaoperatorsdk/operator/sample/dependentresource/DeploymentDependentResource.java
  172. +0 −4 .../src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/IngressDependentResource.java
  173. +0 −4 .../src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ServiceDependentResource.java
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -10,8 +10,8 @@ jobs:
integration_tests:
strategy:
matrix:
java: [ 17, 21 ]
kubernetes: [ 'v1.29.12','1.30.8', '1.31.4', '1.32.0' ]
java: [ 17, 21, 24 ]
kubernetes: [ '1.30.12', '1.31.8', '1.32.4','1.33.0' ]
uses: ./.github/workflows/integration-tests.yml
with:
java-version: ${{ matrix.java }}
@@ -23,7 +23,7 @@ jobs:
httpclient: [ 'vertx', 'jdk', 'jetty' ]
uses: ./.github/workflows/integration-tests.yml
with:
java-version: 21
java-version: 24
kube-version: '1.32.0'
http-client: ${{ matrix.httpclient }}
experimental: true
@@ -33,7 +33,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 17, 21 ]
java: [ 17, 21, 24 ]
steps:
- uses: actions/checkout@v4
- name: Set up Java and Maven
4 changes: 2 additions & 2 deletions .github/workflows/e2e-test.yml
Original file line number Diff line number Diff line change
@@ -30,10 +30,10 @@ jobs:
uses: actions/checkout@v4

- name: Setup Minikube-Kubernetes
uses: manusa/actions-setup-minikube@v2.13.1
uses: manusa/actions-setup-minikube@v2.14.0
with:
minikube version: v1.34.0
kubernetes version: v1.32.0
kubernetes version: v1.33.0
github token: ${{ secrets.GITHUB_TOKEN }}
driver: docker

30 changes: 0 additions & 30 deletions .github/workflows/fabric8-next-version-schedule.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
@@ -39,7 +39,7 @@ jobs:
java-version: ${{ inputs.java-version }}
cache: 'maven'
- name: Set up Minikube
uses: manusa/actions-setup-minikube@v2.13.1
uses: manusa/actions-setup-minikube@v2.14.0
with:
minikube version: 'v1.34.0'
kubernetes version: '${{ inputs.kube-version }}'
2 changes: 1 addition & 1 deletion .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -22,7 +22,7 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
java-version: 21
cache: 'maven'
- name: Check code format
run: |
4 changes: 2 additions & 2 deletions bootstrapper-maven-plugin/pom.xml
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
<parent>
<groupId>io.javaoperatorsdk</groupId>
<artifactId>java-operator-sdk</artifactId>
<version>5.0.4-SNAPSHOT</version>
<version>5.1.0-SNAPSHOT</version>
</parent>

<artifactId>bootstrapper</artifactId>
@@ -58,7 +58,7 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.18.0</version>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>com.github.spullara.mustache.java</groupId>
Original file line number Diff line number Diff line change
@@ -17,10 +17,6 @@ public class ConfigMapDependentResource

public static final String KEY = "key";

public ConfigMapDependentResource() {
super(ConfigMap.class);
}

@Override
protected ConfigMap desired({{artifactClassId}}CustomResource primary,
Context<{{artifactClassId}}CustomResource> context) {
2 changes: 1 addition & 1 deletion caffeine-bounded-cache-support/pom.xml
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
<parent>
<groupId>io.javaoperatorsdk</groupId>
<artifactId>java-operator-sdk</artifactId>
<version>5.0.4-SNAPSHOT</version>
<version>5.1.0-SNAPSHOT</version>
</parent>

<artifactId>caffeine-bounded-cache-support</artifactId>
Original file line number Diff line number Diff line change
@@ -44,7 +44,7 @@ void reconciliationWorksWithLimitedCache() {

private void assertConfigMapsDeleted() {
await()
.atMost(Duration.ofSeconds(30))
.atMost(Duration.ofSeconds(120))
.untilAsserted(
() ->
IntStream.range(0, NUMBER_OF_RESOURCE_TO_TEST)
2 changes: 1 addition & 1 deletion docs/content/en/_index.md
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ We do a [Pull Request](https://github.com/operator-framework/java-operator-sdk/p
{{% /blocks/feature %}}


{{% blocks/feature icon="fab fa-twitter" title="Follow us on Twitter!" url="https://twitter.com/javaoperatorsdk" %}}
{{% blocks/feature icon="fa-brands fa-bluesky" title="Follow us on BlueSky!" url="https://bsky.app/profile/javaoperatorsdk.bsky.social" %}}
For announcement of latest features etc.
{{% /blocks/feature %}}

2 changes: 1 addition & 1 deletion docs/content/en/blog/_index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Blog
menu: {main: {weight: 30}}
menu: {main: {weight: 2}}
---

This is the **blog** section. It has two categories: News and Releases.
2 changes: 1 addition & 1 deletion docs/content/en/blog/news/_index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---
title: Posts
weight: 20
weight: 220
---
2 changes: 1 addition & 1 deletion docs/content/en/blog/releases/_index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---
title: Releases
weight: 20
weight: 230
---
2 changes: 1 addition & 1 deletion docs/content/en/community/_index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Community
menu: {main: {weight: 40}}
menu: {main: {weight: 3}}
---

<!--add blocks of content here to add more sections to the community page -->
4 changes: 2 additions & 2 deletions docs/content/en/docs/_index.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
title: Documentation
linkTitle: Docs
menu: {main: {weight: 20}}
weight: 20
menu: {main: {weight: 1}}
weight: 1
---


2 changes: 1 addition & 1 deletion docs/content/en/docs/contributing/_index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Contributing To Java Operator SDK
weight: 100
weight: 110
---

First of all, we'd like to thank you for considering contributing to the project! We really
4 changes: 4 additions & 0 deletions docs/content/en/docs/documentation/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: Documentation
weight: 40
---
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
title: Architecture and Internals
weight: 90
weight: 85
---


This document gives an overview of the internal structure and components of Java Operator SDK core,
in order to make it easier for developers to understand and contribute to it. This document is
not intended to be a comprehensive reference, rather an introduction to the core concepts and we
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
---
title: Configuring JOSDK
layout: docs
permalink: /docs/configuration
title: Configurations
weight: 55
---

# Configuration options

The Java Operator SDK (JOSDK) provides several abstractions that work great out of the
box. However, while we strive to cover the most common cases with the default behavior, we also
recognize that that default behavior is not always what any given user might want for their
@@ -52,6 +49,68 @@ operator.register(reconciler, configOverrider ->
configOverrider.withFinalizer("my-nifty-operator/finalizer").withLabelSelector("foo=bar"));
```

## Dynamically Changing Target Namespaces

A controller can be configured to watch a specific set of namespaces in addition of the
namespace in which it is currently deployed or the whole cluster. The framework supports
dynamically changing the list of these namespaces while the operator is running.
When a reconciler is registered, an instance of
[`RegisteredController`](https://github.com/java-operator-sdk/java-operator-sdk/blob/ec37025a15046d8f409c77616110024bf32c3416/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/RegisteredController.java#L5)
is returned, providing access to the methods allowing users to change watched namespaces as the
operator is running.

A typical scenario would probably involve extracting the list of target namespaces from a
`ConfigMap` or some other input but this part is out of the scope of the framework since this is
use-case specific. For example, reacting to changes to a `ConfigMap` would probably involve
registering an associated `Informer` and then calling the `changeNamespaces` method on
`RegisteredController`.

```java

public static void main(String[] args) {
KubernetesClient client = new DefaultKubernetesClient();
Operator operator = new Operator(client);
RegisteredController registeredController = operator.register(new WebPageReconciler(client));
operator.installShutdownHook();
operator.start();

// call registeredController further while operator is running
}

```

If watched namespaces change for a controller, it might be desirable to propagate these changes to
`InformerEventSources` associated with the controller. In order to express this,
`InformerEventSource` implementations interested in following such changes need to be
configured appropriately so that the `followControllerNamespaceChanges` method returns `true`:

```java

@ControllerConfiguration
public class MyReconciler implements Reconciler<TestCustomResource> {

@Override
public Map<String, EventSource> prepareEventSources(
EventSourceContext<ChangeNamespaceTestCustomResource> context) {

InformerEventSource<ConfigMap, TestCustomResource> configMapES =
new InformerEventSource<>(InformerEventSourceConfiguration.from(ConfigMap.class, TestCustomResource.class)
.withNamespacesInheritedFromController(context)
.build(), context);

return EventSourceUtils.nameEventSources(configMapES);
}

}
```

As seen in the above code snippet, the informer will have the initial namespaces inherited from
controller, but also will adjust the target namespaces if it changes for the controller.

See also
the [integration test](https://github.com/operator-framework/java-operator-sdk/tree/main/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace)
for this feature.

## DependentResource-level configuration

`DependentResource` implementations can implement the `DependentResourceConfigurator` interface
@@ -61,7 +120,7 @@ provides specific support for the `KubernetesDependentResource`, which can be co
`KubernetesDependentResourceConfig` instance, which is then passed to the `configureWith` method
implementation.

TODO: still subject to change / uniformization
TODO

## EventSource-level configuration

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Dependent resources and workflows
weight: 70
---

Dependent resources and workflows are features sometimes referenced as higher
level abstractions. These two related concepts provides an abstraction
over reconciliation of a single resource (Dependent resource) and the
orchestration of such resources (Workflows).
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Dependent Resources
weight: 60
title: Dependent resources
weight: 75
---

## Motivations and Goals
@@ -136,10 +136,6 @@ Deleted (or set to be garbage collected). The following example shows how to cre
@KubernetesDependent(labelSelector = WebPageManagedDependentsReconciler.SELECTOR)
class DeploymentDependentResource extends CRUDKubernetesDependentResource<Deployment, WebPage> {

public DeploymentDependentResource() {
super(Deployment.class);
}

@Override
protected Deployment desired(WebPage webPage, Context<WebPage> context) {
var deploymentName = deploymentName(webPage);
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Workflows
weight: 70
weight: 80
---

## Overview
Loading