@@ -17,6 +17,7 @@ limitations under the License.
17
17
package alpha
18
18
19
19
import (
20
+ "context"
20
21
"fmt"
21
22
"strings"
22
23
@@ -31,28 +32,28 @@ import (
31
32
)
32
33
33
34
// ObjectResumer will issue a resume on the specified cluster-api resource.
34
- func (r * rollout ) ObjectResumer (proxy cluster.Proxy , ref corev1.ObjectReference ) error {
35
+ func (r * rollout ) ObjectResumer (ctx context. Context , proxy cluster.Proxy , ref corev1.ObjectReference ) error {
35
36
switch ref .Kind {
36
37
case MachineDeployment :
37
- deployment , err := getMachineDeployment (proxy , ref .Name , ref .Namespace )
38
+ deployment , err := getMachineDeployment (ctx , proxy , ref .Name , ref .Namespace )
38
39
if err != nil || deployment == nil {
39
40
return errors .Wrapf (err , "failed to fetch %v/%v" , ref .Kind , ref .Name )
40
41
}
41
42
if ! deployment .Spec .Paused {
42
43
return errors .Errorf ("MachineDeployment is not currently paused: %v/%v\n " , ref .Kind , ref .Name ) //nolint:revive // MachineDeployment is intentionally capitalized.
43
44
}
44
- if err := resumeMachineDeployment (proxy , ref .Name , ref .Namespace ); err != nil {
45
+ if err := resumeMachineDeployment (ctx , proxy , ref .Name , ref .Namespace ); err != nil {
45
46
return err
46
47
}
47
48
case KubeadmControlPlane :
48
- kcp , err := getKubeadmControlPlane (proxy , ref .Name , ref .Namespace )
49
+ kcp , err := getKubeadmControlPlane (ctx , proxy , ref .Name , ref .Namespace )
49
50
if err != nil || kcp == nil {
50
51
return errors .Wrapf (err , "failed to fetch %v/%v" , ref .Kind , ref .Name )
51
52
}
52
53
if ! annotations .HasPaused (kcp .GetObjectMeta ()) {
53
54
return errors .Errorf ("KubeadmControlPlane is not currently paused: %v/%v\n " , ref .Kind , ref .Name ) //nolint:revive // KubeadmControlPlane is intentionally capitalized.
54
55
}
55
- if err := resumeKubeadmControlPlane (proxy , ref .Name , ref .Namespace ); err != nil {
56
+ if err := resumeKubeadmControlPlane (ctx , proxy , ref .Name , ref .Namespace ); err != nil {
56
57
return err
57
58
}
58
59
default :
@@ -62,17 +63,17 @@ func (r *rollout) ObjectResumer(proxy cluster.Proxy, ref corev1.ObjectReference)
62
63
}
63
64
64
65
// resumeMachineDeployment sets Paused to true in the MachineDeployment's spec.
65
- func resumeMachineDeployment (proxy cluster.Proxy , name , namespace string ) error {
66
+ func resumeMachineDeployment (ctx context. Context , proxy cluster.Proxy , name , namespace string ) error {
66
67
patch := client .RawPatch (types .MergePatchType , []byte (fmt .Sprintf ("{\" spec\" :{\" paused\" :%t}}" , false )))
67
68
68
- return patchMachineDeployment (proxy , name , namespace , patch )
69
+ return patchMachineDeployment (ctx , proxy , name , namespace , patch )
69
70
}
70
71
71
72
// resumeKubeadmControlPlane removes paused annotation.
72
- func resumeKubeadmControlPlane (proxy cluster.Proxy , name , namespace string ) error {
73
+ func resumeKubeadmControlPlane (ctx context. Context , proxy cluster.Proxy , name , namespace string ) error {
73
74
// In the paused annotation we must replace slashes to ~1, see https://datatracker.ietf.org/doc/html/rfc6901#section-3.
74
75
pausedAnnotation := strings .Replace (clusterv1 .PausedAnnotation , "/" , "~1" , - 1 )
75
76
patch := client .RawPatch (types .JSONPatchType , []byte (fmt .Sprintf ("[{\" op\" : \" remove\" , \" path\" : \" /metadata/annotations/%s\" }]" , pausedAnnotation )))
76
77
77
- return patchKubeadmControlPlane (proxy , name , namespace , patch )
78
+ return patchKubeadmControlPlane (ctx , proxy , name , namespace , patch )
78
79
}
0 commit comments