func()

in pkg/config/config.go [40:96]


func (cfg *CloudConfig) DefaultAndValidate() error {
	cfg.trimSpace()

	if cfg.Cloud == "" {
		return fmt.Errorf("cloud is empty")
	}

	if cfg.Location == "" {
		return fmt.Errorf("location is empty")
	}

	if cfg.SubscriptionID == "" {
		return fmt.Errorf("subscription ID is empty")
	}

	if !cfg.UseManagedIdentityExtension {
		if cfg.UserAssignedIdentityID != "" {
			return fmt.Errorf("useManagedIdentityExtension needs to be true when userAssignedIdentityID is provided")
		}
		if cfg.AADClientID == "" || cfg.AADClientSecret == "" {
			return fmt.Errorf("AAD client ID or AAD client secret is empty")
		}
	}

	if cfg.ResourceGroup == "" {
		return fmt.Errorf("resource group is empty")
	}

	if cfg.VnetName == "" {
		return fmt.Errorf("virtual network name is empty")
	}

	if cfg.SubnetName == "" {
		return fmt.Errorf("virtual network subnet name is empty")
	}

	// default values
	if cfg.UserAgent == "" {
		cfg.UserAgent = consts.DefaultUserAgent
	}

	if cfg.LoadBalancerResourceGroup == "" {
		cfg.LoadBalancerResourceGroup = cfg.ResourceGroup
	}

	if cfg.VnetResourceGroup == "" {
		cfg.VnetResourceGroup = cfg.ResourceGroup
	}

	if cfg.RateLimitConfig == nil {
		cfg.RateLimitConfig = &RateLimitConfig{
			CloudProviderRateLimit: false,
		}
	}

	return nil
}