@@ -12,63 +12,61 @@ import (
12
12
const finalizer = "finalizer.flagger.app"
13
13
14
14
func (c * Controller ) finalize (old interface {}) error {
15
-
16
- r , ok := old .(* flaggerv1.Canary )
15
+ canary , ok := old .(* flaggerv1.Canary )
17
16
if ! ok {
18
17
return fmt .Errorf ("received unexpected object: %v" , old )
19
18
}
20
19
21
- _ , err := c .flaggerClient .FlaggerV1beta1 ().Canaries (r .Namespace ).Get (r .Name , metav1.GetOptions {})
20
+ _ , err := c .flaggerClient .FlaggerV1beta1 ().Canaries (canary .Namespace ).Get (canary .Name , metav1.GetOptions {})
22
21
if err != nil {
23
22
return fmt .Errorf ("get query error: %w" , err )
24
23
}
25
24
26
25
// Retrieve a controller
27
- canaryController := c .canaryFactory .Controller (r .Spec .TargetRef .Kind )
26
+ canaryController := c .canaryFactory .Controller (canary .Spec .TargetRef .Kind )
28
27
29
28
// Set the status to terminating if not already in that state
30
- if r .Status .Phase != flaggerv1 .CanaryPhaseTerminating {
31
- if err := canaryController .SetStatusPhase (r , flaggerv1 .CanaryPhaseTerminating ); err != nil {
29
+ if canary .Status .Phase != flaggerv1 .CanaryPhaseTerminating {
30
+ if err := canaryController .SetStatusPhase (canary , flaggerv1 .CanaryPhaseTerminating ); err != nil {
32
31
return fmt .Errorf ("failed to update status: %w" , err )
33
32
}
34
33
35
34
// record event
36
- c .recordEventInfof (r , "Terminating canary %s.%s" , r .Name , r .Namespace )
35
+ c .recordEventInfof (canary , "Terminating canary %s.%s" , canary .Name , canary .Namespace )
37
36
}
38
37
39
- err = canaryController .Finalize (r )
38
+ // Revert the Kubernetes deployment or daemonset
39
+ err = canaryController .Finalize (canary )
40
40
if err != nil {
41
41
return fmt .Errorf ("failed to revert target: %w" , err )
42
42
}
43
- c .logger .Infof ("%s.%s kind %s reverted" , r .Name , r .Namespace , r .Spec .TargetRef .Kind )
43
+ c .logger .Infof ("%s.%s kind %s reverted" , canary .Name , canary .Namespace , canary .Spec .TargetRef .Kind )
44
44
45
45
// Ensure that targetRef has met a ready state
46
- c .logger .Infof ("Checking is canary is ready %s.%s" , r .Name , r .Namespace )
47
- _ , err = canaryController .IsCanaryReady (r )
46
+ c .logger .Infof ("Checking is canary is ready %s.%s" , canary .Name , canary .Namespace )
47
+ _ , err = canaryController .IsCanaryReady (canary )
48
48
if err != nil {
49
49
return fmt .Errorf ("canary not ready during finalizing: %w" , err )
50
50
}
51
51
52
- c .logger .Infof ("%s.%s moving forward with router finalizing" , r .Name , r .Namespace )
53
- labelSelector , ports , err := canaryController .GetMetadata (r )
52
+ labelSelector , ports , err := canaryController .GetMetadata (canary )
54
53
if err != nil {
55
54
return fmt .Errorf ("failed to get metadata for router finalizing: %w" , err )
56
55
}
57
56
58
- // Revert the router
59
- router := c .routerFactory .KubernetesRouter (r .Spec .TargetRef .Kind , labelSelector , map [string ]string {}, ports )
60
- if err := router .Finalize (r ); err != nil {
57
+ // Revert the Kubernetes service
58
+ router := c .routerFactory .KubernetesRouter (canary .Spec .TargetRef .Kind , labelSelector , map [string ]string {}, ports )
59
+ if err := router .Finalize (canary ); err != nil {
61
60
return fmt .Errorf ("failed revert router: %w" , err )
62
61
}
63
- c .logger .Infof ("%s.%s router reverted" , r .Name , r .Namespace )
62
+ c .logger .Infof ("%s.%s router reverted" , canary .Name , canary .Namespace )
64
63
65
- // TODO if I can't revert the mesh continue on?
66
- // Revert the Mesh
67
- if err := c .revertMesh (r ); err != nil {
64
+ // Revert the mesh objects
65
+ if err := c .revertMesh (canary ); err != nil {
68
66
return fmt .Errorf ("failed to revert mesh: %w" , err )
69
67
}
70
68
71
- c .logger .Infof ("Finalization complete for %s.%s" , r .Name , r .Namespace )
69
+ c .logger .Infof ("Finalization complete for %s.%s" , canary .Name , canary .Namespace )
72
70
return nil
73
71
}
74
72
0 commit comments