diff --git a/apis/validation.go b/apis/validation.go index 4f41e55..dc81b96 100644 --- a/apis/validation.go +++ b/apis/validation.go @@ -2,6 +2,7 @@ package apis import ( "fmt" + "net" "github.com/platform9/nodeadm/constants" ) @@ -23,7 +24,7 @@ func ValidateInit(config *InitConfiguration) []error { } else { // Pod subnet was set through MasterConfiguration.Networking.PodSubnet if config.MasterConfiguration.Networking.PodSubnet != config.Networking.PodSubnet { - errorList = append(errorList, fmt.Errorf("Configuration conflict: Networking.PodSubnet=%q, MasterConfiguration.Networking.PodSubnet=%q. Values should be identical, or MasterConfiguration.Networking.PodSubnet omitted.", + errorList = append(errorList, fmt.Errorf("configuration conflict: Networking.PodSubnet=%q, MasterConfiguration.Networking.PodSubnet=%q. Values should be identical, or MasterConfiguration.Networking.PodSubnet omitted", config.Networking.PodSubnet, config.MasterConfiguration.Networking.PodSubnet)) } } @@ -31,5 +32,12 @@ func ValidateInit(config *InitConfiguration) []error { errorList = append(errorList, fmt.Errorf("configuration conflict: Networking.DNSDomain=%q, MasterConfiguration.Networking.DNSDomain=%q. Values should be identical, or MasterConfiguration.Networking.DNSDomain omitted", config.Networking.DNSDomain, config.MasterConfiguration.Networking.DNSDomain)) } + if config.VIPConfiguration.RouterID != -1 { + iface := config.VIPConfiguration.NetworkInterface + _, err := net.InterfaceByName(iface) + if err != nil { + errorList = append(errorList, fmt.Errorf("configuration conflict: VIPConfiguration.NetworkInterface=%q. %v", iface, err)) + } + } return errorList }