Skip to content

Commit

Permalink
Validate Calico cluster config
Browse files Browse the repository at this point in the history
  • Loading branch information
tmjd committed May 3, 2018
1 parent 5fc23db commit 12f36e0
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions pkg/apis/kops/validation/validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/model/components"
)

var validDockerConfigStorageValues = []string{"aufs", "btrfs", "devicemapper", "overlay", "overlay2", "zfs"}
Expand Down Expand Up @@ -92,6 +93,9 @@ func validateClusterSpec(spec *kops.ClusterSpec, fieldPath *field.Path) field.Er

if spec.Networking != nil {
allErrs = append(allErrs, validateNetworking(spec.Networking, fieldPath.Child("networking"))...)
if spec.Networking.Calico != nil {
allErrs = append(allErrs, validateNetworkingCalico(spec.Networking.Calico, spec.EtcdClusters[0], fieldPath.Child("networking").Child("Calico"))...)
}
}

return allErrs
Expand Down Expand Up @@ -249,3 +253,26 @@ func validateNetworkingFlannel(v *kops.FlannelNetworkingSpec, fldPath *field.Pat

return allErrs
}

func validateNetworkingCalico(v *kops.CalicoNetworkingSpec, e *kops.EtcdClusterSpec, fldPath *field.Path) field.ErrorList {
allErrs := field.ErrorList{}
switch v.APIVersion {
case "":
// OK:
case "v3":
if e.Version == "" && components.DefaultEtcdVersion[0] != '3' {
allErrs = append(allErrs,
field.Invalid(fldPath.Child("APIVersion"), v.APIVersion,
fmt.Sprintf("Unable to use v3 when ETCD version for %s cluster is default(%s)",
e.Name, components.DefaultEtcdVersion)))
} else if e.Version != "" && e.Version[0] != '3' {
allErrs = append(allErrs,
field.Invalid(fldPath.Child("APIVersion"), v.APIVersion,
fmt.Sprintf("Unable to use v3 when ETCD version for %s cluster is %s", e.Name, e.Version)))
}
default:
allErrs = append(allErrs, field.NotSupported(fldPath.Child("APIVersion"), v.APIVersion, []string{"v3"}))
}

return allErrs
}

0 comments on commit 12f36e0

Please sign in to comment.