5
5
package oracle .kubernetes .operator .helpers ;
6
6
7
7
import java .io .File ;
8
- import java .util .Arrays ;
8
+ import java .util .Collections ;
9
9
import java .util .List ;
10
10
11
11
import io .kubernetes .client .models .V1ConfigMapVolumeSource ;
12
12
import io .kubernetes .client .models .V1Container ;
13
13
import io .kubernetes .client .models .V1Job ;
14
14
import io .kubernetes .client .models .V1JobSpec ;
15
15
import io .kubernetes .client .models .V1ObjectMeta ;
16
- import io .kubernetes .client .models .V1PersistentVolumeClaimVolumeSource ;
17
16
import io .kubernetes .client .models .V1PodSpec ;
18
17
import io .kubernetes .client .models .V1PodTemplateSpec ;
19
18
import io .kubernetes .client .models .V1SecretVolumeSource ;
@@ -37,7 +36,7 @@ public abstract class JobStepContext extends StepContextBase {
37
36
static final long DEFAULT_ACTIVE_DEADLINE_INCREMENT_SECONDS = 60L ;
38
37
private static final LoggingFacade LOGGER = LoggingFactory .getLogger ("Operator" , "Operator" );
39
38
private static final String WEBLOGIC_OPERATOR_SCRIPTS_INTROSPECT_DOMAIN_SH =
40
- "/weblogic-operator/scripts/introspectDomain.sh" ;
39
+ "/weblogic-operator/scripts/introspectDomain.sh" ;
41
40
private final DomainPresenceInfo info ;
42
41
private V1Job jobModel ;
43
42
@@ -105,24 +104,20 @@ Step createJob(Step next) {
105
104
return new CallBuilder ().createJobAsync (getNamespace (), getJobModel (), createResponse (next ));
106
105
}
107
106
108
- protected void logJobCreated () {
107
+ private void logJobCreated () {
109
108
LOGGER .info (getJobCreatedMessageKey (), getJobName ());
110
109
}
111
110
112
111
abstract String getJobCreatedMessageKey ();
113
112
114
- protected String getNodeManagerHome () {
113
+ String getNodeManagerHome () {
115
114
return NODEMGR_HOME ;
116
115
}
117
116
118
117
protected String getLogHome () {
119
118
return getDomain ().getLogHome ();
120
119
}
121
120
122
- protected boolean isDomainHomeInImage () {
123
- return getDomain ().isDomainHomeInImage ();
124
- }
125
-
126
121
String getEffectiveLogHome () {
127
122
if (!getDomain ().getLogHomeEnabled ()) {
128
123
return null ;
@@ -139,15 +134,15 @@ String getIncludeServerOutInPodLog() {
139
134
return Boolean .toString (getDomain ().isIncludeServerOutInPodLog ());
140
135
}
141
136
142
- protected String getIntrospectHome () {
137
+ String getIntrospectHome () {
143
138
return getDomainHome ();
144
139
}
145
140
146
- List <String > getConfigOverrideSecrets () {
141
+ private List <String > getConfigOverrideSecrets () {
147
142
return getDomain ().getConfigOverrideSecrets ();
148
143
}
149
144
150
- String getConfigOverrides () {
145
+ private String getConfigOverrides () {
151
146
return getDomain ().getConfigOverrides ();
152
147
}
153
148
@@ -159,57 +154,61 @@ private ResponseStep<V1Job> createResponse(Step next) {
159
154
160
155
private V1Job createJobModel () {
161
156
return new V1Job ()
162
- .metadata (createMetadata ())
163
- .spec (createJobSpec (TuningParameters .getInstance ()));
157
+ .metadata (createMetadata ())
158
+ .spec (createJobSpec (TuningParameters .getInstance ()));
164
159
}
165
160
166
161
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" );
175
168
}
176
169
177
170
private long getActiveDeadlineSeconds () {
178
171
return DEFAULT_ACTIVE_DEADLINE_SECONDS
179
- + (DEFAULT_ACTIVE_DEADLINE_INCREMENT_SECONDS * info .getRetryCount ());
172
+ + (DEFAULT_ACTIVE_DEADLINE_INCREMENT_SECONDS * info .getRetryCount ());
180
173
}
181
174
182
- protected V1JobSpec createJobSpec (TuningParameters tuningParameters ) {
175
+ V1JobSpec createJobSpec (TuningParameters tuningParameters ) {
183
176
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 ());
193
181
194
- return jobSpec ;
182
+ return new V1JobSpec ()
183
+ .backoffLimit (0 )
184
+ .activeDeadlineSeconds (getActiveDeadlineSeconds ())
185
+ .template (createPodTemplateSpec (tuningParameters ));
195
186
}
196
187
197
188
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 ()));
202
201
}
203
202
204
203
private V1PodSpec createPodSpec (TuningParameters tuningParameters ) {
205
204
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 ()));
213
212
214
213
podSpec .setImagePullSecrets (info .getDomain ().getSpec ().getImagePullSecrets ());
215
214
@@ -220,50 +219,50 @@ private V1PodSpec createPodSpec(TuningParameters tuningParameters) {
220
219
List <String > configOverrideSecrets = getConfigOverrideSecrets ();
221
220
for (String secretName : configOverrideSecrets ) {
222
221
podSpec .addVolumesItem (
223
- new V1Volume ()
224
- .name (secretName + "-volume" )
225
- .secret (getOverrideSecretVolumeSource (secretName )));
222
+ new V1Volume ()
223
+ .name (secretName + "-volume" )
224
+ .secret (getOverrideSecretVolumeSource (secretName )));
226
225
}
227
226
if (getConfigOverrides () != null && getConfigOverrides ().length () > 0 ) {
228
227
podSpec .addVolumesItem (
229
- new V1Volume ()
230
- .name (getConfigOverrides () + "-volume" )
231
- .configMap (getOverridesVolumeSource (getConfigOverrides ())));
228
+ new V1Volume ()
229
+ .name (getConfigOverrides () + "-volume" )
230
+ .configMap (getOverridesVolumeSource (getConfigOverrides ())));
232
231
}
233
232
234
233
return podSpec ;
235
234
}
236
235
237
236
private V1Container createContainer (TuningParameters tuningParameters ) {
238
237
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 ));
247
246
248
247
for (V1VolumeMount additionalVolumeMount : getAdditionalVolumeMounts ()) {
249
248
container .addVolumeMountsItem (additionalVolumeMount );
250
249
}
251
250
252
251
if (getConfigOverrides () != null && getConfigOverrides ().length () > 0 ) {
253
252
container .addVolumeMountsItem (
254
- readOnlyVolumeMount (getConfigOverrides () + "-volume" , OVERRIDES_CM_MOUNT_PATH ));
253
+ readOnlyVolumeMount (getConfigOverrides () + "-volume" , OVERRIDES_CM_MOUNT_PATH ));
255
254
}
256
255
257
256
List <String > configOverrideSecrets = getConfigOverrideSecrets ();
258
257
for (String secretName : configOverrideSecrets ) {
259
258
container .addVolumeMountsItem (
260
- readOnlyVolumeMount (
261
- secretName + "-volume" , OVERRIDE_SECRETS_MOUNT_PATH + '/' + secretName ));
259
+ readOnlyVolumeMount (
260
+ secretName + "-volume" , OVERRIDE_SECRETS_MOUNT_PATH + '/' + secretName ));
262
261
}
263
262
return container ;
264
263
}
265
264
266
- String getImageName () {
265
+ private String getImageName () {
267
266
String imageName = getDomain ().getSpec ().getImage ();
268
267
if (imageName == null ) {
269
268
imageName = KubernetesConstants .DEFAULT_IMAGE ;
@@ -279,40 +278,31 @@ String getImagePullPolicy() {
279
278
return imagePullPolicy ;
280
279
}
281
280
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 );
284
283
}
285
284
286
285
protected String getDomainHome () {
287
286
return getDomain ().getDomainHome ();
288
287
}
289
288
290
- protected V1SecretVolumeSource getSecretsVolume () {
289
+ private V1SecretVolumeSource getSecretsVolume () {
291
290
return new V1SecretVolumeSource ()
292
- .secretName (getWebLogicCredentialsSecretName ())
293
- .defaultMode (420 );
291
+ .secretName (getWebLogicCredentialsSecretName ())
292
+ .defaultMode (420 );
294
293
}
295
294
296
- protected V1ConfigMapVolumeSource getConfigMapVolumeSource () {
295
+ private V1ConfigMapVolumeSource getConfigMapVolumeSource () {
297
296
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 );
309
299
}
310
300
311
- protected V1SecretVolumeSource getOverrideSecretVolumeSource (String name ) {
301
+ private V1SecretVolumeSource getOverrideSecretVolumeSource (String name ) {
312
302
return new V1SecretVolumeSource ().secretName (name ).defaultMode (420 );
313
303
}
314
304
315
- protected V1ConfigMapVolumeSource getOverridesVolumeSource (String name ) {
305
+ private V1ConfigMapVolumeSource getOverridesVolumeSource (String name ) {
316
306
return new V1ConfigMapVolumeSource ().name (name ).defaultMode (ALL_READ_AND_EXECUTE );
317
307
}
318
308
0 commit comments