func()

in pkg/config/config.go [55:110]


func (c *Config) Validate() error {
	if c.NS == "" {
		return errors.New("--namespace is required")
	}
	if c.Registry == "" {
		return errors.New("--registry is required")
	}
	if c.MSIClientID == "" {
		return errors.New("--msi is required")
	}
	if c.TenantID == "" {
		return errors.New("--tenant-id is required")
	}
	if c.Cloud == "" {
		return errors.New("--cloud is required")
	}
	if c.Location == "" {
		return errors.New("--location is required")
	}
	if c.ConcurrencyWatchdogThres <= 100 {
		return errors.New("--concurrency-watchdog-threshold must be greater than 100")
	}
	if c.ConcurrencyWatchdogVotes < 1 {
		return errors.New("--concurrency-watchdog-votes must be a positive number")
	}
	if c.OperatorDeployment == "" {
		return errors.New("--operator-deployment is required")
	}

	if c.ClusterUid == "" {
		return errors.New("--cluster-uid is required")
	}

	if dnsZonesString != "" {
		if err := c.ParseAndValidateZoneIDs(dnsZonesString); err != nil {
			return err
		}
	}

	if c.DnsSyncInterval <= 0 {
		c.DnsSyncInterval = defaultDnsSyncInterval
	}

	crdPathStat, err := os.Stat(c.CrdPath)
	if os.IsNotExist(err) {
		return fmt.Errorf("crd path %s does not exist", c.CrdPath)
	}
	if err != nil {
		return fmt.Errorf("checking crd path %s: %s", c.CrdPath, err)
	}
	if !crdPathStat.IsDir() {
		return fmt.Errorf("crd path %s is not a directory", c.CrdPath)
	}

	return nil
}