Skip to content

Commit 0a11c91

Browse files
committed
Hardening
1 parent d46d973 commit 0a11c91

File tree

7 files changed

+316
-105
lines changed

7 files changed

+316
-105
lines changed

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33

44
package oracle.kubernetes.operator;
55

6+
import java.util.Map;
67
import java.util.concurrent.atomic.AtomicBoolean;
78

89
import com.google.gson.reflect.TypeToken;
910
import io.kubernetes.client.ApiException;
11+
import io.kubernetes.client.models.V1ObjectMeta;
1012
import io.kubernetes.client.models.V1beta1Ingress;
1113
import io.kubernetes.client.util.Watch;
1214
import oracle.kubernetes.operator.helpers.ClientHelper;
@@ -96,6 +98,24 @@ public boolean isStopping() {
9698
};
9799
}
98100

101+
static String getIngressDomainUID(V1beta1Ingress ingress) {
102+
V1ObjectMeta meta = ingress.getMetadata();
103+
Map<String, String> labels = meta.getLabels();
104+
if (labels != null) {
105+
return labels.get(LabelConstants.DOMAINUID_LABEL);
106+
}
107+
return null;
108+
}
109+
110+
static String getIngressClusterName(V1beta1Ingress ingress) {
111+
V1ObjectMeta meta = ingress.getMetadata();
112+
Map<String, String> labels = meta.getLabels();
113+
if (labels != null) {
114+
return labels.get(LabelConstants.CLUSTERNAME_LABEL);
115+
}
116+
return null;
117+
}
118+
99119
public void processEventCallback(Watch.Response<V1beta1Ingress> item) {
100120
destination.eventCallback(item);
101121
}

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

Lines changed: 212 additions & 90 deletions
Large diffs are not rendered by default.

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33

44
package oracle.kubernetes.operator;
55

6+
import java.util.Map;
67
import java.util.concurrent.atomic.AtomicBoolean;
78

89
import com.google.gson.reflect.TypeToken;
910
import io.kubernetes.client.ApiException;
11+
import io.kubernetes.client.models.V1ObjectMeta;
12+
import io.kubernetes.client.models.V1Pod;
1013
import io.kubernetes.client.models.V1Service;
1114
import io.kubernetes.client.util.Watch;
1215
import oracle.kubernetes.operator.helpers.ClientHelper;
@@ -96,6 +99,33 @@ public boolean isStopping() {
9699
};
97100
}
98101

102+
static String getServiceDomainUID(V1Service service) {
103+
V1ObjectMeta meta = service.getMetadata();
104+
Map<String, String> labels = meta.getLabels();
105+
if (labels != null) {
106+
return labels.get(LabelConstants.DOMAINUID_LABEL);
107+
}
108+
return null;
109+
}
110+
111+
static String getServiceServerName(V1Service service) {
112+
V1ObjectMeta meta = service.getMetadata();
113+
Map<String, String> labels = meta.getLabels();
114+
if (labels != null) {
115+
return labels.get(LabelConstants.SERVERNAME_LABEL);
116+
}
117+
return null;
118+
}
119+
120+
static String getServiceChannelName(V1Service service) {
121+
V1ObjectMeta meta = service.getMetadata();
122+
Map<String, String> labels = meta.getLabels();
123+
if (labels != null) {
124+
return labels.get(LabelConstants.CHANNELNAME_LABEL);
125+
}
126+
return null;
127+
}
128+
99129
public void processEventCallback(Watch.Response<V1Service> item) {
100130
destination.eventCallback(item);
101131
}

