зеркало из https://github.com/Azure/acs-engine.git
Add validation when PodCidr is set in the Azure CNI case. (#3562)
This commit is contained in:
Родитель
ed2b9595fc
Коммит
13210037db
|
@ -5,6 +5,9 @@ import "github.com/pkg/errors"
|
|||
// ErrorInvalidNetworkProfile error
|
||||
var ErrorInvalidNetworkProfile = errors.New("ServiceCidr, DNSServiceIP, DockerBridgeCidr should all be empty or neither should be empty")
|
||||
|
||||
// ErrorPodCidrNotSetableInAzureCNI error
|
||||
var ErrorPodCidrNotSetableInAzureCNI = errors.New("PodCidr should not be set when network plugin is set to Azure")
|
||||
|
||||
// ErrorInvalidNetworkPlugin error
|
||||
var ErrorInvalidNetworkPlugin = errors.New("Network plugin should be either Azure or Kubenet")
|
||||
|
||||
|
|
|
@ -211,6 +211,11 @@ func validateVNET(a *Properties) error {
|
|||
} else {
|
||||
return ErrorInvalidNetworkProfile
|
||||
}
|
||||
|
||||
// PodCidr should not be set for Azure CNI
|
||||
if n.NetworkPlugin == Azure && n.PodCidr != "" {
|
||||
return ErrorPodCidrNotSetableInAzureCNI
|
||||
}
|
||||
default:
|
||||
return ErrorInvalidNetworkPlugin
|
||||
}
|
||||
|
|
|
@ -129,6 +129,35 @@ func TestValidateVNET(t *testing.T) {
|
|||
t.Errorf("Failed to test validate VNET: expected %s but got %s", ErrorInvalidNetworkProfile, err.Error())
|
||||
}
|
||||
|
||||
// network profile has NetworkPlugin set to azure and PodCidr set, should fail
|
||||
n = &NetworkProfile{
|
||||
NetworkPlugin: NetworkPlugin("azure"),
|
||||
PodCidr: "a.b.c.d",
|
||||
}
|
||||
|
||||
p = []*AgentPoolProfile{
|
||||
{
|
||||
VnetSubnetID: vnetSubnetID1,
|
||||
MaxPods: &maxPods1,
|
||||
},
|
||||
{
|
||||
VnetSubnetID: vnetSubnetID2,
|
||||
MaxPods: &maxPods2,
|
||||
},
|
||||
}
|
||||
|
||||
a = &Properties{
|
||||
NetworkProfile: n,
|
||||
AgentPoolProfiles: p,
|
||||
}
|
||||
|
||||
if err := validateVNET(a); err != ErrorPodCidrNotSetableInAzureCNI {
|
||||
if err == nil {
|
||||
t.Errorf("Failed to test validate VNET: expected %s but got no error", ErrorPodCidrNotSetableInAzureCNI)
|
||||
}
|
||||
t.Errorf("Failed to test validate VNET: expected %s but got %s", ErrorPodCidrNotSetableInAzureCNI, err.Error())
|
||||
}
|
||||
|
||||
// NetworkPlugin is not azure or kubenet
|
||||
n = &NetworkProfile{
|
||||
NetworkPlugin: NetworkPlugin("none"),
|
||||
|
|
Загрузка…
Ссылка в новой задаче