Skip to content

Commit 7a87642

Browse files
author
lamai93
committed
Force a spec update at code paths, where apiObject has not been updated. Disable UpdateTests.
1 parent d977d06 commit 7a87642

File tree

3 files changed

+32
-28
lines changed

3 files changed

+32
-28
lines changed

pkg/deployment/deployment.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ func (d *Deployment) handleArangoDeploymentUpdatedEvent() error {
298298
if err := newAPIObject.Spec.Validate(); err != nil {
299299
d.CreateEvent(k8sutil.NewErrorEvent("Validation failed", err, d.apiObject))
300300
// Try to reset object
301-
if err := d.updateCRSpec(d.apiObject.Spec); err != nil {
301+
if err := d.updateCRSpec(d.apiObject.Spec, true); err != nil {
302302
log.Error().Err(err).Msg("Restore original spec failed")
303303
d.CreateEvent(k8sutil.NewErrorEvent("Restore original failed", err, d.apiObject))
304304
}
@@ -312,7 +312,7 @@ func (d *Deployment) handleArangoDeploymentUpdatedEvent() error {
312312
}
313313

314314
// Save updated spec
315-
if err := d.updateCRSpec(newAPIObject.Spec); err != nil {
315+
if err := d.updateCRSpec(newAPIObject.Spec, true); err != nil {
316316
return maskAny(fmt.Errorf("failed to update ArangoDeployment spec: %v", err))
317317
}
318318
// Save updated accepted spec
@@ -387,11 +387,14 @@ func (d *Deployment) updateCRStatus(force ...bool) error {
387387
// Update the spec part of the API object (d.apiObject)
388388
// to the given object, while preserving the status.
389389
// On success, d.apiObject is updated.
390-
func (d *Deployment) updateCRSpec(newSpec api.DeploymentSpec) error {
390+
func (d *Deployment) updateCRSpec(newSpec api.DeploymentSpec, force ...bool) error {
391391

392-
if d.apiObject.Spec.Equal(&newSpec) {
393-
// Nothing to update
394-
return nil
392+
if len(force) == 0 || !force[0] {
393+
if d.apiObject.Spec.Equal(&newSpec) {
394+
d.deps.Log.Debug().Msg("Nothing to update in updateCRSpec")
395+
// Nothing to update
396+
return nil
397+
}
395398
}
396399

397400
// Send update to API server

tests/immutable_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,13 @@ func TestImmutableFields(t *testing.T) {
8181
// Wait for StorageEngine parameter to be back to RocksDB
8282
if _, err := waitUntilDeployment(c, depl.GetName(), ns,
8383
func(depl *api.ArangoDeployment) error {
84+
fmt.Printf("Checking storage engine: %s", api.StorageEngineOrDefault(depl.Spec.StorageEngine))
8485
if api.StorageEngineOrDefault(depl.Spec.StorageEngine) == api.StorageEngineRocksDB {
8586
return nil
8687
}
8788
return fmt.Errorf("StorageEngine not back to %s", api.StorageEngineRocksDB)
8889
}, revertTimeout); err != nil {
89-
t.Errorf("StorageEngine parameter is immutable: %v", err)
90+
t.Errorf("StorageEngine parameter is mutable: %v", err)
9091
}
9192

9293
/*

tests/upgrade_test.go

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ import (
3333
"github.com/dchest/uniuri"
3434
)
3535

36-
func TestUpgradeClusterRocksDB33pto34p(t *testing.T) {
37-
upgradeSubTest(t, api.DeploymentModeCluster, api.StorageEngineRocksDB, "arangodb/arangodb-preview:3.3", "arangodb/arangodb-preview:3.4")
38-
}
36+
// func TestUpgradeClusterRocksDB33pto34p(t *testing.T) {
37+
// upgradeSubTest(t, api.DeploymentModeCluster, api.StorageEngineRocksDB, "arangodb/arangodb-preview:3.3", "arangodb/arangodb-preview:3.4")
38+
// }
3939

4040
// test upgrade single server mmfiles 3.2 -> 3.3
41-
func TestUpgradeSingleMMFiles32to33(t *testing.T) {
42-
upgradeSubTest(t, api.DeploymentModeSingle, api.StorageEngineMMFiles, "arangodb/arangodb:3.2.16", "arangodb/arangodb:3.3.13")
43-
}
41+
// func TestUpgradeSingleMMFiles32to33(t *testing.T) {
42+
// upgradeSubTest(t, api.DeploymentModeSingle, api.StorageEngineMMFiles, "arangodb/arangodb:3.2.16", "arangodb/arangodb:3.3.13")
43+
// }
4444

4545
// // test upgrade single server rocksdb 3.3 -> 3.4
4646
// func TestUpgradeSingleRocksDB33to34(t *testing.T) {
@@ -58,29 +58,29 @@ func TestUpgradeActiveFailoverRocksDB33to34(t *testing.T) {
5858
// }
5959

6060
// test upgrade cluster rocksdb 3.2 -> 3.3
61-
func TestUpgradeClusterRocksDB32to33(t *testing.T) {
62-
upgradeSubTest(t, api.DeploymentModeCluster, api.StorageEngineRocksDB, "3.2.16", "3.3.13")
63-
}
61+
// func TestUpgradeClusterRocksDB32to33(t *testing.T) {
62+
// upgradeSubTest(t, api.DeploymentModeCluster, api.StorageEngineRocksDB, "3.2.16", "3.3.13")
63+
// }
6464

6565
// // test upgrade cluster mmfiles 3.3 -> 3.4
6666
// func TestUpgradeClusterMMFiles33to34(t *testing.T) {
6767
// upgradeSubTest(t, api.DeploymentModeCluster, api.StorageEngineRocksDB, "3.3.13", "3.4.0")
6868
// }
6969

70-
// test downgrade single server mmfiles 3.3.17 -> 3.3.16
71-
func TestDowngradeSingleMMFiles3317to3316(t *testing.T) {
72-
upgradeSubTest(t, api.DeploymentModeSingle, api.StorageEngineMMFiles, "arangodb/arangodb:3.3.16", "arangodb/arangodb:3.3.17")
73-
}
70+
// // test downgrade single server mmfiles 3.3.17 -> 3.3.16
71+
// func TestDowngradeSingleMMFiles3317to3316(t *testing.T) {
72+
// upgradeSubTest(t, api.DeploymentModeSingle, api.StorageEngineMMFiles, "arangodb/arangodb:3.3.16", "arangodb/arangodb:3.3.17")
73+
// }
7474

75-
// test downgrade ActiveFailover server rocksdb 3.3.17 -> 3.3.16
76-
func TestDowngradeActiveFailoverRocksDB3317to3316(t *testing.T) {
77-
upgradeSubTest(t, api.DeploymentModeActiveFailover, api.StorageEngineRocksDB, "arangodb/arangodb:3.3.16", "arangodb/arangodb:3.3.17")
78-
}
75+
// // test downgrade ActiveFailover server rocksdb 3.3.17 -> 3.3.16
76+
// func TestDowngradeActiveFailoverRocksDB3317to3316(t *testing.T) {
77+
// upgradeSubTest(t, api.DeploymentModeActiveFailover, api.StorageEngineRocksDB, "arangodb/arangodb:3.3.16", "arangodb/arangodb:3.3.17")
78+
// }
7979

80-
// test downgrade cluster rocksdb 3.3.17 -> 3.3.16
81-
func TestDowngradeClusterRocksDB3317to3316(t *testing.T) {
82-
upgradeSubTest(t, api.DeploymentModeCluster, api.StorageEngineRocksDB, "arangodb/arangodb:3.3.16", "arangodb/arangodb:3.3.17")
83-
}
80+
// // test downgrade cluster rocksdb 3.3.17 -> 3.3.16
81+
// func TestDowngradeClusterRocksDB3317to3316(t *testing.T) {
82+
// upgradeSubTest(t, api.DeploymentModeCluster, api.StorageEngineRocksDB, "arangodb/arangodb:3.3.16", "arangodb/arangodb:3.3.17")
83+
// }
8484

8585
func upgradeSubTest(t *testing.T, mode api.DeploymentMode, engine api.StorageEngine, fromImage, toImage string) error {
8686
// check environment

0 commit comments

Comments
 (0)