@@ -32,50 +32,68 @@ import (
3232)
3333
3434var _ = Describe ("Decommission Controller" , func () {
35- var decomReconciler * NodeDecommissionReconciler
36- const nodeName = "node-test"
35+ const (
36+ namespaceName = "namespace-test"
37+ )
38+ var (
39+ r * NodeDecommissionReconciler
40+ nodeName = types.NamespacedName {Name : "node-test" }
41+ reconcileReq = ctrl.Request {
42+ NamespacedName : nodeName ,
43+ }
44+ )
3745
38- BeforeEach (func (ctx context. Context ) {
39- decomReconciler = & NodeDecommissionReconciler {
46+ BeforeEach (func (ctx SpecContext ) {
47+ r = & NodeDecommissionReconciler {
4048 Client : k8sClient ,
4149 Scheme : k8sClient .Scheme (),
4250 }
4351
4452 By ("creating the namespace for the reconciler" )
45- ns := & corev1.Namespace {ObjectMeta : metav1.ObjectMeta {Name : "monsoon3" }}
53+ ns := & corev1.Namespace {ObjectMeta : metav1.ObjectMeta {Name : namespaceName }}
4654 Expect (client .IgnoreAlreadyExists (k8sClient .Create (ctx , ns ))).To (Succeed ())
4755
56+ DeferCleanup (func (ctx SpecContext ) {
57+ Expect (k8sClient .Delete (ctx , ns )).To (Succeed ())
58+ })
59+
4860 By ("creating the core resource for the Kind Node" )
49- resource := & corev1.Node {
61+ node := & corev1.Node {
5062 ObjectMeta : metav1.ObjectMeta {
51- Name : nodeName ,
63+ Name : nodeName . Name ,
5264 Labels : map [string ]string {labelEvictionRequired : "true" },
5365 },
5466 }
55- Expect (k8sClient .Create (ctx , resource )).To (Succeed ())
67+ Expect (k8sClient .Create (ctx , node )).To (Succeed ())
68+ DeferCleanup (func (ctx SpecContext ) {
69+ Expect (client .IgnoreNotFound (k8sClient .Delete (ctx , node ))).To (Succeed ())
70+ })
5671
57- By ("Create the hypervisor resource" )
72+ By ("Create the hypervisor resource with lifecycle enabled " )
5873 hypervisor := & kvmv1.Hypervisor {
5974 ObjectMeta : metav1.ObjectMeta {
60- Name : nodeName ,
75+ Name : nodeName . Name ,
6176 },
6277 Spec : kvmv1.HypervisorSpec {
6378 LifecycleEnabled : true ,
6479 },
6580 }
6681 Expect (k8sClient .Create (ctx , hypervisor )).To (Succeed ())
82+ DeferCleanup (func (ctx SpecContext ) {
83+ Expect (k8sClient .Delete (ctx , hypervisor )).To (Succeed ())
84+ })
6785 })
6886
6987 AfterEach (func (ctx context.Context ) {
70- node := & corev1.Node {ObjectMeta : metav1.ObjectMeta {Name : nodeName }}
88+ node := & corev1.Node {ObjectMeta : metav1.ObjectMeta {Name : nodeName . Name }}
7189 By ("Cleanup the specific node and hypervisor resource" )
7290 Expect (client .IgnoreNotFound (k8sClient .Delete (ctx , node ))).To (Succeed ())
7391
7492 // Due to the decommissioning finalizer, we need to reconcile once more to delete the node completely
7593 req := ctrl.Request {
76- NamespacedName : types.NamespacedName {Name : nodeName },
94+ NamespacedName : types.NamespacedName {Name : nodeName . Name },
7795 }
78- _ , err := decomReconciler .Reconcile (ctx , req )
96+ _ , err := r .Reconcile (ctx , req )
7997 Expect (err ).NotTo (HaveOccurred ())
8098
8199 nodelist := & corev1.NodeList {}
@@ -84,14 +102,14 @@ var _ = Describe("Decommission Controller", func() {
84102 })
85103
86104 Context ("When reconciling a node" , func () {
87-
88- It ("should successfully reconcile the resource" , func (ctx context.Context ) {
89- By ("ConditionType the created resource" )
90- req := ctrl.Request {
91- NamespacedName : types.NamespacedName {Name : nodeName },
92- }
93- _ , err := decomReconciler .Reconcile (ctx , req )
105+ It ("should set the finalizer" , func (ctx context.Context ) {
106+ By ("reconciling the created resource" )
107+ _ , err := r .Reconcile (ctx , reconcileReq )
94108 Expect (err ).NotTo (HaveOccurred ())
109+ node := & corev1.Node {}
110+
111+ Expect (k8sClient .Get (ctx , nodeName , node )).To (Succeed ())
112+ Expect (node .Finalizers ).To (ContainElement (decommissionFinalizerName ))
95113 })
96114 })
97115})
0 commit comments