in cmd/aws-vpc-cni/main.go [335:387]
func validateEnvVars() bool {
pluginLogFile := utils.GetEnv(envPluginLogFile, defaultPluginLogFile)
if pluginLogFile == "stdout" {
log.Errorf("AWS_VPC_K8S_PLUGIN_LOG_FILE cannot be set to stdout")
return false
}
// Validate that veth prefix is less than or equal to four characters and not in reserved set: (eth, lo, vlan)
vethPrefix := utils.GetEnv(envVethPrefix, defaultVethPrefix)
if len(vethPrefix) > 4 {
log.Errorf("AWS_VPC_K8S_CNI_VETHPREFIX cannot be longer than 4 characters")
return false
}
if vethPrefix == "eth" || vethPrefix == "lo" || vethPrefix == "vlan" {
log.Errorf("AWS_VPC_K8S_CNI_VETHPREFIX cannot be set to reserved values 'eth', 'vlan', or 'lo'")
return false
}
// When ENABLE_POD_ENI is set, validate security group enforcing mode
enablePodEni := utils.GetBoolAsStringEnvVar(envEnablePodEni, defaultEnablePodEni)
if enablePodEni {
podSGEnforcingMode := utils.GetEnv(envPodSGEnforcingMode, defaultPodSGEnforcingMode)
if podSGEnforcingMode != "strict" && podSGEnforcingMode != "standard" {
log.Errorf("%s must be set to either 'strict' or 'standard'", envPodSGEnforcingMode)
return false
}
}
// Validate that IP_COOLDOWN_PERIOD is a valid integer
ipCooldownPeriod, err, input := utils.GetIntFromStringEnvVar(envIPCooldownPeriod, defaultIPCooldownPeriod)
if err != nil || ipCooldownPeriod < 0 {
log.Errorf("IP_COOLDOWN_PERIOD MUST be a valid positive integer. %s is invalid", input)
return false
}
// Validate MTU value for ENIs and pods
if !validateMTU(envEniMTU) || !validateMTU(envPodMTU) {
return false
}
prefixDelegationEn := utils.GetBoolAsStringEnvVar(envEnPrefixDelegation, defaultEnPrefixDelegation)
warmIPTarget := utils.GetEnv(envWarmIPTarget, "0")
warmPrefixTarget := utils.GetEnv(envWarmPrefixTarget, "0")
minimumIPTarget := utils.GetEnv(envMinIPTarget, "0")
// Note that these string values should probably be cast to integers, but the comparison for values greater than 0 works either way
if prefixDelegationEn && (warmIPTarget <= "0" && warmPrefixTarget <= "0" && minimumIPTarget <= "0") {
log.Errorf("Setting WARM_PREFIX_TARGET = 0 is not supported while WARM_IP_TARGET/MINIMUM_IP_TARGET is not set. Please configure either one of the WARM_{PREFIX/IP}_TARGET or MINIMUM_IP_TARGET env variables")
return false
}
return true
}