github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/orbiter/kinds/loadbalancers/loadbalancers.go (about)

     1  package loadbalancers
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/caos/orbos/internal/operator/orbiter"
     7  	"github.com/caos/orbos/internal/operator/orbiter/kinds/loadbalancers/dynamic"
     8  	"github.com/caos/orbos/mntr"
     9  	"github.com/caos/orbos/pkg/secret"
    10  	"github.com/caos/orbos/pkg/tree"
    11  )
    12  
    13  func GetQueryAndDestroyFunc(
    14  	monitor mntr.Monitor,
    15  	whitelist dynamic.WhiteListFunc,
    16  	loadBalancingTree *tree.Tree,
    17  	loadBalacingCurrent *tree.Tree,
    18  	finishedChan chan struct{},
    19  ) (
    20  	orbiter.QueryFunc,
    21  	orbiter.DestroyFunc,
    22  	orbiter.ConfigureFunc,
    23  	bool,
    24  	map[string]*secret.Secret,
    25  	error,
    26  ) {
    27  
    28  	switch loadBalancingTree.Common.Kind {
    29  	//		case "orbiter.caos.ch/ExternalLoadBalancer":
    30  	//			return []orbiter.Assembler{external.New(depPath, generalOverwriteSpec, externallbadapter.New())}, nil
    31  	case "orbiter.caos.ch/DynamicLoadBalancer":
    32  		return dynamic.AdaptFunc(whitelist)(monitor, finishedChan, loadBalancingTree, loadBalacingCurrent)
    33  	default:
    34  		return nil, nil, nil, false, nil, mntr.ToUserError(fmt.Errorf("unknown loadbalancing kind %s", loadBalancingTree.Common.Kind))
    35  	}
    36  }