func()

in pkg/utils/cloudconfig/azure/config.go [85:138]


func (cfg *CloudConfig) validate() error {
	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.ResourceGroup == "" {
		return fmt.Errorf("resource group is empty")
	}

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

	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 not specified, apply default rate limit config
	if cfg.Config == nil {
		cfg.Config = &ratelimit.Config{CloudProviderRateLimit: true}
	}

	if cfg.CloudProviderRateLimit {
		// Assign read rate limit defaults if no configuration was passed in.
		if cfg.CloudProviderRateLimitQPS == 0 {
			cfg.CloudProviderRateLimitQPS = consts.RateLimitQPSDefault
		}
		if cfg.CloudProviderRateLimitBucket == 0 {
			cfg.CloudProviderRateLimitBucket = consts.RateLimitBucketDefault
		}
		// Assign write rate limit defaults if no configuration was passed in.
		if cfg.CloudProviderRateLimitQPSWrite == 0 {
			cfg.CloudProviderRateLimitQPSWrite = cfg.CloudProviderRateLimitQPS
		}
		if cfg.CloudProviderRateLimitBucketWrite == 0 {
			cfg.CloudProviderRateLimitBucketWrite = cfg.CloudProviderRateLimitBucket
		}
	}

	return nil
}