Documentation ¶
Index ¶
- Constants
- func DashboardsConfig() dlgconfig.Config
- func FakeDepSyncedWithRS() []apps_v1.Deployment
- func FakeDeploymentConfigs() []osapps_v1.DeploymentConfig
- func FakeDeployments() []apps_v1.Deployment
- func FakeDuplicatedDeployments() []apps_v1.Deployment
- func FakeDuplicatedReplicaSets() []apps_v1.ReplicaSet
- func FakeDuplicatedStatefulSets() []apps_v1.StatefulSet
- func FakePodLogsSyncedWithDeployments() *kubernetes.PodLogs
- func FakePodSyncedWithDeployments() *core_v1.Pod
- func FakePodsFromDaemonSet() []core_v1.Pod
- func FakePodsNoController() []core_v1.Pod
- func FakePodsSyncedWithDeployments() []core_v1.Pod
- func FakePodsSyncedWithDuplicated() []core_v1.Pod
- func FakeRSSyncedWithPods() []apps_v1.ReplicaSet
- func FakeReplicaSets() []apps_v1.ReplicaSet
- func FakeReplicationControllers() []core_v1.ReplicationController
- func FakeServices() []core_v1.Service
- func FakeStatefulSets() []apps_v1.StatefulSet
- func GetIstioAPI(resourceType string) string
- func SetWithBackends(cf kubernetes.ClientFactory, prom prometheus.ClientInterface)
- type AppService
- type DashboardsService
- type HealthService
- func (in *HealthService) GetAppHealth(namespace, app, rateInterval string, queryTime time.Time) (models.AppHealth, error)
- func (in *HealthService) GetNamespaceAppHealth(namespace, rateInterval string, queryTime time.Time) (models.NamespaceAppHealth, error)
- func (in *HealthService) GetNamespaceServiceHealth(namespace, rateInterval string, queryTime time.Time) (models.NamespaceServiceHealth, error)
- func (in *HealthService) GetNamespaceWorkloadHealth(namespace, rateInterval string, queryTime time.Time) (models.NamespaceWorkloadHealth, error)
- func (in *HealthService) GetServiceHealth(namespace, service, rateInterval string, queryTime time.Time) (models.ServiceHealth, error)
- func (in *HealthService) GetWorkloadHealth(namespace, workload, rateInterval string, queryTime time.Time) (models.WorkloadHealth, error)
- type IstioConfigCriteria
- type IstioConfigService
- func (in *IstioConfigService) CreateIstioConfigDetail(api, namespace, resourceType, resourceSubtype string, body []byte) (models.IstioConfigDetails, error)
- func (in *IstioConfigService) DeleteIstioConfigDetail(api, namespace, resourceType, resourceSubtype, name string) (err error)
- func (in *IstioConfigService) GetIstioConfigDetails(namespace, objectType, objectSubtype, object string) (models.IstioConfigDetails, error)
- func (in *IstioConfigService) GetIstioConfigList(criteria IstioConfigCriteria) (models.IstioConfigList, error)
- func (in *IstioConfigService) ParseJsonForCreate(resourceType, subresourceType string, body []byte) (string, error)
- func (in *IstioConfigService) UpdateIstioConfigDetail(api, namespace, resourceType, resourceSubtype, name, jsonPatch string) (models.IstioConfigDetails, error)
- type IstioValidationsService
- type JaegerServices
- type Layer
- type NamespaceService
- type OAuthAuthorizationServer
- type OAuthMetadata
- type OAuthRoute
- type OAuthRouteSpec
- type OAuthRouteTLSSpec
- type OAuthUser
- type OAuthUserMetadata
- type ObjectChecker
- type OpenshiftOAuthService
- type RequestTrace
- type SvcService
- func (in *SvcService) GetService(namespace, service, interval string, queryTime time.Time, requestToken string) (*models.ServiceDetails, error)
- func (in *SvcService) GetServiceDefinition(namespace, service string) (*models.ServiceDetails, error)
- func (in *SvcService) GetServiceList(namespace string) (*models.ServiceList, error)
- type TLSService
- type ThreeScaleService
- func (in *ThreeScaleService) CreateThreeScaleHandler(body []byte) (models.ThreeScaleHandlers, error)
- func (in *ThreeScaleService) CreateThreeScaleRule(namespace string, body []byte) (models.ThreeScaleServiceRule, error)
- func (in *ThreeScaleService) DeleteThreeScaleHandler(handlerName string) (models.ThreeScaleHandlers, error)
- func (in *ThreeScaleService) DeleteThreeScaleRule(namespace, service string) error
- func (in *ThreeScaleService) GetThreeScaleHandlers() (models.ThreeScaleHandlers, error)
- func (in *ThreeScaleService) GetThreeScaleInfo() (models.ThreeScaleInfo, error)
- func (in *ThreeScaleService) GetThreeScaleRule(namespace, service string) (models.ThreeScaleServiceRule, error)
- func (in *ThreeScaleService) UpdateThreeScaleHandler(handlerName string, body []byte) (models.ThreeScaleHandlers, error)
- func (in *ThreeScaleService) UpdateThreeScaleRule(namespace, service string, body []byte) (models.ThreeScaleServiceRule, error)
- type Trace
- type WorkloadService
- func (in *WorkloadService) GetPod(namespace, name string) (*models.Pod, error)
- func (in *WorkloadService) GetPodLogs(namespace, name string, opts *core_v1.PodLogOptions) (*kubernetes.PodLogs, error)
- func (in *WorkloadService) GetPods(namespace string, labelSelector string) (models.Pods, error)
- func (in *WorkloadService) GetWorkload(namespace string, workloadName string, includeServices bool) (*models.Workload, error)
- func (in *WorkloadService) GetWorkloadList(namespace string) (models.WorkloadList, error)
Constants ¶
const ( VirtualServices = "virtualservices" DestinationRules = "destinationrules" ServiceEntries = "serviceentries" Gateways = "gateways" Rules = "rules" Adapters = "adapters" Templates = "templates" QuotaSpecs = "quotaspecs" QuotaSpecBindings = "quotaspecbindings" Policies = "policies" MeshPolicies = "meshpolicies" ClusterRbacConfigs = "clusterrbacconfigs" RbacConfigs = "rbacconfigs" ServiceRoles = "serviceroles" ServiceRoleBindings = "servicerolebindings" Sidecars = "sidecars" )
const ( MTLSEnabled = "MTLS_ENABLED" MTLSPartiallyEnabled = "MTLS_PARTIALLY_ENABLED" MTLSNotEnabled = "MTLS_NOT_ENABLED" MTLSDisabled = "MTLS_DISABLED" )
Variables ¶
This section is empty.
Functions ¶
func DashboardsConfig ¶
func FakeDepSyncedWithRS ¶
func FakeDepSyncedWithRS() []apps_v1.Deployment
func FakeDeploymentConfigs ¶
func FakeDeploymentConfigs() []osapps_v1.DeploymentConfig
func FakeDeployments ¶
func FakeDeployments() []apps_v1.Deployment
func FakeDuplicatedDeployments ¶
func FakeDuplicatedDeployments() []apps_v1.Deployment
func FakeDuplicatedReplicaSets ¶
func FakeDuplicatedReplicaSets() []apps_v1.ReplicaSet
func FakeDuplicatedStatefulSets ¶
func FakeDuplicatedStatefulSets() []apps_v1.StatefulSet
func FakePodLogsSyncedWithDeployments ¶
func FakePodLogsSyncedWithDeployments() *kubernetes.PodLogs
func FakePodsFromDaemonSet ¶
func FakePodsNoController ¶
func FakeRSSyncedWithPods ¶
func FakeRSSyncedWithPods() []apps_v1.ReplicaSet
func FakeReplicaSets ¶
func FakeReplicaSets() []apps_v1.ReplicaSet
func FakeReplicationControllers ¶
func FakeReplicationControllers() []core_v1.ReplicationController
func FakeServices ¶
func FakeStatefulSets ¶
func FakeStatefulSets() []apps_v1.StatefulSet
func GetIstioAPI ¶
GetIstioAPI provides the Kubernetes API that manages this Istio resource type or empty string if it's not managed
func SetWithBackends ¶
func SetWithBackends(cf kubernetes.ClientFactory, prom prometheus.ClientInterface)
SetWithBackends allows for specifying the ClientFactory and Prometheus clients to be used. Mock friendly. Used only with tests.
Types ¶
type AppService ¶
type AppService struct {
// contains filtered or unexported fields
}
AppService deals with fetching Workloads group by "app" label, which will be identified as an "application"
func (*AppService) GetApp ¶
GetApp is the API handler to fetch the details for a given namespace and app name
func (*AppService) GetAppList ¶
func (in *AppService) GetAppList(namespace string) (models.AppList, error)
GetAppList is the API handler to fetch the list of applications in a given namespace
type DashboardsService ¶
type DashboardsService struct {
// contains filtered or unexported fields
}
DashboardsService deals with fetching dashboards from k8s client
func NewDashboardsService ¶
func NewDashboardsService(prom prometheus.ClientInterface) DashboardsService
NewDashboardsService initializes this business service
func (*DashboardsService) GetCustomDashboardRefs ¶
func (in *DashboardsService) GetCustomDashboardRefs(namespace, app, version string, pods []*models.Pod) []kmodel.Runtime
GetCustomDashboardRefs finds all dashboard IDs and Titles associated to this app and add them to the model
func (*DashboardsService) GetIstioDashboard ¶
func (in *DashboardsService) GetIstioDashboard(params prometheus.IstioMetricsQuery) (*kmodel.MonitoringDashboard, error)
GetIstioDashboard returns Istio dashboard (currently hard-coded) filled-in with metrics
type HealthService ¶
type HealthService struct {
// contains filtered or unexported fields
}
HealthService deals with fetching health from various sources and convert to kiali model
func (*HealthService) GetAppHealth ¶
func (in *HealthService) GetAppHealth(namespace, app, rateInterval string, queryTime time.Time) (models.AppHealth, error)
GetAppHealth returns an app health from just Namespace and app name (thus, it fetches data from K8S and Prometheus)
func (*HealthService) GetNamespaceAppHealth ¶
func (in *HealthService) GetNamespaceAppHealth(namespace, rateInterval string, queryTime time.Time) (models.NamespaceAppHealth, error)
GetNamespaceAppHealth returns a health for all apps in given Namespace (thus, it fetches data from K8S and Prometheus)
func (*HealthService) GetNamespaceServiceHealth ¶
func (in *HealthService) GetNamespaceServiceHealth(namespace, rateInterval string, queryTime time.Time) (models.NamespaceServiceHealth, error)
GetNamespaceServiceHealth returns a health for all services in given Namespace (thus, it fetches data from K8S and Prometheus)
func (*HealthService) GetNamespaceWorkloadHealth ¶
func (in *HealthService) GetNamespaceWorkloadHealth(namespace, rateInterval string, queryTime time.Time) (models.NamespaceWorkloadHealth, error)
GetNamespaceWorkloadHealth returns a health for all workloads in given Namespace (thus, it fetches data from K8S and Prometheus)
func (*HealthService) GetServiceHealth ¶
func (in *HealthService) GetServiceHealth(namespace, service, rateInterval string, queryTime time.Time) (models.ServiceHealth, error)
GetServiceHealth returns a service health (service request error rate)
func (*HealthService) GetWorkloadHealth ¶
func (in *HealthService) GetWorkloadHealth(namespace, workload, rateInterval string, queryTime time.Time) (models.WorkloadHealth, error)
GetWorkloadHealth returns a workload health from just Namespace and workload (thus, it fetches data from K8S and Prometheus)
type IstioConfigCriteria ¶
type IstioConfigCriteria struct { Namespace string IncludeGateways bool IncludeVirtualServices bool IncludeDestinationRules bool IncludeServiceEntries bool IncludeRules bool IncludeAdapters bool IncludeTemplates bool IncludeQuotaSpecs bool IncludeQuotaSpecBindings bool IncludePolicies bool IncludeMeshPolicies bool IncludeClusterRbacConfigs bool IncludeRbacConfigs bool IncludeServiceRoles bool IncludeServiceRoleBindings bool IncludeSidecars bool }
type IstioConfigService ¶
type IstioConfigService struct {
// contains filtered or unexported fields
}
func (*IstioConfigService) CreateIstioConfigDetail ¶
func (in *IstioConfigService) CreateIstioConfigDetail(api, namespace, resourceType, resourceSubtype string, body []byte) (models.IstioConfigDetails, error)
func (*IstioConfigService) DeleteIstioConfigDetail ¶
func (in *IstioConfigService) DeleteIstioConfigDetail(api, namespace, resourceType, resourceSubtype, name string) (err error)
DeleteIstioConfigDetail deletes the given Istio resource
func (*IstioConfigService) GetIstioConfigDetails ¶
func (in *IstioConfigService) GetIstioConfigDetails(namespace, objectType, objectSubtype, object string) (models.IstioConfigDetails, error)
GetIstioConfigDetails returns a specific Istio configuration object. It uses following parameters: - "namespace": namespace where configuration is stored - "objectType": type of the configuration - "objectSubtype": subtype of the configuration, used when objectType == "adapters" or "templates", empty/not used otherwise - "object": name of the configuration
func (*IstioConfigService) GetIstioConfigList ¶
func (in *IstioConfigService) GetIstioConfigList(criteria IstioConfigCriteria) (models.IstioConfigList, error)
GetIstioConfigList returns a list of Istio routing objects, Mixer Rules, (etc.) per a given Namespace.
func (*IstioConfigService) ParseJsonForCreate ¶
func (in *IstioConfigService) ParseJsonForCreate(resourceType, subresourceType string, body []byte) (string, error)
ParseJsonForCreate checks if a json is well formed according resourceType/subresourceType. It returns a json validated to be used in the Create operation, or an error to report in the handler layer.
func (*IstioConfigService) UpdateIstioConfigDetail ¶
func (in *IstioConfigService) UpdateIstioConfigDetail(api, namespace, resourceType, resourceSubtype, name, jsonPatch string) (models.IstioConfigDetails, error)
type IstioValidationsService ¶
type IstioValidationsService struct {
// contains filtered or unexported fields
}
func (*IstioValidationsService) GetIstioObjectValidations ¶
func (in *IstioValidationsService) GetIstioObjectValidations(namespace string, objectType string, object string) (models.IstioValidations, error)
func (*IstioValidationsService) GetValidations ¶
func (in *IstioValidationsService) GetValidations(namespace, service string) (models.IstioValidations, error)
GetValidations returns an IstioValidations object with all the checks found when running all the enabled checkers. If service is "" then the whole namespace is validated.
type JaegerServices ¶
type JaegerServices struct {
Services []string `json:"data"`
}
func GetJaegerServices ¶
func GetJaegerServices() (services JaegerServices, err error)
type Layer ¶
type Layer struct { Svc SvcService Health HealthService Validations IstioValidationsService IstioConfig IstioConfigService Workload WorkloadService App AppService Namespace NamespaceService OpenshiftOAuth OpenshiftOAuthService TLS TLSService ThreeScale ThreeScaleService // contains filtered or unexported fields }
Layer is a container for fast access to inner services
func GetUnauthenticated ¶
func NewWithBackends ¶
func NewWithBackends(k8s kubernetes.IstioClientInterface, prom prometheus.ClientInterface) *Layer
NewWithBackends creates the business layer using the passed k8s and prom clients
type NamespaceService ¶
type NamespaceService struct {
// contains filtered or unexported fields
}
Namespace deals with fetching k8s namespaces / OpenShift projects and convert to kiali model
func NewNamespaceService ¶
func NewNamespaceService(k8s kubernetes.IstioClientInterface) NamespaceService
func (*NamespaceService) GetNamespace ¶
func (in *NamespaceService) GetNamespace(namespace string) (*models.Namespace, error)
GetNamespace returns the definition of the specified namespace.
func (*NamespaceService) GetNamespaces ¶
func (in *NamespaceService) GetNamespaces() ([]models.Namespace, error)
Returns a list of the given namespaces / projects
type OAuthAuthorizationServer ¶
type OAuthAuthorizationServer struct { AuthorizationEndpoint string `json:"authorization_endpoint"` Issuer string `json:"issuer"` }
Structure that's returned by the openshift oauth authorization server. It defaults to following the snake_case format, so we parse it to something more usable on our side.
type OAuthMetadata ¶
type OAuthRoute ¶
type OAuthRoute struct {
Spec OAuthRouteSpec `json:"spec"`
}
type OAuthRouteSpec ¶
type OAuthRouteSpec struct { Host string `json:"host"` TLS *OAuthRouteTLSSpec `json:"tls,omitempty"` }
type OAuthRouteTLSSpec ¶
type OAuthRouteTLSSpec struct {
Termination string `json:"termination"`
}
type OAuthUser ¶
type OAuthUser struct {
Metadata OAuthUserMetadata `json:"metadata"`
}
type OAuthUserMetadata ¶
type OAuthUserMetadata struct {
Name string `json:"name"`
}
type ObjectChecker ¶
type ObjectChecker interface {
Check() models.IstioValidations
}
type OpenshiftOAuthService ¶
type OpenshiftOAuthService struct {
// contains filtered or unexported fields
}
func (*OpenshiftOAuthService) GetUserInfo ¶
func (in *OpenshiftOAuthService) GetUserInfo(token string) (*OAuthUser, error)
func (*OpenshiftOAuthService) Logout ¶
func (in *OpenshiftOAuthService) Logout(token string) error
func (*OpenshiftOAuthService) Metadata ¶
func (in *OpenshiftOAuthService) Metadata() (metadata *OAuthMetadata, err error)
func (*OpenshiftOAuthService) ValidateToken ¶
func (in *OpenshiftOAuthService) ValidateToken(token string) error
type RequestTrace ¶
type RequestTrace struct {
Traces []Trace `json:"data"`
}
type SvcService ¶
type SvcService struct {
// contains filtered or unexported fields
}
SvcService deals with fetching istio/kubernetes services related content and convert to kiali model
func (*SvcService) GetService ¶
func (in *SvcService) GetService(namespace, service, interval string, queryTime time.Time, requestToken string) (*models.ServiceDetails, error)
GetService returns a single service and associated data using the interval and queryTime
func (*SvcService) GetServiceDefinition ¶
func (in *SvcService) GetServiceDefinition(namespace, service string) (*models.ServiceDetails, error)
GetServiceDefinition returns a single service definition (the service object and endpoints), no istio or runtime information
func (*SvcService) GetServiceList ¶
func (in *SvcService) GetServiceList(namespace string) (*models.ServiceList, error)
GetServiceList returns a list of all services for a given Namespace
type TLSService ¶
type TLSService struct {
// contains filtered or unexported fields
}
func (*TLSService) MeshWidemTLSStatus ¶
func (in *TLSService) MeshWidemTLSStatus(namespaces []string) (models.MTLSStatus, error)
func (TLSService) NamespaceWidemTLSStatus ¶
func (in TLSService) NamespaceWidemTLSStatus(namespace string) (models.MTLSStatus, error)
type ThreeScaleService ¶
type ThreeScaleService struct {
// contains filtered or unexported fields
}
func (*ThreeScaleService) CreateThreeScaleHandler ¶
func (in *ThreeScaleService) CreateThreeScaleHandler(body []byte) (models.ThreeScaleHandlers, error)
func (*ThreeScaleService) CreateThreeScaleRule ¶
func (in *ThreeScaleService) CreateThreeScaleRule(namespace string, body []byte) (models.ThreeScaleServiceRule, error)
func (*ThreeScaleService) DeleteThreeScaleHandler ¶
func (in *ThreeScaleService) DeleteThreeScaleHandler(handlerName string) (models.ThreeScaleHandlers, error)
func (*ThreeScaleService) DeleteThreeScaleRule ¶
func (in *ThreeScaleService) DeleteThreeScaleRule(namespace, service string) error
func (*ThreeScaleService) GetThreeScaleHandlers ¶
func (in *ThreeScaleService) GetThreeScaleHandlers() (models.ThreeScaleHandlers, error)
func (*ThreeScaleService) GetThreeScaleInfo ¶
func (in *ThreeScaleService) GetThreeScaleInfo() (models.ThreeScaleInfo, error)
func (*ThreeScaleService) GetThreeScaleRule ¶
func (in *ThreeScaleService) GetThreeScaleRule(namespace, service string) (models.ThreeScaleServiceRule, error)
func (*ThreeScaleService) UpdateThreeScaleHandler ¶
func (in *ThreeScaleService) UpdateThreeScaleHandler(handlerName string, body []byte) (models.ThreeScaleHandlers, error)
func (*ThreeScaleService) UpdateThreeScaleRule ¶
func (in *ThreeScaleService) UpdateThreeScaleRule(namespace, service string, body []byte) (models.ThreeScaleServiceRule, error)
type WorkloadService ¶
type WorkloadService struct {
// contains filtered or unexported fields
}
Workload deals with fetching istio/kubernetes workloads related content and convert to kiali model
func (*WorkloadService) GetPod ¶
func (in *WorkloadService) GetPod(namespace, name string) (*models.Pod, error)
func (*WorkloadService) GetPodLogs ¶
func (in *WorkloadService) GetPodLogs(namespace, name string, opts *core_v1.PodLogOptions) (*kubernetes.PodLogs, error)
func (*WorkloadService) GetWorkload ¶
func (in *WorkloadService) GetWorkload(namespace string, workloadName string, includeServices bool) (*models.Workload, error)
GetWorkload is the API handler to fetch details of a specific workload. If includeServices is set true, the Workload will fetch all services related
func (*WorkloadService) GetWorkloadList ¶
func (in *WorkloadService) GetWorkloadList(namespace string) (models.WorkloadList, error)
GetWorkloadList is the API handler to fetch the list of workloads in a given namespace.