39
39
import io .kubernetes .client .util .Yaml ;
40
40
import oracle .kubernetes .json .SchemaGenerator ;
41
41
import oracle .kubernetes .operator .KubernetesConstants ;
42
+ import oracle .kubernetes .operator .Main ;
42
43
import oracle .kubernetes .operator .calls .CallResponse ;
43
44
import oracle .kubernetes .operator .logging .LoggingFacade ;
44
45
import oracle .kubernetes .operator .logging .LoggingFactory ;
@@ -240,7 +241,11 @@ static V1CustomResourceSubresources createSubresources() {
240
241
241
242
static V1beta1CustomResourceSubresources createBetaSubresources () {
242
243
return new V1beta1CustomResourceSubresources ()
243
- .status (new HashMap <String , String >()) // this just needs an empty object to enable status subresource
244
+ /* MARKER-2.6.0-ONLY */
245
+ // for 2.6.0 we will not enable the status subresource for the beta version of CRD
246
+ // the 3.0.0 operator will enable this subresource so 2.6.0 will still check the actual CRD
247
+ // .status(new HashMap<String, String>()) // this just needs an empty object to enable status subresource
248
+ /* END-2.6.0-ONLY */
244
249
.scale (
245
250
new V1beta1CustomResourceSubresourceScale ()
246
251
.specReplicasPath (".spec.replicas" )
@@ -251,6 +256,9 @@ static List<V1CustomResourceDefinitionVersion> getCrdVersions() {
251
256
Map <String , String > schemas = schemaReader .loadFilesFromClasspath ();
252
257
List <V1CustomResourceDefinitionVersion > versions = schemas .entrySet ().stream ()
253
258
.sorted (Comparator .comparing (Map .Entry ::getKey ))
259
+ /* MARKER-2.6.0-ONLY */
260
+ .filter (entry -> !KubernetesConstants .DOMAIN_VERSION .equals (getVersionFromCrdSchemaFileName (entry .getKey ())))
261
+ /* END-2.6.0-ONLY */
254
262
.map (entry -> new V1CustomResourceDefinitionVersion ()
255
263
.name (getVersionFromCrdSchemaFileName (entry .getKey ()))
256
264
.schema (getValidationFromCrdSchemaFile (entry .getValue ()))
@@ -274,6 +282,9 @@ static List<V1beta1CustomResourceDefinitionVersion> getBetaCrdVersions() {
274
282
Map <String , String > schemas = schemaReader .loadFilesFromClasspath ();
275
283
List <V1beta1CustomResourceDefinitionVersion > versions = schemas .entrySet ().stream ()
276
284
.sorted (Comparator .comparing (Map .Entry ::getKey ))
285
+ /* MARKER-2.6.0-ONLY */
286
+ .filter (entry -> !KubernetesConstants .DOMAIN_VERSION .equals (getVersionFromCrdSchemaFileName (entry .getKey ())))
287
+ /* END-2.6.0-ONLY */
277
288
.map (entry -> new V1beta1CustomResourceDefinitionVersion ()
278
289
.name (getVersionFromCrdSchemaFileName (entry .getKey ()))
279
290
.served (true )
@@ -353,7 +364,7 @@ static SchemaGenerator createSchemaGenerator() {
353
364
354
365
Step verifyCrd (Step next ) {
355
366
return new CallBuilder ().readCustomResourceDefinitionAsync (
356
- model .getMetadata ().getName (), createReadResponseStep (next ));
367
+ model .getMetadata ().getName (), createReadResponseStep (next ));
357
368
}
358
369
359
370
ResponseStep <V1CustomResourceDefinition > createReadResponseStep (Step next ) {
@@ -371,7 +382,7 @@ ResponseStep<V1beta1CustomResourceDefinition> createBetaReadResponseStep(Step ne
371
382
372
383
Step createCrd (Step next ) {
373
384
return new CallBuilder ().createCustomResourceDefinitionAsync (
374
- model , createCreateResponseStep (next ));
385
+ model , createCreateResponseStep (next ));
375
386
}
376
387
377
388
ResponseStep <V1CustomResourceDefinition > createCreateResponseStep (Step next ) {
@@ -436,7 +447,7 @@ Step updateExistingCrd(Step next, V1CustomResourceDefinition existingCrd) {
436
447
.served (true ));
437
448
438
449
return new CallBuilder ().replaceCustomResourceDefinitionAsync (
439
- existingCrd .getMetadata ().getName (), existingCrd , createReplaceResponseStep (next ));
450
+ existingCrd .getMetadata ().getName (), existingCrd , createReplaceResponseStep (next ));
440
451
}
441
452
442
453
Step updateExistingBetaCrd (Step next , V1beta1CustomResourceDefinition existingCrd ) {
@@ -518,6 +529,9 @@ public NextAction onSuccess(
518
529
Packet packet , CallResponse <V1beta1CustomResourceDefinition > callResponse ) {
519
530
V1beta1CustomResourceDefinition existingCrd = callResponse .getResult ();
520
531
if (version .isCrdV1Supported ()) {
532
+ /* MARKER-2.6.0-ONLY */
533
+ Main .useDomainStatusEndpoint .set (true );
534
+ /* END-2.6.0-ONLY */
521
535
if (existingCrd == null ) {
522
536
return doNext (createCrd (getNext ()), packet );
523
537
} else {
@@ -529,12 +543,26 @@ public NextAction onSuccess(
529
543
} else if (isOutdatedBetaCrd (existingCrd )) {
530
544
return doNext (updateBetaCrd (getNext (), existingCrd ), packet );
531
545
} else if (!existingBetaCrdContainsVersion (existingCrd )) {
546
+ /* MARKER-2.6.0-ONLY */
547
+ checkForStatusSubresource (existingCrd );
548
+ /* END-2.6.0-ONLY */
532
549
return doNext (updateExistingBetaCrd (getNext (), existingCrd ), packet );
533
550
}
551
+ /* MARKER-2.6.0-ONLY */
552
+ checkForStatusSubresource (existingCrd );
553
+ /* END-2.6.0-ONLY */
534
554
}
535
555
return doNext (packet );
536
556
}
537
557
558
+ /* MARKER-2.6.0-ONLY */
559
+ private void checkForStatusSubresource (V1beta1CustomResourceDefinition existingCrd ) {
560
+ if (existingCrd .getSpec ().getSubresources ().getStatus () != null ) {
561
+ Main .useDomainStatusEndpoint .set (true );
562
+ }
563
+ }
564
+ /* END-2.6.0-ONLY */
565
+
538
566
@ Override
539
567
protected NextAction onFailureNoRetry (Packet packet , CallResponse <V1beta1CustomResourceDefinition > callResponse ) {
540
568
return isNotAuthorizedOrForbidden (callResponse )
0 commit comments