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 }