business

package
v0.0.0-...-10c222e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2019 License: Apache-2.0 Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
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"
)
View Source
const (
	MTLSEnabled          = "MTLS_ENABLED"
	MTLSPartiallyEnabled = "MTLS_PARTIALLY_ENABLED"
	MTLSNotEnabled       = "MTLS_NOT_ENABLED"
	MTLSDisabled         = "MTLS_DISABLED"
)

Variables

This section is empty.

Functions

func DashboardsConfig

func DashboardsConfig() dlgconfig.Config

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 FakePodSyncedWithDeployments

func FakePodSyncedWithDeployments() *core_v1.Pod

func FakePodsFromDaemonSet

func FakePodsFromDaemonSet() []core_v1.Pod

func FakePodsNoController

func FakePodsNoController() []core_v1.Pod

func FakePodsSyncedWithDeployments

func FakePodsSyncedWithDeployments() []core_v1.Pod

func FakePodsSyncedWithDuplicated

func FakePodsSyncedWithDuplicated() []core_v1.Pod

func FakeRSSyncedWithPods

func FakeRSSyncedWithPods() []apps_v1.ReplicaSet

func FakeReplicaSets

func FakeReplicaSets() []apps_v1.ReplicaSet

func FakeReplicationControllers

func FakeReplicationControllers() []core_v1.ReplicationController

func FakeServices

func FakeServices() []core_v1.Service

func FakeStatefulSets

func FakeStatefulSets() []apps_v1.StatefulSet

func GetIstioAPI

func GetIstioAPI(resourceType string) string

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

func (in *AppService) GetApp(namespace string, appName string) (models.App, error)

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

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 Get

func Get(token string) (*Layer, error)

Get the business.Layer

func GetUnauthenticated

func GetUnauthenticated() (*Layer, error)

func NewWithBackends

NewWithBackends creates the business layer using the passed k8s and prom clients

func (*Layer) Stop

func (in *Layer) Stop()

type NamespaceService

type NamespaceService struct {
	// contains filtered or unexported fields
}

Namespace deals with fetching k8s namespaces / OpenShift projects and convert to kiali model

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 OAuthMetadata struct {
	AuthorizationEndpoint string `json:"authorizationEndpoint"`
	LogoutEndpoint        string `json:"logoutEndpoint"`
	LogoutRedirect        string `json:"logoutRedirect"`
}

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 Trace

type Trace struct {
	Id string `json:"traceID"`
}

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) GetPods

func (in *WorkloadService) GetPods(namespace string, labelSelector string) (models.Pods, 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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL