Skip to content

Commit 171bbf0

Browse files
committed
Return preflight.Cause instead of metav1.StatusCause
1 parent aece891 commit 171bbf0

File tree

2 files changed

+35
-45
lines changed

2 files changed

+35
-45
lines changed

pkg/webhook/preflight/nutanix/checker.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ func (n *Checker) Init(
3030
n.cluster = cluster
3131
n.clientGetter = &ClientGetter{client: client, cluster: cluster}
3232
n.variablesGetter = preflightutil.NewVariablesGetter(cluster)
33-
3433
return []preflight.Check{
35-
n.VMImageCheck,
34+
n.VMImages,
3635
}
3736
}

pkg/webhook/preflight/nutanix/image.go

Lines changed: 34 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,27 @@ import (
44
"context"
55
"fmt"
66

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-
107
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"
119

1210
capxv1 "github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/api/external/github.com/nutanix-cloud-native/cluster-api-provider-nutanix/api/v1beta1"
1311
carenv1 "github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/api/v1alpha1"
1412
"github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/api/variables"
1513
"github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/pkg/webhook/preflight"
1614
)
1715

18-
func (n *Checker) VMImageCheck(ctx context.Context) preflight.CheckResult {
16+
func (n *Checker) VMImages(ctx context.Context) preflight.CheckResult {
1917
result := preflight.CheckResult{
18+
Name: "VMImages",
2019
Allowed: true,
2120
}
2221

2322
// Check control plane VM image.
2423
clusterConfig, err := n.variablesGetter.ClusterConfig()
2524
if err != nil {
2625
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{
2928
Message: fmt.Sprintf("failed to read clusterConfig variable: %s", err),
3029
Field: "cluster.spec.topology.variables",
3130
})
@@ -40,36 +39,32 @@ func (n *Checker) VMImageCheck(ctx context.Context) preflight.CheckResult {
4039
)
4140
}
4241

43-
// If there is no worker topology, return early.
44-
if n.cluster.Spec.Topology.Workers == nil {
45-
return result
46-
}
47-
4842
// 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+
}
7368
}
7469
}
7570

@@ -86,8 +81,7 @@ func (n *Checker) vmImageCheckForMachineDetails(
8681
if details.ImageLookup != nil {
8782
result.Allowed = false
8883
result.Error = true
89-
result.Causes = append(result.Causes, metav1.StatusCause{
90-
Type: "VMImageCheck",
84+
result.Causes = append(result.Causes, preflight.Cause{
9185
Message: "ImageLookup is not yet supported",
9286
Field: field,
9387
})
@@ -99,8 +93,7 @@ func (n *Checker) vmImageCheckForMachineDetails(
9993
if err != nil {
10094
result.Allowed = false
10195
result.Error = true
102-
result.Causes = append(result.Causes, metav1.StatusCause{
103-
Type: "VMImageCheck",
96+
result.Causes = append(result.Causes, preflight.Cause{
10497
Message: fmt.Sprintf("failed to get Nutanix client: %s", err),
10598
Field: field,
10699
})
@@ -111,8 +104,7 @@ func (n *Checker) vmImageCheckForMachineDetails(
111104
if err != nil {
112105
result.Allowed = false
113106
result.Error = true
114-
result.Causes = append(result.Causes, metav1.StatusCause{
115-
Type: "VMImageCheck",
107+
result.Causes = append(result.Causes, preflight.Cause{
116108
Message: fmt.Sprintf("failed to count matching VM Images: %s", err),
117109
Field: field,
118110
})
@@ -121,8 +113,7 @@ func (n *Checker) vmImageCheckForMachineDetails(
121113

122114
if len(images) != 1 {
123115
result.Allowed = false
124-
result.Causes = append(result.Causes, metav1.StatusCause{
125-
Type: "VMImageCheck",
116+
result.Causes = append(result.Causes, preflight.Cause{
126117
Message: fmt.Sprintf("expected to find 1 VM Image, found %d", len(images)),
127118
Field: field,
128119
})

0 commit comments

Comments
 (0)