Skip to content

Commit a20dad2

Browse files
authored
Merge pull request #1178 from oracle/domain_status_updating_1
Update domain status for image fetch or instrospector job failures
2 parents a394330 + fffb0a0 commit a20dad2

File tree

12 files changed

+953
-937
lines changed

12 files changed

+953
-937
lines changed

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

Lines changed: 151 additions & 91 deletions
Large diffs are not rendered by default.

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

Lines changed: 121 additions & 134 deletions
Large diffs are not rendered by default.

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

Lines changed: 72 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@
55
package oracle.kubernetes.operator.helpers;
66

77
import java.io.File;
8-
import java.util.Arrays;
8+
import java.util.Collections;
99
import java.util.List;
1010

1111
import io.kubernetes.client.models.V1ConfigMapVolumeSource;
1212
import io.kubernetes.client.models.V1Container;
1313
import io.kubernetes.client.models.V1Job;
1414
import io.kubernetes.client.models.V1JobSpec;
1515
import io.kubernetes.client.models.V1ObjectMeta;
16-
import io.kubernetes.client.models.V1PersistentVolumeClaimVolumeSource;
1716
import io.kubernetes.client.models.V1PodSpec;
1817
import io.kubernetes.client.models.V1PodTemplateSpec;
1918
import io.kubernetes.client.models.V1SecretVolumeSource;
@@ -37,7 +36,7 @@ public abstract class JobStepContext extends StepContextBase {
3736
static final long DEFAULT_ACTIVE_DEADLINE_INCREMENT_SECONDS = 60L;
3837
private static final LoggingFacade LOGGER = LoggingFactory.getLogger("Operator", "Operator");
3938
private static final String WEBLOGIC_OPERATOR_SCRIPTS_INTROSPECT_DOMAIN_SH =
40-
"/weblogic-operator/scripts/introspectDomain.sh";
39+
"/weblogic-operator/scripts/introspectDomain.sh";
4140
private final DomainPresenceInfo info;
4241
private V1Job jobModel;
4342

@@ -105,24 +104,20 @@ Step createJob(Step next) {
105104
return new CallBuilder().createJobAsync(getNamespace(), getJobModel(), createResponse(next));
106105
}
107106

108-
protected void logJobCreated() {
107+
private void logJobCreated() {
109108
LOGGER.info(getJobCreatedMessageKey(), getJobName());
110109
}
111110

112111
abstract String getJobCreatedMessageKey();
113112

114-
protected String getNodeManagerHome() {
113+
String getNodeManagerHome() {
115114
return NODEMGR_HOME;
116115
}
117116

118117
protected String getLogHome() {
119118
return getDomain().getLogHome();
120119
}
121120

122-
protected boolean isDomainHomeInImage() {
123-
return getDomain().isDomainHomeInImage();
124-
}
125-
126121
String getEffectiveLogHome() {
127122
if (!getDomain().getLogHomeEnabled()) {
128123
return null;
@@ -139,15 +134,15 @@ String getIncludeServerOutInPodLog() {
139134
return Boolean.toString(getDomain().isIncludeServerOutInPodLog());
140135
}
141136

142-
protected String getIntrospectHome() {
137+
String getIntrospectHome() {
143138
return getDomainHome();
144139
}
145140

146-
List<String> getConfigOverrideSecrets() {
141+
private List<String> getConfigOverrideSecrets() {
147142
return getDomain().getConfigOverrideSecrets();
148143
}
149144

150-
String getConfigOverrides() {
145+
private String getConfigOverrides() {
151146
return getDomain().getConfigOverrides();
152147
}
153148

@@ -159,57 +154,61 @@ private ResponseStep<V1Job> createResponse(Step next) {
159154

160155
private V1Job createJobModel() {
161156
return new V1Job()
162-
.metadata(createMetadata())
163-
.spec(createJobSpec(TuningParameters.getInstance()));
157+
.metadata(createMetadata())
158+
.spec(createJobSpec(TuningParameters.getInstance()));
164159
}
165160

166161
V1ObjectMeta createMetadata() {
167-
V1ObjectMeta metadata =
168-
new V1ObjectMeta()
169-
.name(getJobName())
170-
.namespace(getNamespace())
171-
.putLabelsItem(LabelConstants.RESOURCE_VERSION_LABEL, VersionConstants.DOMAIN_V1)
172-
.putLabelsItem(LabelConstants.DOMAINUID_LABEL, getDomainUid())
173-
.putLabelsItem(LabelConstants.CREATEDBYOPERATOR_LABEL, "true");
174-
return metadata;
162+
return new V1ObjectMeta()
163+
.name(getJobName())
164+
.namespace(getNamespace())
165+
.putLabelsItem(LabelConstants.RESOURCE_VERSION_LABEL, VersionConstants.DOMAIN_V1)
166+
.putLabelsItem(LabelConstants.DOMAINUID_LABEL, getDomainUid())
167+
.putLabelsItem(LabelConstants.CREATEDBYOPERATOR_LABEL, "true");
175168
}
176169

177170
private long getActiveDeadlineSeconds() {
178171
return DEFAULT_ACTIVE_DEADLINE_SECONDS
179-
+ (DEFAULT_ACTIVE_DEADLINE_INCREMENT_SECONDS * info.getRetryCount());
172+
+ (DEFAULT_ACTIVE_DEADLINE_INCREMENT_SECONDS * info.getRetryCount());
180173
}
181174

182-
protected V1JobSpec createJobSpec(TuningParameters tuningParameters) {
175+
V1JobSpec createJobSpec(TuningParameters tuningParameters) {
183176
LOGGER.fine(
184-
"Creating job "
185-
+ getJobName()
186-
+ " with activeDeadlineSeconds = "
187-
+ getActiveDeadlineSeconds());
188-
V1JobSpec jobSpec =
189-
new V1JobSpec()
190-
.backoffLimit(0)
191-
.activeDeadlineSeconds(getActiveDeadlineSeconds())
192-
.template(createPodTemplateSpec(tuningParameters));
177+
"Creating job "
178+
+ getJobName()
179+
+ " with activeDeadlineSeconds = "
180+
+ getActiveDeadlineSeconds());
193181

194-
return jobSpec;
182+
return new V1JobSpec()
183+
.backoffLimit(0)
184+
.activeDeadlineSeconds(getActiveDeadlineSeconds())
185+
.template(createPodTemplateSpec(tuningParameters));
195186
}
196187

197188
private V1PodTemplateSpec createPodTemplateSpec(TuningParameters tuningParameters) {
198-
V1ObjectMeta metadata = new V1ObjectMeta().name(getJobName());
199-
V1PodTemplateSpec podTemplateSpec =
200-
new V1PodTemplateSpec().metadata(metadata).spec(createPodSpec(tuningParameters));
201-
return podTemplateSpec;
189+
return new V1PodTemplateSpec()
190+
.metadata(createPodTemplateMetadata())
191+
.spec(createPodSpec(tuningParameters));
192+
}
193+
194+
private V1ObjectMeta createPodTemplateMetadata() {
195+
return new V1ObjectMeta()
196+
.name(getJobName())
197+
.putLabelsItem(LabelConstants.CREATEDBYOPERATOR_LABEL, "true")
198+
.putLabelsItem(LabelConstants.DOMAINUID_LABEL, getDomainUid())
199+
.putLabelsItem(
200+
LabelConstants.JOBNAME_LABEL, LegalNames.toJobIntrospectorName(getDomainUid()));
202201
}
203202

204203
private V1PodSpec createPodSpec(TuningParameters tuningParameters) {
205204
V1PodSpec podSpec =
206-
new V1PodSpec()
207-
.activeDeadlineSeconds(getActiveDeadlineSeconds())
208-
.restartPolicy("Never")
209-
.addContainersItem(createContainer(tuningParameters))
210-
.addVolumesItem(new V1Volume().name(SECRETS_VOLUME).secret(getSecretsVolume()))
211-
.addVolumesItem(
212-
new V1Volume().name(SCRIPTS_VOLUME).configMap(getConfigMapVolumeSource()));
205+
new V1PodSpec()
206+
.activeDeadlineSeconds(getActiveDeadlineSeconds())
207+
.restartPolicy("Never")
208+
.addContainersItem(createContainer(tuningParameters))
209+
.addVolumesItem(new V1Volume().name(SECRETS_VOLUME).secret(getSecretsVolume()))
210+
.addVolumesItem(
211+
new V1Volume().name(SCRIPTS_VOLUME).configMap(getConfigMapVolumeSource()));
213212

214213
podSpec.setImagePullSecrets(info.getDomain().getSpec().getImagePullSecrets());
215214

@@ -220,50 +219,50 @@ private V1PodSpec createPodSpec(TuningParameters tuningParameters) {
220219
List<String> configOverrideSecrets = getConfigOverrideSecrets();
221220
for (String secretName : configOverrideSecrets) {
222221
podSpec.addVolumesItem(
223-
new V1Volume()
224-
.name(secretName + "-volume")
225-
.secret(getOverrideSecretVolumeSource(secretName)));
222+
new V1Volume()
223+
.name(secretName + "-volume")
224+
.secret(getOverrideSecretVolumeSource(secretName)));
226225
}
227226
if (getConfigOverrides() != null && getConfigOverrides().length() > 0) {
228227
podSpec.addVolumesItem(
229-
new V1Volume()
230-
.name(getConfigOverrides() + "-volume")
231-
.configMap(getOverridesVolumeSource(getConfigOverrides())));
228+
new V1Volume()
229+
.name(getConfigOverrides() + "-volume")
230+
.configMap(getOverridesVolumeSource(getConfigOverrides())));
232231
}
233232

234233
return podSpec;
235234
}
236235

237236
private V1Container createContainer(TuningParameters tuningParameters) {
238237
V1Container container =
239-
new V1Container()
240-
.name(getJobName())
241-
.image(getImageName())
242-
.imagePullPolicy(getImagePullPolicy())
243-
.command(getContainerCommand())
244-
.env(getEnvironmentVariables(tuningParameters))
245-
.addVolumeMountsItem(readOnlyVolumeMount(SECRETS_VOLUME, SECRETS_MOUNT_PATH))
246-
.addVolumeMountsItem(readOnlyVolumeMount(SCRIPTS_VOLUME, SCRIPTS_MOUNTS_PATH));
238+
new V1Container()
239+
.name(getJobName())
240+
.image(getImageName())
241+
.imagePullPolicy(getImagePullPolicy())
242+
.command(getContainerCommand())
243+
.env(getEnvironmentVariables(tuningParameters))
244+
.addVolumeMountsItem(readOnlyVolumeMount(SECRETS_VOLUME, SECRETS_MOUNT_PATH))
245+
.addVolumeMountsItem(readOnlyVolumeMount(SCRIPTS_VOLUME, SCRIPTS_MOUNTS_PATH));
247246

248247
for (V1VolumeMount additionalVolumeMount : getAdditionalVolumeMounts()) {
249248
container.addVolumeMountsItem(additionalVolumeMount);
250249
}
251250

252251
if (getConfigOverrides() != null && getConfigOverrides().length() > 0) {
253252
container.addVolumeMountsItem(
254-
readOnlyVolumeMount(getConfigOverrides() + "-volume", OVERRIDES_CM_MOUNT_PATH));
253+
readOnlyVolumeMount(getConfigOverrides() + "-volume", OVERRIDES_CM_MOUNT_PATH));
255254
}
256255

257256
List<String> configOverrideSecrets = getConfigOverrideSecrets();
258257
for (String secretName : configOverrideSecrets) {
259258
container.addVolumeMountsItem(
260-
readOnlyVolumeMount(
261-
secretName + "-volume", OVERRIDE_SECRETS_MOUNT_PATH + '/' + secretName));
259+
readOnlyVolumeMount(
260+
secretName + "-volume", OVERRIDE_SECRETS_MOUNT_PATH + '/' + secretName));
262261
}
263262
return container;
264263
}
265264

266-
String getImageName() {
265+
private String getImageName() {
267266
String imageName = getDomain().getSpec().getImage();
268267
if (imageName == null) {
269268
imageName = KubernetesConstants.DEFAULT_IMAGE;
@@ -279,40 +278,31 @@ String getImagePullPolicy() {
279278
return imagePullPolicy;
280279
}
281280

282-
protected List<String> getContainerCommand() {
283-
return Arrays.asList(WEBLOGIC_OPERATOR_SCRIPTS_INTROSPECT_DOMAIN_SH);
281+
private List<String> getContainerCommand() {
282+
return Collections.singletonList(WEBLOGIC_OPERATOR_SCRIPTS_INTROSPECT_DOMAIN_SH);
284283
}
285284

286285
protected String getDomainHome() {
287286
return getDomain().getDomainHome();
288287
}
289288

290-
protected V1SecretVolumeSource getSecretsVolume() {
289+
private V1SecretVolumeSource getSecretsVolume() {
291290
return new V1SecretVolumeSource()
292-
.secretName(getWebLogicCredentialsSecretName())
293-
.defaultMode(420);
291+
.secretName(getWebLogicCredentialsSecretName())
292+
.defaultMode(420);
294293
}
295294

296-
protected V1ConfigMapVolumeSource getConfigMapVolumeSource() {
295+
private V1ConfigMapVolumeSource getConfigMapVolumeSource() {
297296
return new V1ConfigMapVolumeSource()
298-
.name(KubernetesConstants.DOMAIN_CONFIG_MAP_NAME)
299-
.defaultMode(ALL_READ_AND_EXECUTE);
300-
}
301-
302-
protected V1ConfigMapVolumeSource getConfigMapVolumeSource(String name, int mode) {
303-
return new V1ConfigMapVolumeSource().name(name).defaultMode(mode);
304-
}
305-
306-
protected V1PersistentVolumeClaimVolumeSource getPersistenVolumeClaimVolumeSource(
307-
String claimName) {
308-
return new V1PersistentVolumeClaimVolumeSource().claimName(claimName);
297+
.name(KubernetesConstants.DOMAIN_CONFIG_MAP_NAME)
298+
.defaultMode(ALL_READ_AND_EXECUTE);
309299
}
310300

311-
protected V1SecretVolumeSource getOverrideSecretVolumeSource(String name) {
301+
private V1SecretVolumeSource getOverrideSecretVolumeSource(String name) {
312302
return new V1SecretVolumeSource().secretName(name).defaultMode(420);
313303
}
314304

315-
protected V1ConfigMapVolumeSource getOverridesVolumeSource(String name) {
305+
private V1ConfigMapVolumeSource getOverridesVolumeSource(String name) {
316306
return new V1ConfigMapVolumeSource().name(name).defaultMode(ALL_READ_AND_EXECUTE);
317307
}
318308

0 commit comments

Comments
 (0)