github.com/docker/compose-on-kubernetes@v0.5.0/internal/check/check.go (about)

     1  package check
     2  
     3  import (
     4  	"fmt"
     5  
     6  	apiv1beta2 "github.com/docker/compose-on-kubernetes/api/compose/v1beta2"
     7  	log "github.com/sirupsen/logrus"
     8  	"k8s.io/client-go/kubernetes"
     9  	"k8s.io/client-go/rest"
    10  )
    11  
    12  // APIPresent checks that an API is installed.
    13  func APIPresent(config *rest.Config) error {
    14  	log.Debugf("Check API present at %s", config.Host)
    15  	clients, err := kubernetes.NewForConfig(config)
    16  	if err != nil {
    17  		return err
    18  	}
    19  
    20  	groups, err := clients.Discovery().ServerGroups()
    21  	if err != nil {
    22  		return err
    23  	}
    24  
    25  	for _, group := range groups.Groups {
    26  		if group.Name == apiv1beta2.SchemeGroupVersion.Group {
    27  			return nil
    28  		}
    29  	}
    30  
    31  	return fmt.Errorf("could not find %s api. Install it on your cluster first", apiv1beta2.SchemeGroupVersion.Group)
    32  }