func NewRunnerGroupSpecFromURI()

in runner/group/parse.go [42:68]


func NewRunnerGroupSpecFromURI(clientset kubernetes.Interface, specURI string) (*types.RunnerGroupSpec, error) {
	u, err := url.Parse(specURI)
	if err != nil {
		return nil, fmt.Errorf("invalid runner group uri %s: %w", specURI, err)
	}

	switch typ := SpecURIType(u.Scheme); typ {
	case SpecURITypeFile:
		return parseRunnerGroupSpecFromFile(u.Path)
	case SpecURITypeConfigMap:
		var (
			namespace = "default"
			specName  = "spec"
		)

		if ns := u.Query().Get("namespace"); len(ns) > 0 {
			namespace = ns
		}

		if name := u.Query().Get("specName"); len(name) > 0 {
			specName = name
		}
		return parseRunnerGroupSpecFromConfigMap(clientset, namespace, u.Host, specName)
	default:
		return nil, fmt.Errorf("unsupported RunnerGroupSpec's URI scheme: %v", typ)
	}
}