Skip to content

Commit e7bde67

Browse files
authored
OWLS-93960 - NPE fix in PodDisruptionBudgetHelper (#2633)
* OWLS-93960- Fix to avoid NPE when non-operator PodDisruptionBudgets are present in the domain namespace. * Remove the DOMAINUID_LABEL and DOMAINNAME_LABEL label from PDB.
1 parent a929cf3 commit e7bde67

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

operator/src/main/java/oracle/kubernetes/operator/NamespacedResources.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
import oracle.kubernetes.operator.work.Step;
2828
import oracle.kubernetes.weblogic.domain.model.DomainList;
2929

30+
import static oracle.kubernetes.operator.LabelConstants.forDomainUidSelector;
31+
import static oracle.kubernetes.operator.LabelConstants.getCreatedByOperatorSelector;
32+
3033
/**
3134
* A Class to manage listing Kubernetes resources associated with a namespace and doing processing on them.
3235
*/
@@ -164,7 +167,7 @@ private Step getPodDisruptionBudgetListSteps() {
164167
}
165168

166169
private Step createPodDisruptionBudgetListStep(List<Consumer<V1beta1PodDisruptionBudgetList>> processing) {
167-
return new CallBuilder()
170+
return new CallBuilder().withLabelSelectors(forDomainUidSelector(domainUid), getCreatedByOperatorSelector())
168171
.listPodDisruptionBudgetAsync(namespace, new ListResponseStep<>(processing));
169172
}
170173

operator/src/test/java/oracle/kubernetes/operator/DomainProcessorTest.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,18 @@ void whenDomainShutDown_ignoreNonOperatorPodDisruptionBudgets() {
491491
assertThat(getRunningPDBs(), contains(createNonOperatorPodDisruptionBudget()));
492492
}
493493

494+
@Test
495+
void whenMakeRightExecuted_ignoreNonOperatorPodDisruptionBudgets() {
496+
defineServerResources(ADMIN_NAME);
497+
Arrays.stream(MANAGED_SERVER_NAMES).forEach(this::defineServerResources);
498+
testSupport.defineResources(createNonOperatorPodDisruptionBudget());
499+
500+
DomainPresenceInfo info = new DomainPresenceInfo(domain);
501+
processor.createMakeRightOperation(info).interrupt().withExplicitRecheck().execute();
502+
503+
assertThat(info.getPodDisruptionBudget(CLUSTER), notNullValue());
504+
}
505+
494506
@Test
495507
void whenClusterReplicas2_server3WithAlwaysPolicy_establishMatchingPresence() {
496508
domainConfigurator.configureCluster(CLUSTER).withReplicas(2);
@@ -732,10 +744,7 @@ private V1beta1PodDisruptionBudget createNonOperatorPodDisruptionBudget() {
732744
.name("do-not-delete-pdb")
733745
.namespace(NS)
734746
.putLabelsItem("serviceType", "SERVER")
735-
.putLabelsItem(CREATEDBYOPERATOR_LABEL, "false")
736-
.putLabelsItem(DOMAINNAME_LABEL, DomainProcessorTestSetup.UID)
737-
.putLabelsItem(DOMAINUID_LABEL, DomainProcessorTestSetup.UID)
738-
.putLabelsItem(CLUSTERNAME_LABEL, CLUSTER))
747+
.putLabelsItem(CREATEDBYOPERATOR_LABEL, "false"))
739748
.spec(new V1beta1PodDisruptionBudgetSpec()
740749
.selector(new V1LabelSelector()
741750
.putMatchLabelsItem(CREATEDBYOPERATOR_LABEL, "false")

0 commit comments

Comments
 (0)