github.com/kiali/kiali@v1.84.0/business/checkers/service_checker.go (about) 1 package checkers 2 3 import ( 4 apps_v1 "k8s.io/api/apps/v1" 5 core_v1 "k8s.io/api/core/v1" 6 v1 "k8s.io/api/core/v1" 7 8 "github.com/kiali/kiali/business/checkers/services" 9 "github.com/kiali/kiali/models" 10 ) 11 12 const ServiceCheckerType = "service" 13 14 type ServiceChecker struct { 15 Services []v1.Service 16 Deployments []apps_v1.Deployment 17 Pods []core_v1.Pod 18 Cluster string 19 } 20 21 func (sc ServiceChecker) Check() models.IstioValidations { 22 validations := models.IstioValidations{} 23 24 for _, s := range sc.Services { 25 validations.MergeValidations(sc.runSingleChecks(s)) 26 } 27 28 return validations 29 } 30 31 func (sc ServiceChecker) runSingleChecks(service v1.Service) models.IstioValidations { 32 key, validations := EmptyValidValidation(service.GetObjectMeta().GetName(), service.GetObjectMeta().GetNamespace(), ServiceCheckerType, sc.Cluster) 33 34 enabledCheckers := []Checker{ 35 services.PortMappingChecker{Service: service, Deployments: sc.Deployments, Pods: sc.Pods}, 36 } 37 38 for _, checker := range enabledCheckers { 39 checks, validChecker := checker.Check() 40 validations.Checks = append(validations.Checks, checks...) 41 validations.Valid = validations.Valid && validChecker 42 } 43 44 return models.IstioValidations{key: validations} 45 }