8000 Add VM name validation by darkowlzz · Pull Request #688 · weaveworks/ignite · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Dec 7, 2023. It is now read-only.

Add VM name validation #688

Merged
merged 2 commits into from
Sep 14, 2020
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Add VM name validation in ValidateVM
Add VM name validation using IsDNS1123Subdomain from k8s api-machinery
validator package.
  • Loading branch information
darkowlzz committed Sep 13, 2020
commit 9c9c4db59e0d52be13774eb447faa645f960472b
12 changes: 12 additions & 0 deletions pkg/apis/ignite/validation/validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@ import (
api "github.com/weaveworks/ignite/pkg/apis/ignite"
meta "github.com/weaveworks/ignite/pkg/apis/meta/v1alpha1"
"github.com/weaveworks/ignite/pkg/util"
"k8s.io/apimachinery/pkg/util/validation"
"k8s.io/apimachinery/pkg/util/validation/field"
)

// ValidateVM validates a VM object and collects all encountered errors
func ValidateVM(obj *api.VM) (allErrs field.ErrorList) {
allErrs = append(allErrs, ValidateVMName(obj.GetName(), field.NewPath("metadata.name"))...)
allErrs = append(allErrs, RequireOCIImageRef(&obj.Spec.Image.OCI, field.NewPath(".spec.image.oci"))...)
allErrs = append(allErrs, RequireOCIImageRef(&obj.Spec.Kernel.OCI, field.NewPath(".spec.kernel.oci"))...)
allErrs = append(allErrs, ValidateFileMappings(&obj.Spec.CopyFiles, field.NewPath(".spec.copyFiles"))...)
Expand All @@ -30,6 +32,16 @@ func RequireOCIImageRef(ref *meta.OCIImageRef, fldPath *field.Path) (allErrs fie
return
}

// ValidateVMName validates the VM name.
func ValidateVMName(name string, fldPath *field.Path) (allErrs field.ErrorList) {
errs := validation.IsDNS1123Subdomain(name)
for _, e := range errs {
allErrs = append(allErrs, field.Invalid(fldPath, name, e))
}

return
}

// ValidateFileMappings validates if the filemappings is valid
func ValidateFileMappings(mappings *[]api.FileMapping, fldPath *field.Path) (allErrs field.ErrorList) {
for i, mapping := range *mappings {
Expand Down
0