@@ -1306,65 +1306,6 @@ func (o *Operator) ResolvePlan(plan *v1alpha1.InstallPlan) error {
1306
1306
return nil
1307
1307
}
1308
1308
1309
- func GetCRDV1VersionsMap (crd * apiextensionsv1.CustomResourceDefinition ) map [string ]struct {} {
1310
- versionsMap := map [string ]struct {}{}
1311
-
1312
- for _ , version := range crd .Spec .Versions {
1313
- versionsMap [version .Name ] = struct {}{}
1314
- }
1315
- return versionsMap
1316
- }
1317
-
1318
- // Ensure all existing served versions are present in new CRD
1319
- func GetCRDV1Beta1VersionsMap (crd * apiextensionsv1beta1.CustomResourceDefinition ) map [string ]struct {} {
1320
- versionsMap := map [string ]struct {}{}
1321
-
1322
- for _ , version := range crd .Spec .Versions {
1323
- versionsMap [version .Name ] = struct {}{}
1324
- }
1325
- if crd .Spec .Version != "" {
1326
- versionsMap [crd .Spec .Version ] = struct {}{}
1327
- }
1328
-
1329
- return versionsMap
1330
- }
1331
-
1332
- // Ensure all existing served versions are present in new CRD
1333
- func EnsureV1CRDVersions (oldCRD * apiextensionsv1.CustomResourceDefinition , newCRD * apiextensionsv1.CustomResourceDefinition ) error {
1334
- newCRDVersions := GetCRDV1VersionsMap (newCRD )
1335
-
1336
- for _ , oldVersion := range oldCRD .Spec .Versions {
1337
- if oldVersion .Served {
1338
- _ , ok := newCRDVersions [oldVersion .Name ]
1339
- if ! ok {
1340
- return fmt .Errorf ("New CRD (%s) must contain existing served versions (%s)" , oldCRD .Name , oldVersion .Name )
1341
- }
1342
- }
1343
- }
1344
- return nil
1345
- }
1346
-
1347
- // Ensure all existing served versions are present in new CRD
1348
- func EnsureV1Beta1CRDVersions (oldCRD * apiextensionsv1beta1.CustomResourceDefinition , newCRD * apiextensionsv1beta1.CustomResourceDefinition ) error {
1349
- newCRDVersions := GetCRDV1Beta1VersionsMap (newCRD )
1350
-
1351
- for _ , oldVersion := range oldCRD .Spec .Versions {
1352
- if oldVersion .Served {
1353
- _ , ok := newCRDVersions [oldVersion .Name ]
1354
- if ! ok {
1355
- return fmt .Errorf ("New CRD (%s) must contain existing served versions (%s)" , oldCRD .Name , oldVersion .Name )
1356
- }
1357
- }
1358
- }
1359
- if oldCRD .Spec .Version != "" {
1360
- _ , ok := newCRDVersions [oldCRD .Spec .Version ]
1361
- if ! ok {
1362
- return fmt .Errorf ("New CRD (%s) must contain existing version (%s)" , oldCRD .Name , oldCRD .Spec .Version )
1363
- }
1364
- }
1365
- return nil
1366
- }
1367
-
1368
1309
// Validate all existing served versions against new CRD's validation (if changed)
1369
1310
func validateV1CRDCompatibility (dynamicClient dynamic.Interface , oldCRD * apiextensionsv1.CustomResourceDefinition , newCRD * apiextensionsv1.CustomResourceDefinition ) error {
1370
1311
logrus .Debugf ("Comparing %#v to %#v" , oldCRD .Spec .Versions , newCRD .Spec .Versions )
@@ -1403,10 +1344,8 @@ func validateV1CRDCompatibility(dynamicClient dynamic.Interface, oldCRD *apiexte
1403
1344
// Validate all existing served versions against new CRD's validation (if changed)
1404
1345
func validateV1Beta1CRDCompatibility (dynamicClient dynamic.Interface , oldCRD * apiextensionsv1beta1.CustomResourceDefinition , newCRD * apiextensionsv1beta1.CustomResourceDefinition ) error {
1405
1346
logrus .Debugf ("Comparing %#v to %#v" , oldCRD .Spec .Validation , newCRD .Spec .Validation )
1406
- // If validation schema is unchanged, return right away
1407
- if reflect .DeepEqual (oldCRD .Spec .Validation , newCRD .Spec .Validation ) {
1408
- return nil
1409
- }
1347
+
1348
+ // TODO return early of all versions are equal
1410
1349
convertedCRD := & apiextensions.CustomResourceDefinition {}
1411
1350
if err := apiextensionsv1beta1 .Convert_v1beta1_CustomResourceDefinition_To_apiextensions_CustomResourceDefinition (newCRD , convertedCRD , nil ); err != nil {
1412
1351
return err
@@ -1451,55 +1390,6 @@ func validateExistingCRs(dynamicClient dynamic.Interface, gvr schema.GroupVersio
1451
1390
return nil
1452
1391
}
1453
1392
1454
- // Attempt to remove stored versions that have been deprecated before allowing
1455
- // those versions to be removed from the new CRD.
1456
- // The function may not always succeed as storedVersions requires at least one
1457
- // version. If there is only stored version, it won't be removed until a new
1458
- // stored version is added.
1459
- func removeDeprecatedV1StoredVersions (oldCRD * apiextensionsv1.CustomResourceDefinition , newCRD * apiextensionsv1.CustomResourceDefinition ) []string {
1460
- // StoredVersions requires to have at least one version.
1461
- if len (oldCRD .Status .StoredVersions ) <= 1 {
1462
- return nil
1463
- }
1464
-
1465
- newStoredVersions := []string {}
1466
- newCRDVersions := GetCRDV1VersionsMap (newCRD )
1467
- for _ , v := range oldCRD .Status .StoredVersions {
1468
- _ , ok := newCRDVersions [v ]
1469
- if ok {
1470
- newStoredVersions = append (newStoredVersions , v )
1471
- }
1472
- }
1473
-
1474
- if len (newStoredVersions ) < 1 {
1475
- return nil
1476
- } else {
1477
- return newStoredVersions
1478
- }
1479
- }
1480
-
1481
- func removeDeprecatedV1Beta1StoredVersions (oldCRD * apiextensionsv1beta1.CustomResourceDefinition , newCRD * apiextensionsv1beta1.CustomResourceDefinition ) []string {
1482
- // StoredVersions requires to have at least one version.
1483
- if len (oldCRD .Status .StoredVersions ) <= 1 {
1484
- return nil
1485
- }
1486
-
1487
- newStoredVersions := []string {}
1488
- newCRDVersions := GetCRDV1Beta1VersionsMap (newCRD )
1489
- for _ , v := range oldCRD .Status .StoredVersions {
1490
- _ , ok := newCRDVersions [v ]
1491
- if ok {
1492
- newStoredVersions = append (newStoredVersions , v )
1493
- }
1494
- }
1495
-
1496
- if len (newStoredVersions ) < 1 {
1497
- return nil
1498
- } else {
1499
- return newStoredVersions
1500
- }
1501
- }
1502
-
1503
1393
// ExecutePlan applies a planned InstallPlan to a namespace.
1504
1394
func (o * Operator ) ExecutePlan (plan * v1alpha1.InstallPlan ) error {
1505
1395
if plan .Status .Phase != v1alpha1 .InstallPlanPhaseInstalling {
0 commit comments