@@ -4,28 +4,27 @@ import (
4
4
"context"
5
5
"fmt"
6
6
7
- vmmv4 "github.com/nutanix/ntnx-api-golang-clients/vmm-go-client/v4/models/vmm/v4/content"
8
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9
-
10
7
prismv4 "github.com/nutanix-cloud-native/prism-go-client/v4"
8
+ vmmv4 "github.com/nutanix/ntnx-api-golang-clients/vmm-go-client/v4/models/vmm/v4/content"
11
9
12
10
capxv1 "github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/api/external/github.com/nutanix-cloud-native/cluster-api-provider-nutanix/api/v1beta1"
13
11
carenv1 "github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/api/v1alpha1"
14
12
"github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/api/variables"
15
13
"github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/pkg/webhook/preflight"
16
14
)
17
15
18
- func (n * Checker ) VMImageCheck (ctx context.Context ) preflight.CheckResult {
16
+ func (n * Checker ) VMImages (ctx context.Context ) preflight.CheckResult {
19
17
result := preflight.CheckResult {
18
+ Name : "VMImages" ,
20
19
Allowed : true ,
21
20
}
22
21
23
22
// Check control plane VM image.
24
23
clusterConfig , err := n .variablesGetter .ClusterConfig ()
25
24
if err != nil {
26
25
result .Error = true
27
- result .Causes = append ( result . Causes , metav1. StatusCause {
28
- Type : "VMImageCheck" ,
26
+ result .Allowed = false
27
+ result . Causes = append ( result . Causes , preflight. Cause {
29
28
Message : fmt .Sprintf ("failed to read clusterConfig variable: %s" , err ),
30
29
Field : "cluster.spec.topology.variables" ,
31
30
})
@@ -40,36 +39,32 @@ func (n *Checker) VMImageCheck(ctx context.Context) preflight.CheckResult {
40
39
)
41
40
}
42
41
43
- // If there is no worker topology, return early.
44
- if n .cluster .Spec .Topology .Workers == nil {
45
- return result
46
- }
47
-
48
42
// Check worker VM images.
49
- for _ , md := range n .cluster .Spec .Topology .Workers .MachineDeployments {
50
- workerConfig , err := n .variablesGetter .WorkerConfigForMachineDeployment (md )
51
- if err != nil {
52
- result .Error = true
53
- result .Causes = append (result .Causes , metav1.StatusCause {
54
- Type : "VMImageCheck" ,
55
- Message : fmt .Sprintf ("failed to read workerConfig variable: %s" , err ),
56
- Field : fmt .Sprintf (
57
- "cluster.spec.topology.workers.machineDeployments[.name=%s].variables.overrides" ,
58
- md .Name ,
59
- ),
60
- })
61
- }
62
- if workerConfig != nil && workerConfig .Nutanix != nil {
63
- n .vmImageCheckForMachineDetails (
64
- ctx ,
65
- clusterConfig ,
66
- & workerConfig .Nutanix .MachineDetails ,
67
- fmt .Sprintf (
68
- "workers.machineDeployments[.name=%s].variables.overrides[.name=workerConfig].value.nutanix.machineDetails" ,
69
- md .Name ,
70
- ),
71
- & result ,
72
- )
43
+ if n .cluster .Spec .Topology .Workers != nil {
44
+ for _ , md := range n .cluster .Spec .Topology .Workers .MachineDeployments {
45
+ workerConfig , err := n .variablesGetter .WorkerConfigForMachineDeployment (md )
46
+ if err != nil {
47
+ result .Error = true
48
+ result .Causes = append (result .Causes , preflight.Cause {
49
+ Message : fmt .Sprintf ("failed to read workerConfig variable: %s" , err ),
50
+ Field : fmt .Sprintf (
51
+ "cluster.spec.topology.workers.machineDeployments[.name=%s].variables.overrides" ,
52
+ md .Name ,
53
+ ),
54
+ })
55
+ }
56
+ if workerConfig != nil && workerConfig .Nutanix != nil {
57
+ n .vmImageCheckForMachineDetails (
58
+ ctx ,
59
+ clusterConfig ,
60
+ & workerConfig .Nutanix .MachineDetails ,
61
+ fmt .Sprintf (
62
+ "workers.machineDeployments[.name=%s].variables.overrides[.name=workerConfig].value.nutanix.machineDetails" ,
63
+ md .Name ,
64
+ ),
65
+ & result ,
66
+ )
67
+ }
73
68
}
74
69
}
75
70
@@ -86,8 +81,7 @@ func (n *Checker) vmImageCheckForMachineDetails(
86
81
if details .ImageLookup != nil {
87
82
result .Allowed = false
88
83
result .Error = true
89
- result .Causes = append (result .Causes , metav1.StatusCause {
90
- Type : "VMImageCheck" ,
84
+ result .Causes = append (result .Causes , preflight.Cause {
91
85
Message : "ImageLookup is not yet supported" ,
92
86
Field : field ,
93
87
})
@@ -99,8 +93,7 @@ func (n *Checker) vmImageCheckForMachineDetails(
99
93
if err != nil {
100
94
result .Allowed = false
101
95
result .Error = true
102
- result .Causes = append (result .Causes , metav1.StatusCause {
103
- Type : "VMImageCheck" ,
96
+ result .Causes = append (result .Causes , preflight.Cause {
104
97
Message : fmt .Sprintf ("failed to get Nutanix client: %s" , err ),
105
98
Field : field ,
106
99
})
@@ -111,8 +104,7 @@ func (n *Checker) vmImageCheckForMachineDetails(
111
104
if err != nil {
112
105
result .Allowed = false
113
106
result .Error = true
114
- result .Causes = append (result .Causes , metav1.StatusCause {
115
- Type : "VMImageCheck" ,
107
+ result .Causes = append (result .Causes , preflight.Cause {
116
108
Message : fmt .Sprintf ("failed to count matching VM Images: %s" , err ),
117
109
Field : field ,
118
110
})
@@ -121,8 +113,7 @@ func (n *Checker) vmImageCheckForMachineDetails(
121
113
122
114
if len (images ) != 1 {
123
115
result .Allowed = false
124
- result .Causes = append (result .Causes , metav1.StatusCause {
125
- Type : "VMImageCheck" ,
116
+ result .Causes = append (result .Causes , preflight.Cause {
126
117
Message : fmt .Sprintf ("expected to find 1 VM Image, found %d" , len (images )),
127
118
Field : field ,
128
119
})
0 commit comments