package framework

import (
	"fmt"

	apiresource "github.com/pingcap/test-infra/common/model/resource"
	"github.com/pingcap/test-infra/sdk/resource/impl/k8s"
)

func (f *Framework) CreateLoadBalancer(testbed *k8s.Testbed, selectorKey, selectorValue string, port int) *k8s.LoadBalancer {
	client := k8s.NewLoadBalancerClient(f.KubeClientSetPack)

	r, err := client.Create([]byte(fmt.Sprintf(`{
		"name": "loadbalancer",
		"testbed": "%s",
		"type": "%s",
		"spec": {
		  "selector": {
			"%s": "%s"
		  },
		  "port": %d
		}
	  }`, testbed.Name, apiresource.ResourceTypeLoadBalancer, selectorKey, selectorValue, port)))

	ExpectNoError(err)
	return r.(*k8s.LoadBalancer)
}