src/main/java/oracle/kubernetes/operator/helpers/DomainPresenceInfo.java

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,13 @@
2727
*
2828
*/
2929
public class DomainPresenceInfo {
30+
private final String namespace;
3031
private final AtomicReference<Domain> domain;
32+
private final AtomicReference<Collection<ServerStartupInfo>> serverStartupInfo;
33+
3134
private final ConcurrentMap<String, ServerKubernetesObjects> servers = new ConcurrentHashMap<>();
3235
private final ConcurrentMap<String, V1beta1Ingress> ingresses = new ConcurrentHashMap<>();
33-
private final AtomicReference<Collection<ServerStartupInfo>> serverStartupInfo;
34-
36+
3537
private V1PersistentVolumeClaimList claims = null;
3638

3739
private WlsDomainConfig domainConfig;
@@ -43,6 +45,17 @@ public class DomainPresenceInfo {
4345
*/
4446
public DomainPresenceInfo(Domain domain) {
4547
this.domain = new AtomicReference<>(domain);
48+
this.namespace = domain.getMetadata().getNamespace();
49+
this.serverStartupInfo = new AtomicReference<>(null);
50+
}
51+
52+
/**
53+
* Create presence for a domain
54+
* @param domain Domain
55+
*/
56+
public DomainPresenceInfo(String namespace) {
57+
this.domain = new AtomicReference<>(null);
58+
this.namespace = namespace;
4659
this.serverStartupInfo = new AtomicReference<>(null);
4760
}
4861

@@ -95,7 +108,7 @@ public void setLastScanTime(DateTime lastScanTime) {
95108
}
96109

97110
/**
98-
* Gets the domain. Except the instance to change frequently based on status updates
111+
* Gets the domain. Except the instance to change frequently based on status updates
99112
* @return Domain
100113
*/
101114
public Domain getDomain() {
@@ -110,6 +123,14 @@ public void setDomain(Domain domain) {
110123
this.domain.set(domain);
111124
}
112125

126+
/**
127+
* Gets the namespace
128+
* @return Namespace
129+
*/
130+
public String getNamespace() {
131+
return namespace;
132+
}
133+
113134
/**
114135
* Map from server name to server objects (Pods and Services)
115136
* @return Server object map

src/main/java/oracle/kubernetes/operator/helpers/IngressHelper.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,9 @@ public NextAction onFailure(Packet packet, ApiException e, int statusCode,
134134
@Override
135135
public NextAction onSuccess(Packet packet, V1beta1Ingress result, int statusCode,
136136
Map<String, List<String>> responseHeaders) {
137-
info.getIngresses().put(clusterName, result);
137+
if (result != null) {
138+
info.getIngresses().put(clusterName, result);
139+
}
138140
return doNext(packet);
139141
}
140142
}), packet);
@@ -152,7 +154,9 @@ public NextAction onFailure(Packet packet, ApiException e, int statusCode,
152154
@Override
153155
public NextAction onSuccess(Packet packet, V1beta1Ingress result, int statusCode,
154156
Map<String, List<String>> responseHeaders) {
155-
info.getIngresses().put(clusterName, result);
157+
if (result != null) {
158+
info.getIngresses().put(clusterName, result);
159+
}
156160
return doNext(packet);
157161
}
158162
}), packet);
@@ -250,7 +254,9 @@ public NextAction onFailure(Packet packet, ApiException e, int statusCode,
250254
@Override
251255
public NextAction onSuccess(Packet packet, V1beta1Ingress result, int statusCode,
252256
Map<String, List<String>> responseHeaders) {
253-
info.getIngresses().put(clusterName, result);
257+
if (result != null) {
258+
info.getIngresses().put(clusterName, result);
259+
}
254260
return doNext(packet);
255261
}
256262
}), packet);

src/main/java/oracle/kubernetes/operator/helpers/PodHelper.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,9 @@ public NextAction onSuccess(Packet packet, V1Pod result, int statusCode,
226226
Map<String, List<String>> responseHeaders) {
227227

228228
LOGGER.info(MessageKeys.ADMIN_POD_CREATED, weblogicDomainUID, spec.getAsName());
229-
sko.getPod().set(result);
229+
if (result != null) {
230+
sko.getPod().set(result);
231+
}
230232
return doNext(packet);
231233
}
232234
});
@@ -294,7 +296,9 @@ public NextAction onSuccess(Packet packet, V1Pod result, int statusCode,
294296
Map<String, List<String>> responseHeaders) {
295297

296298
LOGGER.info(messageKey, weblogicDomainUID, serverName);
297-
sko.getPod().set(result);
299+
if (result != null) {
300+
sko.getPod().set(result);
301+
}
298302

299303
PodWatcher pw = packet.getSPI(PodWatcher.class);
300304
return doNext(pw.waitForReady(result, next), packet);
@@ -554,7 +558,9 @@ public NextAction onSuccess(Packet packet, V1Pod result, int statusCode,
554558
Map<String, List<String>> responseHeaders) {
555559

556560
LOGGER.info(MessageKeys.MANAGED_POD_CREATED, weblogicDomainUID, weblogicServerName);
557-
sko.getPod().set(result);
561+
if (result != null) {
562+
sko.getPod().set(result);
563+
}
558564
return doNext(packet);
559565
}
560566
});

src/main/java/oracle/kubernetes/operator/helpers/ServiceHelper.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,9 @@ public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
122122
Map<String, List<String>> responseHeaders) {
123123

124124
LOGGER.info(serverName.equals(spec.getAsName()) ? MessageKeys.ADMIN_SERVICE_CREATED : MessageKeys.MANAGED_SERVICE_CREATED, weblogicDomainUID, serverName);
125-
sko.getService().set(result);
125+
if (result != null) {
126+
sko.getService().set(result);
127+
}
126128
return doNext(packet);
127129
}
128130
});
@@ -233,10 +235,12 @@ public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
233235
Map<String, List<String>> responseHeaders) {
234236

235237
LOGGER.info(messageKey, weblogicDomainUID, serverName);
236-
if (channelName != null) {
237-
sko.getChannels().put(channelName, result);
238-
} else {
239-
sko.getService().set(result);
238+
if (result != null) {
239+
if (channelName != null) {
240+
sko.getChannels().put(channelName, result);
241+
} else {
242+
sko.getService().set(result);
243+
}
240244
}
241245
return doNext(packet);
242246
}
@@ -333,7 +337,9 @@ public NextAction onSuccess(Packet packet, V1Service result, int statusCode,
333337
Map<String, List<String>> responseHeaders) {
334338

335339
LOGGER.info(serverName.equals(spec.getAsName()) ? MessageKeys.ADMIN_SERVICE_CREATED : MessageKeys.MANAGED_SERVICE_CREATED, weblogicDomainUID, serverName);
336-
sko.getChannels().put(networkAccessPoint.getName(), result);
340+
if (result != null) {
341+
sko.getChannels().put(networkAccessPoint.getName(), result);
342+
}
337343
return doNext(packet);
338344
}
339345
});

0 commit comments

Comments
 (0)