Skip to content

Commit 27c14a9

Browse files
committed
lint: fix checks for the json encoding function.
1 parent 9881385 commit 27c14a9

File tree

4 files changed

+52
-18
lines changed

4 files changed

+52
-18
lines changed

.golangci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ linters:
1818
- dupword
1919
- durationcheck
2020
- errcheck
21-
# - errchkjson
21+
- errchkjson
2222
- exportloopref
2323
- gci
2424
# - ginkgolinter

packaging/flavorgen/cmd/root.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,11 @@ func generateSingle(flavor string) (string, error) {
132132
case flavors.ClusterClass:
133133
objs = flavors.ClusterClassTemplateWithKubeVIP()
134134
case flavors.ClusterTopology:
135-
objs = flavors.ClusterTopologyTemplateKubeVIP()
135+
clusterTopologyTemplateKubeVIP, err := flavors.ClusterTopologyTemplateKubeVIP()
136+
if err != nil {
137+
return "", errors.Wrap(err, "failed to create ClusterTopologyTemplateKubeVIP")
138+
}
139+
objs = clusterTopologyTemplateKubeVIP
136140
replacements = append(replacements, util.Replacement{
137141
Kind: "Cluster",
138142
Name: "${CLUSTER_NAME}",

packaging/flavorgen/flavors/flavors.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package flavors
1919
import (
2020
"fmt"
2121

22+
"github.com/pkg/errors"
2223
"k8s.io/apimachinery/pkg/runtime"
2324

2425
"sigs.k8s.io/cluster-api-provider-vsphere/packaging/flavorgen/flavors/crs"
@@ -54,8 +55,11 @@ func ClusterClassTemplateWithKubeVIP() []runtime.Object {
5455
return ClusterClassTemplate
5556
}
5657

57-
func ClusterTopologyTemplateKubeVIP() []runtime.Object {
58-
cluster := newClusterClassCluster()
58+
func ClusterTopologyTemplateKubeVIP() ([]runtime.Object, error) {
59+
cluster, err := newClusterTopologyCluster()
60+
if err != nil {
61+
return nil, errors.Wrap(err, "failed to create ClusterTopologyTemplateKubeVIP")
62+
}
5963
identitySecret := newIdentitySecret()
6064
clusterResourceSet := newClusterResourceSet(cluster)
6165
crsResourcesCSI := crs.CreateCrsResourceObjectsCSI(&clusterResourceSet)
@@ -67,7 +71,7 @@ func ClusterTopologyTemplateKubeVIP() []runtime.Object {
6771
}
6872
MultiNodeTemplate = append(MultiNodeTemplate, crsResourcesCSI...)
6973
MultiNodeTemplate = append(MultiNodeTemplate, crsResourcesCPI...)
70-
return MultiNodeTemplate
74+
return MultiNodeTemplate, nil
7175
}
7276

7377
func MultiNodeTemplateWithKubeVIP() []runtime.Object {

packaging/flavorgen/flavors/generators.go

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"encoding/json"
2121
"fmt"
2222

23+
"github.com/pkg/errors"
2324
corev1 "k8s.io/api/core/v1"
2425
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2526
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -94,7 +95,11 @@ systemd:
9495
EnvironmentFile=/run/metadata/*`
9596
)
9697

97-
func newClusterClassCluster() clusterv1.Cluster {
98+
func newClusterTopologyCluster() (clusterv1.Cluster, error) {
99+
variables, err := clusterTopologyVariables()
100+
if err != nil {
101+
return clusterv1.Cluster{}, errors.Wrap(err, "failed to create ClusterTopologyCluster template")
102+
}
98103
return clusterv1.Cluster{
99104
TypeMeta: metav1.TypeMeta{
100105
APIVersion: clusterv1.GroupVersion.String(),
@@ -121,17 +126,34 @@ func newClusterClassCluster() clusterv1.Cluster {
121126
},
122127
},
123128
},
124-
Variables: clusterTopologyVariables(),
129+
Variables: variables,
125130
},
126131
},
127-
}
132+
}, nil
128133
}
129134

130-
func clusterTopologyVariables() []clusterv1.ClusterVariable {
131-
sshKey, _ := json.Marshal(env.VSphereSSHAuthorizedKeysVar)
132-
controlPlaneIP, _ := json.Marshal(env.ControlPlaneEndpointVar)
133-
secretName, _ := json.Marshal(env.ClusterNameVar)
134-
kubeVipPod, _ := json.Marshal(kubeVIPPodYaml())
135+
func clusterTopologyVariables() ([]clusterv1.ClusterVariable, error) {
136+
sshKey, err := json.Marshal(env.VSphereSSHAuthorizedKeysVar)
137+
if err != nil {
138+
return nil, errors.Wrapf(err, "failed to json-encode variable VSphereSSHAuthorizedKeysVar: %q", env.VSphereSSHAuthorizedKeysVar)
139+
}
140+
controlPlaneIP, err := json.Marshal(env.ControlPlaneEndpointVar)
141+
if err != nil {
142+
return nil, errors.Wrapf(err, "failed to json-encode variable ControlPlaneEndpointVar: %q", env.ControlPlaneEndpointVar)
143+
}
144+
secretName, err := json.Marshal(env.ClusterNameVar)
145+
if err != nil {
146+
return nil, errors.Wrapf(err, "failed to json-encode variable ClusterNameVar: %q", env.ClusterNameVar)
147+
}
148+
kubeVipPodYaml := kubeVIPPodYaml()
149+
kubeVipPod, err := json.Marshal(kubeVipPodYaml)
150+
if err != nil {
151+
return nil, errors.Wrapf(err, "failed to json-encode variable kubeVipPod: %q", kubeVipPodYaml)
152+
}
153+
infraServerValue, err := getInfraServerValue()
154+
if err != nil {
155+
return nil, err
156+
}
135157
return []clusterv1.ClusterVariable{
136158
{
137159
Name: "sshKey",
@@ -142,7 +164,7 @@ func clusterTopologyVariables() []clusterv1.ClusterVariable {
142164
{
143165
Name: "infraServer",
144166
Value: apiextensionsv1.JSON{
145-
Raw: getInfraServerValue(),
167+
Raw: infraServerValue,
146168
},
147169
},
148170
{
@@ -164,15 +186,19 @@ func clusterTopologyVariables() []clusterv1.ClusterVariable {
164186
Raw: secretName,
165187
},
166188
},
167-
}
189+
}, nil
168190
}
169191

170-
func getInfraServerValue() []byte {
171-
byteArr, _ := json.Marshal(map[string]string{
192+
func getInfraServerValue() ([]byte, error) {
193+
byteArr, err := json.Marshal(map[string]string{
172194
"url": env.VSphereServerVar,
173195
"thumbprint": env.VSphereThumbprint,
174196
})
175-
return byteArr
197+
if err != nil {
198+
return nil, errors.Wrapf(err, "failed to json-encode, VSphereServerVar: %s, VSphereThumbprint: %s",
199+
env.VSphereServerVar, env.VSphereThumbprint)
200+
}
201+
return byteArr, nil
176202
}
177203

178204
func newVSphereCluster() infrav1.VSphereCluster {

0 commit comments

Comments
 (0)