Skip to content

Commit

Permalink
spidermultusconfig: validate customcniconfig if is valid
Browse files Browse the repository at this point in the history
  • Loading branch information
cyclinder committed Aug 8, 2023
1 parent 92915e0 commit 4c2866f
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
4 changes: 4 additions & 0 deletions pkg/multuscniconfig/multusconfig_informer.go
Original file line number Diff line number Diff line change
Expand Up @@ -415,8 +415,12 @@ func generateNetAttachDef(netAttachName string, multusConf *spiderpoolv2beta1.Sp
}
case CustomType:
if multusConfSpec.CustomCNIConfig != nil && len(*multusConfSpec.CustomCNIConfig) > 0 {
if !json.Valid([]byte(*multusConfSpec.CustomCNIConfig)) {
return nil, fmt.Errorf("customCniConfig isn't a valid JSON encoding")
}
confStr = *multusConfSpec.CustomCNIConfig
}

default:
// It's impossible get into the default branch
return nil, fmt.Errorf("%w: unrecognized CNI type %s", constant.ErrWrongInput, multusConfSpec.CniType)
Expand Down
7 changes: 7 additions & 0 deletions pkg/multuscniconfig/multusconfig_validate.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
package multuscniconfig

import (
"encoding/json"
"fmt"

"k8s.io/apimachinery/pkg/util/validation/field"
Expand Down Expand Up @@ -84,6 +85,12 @@ func validateCNIConfig(multusConfig *spiderpoolv2beta1.SpiderMultusConfig) *fiel
if multusConfig.Spec.MacvlanConfig != nil || multusConfig.Spec.IPVlanConfig != nil || multusConfig.Spec.SriovConfig != nil {
return field.Forbidden(cniTypeField, fmt.Sprintf("the cniType %s only supports %s, please remove other CNI configs", CustomType, customCniConfigField.String()))
}

if multusConfig.Spec.CustomCNIConfig != nil && *multusConfig.Spec.CustomCNIConfig != "" {
if !json.Valid([]byte(*multusConfig.Spec.CustomCNIConfig)) {
return field.Forbidden(customCniConfigField, fmt.Sprintf("cusstomCniConfig is invalid json format"))

Check failure on line 91 in pkg/multuscniconfig/multusconfig_validate.go

View workflow job for this annotation

GitHub Actions / lint-golang

S1039: unnecessary use of fmt.Sprintf (gosimple)
}
}
}

if multusConfig.Spec.CoordinatorConfig != nil {
Expand Down

0 comments on commit 4c2866f

Please sign in to comment.