Documentation ¶
Index ¶
- Constants
- Variables
- func BuildOpenIdJwtClaims(openIdParams *OpenIdCallbackParams, useAccessToken bool) *config.IanaClaims
- func CallbackCleanup(w http.ResponseWriter)
- func CheckOpenIdAuthorizationCodeFlowParams(params *OpenIdCallbackParams) string
- func CheckOpenIdImplicitFlowParams(params *OpenIdCallbackParams) string
- func FakeCustomControllerRSSyncedWithPods() []apps_v1.ReplicaSet
- func FakeDaemonSets() []apps_v1.DaemonSet
- 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 FakePodLogsProxy() *kubernetes.PodLogs
- func FakePodLogsSyncedWithDeployments() *kubernetes.PodLogs
- func FakePodSyncedWithDeployments() *core_v1.Pod
- func FakePodsFromCustomController() []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 GetConfiguredOpenIdScopes() []string
- func GetGrafanaInfo(authInfo *api.AuthInfo, dashboardSupplier dashboardSupplier) (*models.GrafanaInfo, int, error)
- func GetGrafanaLinks(authInfo *api.AuthInfo, linksSpec []dashboards.MonitoringDashboardExternalLink) ([]models.ExternalLink, int, error)
- func GetIstioAPI(resourceType string) string
- func GetIstioScaler() func(name string) float64
- func GetJwkFromKeySet(keyId string) (*jose.JSONWebKey, error)
- func GetOpenIdAesSession(r *http.Request) (*config.IanaClaims, error)
- func GetOpenIdJwks() (*jose.JSONWebKeySet, error)
- func GetWorkloadStatus(wl models.Workload) string
- func IsAccessibleError(err error) bool
- func IsNamespaceCached(namespace string) bool
- func IsOpenIdCodeFlowPossible() bool
- func IsResourceCached(namespace string, resource string) bool
- func ParseOpenIdToken(openIdParams *OpenIdCallbackParams) error
- func RequestOpenIdToken(openIdParams *OpenIdCallbackParams, redirect_uri string) error
- func SetWithBackends(cf kubernetes.ClientFactory, prom prometheus.ClientInterface)
- func Stop()
- func ValidateOpenIdNonceCode(openIdParams *OpenIdCallbackParams) (validationFailure string)
- func ValidateOpenIdState(openIdParams *OpenIdCallbackParams) (validationFailure string)
- func ValidateOpenTokenInHouse(openIdParams *OpenIdCallbackParams) error
- func VerifyOpenIdUserAccess(token string) (int, string, error)
- type AccessLogEntry
- type AccessibleNamespaceError
- type AccessibleTokenReviewError
- type AppService
- type Cluster
- type ComponentStatus
- type DashboardsService
- func (in *DashboardsService) BuildIstioDashboard(metrics models.MetricsMap, direction string) *models.MonitoringDashboard
- func (in *DashboardsService) GetCustomDashboardRefs(namespace, app, version string, pods []*models.Pod) []models.Runtime
- func (in *DashboardsService) GetDashboard(authInfo *api.AuthInfo, params models.DashboardQuery, template string) (*models.MonitoringDashboard, error)
- func (in *DashboardsService) SearchExplicitDashboards(pods []models.Pod) []models.Runtime
- 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, workloadType, rateInterval string, queryTime time.Time) (models.WorkloadHealth, error)
- type IstioComponentStatus
- type IstioConfigCriteria
- type IstioConfigService
- func (in *IstioConfigService) CreateIstioConfigDetail(api, namespace, resourceType string, body []byte) (models.IstioConfigDetails, error)
- func (in *IstioConfigService) DeleteIstioConfigDetail(api, namespace, resourceType, name string) (err error)
- func (in *IstioConfigService) GetIstioConfigDetails(namespace, objectType, object string) (models.IstioConfigDetails, error)
- func (in *IstioConfigService) GetIstioConfigList(criteria IstioConfigCriteria) (models.IstioConfigList, error)
- func (in *IstioConfigService) GetIstioConfigPermissions(namespaces []string) models.IstioConfigPermissions
- func (in *IstioConfigService) ParseJsonForCreate(resourceType string, body []byte) (string, error)
- func (in *IstioConfigService) UpdateIstioConfigDetail(api, namespace, resourceType, name, jsonPatch string) (models.IstioConfigDetails, error)
- type IstioStatusService
- type IstioValidationsService
- type Iter8Service
- func (in *Iter8Service) CreateIter8Experiment(namespace string, body []byte, jsonBody bool) (models.Iter8ExperimentDetail, error)
- func (in *Iter8Service) DeleteIter8Experiment(namespace string, name string) (err error)
- func (in *Iter8Service) GetAnalyticPort() int
- func (in *Iter8Service) GetIter8Experiment(namespace string, name string) (models.Iter8ExperimentDetail, error)
- func (in *Iter8Service) GetIter8ExperimentYaml(namespace string, name string) (kubernetes.Iter8ExperimentCRD, error)
- func (in *Iter8Service) GetIter8Experiments(namespaces []string) ([]models.Iter8ExperimentItem, error)
- func (in *Iter8Service) GetIter8ExperimentsByNamespace(namespace string) ([]models.Iter8ExperimentItem, error)
- func (in *Iter8Service) GetIter8Info() models.Iter8Info
- func (in *Iter8Service) GetIter8Metrics() (metricNames []string, err error)
- func (in *Iter8Service) ParseJsonForCreate(body []byte) (string, error)
- func (in *Iter8Service) ParseMatchRule(http []models.HTTPMatchRequest) []*kubernetes.HTTPMatchRequest
- func (in *Iter8Service) UpdateIter8Experiment(namespace string, name string, body []byte) (models.Iter8ExperimentDetail, error)
- type JaegerLoader
- type JaegerService
- func (in *JaegerService) GetAppSpans(ns, app string, query models.TracingQuery) ([]jaeger.JaegerSpan, error)
- func (in *JaegerService) GetAppTraces(ns, app string, query models.TracingQuery) (*jaeger.JaegerResponse, error)
- func (in *JaegerService) GetErrorTraces(ns, app string, duration time.Duration) (errorTraces int, err error)
- func (in *JaegerService) GetJaegerTraceDetail(traceID string) (trace *jaeger.JaegerSingleTrace, err error)
- func (in *JaegerService) GetServiceSpans(ns, service string, query models.TracingQuery) ([]jaeger.JaegerSpan, error)
- func (in *JaegerService) GetServiceTraces(ns, service string, query models.TracingQuery) (*jaeger.JaegerResponse, error)
- func (in *JaegerService) GetWorkloadSpans(ns, workload string, query models.TracingQuery) ([]jaeger.JaegerSpan, error)
- func (in *JaegerService) GetWorkloadTraces(ns, workload string, query models.TracingQuery) (*jaeger.JaegerResponse, error)
- type KialiInstance
- type Layer
- type LogEntry
- type LogOptions
- type MeshService
- type MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) Add(key, value string) *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) Aggregate(key, value string) *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) App(name, namespace string) *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) Build() string
- func (lb *MetricsLabelsBuilder) BuildForErrors() []string
- func (lb *MetricsLabelsBuilder) Namespace(namespace string) *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) PeerApp(name, namespace string) *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) PeerNamespace(namespace string) *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) PeerService(name, namespace string) *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) PeerWorkload(name, namespace string) *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) Protocol(name string) *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) Reporter(name string) *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) SelfReporter() *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) Service(name, namespace string) *MetricsLabelsBuilder
- func (lb *MetricsLabelsBuilder) Workload(name, namespace string) *MetricsLabelsBuilder
- type MetricsService
- type NamespaceService
- type OAuthAuthorizationServer
- type OAuthMetadata
- type OAuthRoute
- type OAuthRouteSpec
- type OAuthRouteTLSSpec
- type OAuthUser
- type OAuthUserMetadata
- type ObjectChecker
- type OpenIdCallbackParams
- type OpenIdMetadata
- type OpenshiftOAuthService
- type PodLog
- type ProxyStatusService
- func (in *ProxyStatusService) GetConfigDump(namespace, pod string) (models.EnvoyProxyDump, error)
- func (in *ProxyStatusService) GetConfigDumpResourceEntries(namespace, pod, resource string) (*models.EnvoyProxyDump, error)
- func (in *ProxyStatusService) GetPodProxyStatus(ns, pod string) (*kubernetes.ProxyStatus, error)
- type RegistryStatusService
- type SpanFilter
- type SvcService
- func (in *SvcService) GetService(namespace, service, interval string, queryTime time.Time) (*models.ServiceDetails, error)
- func (in *SvcService) GetServiceAppName(namespace, service string) (string, error)
- func (in *SvcService) GetServiceDefinition(namespace, service string) (*models.ServiceDetails, error)
- func (in *SvcService) GetServiceDefinitionList(namespace string) (*models.ServiceDefinitionList, error)
- func (in *SvcService) GetServiceList(namespace string) (*models.ServiceList, error)
- func (in *SvcService) UpdateService(namespace, service string, interval string, queryTime time.Time, ...) (*models.ServiceDetails, error)
- type TLSService
- type TokenReviewService
- type WorkloadService
- func (in *WorkloadService) BuildLogOptionsCriteria(container, duration, isProxy, sinceTime, tailLines string) (*LogOptions, error)
- func (in *WorkloadService) GetPod(namespace, name string) (*models.Pod, error)
- func (in *WorkloadService) GetPodLogs(namespace, name string, opts *LogOptions) (*PodLog, error)
- func (in *WorkloadService) GetPods(namespace string, labelSelector string) (models.Pods, error)
- func (in *WorkloadService) GetWorkload(namespace string, workloadName string, workloadType string, ...) (*models.Workload, error)
- func (in *WorkloadService) GetWorkloadAppName(namespace, workload string) (string, error)
- func (in *WorkloadService) GetWorkloadList(namespace string) (models.WorkloadList, error)
- func (in *WorkloadService) UpdateWorkload(namespace string, workloadName string, workloadType string, ...) (*models.Workload, error)
Constants ¶
const ( Healthy string = "Healthy" NotFound string = "NotFound" NotReady string = "NotReady" Unhealthy string = "Unhealthy" Unreachable string = "Unreachable" )
const ( OpenIdNonceCookieName = config.TokenCookieName + "-openid-nonce" // Maximum size of session cookies. This is 3.5K. // Major browsers limit cookie size to 4K, but this includes // metadata like expiration date, the cookie name, etc. So // use 3.5K for cookie data and leave 0.5K for metadata. SessionCookieMaxSize = 3584 )
const ( MTLSEnabled = "MTLS_ENABLED" MTLSPartiallyEnabled = "MTLS_PARTIALLY_ENABLED" MTLSNotEnabled = "MTLS_NOT_ENABLED" MTLSDisabled = "MTLS_DISABLED" )
Variables ¶
var GrafanaDashboardSupplier = findDashboard
var HealthAnnotation = []models.AnnotationKey{models.RateHealthAnnotation}
Annotation Filter for Health
Functions ¶
func BuildOpenIdJwtClaims ¶ added in v1.24.0
func BuildOpenIdJwtClaims(openIdParams *OpenIdCallbackParams, useAccessToken bool) *config.IanaClaims
func CallbackCleanup ¶ added in v1.24.0
func CallbackCleanup(w http.ResponseWriter)
func CheckOpenIdAuthorizationCodeFlowParams ¶ added in v1.24.0
func CheckOpenIdAuthorizationCodeFlowParams(params *OpenIdCallbackParams) string
func CheckOpenIdImplicitFlowParams ¶ added in v1.24.0
func CheckOpenIdImplicitFlowParams(params *OpenIdCallbackParams) string
func FakeCustomControllerRSSyncedWithPods ¶ added in v1.33.0
func FakeCustomControllerRSSyncedWithPods() []apps_v1.ReplicaSet
func FakeDaemonSets ¶ added in v1.33.0
func FakeDepSyncedWithRS ¶
func FakeDepSyncedWithRS() []apps_v1.Deployment
func FakeDeploymentConfigs ¶
func FakeDeploymentConfigs() []osapps_v1.DeploymentConfig
func FakeDeployments ¶
func FakeDeployments() []apps_v1.Deployment
func FakeDuplicatedDeployments ¶ added in v0.9.1
func FakeDuplicatedDeployments() []apps_v1.Deployment
func FakeDuplicatedReplicaSets ¶ added in v0.9.1
func FakeDuplicatedReplicaSets() []apps_v1.ReplicaSet
func FakeDuplicatedStatefulSets ¶ added in v0.9.1
func FakeDuplicatedStatefulSets() []apps_v1.StatefulSet
func FakePodLogsProxy ¶ added in v1.33.0
func FakePodLogsProxy() *kubernetes.PodLogs
func FakePodLogsSyncedWithDeployments ¶ added in v0.18.0
func FakePodLogsSyncedWithDeployments() *kubernetes.PodLogs
func FakePodSyncedWithDeployments ¶ added in v0.18.0
func FakePodsFromCustomController ¶ added in v1.33.0
func FakePodsNoController ¶
func FakePodsSyncedWithDuplicated ¶ added in v0.9.1
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 GetConfiguredOpenIdScopes ¶ added in v1.19.0
func GetConfiguredOpenIdScopes() []string
GetConfiguredOpenIdScopes gets the list of scopes set in Kiali configuration making sure that the mandatory "openid" scope is present in the returned list.
func GetGrafanaInfo ¶ added in v1.29.0
func GetGrafanaInfo(authInfo *api.AuthInfo, dashboardSupplier dashboardSupplier) (*models.GrafanaInfo, int, error)
GetGrafanaInfo returns the Grafana URL and other info, the HTTP status code (int) and eventually an error
func GetGrafanaLinks ¶ added in v1.27.0
func GetGrafanaLinks(authInfo *api.AuthInfo, linksSpec []dashboards.MonitoringDashboardExternalLink) ([]models.ExternalLink, int, error)
GetGrafanaLinks returns the links to Grafana dashboards and other info, the HTTP status code (int) and eventually an error
func GetIstioAPI ¶ added in v0.9.1
GetIstioAPI provides the Kubernetes API that manages this Istio resource type or empty string if it's not managed
func GetIstioScaler ¶ added in v1.27.0
func GetJwkFromKeySet ¶ added in v1.26.0
func GetOpenIdAesSession ¶ added in v1.24.0
func GetOpenIdAesSession(r *http.Request) (*config.IanaClaims, error)
func GetOpenIdJwks ¶ added in v1.26.0
func GetOpenIdJwks() (*jose.JSONWebKeySet, error)
func GetWorkloadStatus ¶ added in v1.33.0
func IsAccessibleError ¶ added in v1.10.0
func IsNamespaceCached ¶ added in v1.23.0
func IsOpenIdCodeFlowPossible ¶ added in v1.24.0
func IsOpenIdCodeFlowPossible() bool
func IsResourceCached ¶ added in v1.23.0
func ParseOpenIdToken ¶ added in v1.24.0
func ParseOpenIdToken(openIdParams *OpenIdCallbackParams) error
func RequestOpenIdToken ¶ added in v1.24.0
func RequestOpenIdToken(openIdParams *OpenIdCallbackParams, redirect_uri string) error
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.
func ValidateOpenIdNonceCode ¶ added in v1.24.0
func ValidateOpenIdNonceCode(openIdParams *OpenIdCallbackParams) (validationFailure string)
func ValidateOpenIdState ¶ added in v1.24.0
func ValidateOpenIdState(openIdParams *OpenIdCallbackParams) (validationFailure string)
- CSRF mitigation
func ValidateOpenTokenInHouse ¶ added in v1.26.0
func ValidateOpenTokenInHouse(openIdParams *OpenIdCallbackParams) error
Types ¶
type AccessLogEntry ¶ added in v1.33.0
type AccessLogEntry struct { Timestamp string `json:"timestamp,omitempty"` TimestampUnix int64 `json:"timestampUnix,omitempty"` }
AccessLogEntry provides parsed info from a single proxy access log entry
type AccessibleNamespaceError ¶ added in v1.10.0
type AccessibleNamespaceError struct {
// contains filtered or unexported fields
}
func (*AccessibleNamespaceError) Error ¶ added in v1.10.0
func (in *AccessibleNamespaceError) Error() string
type AccessibleTokenReviewError ¶ added in v1.29.0
type AccessibleTokenReviewError struct {
// contains filtered or unexported fields
}
func (*AccessibleTokenReviewError) Error ¶ added in v1.29.0
func (in *AccessibleTokenReviewError) Error() string
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 Cluster ¶ added in v1.29.0
type Cluster struct { // ApiEndpoint is the URL where the Kubernetes/Cluster API Server can be contacted ApiEndpoint string `json:"apiEndpoint"` // IsKialiHome specifies if this cluster is hosting this Kiali instance (and the observed Mesh Control Plane) IsKialiHome bool `json:"isKialiHome"` // KialiInstances is the list of Kialis discovered in the cluster. KialiInstances []KialiInstance `json:"kialiInstances"` // Name specifies the CLUSTER_ID as known by the Control Plane Name string `json:"name"` // Network specifies the logical NETWORK_ID as known by the Control Plane Network string `json:"network"` // SecretName is the name of the kubernetes "remote secret" where data of this cluster was resolved SecretName string `json:"secretName"` }
Cluster holds some metadata about a cluster that is part of the mesh.
type ComponentStatus ¶ added in v1.18.0
type ComponentStatus struct { // The app label value of the Istio component // // example: istio-ingressgateway // required: true Name string `json:"name"` // The status of a Istio component // // example: Not Found // required: true Status string `json:"status"` // When true, the component is necessary for Istio to function. Otherwise, it is an addon // // example: true // required: true IsCore bool `json:"is_core"` }
type DashboardsService ¶ added in v0.12.0
type DashboardsService struct { CustomEnabled bool // contains filtered or unexported fields }
DashboardsService deals with fetching dashboards from config
func NewDashboardsService ¶ added in v0.12.0
func NewDashboardsService() *DashboardsService
NewDashboardsService initializes this business service
func (*DashboardsService) BuildIstioDashboard ¶ added in v1.27.0
func (in *DashboardsService) BuildIstioDashboard(metrics models.MetricsMap, direction string) *models.MonitoringDashboard
GetIstioDashboard returns Istio dashboard (currently hard-coded) filled-in with metrics
func (*DashboardsService) GetCustomDashboardRefs ¶ added in v0.17.0
func (in *DashboardsService) GetCustomDashboardRefs(namespace, app, version string, pods []*models.Pod) []models.Runtime
GetCustomDashboardRefs finds all dashboard IDs and Titles associated to this app and add them to the model
func (*DashboardsService) GetDashboard ¶ added in v0.12.0
func (in *DashboardsService) GetDashboard(authInfo *api.AuthInfo, params models.DashboardQuery, template string) (*models.MonitoringDashboard, error)
GetDashboard returns a dashboard filled-in with target data
func (*DashboardsService) SearchExplicitDashboards ¶ added in v1.27.0
func (in *DashboardsService) SearchExplicitDashboards(pods []models.Pod) []models.Runtime
SearchExplicitDashboards will check annotations of all supplied pods to extract a unique list of dashboards
Accepted annotations are "kiali.io/runtimes" and "kiali.io/dashboards"
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, workloadType, 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 IstioComponentStatus ¶ added in v1.18.0
type IstioComponentStatus []ComponentStatus
type IstioConfigCriteria ¶
type IstioConfigCriteria struct { Namespace string IncludeGateways bool IncludeVirtualServices bool IncludeDestinationRules bool IncludeServiceEntries bool IncludeSidecars bool IncludeAuthorizationPolicies bool IncludePeerAuthentications bool IncludeWorkloadEntries bool IncludeWorkloadGroups bool IncludeRequestAuthentications bool IncludeEnvoyFilters bool LabelSelector string WorkloadSelector string }
func ParseIstioConfigCriteria ¶ added in v1.20.0
func ParseIstioConfigCriteria(namespace, objects, labelSelector, workloadSelector string) IstioConfigCriteria
func (IstioConfigCriteria) Include ¶ added in v1.24.0
func (icc IstioConfigCriteria) Include(resource string) bool
type IstioConfigService ¶
type IstioConfigService struct {
// contains filtered or unexported fields
}
func (*IstioConfigService) CreateIstioConfigDetail ¶ added in v0.14.0
func (in *IstioConfigService) CreateIstioConfigDetail(api, namespace, resourceType string, body []byte) (models.IstioConfigDetails, error)
func (*IstioConfigService) DeleteIstioConfigDetail ¶ added in v0.9.1
func (in *IstioConfigService) DeleteIstioConfigDetail(api, namespace, resourceType, name string) (err error)
DeleteIstioConfigDetail deletes the given Istio resource
func (*IstioConfigService) GetIstioConfigDetails ¶
func (in *IstioConfigService) GetIstioConfigDetails(namespace, objectType, 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 - "object": name of the configuration
func (*IstioConfigService) GetIstioConfigList ¶ added in v0.9.1
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) GetIstioConfigPermissions ¶ added in v1.29.0
func (in *IstioConfigService) GetIstioConfigPermissions(namespaces []string) models.IstioConfigPermissions
func (*IstioConfigService) ParseJsonForCreate ¶ added in v0.14.0
func (in *IstioConfigService) ParseJsonForCreate(resourceType string, body []byte) (string, error)
ParseJsonForCreate checks if a json is well formed according resourceType It returns a json validated to be used in the Create operation, or an error to report in the handler layer.
func (*IstioConfigService) UpdateIstioConfigDetail ¶ added in v0.12.0
func (in *IstioConfigService) UpdateIstioConfigDetail(api, namespace, resourceType, name, jsonPatch string) (models.IstioConfigDetails, error)
type IstioStatusService ¶ added in v1.18.0
type IstioStatusService struct {
// contains filtered or unexported fields
}
SvcService deals with fetching istio/kubernetes services related content and convert to kiali model
func (*IstioStatusService) GetStatus ¶ added in v1.18.0
func (iss *IstioStatusService) GetStatus() (IstioComponentStatus, 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 ¶ added in v0.14.0
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 Iter8Service ¶ added in v1.15.0
type Iter8Service struct {
// contains filtered or unexported fields
}
func (*Iter8Service) CreateIter8Experiment ¶ added in v1.15.0
func (in *Iter8Service) CreateIter8Experiment(namespace string, body []byte, jsonBody bool) (models.Iter8ExperimentDetail, error)
func (*Iter8Service) DeleteIter8Experiment ¶ added in v1.16.0
func (in *Iter8Service) DeleteIter8Experiment(namespace string, name string) (err error)
func (*Iter8Service) GetAnalyticPort ¶ added in v1.18.1
func (in *Iter8Service) GetAnalyticPort() int
func (*Iter8Service) GetIter8Experiment ¶ added in v1.15.0
func (in *Iter8Service) GetIter8Experiment(namespace string, name string) (models.Iter8ExperimentDetail, error)
func (*Iter8Service) GetIter8ExperimentYaml ¶ added in v1.24.0
func (in *Iter8Service) GetIter8ExperimentYaml(namespace string, name string) (kubernetes.Iter8ExperimentCRD, error)
func (*Iter8Service) GetIter8Experiments ¶ added in v1.15.0
func (in *Iter8Service) GetIter8Experiments(namespaces []string) ([]models.Iter8ExperimentItem, error)
func (*Iter8Service) GetIter8ExperimentsByNamespace ¶ added in v1.15.0
func (in *Iter8Service) GetIter8ExperimentsByNamespace(namespace string) ([]models.Iter8ExperimentItem, error)
func (*Iter8Service) GetIter8Info ¶ added in v1.15.0
func (in *Iter8Service) GetIter8Info() models.Iter8Info
func (*Iter8Service) GetIter8Metrics ¶ added in v1.18.1
func (in *Iter8Service) GetIter8Metrics() (metricNames []string, err error)
func (*Iter8Service) ParseJsonForCreate ¶ added in v1.15.0
func (in *Iter8Service) ParseJsonForCreate(body []byte) (string, error)
func (*Iter8Service) ParseMatchRule ¶ added in v1.25.0
func (in *Iter8Service) ParseMatchRule(http []models.HTTPMatchRequest) []*kubernetes.HTTPMatchRequest
func (*Iter8Service) UpdateIter8Experiment ¶ added in v1.20.0
func (in *Iter8Service) UpdateIter8Experiment(namespace string, name string, body []byte) (models.Iter8ExperimentDetail, error)
type JaegerLoader ¶ added in v1.11.0
type JaegerLoader = func() (jaeger.ClientInterface, error)
type JaegerService ¶ added in v1.11.0
type JaegerService struct {
// contains filtered or unexported fields
}
func (*JaegerService) GetAppSpans ¶ added in v1.24.0
func (in *JaegerService) GetAppSpans(ns, app string, query models.TracingQuery) ([]jaeger.JaegerSpan, error)
func (*JaegerService) GetAppTraces ¶ added in v1.24.0
func (in *JaegerService) GetAppTraces(ns, app string, query models.TracingQuery) (*jaeger.JaegerResponse, error)
func (*JaegerService) GetErrorTraces ¶ added in v1.11.0
func (*JaegerService) GetJaegerTraceDetail ¶ added in v1.11.0
func (in *JaegerService) GetJaegerTraceDetail(traceID string) (trace *jaeger.JaegerSingleTrace, err error)
func (*JaegerService) GetServiceSpans ¶ added in v1.24.0
func (in *JaegerService) GetServiceSpans(ns, service string, query models.TracingQuery) ([]jaeger.JaegerSpan, error)
func (*JaegerService) GetServiceTraces ¶ added in v1.24.0
func (in *JaegerService) GetServiceTraces(ns, service string, query models.TracingQuery) (*jaeger.JaegerResponse, error)
func (*JaegerService) GetWorkloadSpans ¶ added in v1.24.0
func (in *JaegerService) GetWorkloadSpans(ns, workload string, query models.TracingQuery) ([]jaeger.JaegerSpan, error)
func (*JaegerService) GetWorkloadTraces ¶ added in v1.24.0
func (in *JaegerService) GetWorkloadTraces(ns, workload string, query models.TracingQuery) (*jaeger.JaegerResponse, error)
type KialiInstance ¶ added in v1.31.0
type KialiInstance struct { // ServiceName is the name of the Kubernetes service associated to the Kiali installation. The Kiali Service is the // entity that is looked for in order to determine if a Kiali instance is available. ServiceName string `json:"serviceName"` // Namespace is the name of the namespace where is Kiali installed on. Namespace string `json:"namespace"` // OperatorResource contains the namespace and the name of the Kiali CR that the user // created to install Kiali via the operator. This can be blank if the operator wasn't used // to install Kiali. This resource is populated from annotations in the Service. It has // the format "namespace/resource_name". OperatorResource string `json:"operatorResource"` // Url is the URI that can be used to access Kiali. Url string `json:"url"` // Version is the Kiali version as reported by annotations in the Service. Version string `json:"version"` }
KialiInstance represents a Kiali installation. It holds some data about where and how Kiali was deployed.
type Layer ¶
type Layer struct { App AppService Health HealthService IstioConfig IstioConfigService IstioStatus IstioStatusService Iter8 Iter8Service Jaeger JaegerService Mesh MeshService Namespace NamespaceService OpenshiftOAuth OpenshiftOAuthService ProxyStatus ProxyStatusService RegistryStatus RegistryStatusService Svc SvcService TLS TLSService TokenReview TokenReviewService Validations IstioValidationsService Workload WorkloadService // contains filtered or unexported fields }
Layer is a container for fast access to inner services
func NewWithBackends ¶ added in v0.10.0
func NewWithBackends(k8s kubernetes.ClientInterface, prom prometheus.ClientInterface, jaegerClient JaegerLoader) *Layer
NewWithBackends creates the business layer using the passed k8s and prom clients
type LogEntry ¶ added in v1.25.0
type LogEntry struct { Message string `json:"message,omitempty"` Severity string `json:"severity,omitempty"` Timestamp string `json:"timestamp,omitempty"` TimestampUnix int64 `json:"timestampUnix,omitempty"` AccessLog *parser.AccessLog `json:"accessLog,omitempty"` }
LogEntry holds a single log entry
type LogOptions ¶ added in v1.26.0
type LogOptions struct { Duration *time.Duration IsProxy bool // fetching logs for Istio Proxy (Envoy access log) core_v1.PodLogOptions }
LogOptions holds query parameter values
type MeshService ¶ added in v1.29.0
type MeshService struct {
// contains filtered or unexported fields
}
MeshService is a support service for retrieving data about the mesh environment when Istio is installed with multi-cluster enabled. Prefer initializing this type via the NewMeshService function.
func NewMeshService ¶ added in v1.29.0
func NewMeshService(k8s kubernetes.ClientInterface, layer *Layer, newRemoteClientFunc func(config *rest.Config) (kubernetes.ClientInterface, error)) MeshService
NewMeshService initializes a new MeshService structure with the given k8s client and newRemoteClientFunc arguments (see the MeshService struct for details). The newRemoteClientFunc can be passed a nil value and a default function will be used.
func (*MeshService) GetClusters ¶ added in v1.29.0
func (in *MeshService) GetClusters(r *http.Request) (clusters []Cluster, errVal error)
GetClusters resolves the Kubernetes clusters that are hosting the mesh. Resolution is done as best-effort using the resources that are present in the cluster.
func (*MeshService) IsMeshConfigured ¶ added in v1.29.0
func (in *MeshService) IsMeshConfigured() (bool, error)
func (*MeshService) ResolveKialiControlPlaneCluster ¶ added in v1.29.0
func (in *MeshService) ResolveKialiControlPlaneCluster(r *http.Request) (*Cluster, error)
ResolveKialiControlPlaneCluster tries to resolve the metadata about the cluster where Kiali is installed. This assumes that the mesh Control Plane is installed in the same cluster as Kiali.
type MetricsLabelsBuilder ¶ added in v1.27.0
type MetricsLabelsBuilder struct {
// contains filtered or unexported fields
}
func NewMetricsLabelsBuilder ¶ added in v1.27.0
func NewMetricsLabelsBuilder(direction string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) Add ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) Add(key, value string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) Aggregate ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) Aggregate(key, value string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) App ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) App(name, namespace string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) Build ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) Build() string
func (*MetricsLabelsBuilder) BuildForErrors ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) BuildForErrors() []string
func (*MetricsLabelsBuilder) Namespace ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) Namespace(namespace string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) PeerApp ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) PeerApp(name, namespace string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) PeerNamespace ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) PeerNamespace(namespace string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) PeerService ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) PeerService(name, namespace string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) PeerWorkload ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) PeerWorkload(name, namespace string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) Protocol ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) Protocol(name string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) Reporter ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) Reporter(name string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) SelfReporter ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) SelfReporter() *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) Service ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) Service(name, namespace string) *MetricsLabelsBuilder
func (*MetricsLabelsBuilder) Workload ¶ added in v1.27.0
func (lb *MetricsLabelsBuilder) Workload(name, namespace string) *MetricsLabelsBuilder
type MetricsService ¶ added in v1.27.0
type MetricsService struct {
// contains filtered or unexported fields
}
MetricsService deals with fetching metrics from prometheus
func NewMetricsService ¶ added in v1.27.0
func NewMetricsService(prom prometheus.ClientInterface) *MetricsService
NewMetricsService initializes this business service
func (*MetricsService) GetMetrics ¶ added in v1.27.0
func (in *MetricsService) GetMetrics(q models.IstioMetricsQuery, scaler func(n string) float64) (models.MetricsMap, error)
func (*MetricsService) GetStats ¶ added in v1.27.0
func (in *MetricsService) GetStats(queries []models.MetricsStatsQuery) (map[string]models.MetricsStats, error)
GetStats computes metrics stats, currently response times, for a set of queries
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.ClientInterface) NamespaceService
func (*NamespaceService) GetNamespace ¶ added in v0.9.1
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
func (*NamespaceService) UpdateNamespace ¶ added in v1.22.1
type OAuthAuthorizationServer ¶ added in v0.16.0
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 ¶ added in v0.16.0
type OAuthRoute ¶ added in v0.16.0
type OAuthRoute struct {
Spec OAuthRouteSpec `json:"spec"`
}
type OAuthRouteSpec ¶ added in v0.16.0
type OAuthRouteSpec struct { Host string `json:"host"` TLS *OAuthRouteTLSSpec `json:"tls,omitempty"` }
type OAuthRouteTLSSpec ¶ added in v0.16.0
type OAuthRouteTLSSpec struct {
Termination string `json:"termination"`
}
type OAuthUser ¶ added in v0.16.0
type OAuthUser struct {
Metadata OAuthUserMetadata `json:"metadata"`
}
type OAuthUserMetadata ¶ added in v0.16.0
type OAuthUserMetadata struct {
Name string `json:"name"`
}
type ObjectChecker ¶
type ObjectChecker interface {
Check() models.IstioValidations
}
type OpenIdCallbackParams ¶ added in v1.24.0
type OpenIdCallbackParams struct { AccessToken string Code string ExpiresOn time.Time IdToken string Nonce string NonceHash []byte ParsedIdToken *jwt.Token State string Subject string }
func ExtractOpenIdCallbackParams ¶ added in v1.24.0
func ExtractOpenIdCallbackParams(r *http.Request) (params *OpenIdCallbackParams, err error)
type OpenIdMetadata ¶ added in v1.19.0
type OpenIdMetadata struct { // Taken from https://github.com/coreos/go-oidc/blob/8d771559cf6e5111c9b9159810d0e4538e7cdc82/oidc.go Issuer string `json:"issuer"` AuthURL string `json:"authorization_endpoint"` TokenURL string `json:"token_endpoint"` JWKSURL string `json:"jwks_uri"` UserInfoURL string `json:"userinfo_endpoint"` Algorithms []string `json:"id_token_signing_alg_values_supported"` // Some extra fields ScopesSupported []string `json:"scopes_supported"` ResponseTypesSupported []string `json:"response_types_supported"` }
func GetOpenIdMetadata ¶ added in v1.19.0
func GetOpenIdMetadata() (*OpenIdMetadata, error)
GetOpenIdMetadata fetches the OpenId metadata using the configured Issuer URI and downloading the metadata from the well-known path '/.well-known/openid-configuration'. Some validations are performed and the parsed metadata is returned. Since the metadata should be rare to change, the retrieved metadata is cached on first call and subsequent calls return the cached metadata.
type OpenshiftOAuthService ¶ added in v0.16.0
type OpenshiftOAuthService struct {
// contains filtered or unexported fields
}
func (*OpenshiftOAuthService) GetUserInfo ¶ added in v0.16.0
func (in *OpenshiftOAuthService) GetUserInfo(token string) (*OAuthUser, error)
func (*OpenshiftOAuthService) Logout ¶ added in v0.20.0
func (in *OpenshiftOAuthService) Logout(token string) error
func (*OpenshiftOAuthService) Metadata ¶ added in v0.16.0
func (in *OpenshiftOAuthService) Metadata() (metadata *OAuthMetadata, err error)
type PodLog ¶ added in v1.25.0
type PodLog struct {
Entries []LogEntry `json:"entries,omitempty"`
}
PodLog reports log entries
type ProxyStatusService ¶ added in v1.35.0
type ProxyStatusService struct {
// contains filtered or unexported fields
}
func (*ProxyStatusService) GetConfigDump ¶ added in v1.35.0
func (in *ProxyStatusService) GetConfigDump(namespace, pod string) (models.EnvoyProxyDump, error)
func (*ProxyStatusService) GetConfigDumpResourceEntries ¶ added in v1.35.0
func (in *ProxyStatusService) GetConfigDumpResourceEntries(namespace, pod, resource string) (*models.EnvoyProxyDump, error)
func (*ProxyStatusService) GetPodProxyStatus ¶ added in v1.35.0
func (in *ProxyStatusService) GetPodProxyStatus(ns, pod string) (*kubernetes.ProxyStatus, error)
type RegistryStatusService ¶ added in v1.35.0
type RegistryStatusService struct {
// contains filtered or unexported fields
}
func (*RegistryStatusService) GetRegistryStatus ¶ added in v1.35.0
func (in *RegistryStatusService) GetRegistryStatus() ([]*kubernetes.RegistryStatus, error)
type SpanFilter ¶ added in v1.24.0
type SpanFilter = func(span *jaegerModels.Span) bool
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) (*models.ServiceDetails, error)
GetService returns a single service and associated data using the interval and queryTime
func (*SvcService) GetServiceAppName ¶ added in v1.24.0
func (in *SvcService) GetServiceAppName(namespace, service string) (string, error)
GetServiceAppName returns the "Application" name (app label) that relates to a service This label is taken from the service selector, which means it is assumed that pods are selected using that label
func (*SvcService) GetServiceDefinition ¶ added in v0.11.0
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) GetServiceDefinitionList ¶ added in v1.5.0
func (in *SvcService) GetServiceDefinitionList(namespace string) (*models.ServiceDefinitionList, error)
GetServiceDefinitionList returns service definitions for the namespace (the service object only), 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
func (*SvcService) UpdateService ¶ added in v1.30.0
func (in *SvcService) UpdateService(namespace, service string, interval string, queryTime time.Time, jsonPatch string) (*models.ServiceDetails, error)
type TLSService ¶ added in v0.16.0
type TLSService struct {
// contains filtered or unexported fields
}
func (*TLSService) MeshWidemTLSStatus ¶ added in v0.16.0
func (in *TLSService) MeshWidemTLSStatus(namespaces []string) (models.MTLSStatus, error)
func (TLSService) NamespaceWidemTLSStatus ¶ added in v0.16.0
func (in TLSService) NamespaceWidemTLSStatus(namespace string) (models.MTLSStatus, error)
type TokenReviewService ¶ added in v1.29.0
type TokenReviewService struct {
// contains filtered or unexported fields
}
func NewTokenReview ¶ added in v1.29.0
func NewTokenReview(k8s kubernetes.ClientInterface) TokenReviewService
func (*TokenReviewService) GetTokenSubject ¶ added in v1.29.0
func (in *TokenReviewService) GetTokenSubject(authInfo *api.AuthInfo) (string, error)
type WorkloadService ¶
type WorkloadService struct {
// contains filtered or unexported fields
}
WorkloadService deals with fetching istio/kubernetes workloads related content and convert to kiali model
func (*WorkloadService) BuildLogOptionsCriteria ¶ added in v1.27.0
func (in *WorkloadService) BuildLogOptionsCriteria(container, duration, isProxy, sinceTime, tailLines string) (*LogOptions, error)
func (*WorkloadService) GetPod ¶ added in v0.18.0
func (in *WorkloadService) GetPod(namespace, name string) (*models.Pod, error)
func (*WorkloadService) GetPodLogs ¶ added in v0.18.0
func (in *WorkloadService) GetPodLogs(namespace, name string, opts *LogOptions) (*PodLog, error)
GetPodLogs returns pod logs given the provided options
func (*WorkloadService) GetWorkload ¶
func (in *WorkloadService) GetWorkload(namespace string, workloadName string, workloadType 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) GetWorkloadAppName ¶ added in v1.24.0
func (in *WorkloadService) GetWorkloadAppName(namespace, workload string) (string, error)
GetWorkloadAppName returns the "Application" name (app label) that relates to a workload
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.
Source Files ¶
- apps.go
- dashboards.go
- grafana.go
- health.go
- istio_config.go
- istio_status.go
- istio_validations.go
- iter8.go
- jaeger.go
- layer.go
- mesh.go
- metrics.go
- metrics_definitions.go
- metrics_labels_builder.go
- namespaces.go
- openid_auth.go
- openshift_oauth.go
- proxy_status.go
- registry_status.go
- services.go
- test_util.go
- tls.go
- tokenreview.go
- workloads.go