models

package
v1.40.0 Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2021 License: Apache-2.0 Imports: 24 Imported by: 124

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ObjectTypeSingular = map[string]string{
	"gateways":               "gateway",
	"virtualservices":        "virtualservice",
	"destinationrules":       "destinationrule",
	"serviceentries":         "serviceentry",
	"rules":                  "rule",
	"quotaspecs":             "quotaspec",
	"quotaspecbindings":      "quotaspecbinding",
	"policies":               "policy",
	"serviceroles":           "servicerole",
	"servicerolebindings":    "servicerolebinding",
	"clusterrbacconfigs":     "clusterrbacconfig",
	"authorizationpolicies":  "authorizationpolicy",
	"sidecars":               "sidecar",
	"peerauthentications":    "peerauthentication",
	"requestauthentications": "requestauthentication",
}

Functions

func CheckMessage added in v0.14.0

func CheckMessage(checkId string) string

func GetDashboardAnnotation added in v1.36.2

func GetDashboardAnnotation(annotations map[string]string) map[string]string

func GetHealthAnnotation added in v1.30.0

func GetHealthAnnotation(annotations map[string]string, filters []AnnotationKey) map[string]string

Types

type AdditionalItem added in v1.10.0

type AdditionalItem struct {
	Title string `json:"title"`
	Value string `json:"value"`
	Icon  string `json:"icon"`
}

func GetAdditionalDetails added in v1.10.0

func GetAdditionalDetails(conf *config.Config, annotations map[string]string) []AdditionalItem

func GetFirstAdditionalIcon added in v1.15.0

func GetFirstAdditionalIcon(conf *config.Config, annotations map[string]string) *AdditionalItem

type Address

type Address struct {
	Kind string `json:"kind"`
	Name string `json:"name"`
	IP   string `json:"ip"`
}

func (*Address) Parse

func (address *Address) Parse(a core_v1.EndpointAddress)

type Addresses

type Addresses []Address

func (*Addresses) Parse

func (addresses *Addresses) Parse(as []core_v1.EndpointAddress)

type Aggregation added in v0.12.0

type Aggregation struct {
	Label           string `json:"label"`
	DisplayName     string `json:"displayName"`
	SingleSelection bool   `json:"singleSelection"`
}

Aggregation is the model representing label's allowed aggregation, transformed from aggregation in MonitoringDashboard config resource

func ConvertAggregations added in v0.12.0

func ConvertAggregations(from dashboards.MonitoringDashboard) []Aggregation

ConvertAggregations converts a config aggregations (from MonitoringDashboard config resource) into this models aggregations Results are sorted by DisplayName

type AnnotationKey added in v1.30.0

type AnnotationKey string

Annotationkey is a mnemonic type name for string

const (
	AllHealthAnnotation  AnnotationKey = ".*"
	RateHealthAnnotation AnnotationKey = "health.kiali.io/rate"
)

func GetHealthConfigAnnotation added in v1.30.0

func GetHealthConfigAnnotation() []AnnotationKey

type App

type App struct {
	// Namespace where the app lives in
	// required: true
	// example: bookinfo
	Namespace Namespace `json:"namespace"`

	// Name of the application
	// required: true
	// example: reviews
	Name string `json:"name"`

	// Workloads for a given application
	// required: true
	Workloads []WorkloadItem `json:"workloads"`

	// List of service names linked with an application
	// required: true
	ServiceNames []string `json:"serviceNames"`

	// Runtimes and associated dashboards
	Runtimes []Runtime `json:"runtimes"`
}

type AppHealth

type AppHealth struct {
	WorkloadStatuses []*WorkloadStatus `json:"workloadStatuses"`
	Requests         RequestHealth     `json:"requests"`
}

AppHealth contains aggregated health from various sources, for a given app

func EmptyAppHealth

func EmptyAppHealth() AppHealth

EmptyAppHealth create an empty AppHealth

type AppList

type AppList struct {
	// Namespace where the apps live in
	// required: true
	// example: bookinfo
	Namespace Namespace `json:"namespace"`

	// Applications for a given namespace
	// required: true
	Apps []AppListItem `json:"applications"`
}

type AppListItem

type AppListItem struct {
	// Name of the application
	// required: true
	// example: reviews
	Name string `json:"name"`

	// Define if all Pods related to the Workloads of this app has an IstioSidecar deployed
	// required: true
	// example: true
	IstioSidecar bool `json:"istioSidecar"`

	// Labels for App
	Labels map[string]string `json:"labels"`

	// Istio References
	IstioReferences []*IstioValidationKey `json:"istioReferences"`
}

AppListItem has the necessary information to display the console app list

type AuthorizationPolicies added in v1.12.0

type AuthorizationPolicies []AuthorizationPolicy

AuthorizationPolicies authorizationPolicies

This is used for returning an array of AuthorizationPolicies

swagger:model authorizationPolicies An array of authorizationPolicy swagger:allOf

func (*AuthorizationPolicies) Parse added in v1.12.0

func (aps *AuthorizationPolicies) Parse(authorizationPolicies []kubernetes.IstioObject)

type AuthorizationPolicy added in v1.12.0

type AuthorizationPolicy struct {
	IstioBase
	Spec struct {
		Selector interface{} `json:"selector,omitempty"`
		Rules    interface{} `json:"rules,omitempty"`
		Action   interface{} `json:"action,omitempty"`
	} `json:"spec"`
}

AuthorizationPolicy authorizationPolicy

This is used for returning an AuthorizationPolicy

swagger:model authorizationPolicy

func (*AuthorizationPolicy) Parse added in v1.12.0

func (ap *AuthorizationPolicy) Parse(authorizationPolicy kubernetes.IstioObject)

type Bootstrap added in v1.28.0

type Bootstrap struct {
	Bootstrap map[string]interface{} `json:"bootstrap,inline"`
}

func (*Bootstrap) Parse added in v1.28.0

func (bd *Bootstrap) Parse(dump *kubernetes.ConfigDump) error

type CertInfo added in v1.40.0

type CertInfo struct {
	SecretName      string    `json:"secretName"`
	SecretNamespace string    `json:"secretNamespace"`
	DNSNames        []string  `json:"dnsNames"`
	Issuer          string    `json:"issuer"`
	NotBefore       time.Time `json:"notBefore"`
	NotAfter        time.Time `json:"notAfter"`
	Error           string    `json:"error"`
	Accessible      bool      `json:"accessible"`
}

CertInfo contains the information for a given certificate

func (*CertInfo) Parse added in v1.40.0

func (ci *CertInfo) Parse(certificate []byte)

type Chart added in v0.12.0

type Chart struct {
	Name           string   `json:"name"`
	Unit           string   `json:"unit"`
	Spans          int      `json:"spans"`
	StartCollapsed bool     `json:"startCollapsed"`
	ChartType      *string  `json:"chartType,omitempty"`
	Min            *int     `json:"min,omitempty"`
	Max            *int     `json:"max,omitempty"`
	Metrics        []Metric `json:"metrics"`
	XAxis          *string  `json:"xAxis"`
	Error          string   `json:"error"`
}

Chart is the model representing a custom chart, transformed from charts in MonitoringDashboard config resource

func ConvertChart added in v0.12.0

func ConvertChart(from dashboards.MonitoringDashboardChart) Chart

ConvertChart converts a config chart (from MonitoringDashboard config resource) into this models chart

type Cluster added in v1.28.0

type Cluster struct {
	ServiceFQDN     kubernetes.Host `json:"service_fqdn"`
	Port            int             `json:"port"`
	Subset          string          `json:"subset"`
	Direction       string          `json:"direction"`
	Type            string          `json:"type"`
	DestinationRule string          `json:"destination_rule"`
}

func (*Cluster) Parse added in v1.28.0

func (cs *Cluster) Parse(cluster kubernetes.EnvoyCluster)

type Clusters added in v1.28.0

type Clusters []*Cluster

func (*Clusters) Parse added in v1.28.0

func (css *Clusters) Parse(dump *kubernetes.ConfigDump) error

type ContainerInfo

type ContainerInfo struct {
	Name    string `json:"name"`
	Image   string `json:"image"`
	IsProxy bool   `json:"isProxy"`
	IsReady bool   `json:"isReady"`
}

ContainerInfo holds container name and image

type ConversionParams added in v1.27.0

type ConversionParams struct {
	Scale            float64
	SortLabel        string
	SortLabelParseAs string
	RemoveSortLabel  bool
}

type CustomMetricsQuery added in v1.27.0

type CustomMetricsQuery struct {
	prometheus.RangeQuery
	Namespace         string
	App               string
	Version           string
	RawDataAggregator string
}

CustomMetricsQuery holds query parameters for a custom metrics query

func (*CustomMetricsQuery) FillDefaults added in v1.27.0

func (q *CustomMetricsQuery) FillDefaults()

FillDefaults fills the struct with default parameters

type DashboardQuery added in v1.27.0

type DashboardQuery struct {
	prometheus.RangeQuery
	Namespace         string
	LabelsFilters     map[string]string
	AdditionalLabels  []Aggregation
	RawDataAggregator string
	Workload          string
	WorkloadType      string
}

DashboardQuery holds query parameters for a dashboard query

func (*DashboardQuery) FillDefaults added in v1.27.0

func (q *DashboardQuery) FillDefaults()

FillDefaults fills the struct with default parameters

type DashboardRef added in v0.12.0

type DashboardRef struct {
	Template string `json:"template"`
	Title    string `json:"title"`
}

DashboardRef holds template name and title for a custom dashboard

type Datapoint added in v1.27.0

type Datapoint struct {
	Timestamp int64
	Value     float64
}

func (Datapoint) MarshalJSON added in v1.27.0

func (s Datapoint) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

type DestinationRule

type DestinationRule struct {
	IstioBase
	Spec struct {
		Host          interface{} `json:"host,omitempty"`
		TrafficPolicy interface{} `json:"trafficPolicy,omitempty"`
		Subsets       interface{} `json:"subsets,omitempty"`
		ExportTo      interface{} `json:"exportTo,omitempty"`
	} `json:"spec"`
}

DestinationRule destinationRule

This is used for returning a DestinationRule

swagger:model destinationRule

func (*DestinationRule) HasCircuitBreaker added in v0.9.1

func (dRule *DestinationRule) HasCircuitBreaker(namespace string, serviceName string, version string) bool

func (*DestinationRule) Parse

func (dRule *DestinationRule) Parse(destinationRule kubernetes.IstioObject)

type DestinationRules

type DestinationRules struct {
	Permissions ResourcePermissions `json:"permissions"`
	Items       []DestinationRule   `json:"items"`
}

DestinationRules destinationRules

This is used for returning an array of DestinationRules

swagger:model destinationRules An array of destinationRule swagger:allOf

func (*DestinationRules) Parse

func (dRules *DestinationRules) Parse(destinationRules []kubernetes.IstioObject)

type Endpoint

type Endpoint struct {
	Addresses Addresses `json:"addresses"`
	Ports     Ports     `json:"ports"`
}

func (*Endpoint) Parse

func (endpoint *Endpoint) Parse(s core_v1.EndpointSubset)

type Endpoints

type Endpoints []Endpoint

func (*Endpoints) Parse

func (endpoints *Endpoints) Parse(es *core_v1.Endpoints)

type EnvoyFilter added in v1.18.2

type EnvoyFilter struct {
	IstioBase
	Spec struct {
		WorkloadSelector interface{} `json:"workloadSelector"`
		ConfigPatches    interface{} `json:"configPatches"`
	} `json:"spec"`
}

EnvoyFilter envoyFilter

This is used for returning an EnvoyFilter

swagger:model envoyFilter

func (*EnvoyFilter) Parse added in v1.18.2

func (ef *EnvoyFilter) Parse(envoyFilter kubernetes.IstioObject)

type EnvoyFilters added in v1.18.2

type EnvoyFilters []EnvoyFilter

EnvoyFilters envoyFilters

This is used for returning an array of EnvoyFilter

swagger:model envoyFilters An array of envoyFilter swagger:allOf

func (*EnvoyFilters) Parse added in v1.18.2

func (efs *EnvoyFilters) Parse(envoyFilters []kubernetes.IstioObject)

type EnvoyProxyDump added in v1.28.0

type EnvoyProxyDump struct {
	ConfigDump *kubernetes.ConfigDump `json:"config_dump,omitempty"`
	Bootstrap  *Bootstrap             `json:"bootstrap,omitempty"`
	Clusters   *Clusters              `json:"clusters,omitempty"`
	Listeners  *Listeners             `json:"listeners,omitempty"`
	Routes     *Routes                `json:"routes,omitempty"`
}
type ExternalLink struct {
	URL       string                                              `json:"url"`
	Name      string                                              `json:"name"`
	Variables dashboards.MonitoringDashboardExternalLinkVariables `json:"variables"`
}

ExternalLink provides links to external dashboards (e.g. to Grafana)

type Gateway

type Gateway struct {
	IstioBase
	Spec struct {
		Servers  interface{}       `json:"servers"`
		Selector map[string]string `json:"selector"`
	} `json:"spec"`
}

func (*Gateway) Parse

func (gw *Gateway) Parse(gateway kubernetes.IstioObject)

type Gateways

type Gateways []Gateway

func (*Gateways) Parse

func (gws *Gateways) Parse(gateways []kubernetes.IstioObject)

type GrafanaInfo

type GrafanaInfo struct {
	ExternalLinks []ExternalLink `json:"externalLinks"`
}

GrafanaInfo provides information to access Grafana dashboards

type HTTPMatchRequest added in v1.25.0

type HTTPMatchRequest struct {
	URI     HTTPMatchRule   `json:"uri,omitempty"`
	Headers []HTTPMatchRule `json:"headers,omitempty"`
}

type HTTPMatchRule added in v1.27.0

type HTTPMatchRule struct {
	Key         string `json:"key,omitempty"`
	Match       string `json:"match,omitempty"`
	StringMatch string `json:"stringMatch,omitempty"`
}

type IstioBase added in v1.24.0

type IstioBase struct {
	meta_v1.TypeMeta
	Metadata meta_v1.ObjectMeta     `json:"metadata"`
	Status   map[string]interface{} `json:"status,omitempty"`
}

func (*IstioBase) Parse added in v1.24.0

func (ib *IstioBase) Parse(io kubernetes.IstioObject)

type IstioCheck

type IstioCheck struct {
	// The check code used to identify a check
	// required: true
	// example: KIA0001
	Code string `json:"code"`

	// Description of the check
	// required: true
	// example: Weight sum should be 100
	Message string `json:"message"`

	// Indicates the level of importance: error or warning
	// required: true
	// example: error
	Severity SeverityLevel `json:"severity"`

	// String that describes where in the yaml file is the check located
	// example: spec/http[0]/route
	Path string `json:"path"`
}

IstioCheck represents an individual check. swagger:model

func Build added in v0.14.0

func Build(checkId string, path string) IstioCheck

func (IstioCheck) GetFullMessage added in v1.38.1

func (ic IstioCheck) GetFullMessage() string

type IstioConfigDetails

type IstioConfigDetails struct {
	Namespace             Namespace              `json:"namespace"`
	ObjectType            string                 `json:"objectType"`
	Gateway               *Gateway               `json:"gateway"`
	VirtualService        *VirtualService        `json:"virtualService"`
	DestinationRule       *DestinationRule       `json:"destinationRule"`
	ServiceEntry          *ServiceEntry          `json:"serviceEntry"`
	WorkloadEntry         *WorkloadEntry         `json:"workloadEntry"`
	WorkloadGroup         *WorkloadGroup         `json:"workloadGroup"`
	EnvoyFilter           *EnvoyFilter           `json:"envoyFilter"`
	Sidecar               *Sidecar               `json:"sidecar"`
	AuthorizationPolicy   *AuthorizationPolicy   `json:"authorizationPolicy"`
	PeerAuthentication    *PeerAuthentication    `json:"peerAuthentication"`
	RequestAuthentication *RequestAuthentication `json:"requestAuthentication"`
	Permissions           ResourcePermissions    `json:"permissions"`
	IstioValidation       *IstioValidation       `json:"validation"`
}

type IstioConfigList

type IstioConfigList struct {
	// The namespace of istioConfiglist
	//
	// required: true
	Namespace              Namespace              `json:"namespace"`
	Gateways               Gateways               `json:"gateways"`
	VirtualServices        VirtualServices        `json:"virtualServices"`
	DestinationRules       DestinationRules       `json:"destinationRules"`
	ServiceEntries         ServiceEntries         `json:"serviceEntries"`
	WorkloadEntries        WorkloadEntries        `json:"workloadEntries"`
	WorkloadGroups         WorkloadGroups         `json:"workloadGroups"`
	EnvoyFilters           EnvoyFilters           `json:"envoyFilters"`
	Sidecars               Sidecars               `json:"sidecars"`
	AuthorizationPolicies  AuthorizationPolicies  `json:"authorizationPolicies"`
	PeerAuthentications    PeerAuthentications    `json:"peerAuthentications"`
	RequestAuthentications RequestAuthentications `json:"requestAuthentications"`
	IstioValidations       IstioValidations       `json:"validations"`
}

IstioConfigList istioConfigList

This type is used for returning a response of IstioConfigList

swagger:model IstioConfigList

type IstioConfigPermissions added in v1.13.0

type IstioConfigPermissions map[string]*ResourcesPermissions

IstioConfigPermissions holds a map of ResourcesPermissions per namespace

type IstioMetricsQuery added in v1.27.0

type IstioMetricsQuery struct {
	prometheus.RangeQuery
	Filters         []string
	Namespace       string
	App             string
	Workload        string
	Service         string
	Direction       string // outbound | inbound
	RequestProtocol string // e.g. http | grpc
	Reporter        string // source | destination, defaults to source if not provided
	Aggregate       string
	AggregateValue  string
}

IstioMetricsQuery holds query parameters for a typical metrics query

func (*IstioMetricsQuery) FillDefaults added in v1.27.0

func (q *IstioMetricsQuery) FillDefaults()

FillDefaults fills the struct with default parameters

type IstioValidation

type IstioValidation struct {
	// Name of the object itself
	// required: true
	// example: reviews
	Name string `json:"name"`

	// Type of the object
	// required: true
	// example: virtualservice
	ObjectType string `json:"objectType"`

	// Represents validity of the object: in case of warning, validity remains as true
	// required: true
	// example: false
	Valid bool `json:"valid"`

	// Array of checks. It might be empty.
	Checks []*IstioCheck `json:"checks"`

	// Related objects (only validation errors)
	References []IstioValidationKey `json:"references"`
}

IstioValidation represents a list of checks associated to an Istio object. swagger:model

type IstioValidationKey

type IstioValidationKey struct {
	ObjectType string `json:"objectType"`
	Name       string `json:"name"`
	Namespace  string `json:"namespace"`
}

IstioValidationKey is the key value composed of an Istio ObjectType and Name.

func BuildKey added in v0.15.0

func BuildKey(objectType, name, namespace string) IstioValidationKey

type IstioValidationSummary added in v1.10.0

type IstioValidationSummary struct {
	// Number of validations with error severity
	// required: true
	// example: 2
	Errors int `json:"errors"`
	// Number of Istio Objects analyzed
	// required: true
	// example: 6
	ObjectCount int `json:"objectCount"`
	// Number of validations with warning severity
	// required: true
	// example: 4
	Warnings int `json:"warnings"`
}

IstioValidationSummary represents the number of errors/warnings of a set of Istio Validations.

type IstioValidations

type IstioValidations map[IstioValidationKey]*IstioValidation

IstioValidations represents a set of IstioValidation grouped by IstioValidationKey.

func (IstioValidations) FilterByKey

func (iv IstioValidations) FilterByKey(objectType, name string) IstioValidations

func (IstioValidations) FilterBySingleType added in v0.20.0

func (iv IstioValidations) FilterBySingleType(objectType, name string) IstioValidations

func (IstioValidations) FilterByTypes added in v0.14.0

func (iv IstioValidations) FilterByTypes(objectTypes []string) IstioValidations

FilterByTypes takes an input as ObjectTypes, transforms to singular types and filters the validations

func (IstioValidations) MarshalJSON

func (iv IstioValidations) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (IstioValidations) MergeReferences added in v1.7.0

func (iv IstioValidations) MergeReferences(validations IstioValidations) IstioValidations

func (IstioValidations) MergeValidations

func (iv IstioValidations) MergeValidations(validations IstioValidations) IstioValidations

func (*IstioValidations) StripIgnoredChecks added in v1.38.1

func (iv *IstioValidations) StripIgnoredChecks()

func (IstioValidations) SummarizeValidation added in v1.10.0

func (iv IstioValidations) SummarizeValidation(ns string) IstioValidationSummary

type Iter8AnalyticsConfig added in v1.18.1

type Iter8AnalyticsConfig struct {
	Port       int `yaml:"port,omitempty"`
	Prometheus struct {
		Auth struct {
			CAFile             string `yaml:"ca_file"`
			InsecureSkipVerify bool   `yaml:"insecure_skip_verify"`
			Password           string `yaml:"password"`
			Token              string `yaml:"token"`
			Type               string `yaml:"type"`
			UserName           string `yaml:"username"`
		} `yaml:"auth"`
		URL string `yaml:"url"`
	} `yaml:"prometheus"`
}

type Iter8CandidateStatus added in v1.24.0

type Iter8CandidateStatus struct {
	Name                string                                `json:"name"`
	Version             string                                `json:"version"`
	Weight              int32                                 `json:"weight"`
	WinProbability      float32                               `json:"winProbability"`
	Request_Count       int32                                 `json:"requestCount"`
	CriteriaAssessments []kubernetes.Iter8CriterionAssessment `json:"criterionAssessment"`
}

type Iter8Criteria added in v1.15.0

type Iter8Criteria struct {
	Metric        string  `json:"metric"`
	ToleranceType string  `json:"toleranceType"`
	Tolerance     float32 `json:"tolerance"`
	StopOnFailure bool    `json:"stopOnFailure"`
	IsReward      bool    `json:"isReward"`
}

type Iter8CriteriaDetail added in v1.15.0

type Iter8CriteriaDetail struct {
	Name     string        `json:"name"`
	Criteria Iter8Criteria `json:"criteria"`
	Metric   Iter8Metric   `json:"metric"`
}

type Iter8ExperimentAction added in v1.24.0

type Iter8ExperimentAction struct {
	Action       string     `json:"action"`
	TrafficSplit [][]string `json:"trafficSplit,omitempty"`
}

type Iter8ExperimentDetail added in v1.15.0

type Iter8ExperimentDetail struct {
	ExperimentItem  Iter8ExperimentItem        `json:"experimentItem"`
	CriteriaDetails []Iter8CriteriaDetail      `json:"criterias"`
	Networking      kubernetes.Iter8Networking `json:"networking"`
	TrafficControl  Iter8TrafficControl        `json:"trafficControl"`
	Permissions     ResourcePermissions        `json:"permissions"`
	ExperimentType  string                     `json:"experimentType"`
	Duration        kubernetes.Iter8Duration   `json:"duration"`
	Action          string                     `json:"action"`
}

For Displaying Iter8 Experiment Tabs

func (*Iter8ExperimentDetail) Parse added in v1.15.0

func (i *Iter8ExperimentDetail) Parse(iter8Object kubernetes.Iter8Experiment)

type Iter8ExperimentItem added in v1.15.0

type Iter8ExperimentItem struct {
	Name                   string                     `json:"name"`
	Phase                  string                     `json:"phase"`
	Status                 string                     `json:"status"`
	Baseline               Iter8CandidateStatus       `json:"baseline"`
	Candidates             []Iter8CandidateStatus     `json:"candidates"`
	Namespace              string                     `json:"namespace"`
	InitTime               string                     `json:"initTime"`
	StartTime              string                     `json:"startTime"`
	EndTime                string                     `json:"endTime"`
	TargetService          string                     `json:"targetService"`
	TargetServiceNamespace string                     `json:"targetServiceNamespace"`
	Winner                 Iter8SuccessCrideriaStatus `json:"winner"`
	Kind                   string                     `json:"kind"`
	ExperimentType         string                     `json:"experimentKind"`
}

For Displaying Iter8 Experiment Details

func (*Iter8ExperimentItem) Parse added in v1.15.0

func (i *Iter8ExperimentItem) Parse(iter8Object kubernetes.Iter8Experiment)

type Iter8ExperimentSpec added in v1.15.0

type Iter8ExperimentSpec struct {
	Name           string                       `json:"name"`
	Namespace      string                       `json:"namespace"`
	Service        string                       `json:"service"`
	APIVersion     string                       `json:"apiversion"`
	Baseline       string                       `json:"baseline"`
	Candidates     []string                     `json:"candidates"`
	TrafficControl Iter8TrafficControl          `json:"trafficControl"`
	Criterias      []Iter8Criteria              `json:"criterias"`
	Hosts          []kubernetes.Iter8Host       `json:"hosts"`
	RoutingID      string                       `json:"routingID"`
	Action         *kubernetes.ExperimentAction `json:"action"`
	TrafficSplit   map[string]int32             `json:"trafficSplit,omitempty"`
	ExperimentKind string                       `json:"experimentKind"`
	ExperimentType string                       `json:"experimentType"`
	Duration       kubernetes.Iter8Duration     `json:"duration"`
	Cleanup        bool                         `json:"cleanup"`
	Metrics        Iter8Metrics                 `json:"metrics"`
}

Spec for Creating Experiment

func (*Iter8ExperimentSpec) Parse added in v1.20.0

func (i *Iter8ExperimentSpec) Parse(iter8Object Iter8ExperimentDetail)

type Iter8Info added in v1.15.0

type Iter8Info struct {
	Enabled                bool   `json:"enabled"`
	SupportedVersion       bool   `json:"supportedVersion"`
	ControllerImageVersion string `json:"controllerImgVersion"`
	AnalyticsImageVersion  string `json:"analyticsImgVersion"`
	Namespace              string `json:"namespace"`
}

type Iter8Match added in v1.24.0

type Iter8Match struct {
	HTTP []HTTPMatchRequest `json:"http,omitempty"`
}

Match contains matching criteria for requests

type Iter8Metric added in v1.15.0

type Iter8Metric struct {
	Name               string                   `json:"name"`
	Numerator          kubernetes.CounterMetric `json:"numerator" yaml:"numerator"`
	Denominator        kubernetes.CounterMetric `json:"denominator" yaml:"denominator"`
	ZeroToOne          *bool                    `json:"zero_to_one,omitempty" yaml:"zero_to_one,omitempty"`
	PreferredDirection *string                  `json:"preferred_direction,omitempty" yaml:"preferred_direction,omitempty"`
}

type Iter8Metrics added in v1.24.0

type Iter8Metrics struct {
	CounterMetrics []kubernetes.CounterMetric `json:"counter_metrics,omitempty"`
	RatioMetrics   []kubernetes.RatioMetric   `json:"ratio_metrics,omitempty"`
}

type Iter8SuccessCrideriaStatus added in v1.18.1

type Iter8SuccessCrideriaStatus struct {
	Name        *string  `json:"name,omitempty"`
	WinnerFound *bool    `json:"winning_version_found"`
	Winner      string   `json:"current_best_version,omitempty"`
	Probability *float32 `json:"probability_of_winning_for_best_version,omitempty"`
}

type Iter8TrafficControl added in v1.15.0

type Iter8TrafficControl struct {
	Strategy      string     `json:"strategy,omitempty"`      // v1.0.0
	OnTermination string     `json:"onTermination,omitempty"` // v1.0.0
	Match         Iter8Match `json:"match,omitempty"`         // v1.0.0
	Percentage    int32      `json:"percentage,omitempty"`    // v1.0.0
	MaxIncrement  int32      `json:"maxIncrement,omitempty"`
}

type JaegerInfo

type JaegerInfo struct {
	Enabled              bool     `json:"enabled"`
	Integration          bool     `json:"integration"`
	URL                  string   `json:"url"`
	NamespaceSelector    bool     `json:"namespaceSelector"`
	WhiteListIstioSystem []string `json:"whiteListIstioSystem"`
}

type Listener added in v1.28.0

type Listener struct {
	Address     string  `json:"address"`
	Port        float64 `json:"port"`
	Match       string  `json:"match"`
	Destination string  `json:"destination"`
}

type Listeners added in v1.28.0

type Listeners []*Listener

func (*Listeners) Parse added in v1.28.0

func (ls *Listeners) Parse(dump *kubernetes.ConfigDump) error

type MTLSStatus added in v0.16.0

type MTLSStatus struct {
	// mTLS status: MTLS_ENABLED, MTLS_PARTIALLY_ENABLED, MTLS_NOT_ENABLED
	// required: true
	// example: MTLS_ENABLED
	Status string `json:"status"`
}

MTLSStatus describes the current mTLS status of a mesh entity

type Metric added in v1.27.0

type Metric struct {
	Labels     map[string]string `json:"labels"`
	Datapoints []Datapoint       `json:"datapoints"`
	Stat       string            `json:"stat,omitempty"`
	Name       string            `json:"name"`
}

func ConvertHistogram added in v1.1.0

func ConvertHistogram(name string, from prometheus.Histogram, conversionParams ConversionParams) ([]Metric, error)

func ConvertMetric added in v1.27.0

func ConvertMetric(name string, from prometheus.Metric, conversionParams ConversionParams) ([]Metric, error)

type MetricsMap added in v1.27.0

type MetricsMap = map[string][]Metric

MetricsMap contains all simple metrics and histograms data for standard timeseries queries

type MetricsStats added in v1.27.0

type MetricsStats struct {
	ResponseTimes []Stat `json:"responseTimes"`
}

MetricsStats contains opinionated statistics on metrics on a single target. Currently limited to response times (avg/percentiles over interval)

type MetricsStatsQueries added in v1.27.0

type MetricsStatsQueries struct {
	Queries []MetricsStatsQuery
}

type MetricsStatsQuery added in v1.27.0

type MetricsStatsQuery struct {
	Target       Target
	PeerTarget   *Target
	RawQueryTime int64     `json:"queryTime"`
	QueryTime    time.Time `json:"-"`
	RawInterval  string    `json:"interval"`
	Interval     string    `json:"-"`
	Direction    string    // outbound | inbound
	Avg          bool
	Quantiles    []string
}

func (*MetricsStatsQuery) GenKey added in v1.27.0

func (q *MetricsStatsQuery) GenKey() string

GenKey !! HAS to mirror frontend's genStatsKey in SpanTable.tsx

func (*MetricsStatsQuery) Validate added in v1.27.0

func (q *MetricsStatsQuery) Validate() *util.Errors

type MetricsStatsResult added in v1.27.0

type MetricsStatsResult struct {
	Stats    map[string]MetricsStats `json:"stats"` // Key is built from query params, see "GenKey" above. The same key needs to be generated client-side for matching.
	Warnings []string                `json:"warnings"`
}

MetricsStatsResult holds the MetricsStats per target, plus errors

type MonitoringDashboard added in v0.12.0

type MonitoringDashboard struct {
	Name          string         `json:"name"`
	Title         string         `json:"title"`
	Charts        []Chart        `json:"charts"`
	Aggregations  []Aggregation  `json:"aggregations"`
	ExternalLinks []ExternalLink `json:"externalLinks"`
	Rows          int            `json:"rows"`
}

MonitoringDashboard is the model representing custom monitoring dashboard, transformed from MonitoringDashboard config resource

func PrepareIstioDashboard added in v0.12.0

func PrepareIstioDashboard(direction, local, remote string) MonitoringDashboard

PrepareIstioDashboard prepares the Istio dashboard title and aggregations dynamically for input values

type Namespace

type Namespace struct {
	// The id of the namespace.
	//
	// example:  istio-system
	// required: true
	Name string `json:"name"`

	// Creation date of the namespace.
	// There is no need to export this through the API. So, this is
	// set to be ignored by JSON package.
	//
	// required: true
	CreationTimestamp time.Time `json:"-"`

	// Labels for Namespace
	Labels map[string]string `json:"labels"`

	// Specific annotations used in Kiali
	Annotations map[string]string `json:"annotations"`
}

A Namespace provide a scope for names This type is used to describe a set of objects.

swagger:model namespace

func CastNamespace

func CastNamespace(ns core_v1.Namespace) Namespace

func CastNamespaceCollection

func CastNamespaceCollection(ns []core_v1.Namespace) []Namespace

func CastProject

func CastProject(p osproject_v1.Project) Namespace

func CastProjectCollection

func CastProjectCollection(ps []osproject_v1.Project) []Namespace

type NamespaceAppHealth

type NamespaceAppHealth map[string]*AppHealth

NamespaceAppHealth is an alias of map of app name x health

type NamespaceNames added in v1.14.0

type NamespaceNames []string

func (NamespaceNames) Includes added in v1.14.0

func (nsn NamespaceNames) Includes(namespace string) bool

func (NamespaceNames) IsSubsetOf added in v1.14.0

func (a NamespaceNames) IsSubsetOf(b NamespaceNames) bool

type NamespaceServiceHealth

type NamespaceServiceHealth map[string]*ServiceHealth

NamespaceServiceHealth is an alias of map of service name x health

type NamespaceValidations

type NamespaceValidations map[string]IstioValidations

NamespaceValidations represents a set of IstioValidations grouped by namespace

type NamespaceWorkloadHealth

type NamespaceWorkloadHealth map[string]*WorkloadHealth

NamespaceWorkloadHealth is an alias of map of workload name x health

type Namespaces added in v1.12.0

type Namespaces []Namespace

func (Namespaces) GetNames added in v1.12.0

func (nss Namespaces) GetNames() []string

func (Namespaces) Includes added in v1.12.0

func (nss Namespaces) Includes(namespace string) bool

type PeerAuthentication added in v1.18.0

type PeerAuthentication struct {
	IstioBase
	Spec struct {
		Selector      interface{} `json:"selector"`
		Mtls          interface{} `json:"mtls"`
		PortLevelMtls interface{} `json:"portLevelMtls"`
	} `json:"spec"`
}

PeerAuthentication peerAuthentication

This is used for returning an PeerAuthentication

swagger:model peerAuthentication

func (*PeerAuthentication) Parse added in v1.18.0

func (pa *PeerAuthentication) Parse(peerAuthentication kubernetes.IstioObject)

type PeerAuthentications added in v1.18.0

type PeerAuthentications []PeerAuthentication

PeerAuthentications peerAuthentications

This is used for returning an array of PeerAuthentication

swagger:model peerAuthentications An array of peerAuthentication swagger:allOf

func (*PeerAuthentications) Parse added in v1.18.0

func (pas *PeerAuthentications) Parse(peerAuthentications []kubernetes.IstioObject)

type Pod

type Pod struct {
	Name                string            `json:"name"`
	Labels              map[string]string `json:"labels"`
	CreatedAt           string            `json:"createdAt"`
	CreatedBy           []Reference       `json:"createdBy"`
	Containers          []*ContainerInfo  `json:"containers"`
	IstioContainers     []*ContainerInfo  `json:"istioContainers"`
	IstioInitContainers []*ContainerInfo  `json:"istioInitContainers"`
	Status              string            `json:"status"`
	StatusMessage       string            `json:"statusMessage"`
	StatusReason        string            `json:"statusReason"`
	AppLabel            bool              `json:"appLabel"`
	VersionLabel        bool              `json:"versionLabel"`
	Annotations         map[string]string `json:"annotations"`
	ProxyStatus         *ProxyStatus      `json:"proxyStatus"`
}

Pod holds a subset of v1.Pod data that is meaningful in Kiali

func (Pod) HasIstioSidecar added in v0.20.0

func (pod Pod) HasIstioSidecar() bool

HasIstioSidecar returns true if the pod has an Istio proxy sidecar

func (*Pod) Parse

func (pod *Pod) Parse(p *core_v1.Pod)

Parse extracts desired information from k8s Pod info

type Pods

type Pods []*Pod

Pods alias for list of Pod structs

func (Pods) HasAnyIstioSidecar added in v1.36.0

func (pods Pods) HasAnyIstioSidecar() bool

HasAnyIstioSidecar returns true if there are pods and any of pods have a sidecar

func (Pods) HasIstioSidecar added in v0.20.0

func (pods Pods) HasIstioSidecar() bool

HasIstioSidecar returns true if there are no pods or all pods have a sidecar

func (*Pods) Parse

func (pods *Pods) Parse(list []core_v1.Pod)

Parse extracts desired information from k8s []Pod info

func (Pods) SyncedPodProxiesCount added in v1.25.0

func (pods Pods) SyncedPodProxiesCount() int32

SyncedPodsCount returns the number of Pods with its proxy synced If none of the pods have Istio Sidecar, then return -1

type Policies added in v0.14.0

type Policies []Policy

func (*Policies) Parse added in v0.14.0

func (ps *Policies) Parse(policies []kubernetes.IstioObject)

type Policy added in v0.14.0

type Policy struct {
	IstioBase
	Spec struct {
		Targets          interface{} `json:"targets"`
		Peers            interface{} `json:"peers"`
		PeerIsOptional   interface{} `json:"peerIsOptional"`
		Origins          interface{} `json:"origins"`
		OriginIsOptional interface{} `json:"originIsOptional"`
		PrincipalBinding interface{} `json:"principalBinding"`
	} `json:"spec"`
}

func (*Policy) Parse added in v0.14.0

func (p *Policy) Parse(policy kubernetes.IstioObject)

type Port

type Port struct {
	Name     string `json:"name"`
	Protocol string `json:"protocol"`
	Port     int32  `json:"port"`
}

func (*Port) Parse

func (port *Port) Parse(p core_v1.ServicePort)

func (*Port) ParseEndpointPort

func (port *Port) ParseEndpointPort(p core_v1.EndpointPort)

type Ports

type Ports []Port

func (*Ports) Parse

func (ports *Ports) Parse(ps []core_v1.ServicePort)

func (*Ports) ParseEndpointPorts

func (ports *Ports) ParseEndpointPorts(ps []core_v1.EndpointPort)

type ProxyStatus added in v1.25.0

type ProxyStatus struct {
	CDS string `json:"CDS"`
	EDS string `json:"EDS"`
	LDS string `json:"LDS"`
	RDS string `json:"RDS"`
}

ProxyStatus gives the sync status of the sidecar proxy. In healthy scenarios all variables should be true. If at least one variable is false, then the proxy isn't fully sync'ed with pilot.

func (ProxyStatus) IsSynced added in v1.25.0

func (ps ProxyStatus) IsSynced() bool

IsSynced returns true when all the components are with SYNCED status

type Reference

type Reference struct {
	Name string `json:"name"`
	Kind string `json:"kind"`
}

Reference holds some information on the pod creator

type RequestAuthentication added in v1.18.0

type RequestAuthentication struct {
	IstioBase
	Spec struct {
		Selector interface{} `json:"selector"`
		JwtRules interface{} `json:"jwtRules"`
	} `json:"spec"`
}

RequestAuthentication requestAuthentication

This is used for returning an RequestAuthentication

swagger:model requestAuthentication

func (*RequestAuthentication) Parse added in v1.18.0

func (ra *RequestAuthentication) Parse(requestAuthentication kubernetes.IstioObject)

type RequestAuthentications added in v1.18.0

type RequestAuthentications []RequestAuthentication

RequestAuthentications requestAuthentications

This is used for returning an array of RequestAuthentication

swagger:model requestAuthentications An array of requestAuthentication swagger:allOf

func (*RequestAuthentications) Parse added in v1.18.0

func (ras *RequestAuthentications) Parse(requestAuthentications []kubernetes.IstioObject)

type RequestHealth

type RequestHealth struct {
	Inbound           map[string]map[string]float64 `json:"inbound"`
	Outbound          map[string]map[string]float64 `json:"outbound"`
	HealthAnnotations map[string]string             `json:"healthAnnotations"`
	// contains filtered or unexported fields
}

RequestHealth holds several stats about recent request errors

  • Inbound//Outbound are the rates of requests by protocol and status_code. Example: Inbound: { "http": {"200": 1.5, "400": 2.3}, "grpc": {"1": 1.2} }

func NewEmptyRequestHealth added in v0.11.0

func NewEmptyRequestHealth() RequestHealth

func (*RequestHealth) AggregateInbound added in v0.11.0

func (in *RequestHealth) AggregateInbound(sample *model.Sample)

AggregateInbound adds the provided metric sample to internal inbound counters and updates error ratios

func (*RequestHealth) AggregateOutbound added in v0.11.0

func (in *RequestHealth) AggregateOutbound(sample *model.Sample)

AggregateOutbound adds the provided metric sample to internal outbound counters and updates error ratios

func (*RequestHealth) CombineReporters added in v1.29.1

func (in *RequestHealth) CombineReporters()

RequestHealth internally stores Inbound rate separated by reporter There were duplicated values that should exist in both reports but there may exist values that only are present in one or another reporter, those should be consolidated into a single result

type ResourcePermissions added in v0.9.1

type ResourcePermissions struct {
	Create bool `json:"create"`
	Update bool `json:"update"`
	Delete bool `json:"delete"`
}

ResourcePermissions holds permission flags for an object type True means allowed.

type ResourcesPermissions added in v1.13.0

type ResourcesPermissions map[string]*ResourcePermissions

ResourcesPermissions holds a map of permission flags per resource

type Route added in v1.28.0

type Route struct {
	Name           string          `json:"name"`
	Domains        kubernetes.Host `json:"domains"`
	Match          string          `json:"match"`
	VirtualService string          `json:"virtual_service"`
}

type Routes added in v1.28.0

type Routes []*Route

func (*Routes) Parse added in v1.28.0

func (rs *Routes) Parse(dump *kubernetes.ConfigDump, namespaces []string) error

type Runtime added in v0.14.0

type Runtime struct {
	Name          string         `json:"name"`
	DashboardRefs []DashboardRef `json:"dashboardRefs"`
}

Runtime holds the runtime title and associated dashboard template(s)

type Service

type Service struct {
	Name              string            `json:"name"`
	CreatedAt         string            `json:"createdAt"`
	ResourceVersion   string            `json:"resourceVersion"`
	Namespace         Namespace         `json:"namespace"`
	Labels            map[string]string `json:"labels"`
	Selectors         map[string]string `json:"selectors"`
	Type              string            `json:"type"`
	Ip                string            `json:"ip"`
	Ports             Ports             `json:"ports"`
	ExternalName      string            `json:"externalName"`
	HealthAnnotations map[string]string `json:"healthAnnotations"`
}

func (*Service) Parse

func (s *Service) Parse(service *core_v1.Service)

type ServiceDefinitionList added in v1.5.0

type ServiceDefinitionList struct {
	Namespace          Namespace        `json:"namespace"`
	ServiceDefinitions []ServiceDetails `json:"serviceDefinitions"`
}

type ServiceDetails

type ServiceDetails struct {
	Service           Service           `json:"service"`
	IstioSidecar      bool              `json:"istioSidecar"`
	Endpoints         Endpoints         `json:"endpoints"`
	VirtualServices   VirtualServices   `json:"virtualServices"`
	DestinationRules  DestinationRules  `json:"destinationRules"`
	Workloads         WorkloadOverviews `json:"workloads"`
	Health            ServiceHealth     `json:"health"`
	Validations       IstioValidations  `json:"validations"`
	NamespaceMTLS     MTLSStatus        `json:"namespaceMTLS"`
	AdditionalDetails []AdditionalItem  `json:"additionalDetails"`
}

func (*ServiceDetails) SetDestinationRules

func (s *ServiceDetails) SetDestinationRules(dr []kubernetes.IstioObject, canCreate, canUpdate, canDelete bool)

func (*ServiceDetails) SetEndpoints

func (s *ServiceDetails) SetEndpoints(eps *core_v1.Endpoints)

func (*ServiceDetails) SetIstioSidecar added in v1.36.0

func (s *ServiceDetails) SetIstioSidecar(workloads WorkloadOverviews)

func (*ServiceDetails) SetPods

func (s *ServiceDetails) SetPods(pods []core_v1.Pod)

func (*ServiceDetails) SetService

func (s *ServiceDetails) SetService(svc *core_v1.Service)

func (*ServiceDetails) SetVirtualServices

func (s *ServiceDetails) SetVirtualServices(vs []kubernetes.IstioObject, canCreate, canUpdate, canDelete bool)

type ServiceEntries

type ServiceEntries []ServiceEntry

func (*ServiceEntries) Parse

func (ses *ServiceEntries) Parse(serviceEntries []kubernetes.IstioObject)

type ServiceEntry

type ServiceEntry struct {
	IstioBase
	Spec struct {
		Hosts            interface{} `json:"hosts"`
		Addresses        interface{} `json:"addresses"`
		Ports            interface{} `json:"ports"`
		Location         interface{} `json:"location"`
		Resolution       interface{} `json:"resolution"`
		Endpoints        interface{} `json:"endpoints"`
		WorkloadSelector interface{} `json:"workloadSelector"`
		ExportTo         interface{} `json:"exportTo"`
		SubjectAltNames  interface{} `json:"subjectAltNames"`
	} `json:"spec"`
}

func (*ServiceEntry) Parse

func (se *ServiceEntry) Parse(serviceEntry kubernetes.IstioObject)

type ServiceHealth

type ServiceHealth struct {
	Requests RequestHealth `json:"requests"`
}

ServiceHealth contains aggregated health from various sources, for a given service

func EmptyServiceHealth added in v0.11.0

func EmptyServiceHealth() ServiceHealth

EmptyServiceHealth create an empty ServiceHealth

type ServiceList

type ServiceList struct {
	Namespace   Namespace         `json:"namespace"`
	Services    []ServiceOverview `json:"services"`
	Validations IstioValidations  `json:"validations"`
}

type ServiceOverview

type ServiceOverview struct {
	// Name of the Service
	// required: true
	// example: reviews-v1
	Name string `json:"name"`
	// Define if Pods related to this Service has an IstioSidecar deployed
	// required: true
	// example: true
	IstioSidecar bool `json:"istioSidecar"`
	// Has label app
	// required: true
	// example: true
	AppLabel bool `json:"appLabel"`
	// Additional detail sample, such as type of api being served (graphql, grpc, rest)
	// example: rest
	// required: false
	AdditionalDetailSample *AdditionalItem `json:"additionalDetailSample"`
	// Annotations of the service
	HealthAnnotations map[string]string `json:"healthAnnotations"`
	// Labels for Service
	Labels map[string]string `json:"labels"`
	// Istio References
	IstioReferences []*IstioValidationKey `json:"istioReferences"`
	// Kiali Wizard scenario, if any
	KialiWizard string `json:"kialiWizard"`
}

type Services

type Services []*Service

func (*Services) Parse

func (ss *Services) Parse(services []core_v1.Service)

type SeverityLevel added in v0.14.0

type SeverityLevel string
const (
	ErrorSeverity   SeverityLevel = "error"
	WarningSeverity SeverityLevel = "warning"
	Unknown         SeverityLevel = "unknown"
)

type Sidecar added in v0.21.0

type Sidecar struct {
	IstioBase
	Spec struct {
		WorkloadSelector      interface{} `json:"workloadSelector"`
		Ingress               interface{} `json:"ingress"`
		Egress                interface{} `json:"egress"`
		OutboundTrafficPolicy interface{} `json:"outboundTrafficPolicy"`
		Localhost             interface{} `json:"localhost"`
	} `json:"spec"`
}

func (*Sidecar) Parse added in v0.21.0

func (sc *Sidecar) Parse(sidecar kubernetes.IstioObject)

type Sidecars added in v0.21.0

type Sidecars []Sidecar

func (*Sidecars) Parse added in v0.21.0

func (scs *Sidecars) Parse(sidecars []kubernetes.IstioObject)

type Stat added in v1.27.0

type Stat struct {
	Name  string  `json:"name"` // E.g. avg, p99, etc.
	Value float64 `json:"value"`
}

Stat holds arbitrary stat name & value

type Target added in v1.27.0

type Target struct {
	Namespace string
	Name      string
	Kind      string // app | workload | service
}

func (*Target) GenKey added in v1.27.0

func (t *Target) GenKey() string

type TracingQuery added in v1.19.0

type TracingQuery struct {
	Start       time.Time
	End         time.Time
	Tags        map[string]string
	MinDuration time.Duration
	Limit       int
}

type VirtualService

type VirtualService struct {
	IstioBase
	Spec struct {
		Hosts    []string    `json:"hosts,omitempty"`
		Gateways interface{} `json:"gateways,omitempty"`
		Http     interface{} `json:"http,omitempty"`
		Tcp      interface{} `json:"tcp,omitempty"`
		Tls      interface{} `json:"tls,omitempty"`
		ExportTo interface{} `json:"exportTo,omitempty"`
	} `json:"spec"`
}

VirtualService virtualService

This type is used for returning a VirtualService

swagger:model virtualService

func (*VirtualService) HasFaultInjection added in v1.38.1

func (vService *VirtualService) HasFaultInjection() bool

HasFaultInjection determines if the spec has http fault injection set.

func (*VirtualService) HasRequestRouting added in v1.38.1

func (vService *VirtualService) HasRequestRouting() bool

IsValidHost returns true if VirtualService hosts applies to the service

func (*VirtualService) HasRequestTimeout added in v1.38.1

func (vService *VirtualService) HasRequestTimeout() bool

HasRequestTimeout determines if the spec has an http timeout set.

func (*VirtualService) HasTCPTrafficShifting added in v1.38.1

func (vService *VirtualService) HasTCPTrafficShifting() bool

HasTCPTrafficShifting determines if the spec has tcp traffic shifting set. If there are routes with multiple destinations then it is assumed that the spec has traffic shifting regardless of weights.

func (*VirtualService) HasTrafficShifting added in v1.38.1

func (vService *VirtualService) HasTrafficShifting() bool

HasTrafficShifting determines if the spec has http traffic shifting set. If there are routes with multiple destinations then it is assumed that the spec has traffic shifting regardless of weights.

func (*VirtualService) IsValidHost added in v0.9.1

func (vService *VirtualService) IsValidHost(namespace string, serviceName string) bool

IsValidHost returns true if VirtualService hosts applies to the service

func (*VirtualService) Parse

func (vService *VirtualService) Parse(virtualService kubernetes.IstioObject)

type VirtualServices

type VirtualServices struct {
	Permissions ResourcePermissions `json:"permissions"`
	Items       []VirtualService    `json:"items"`
}

VirtualServices virtualServices

This type is used for returning an array of VirtualServices with some permission flags

swagger:model virtualServices An array of virtualService swagger:allOf

func (*VirtualServices) Parse

func (vServices *VirtualServices) Parse(virtualServices []kubernetes.IstioObject)

type Workload

type Workload struct {
	WorkloadListItem

	// Number of desired replicas defined by the user in the controller Spec
	// required: true
	// example: 2
	DesiredReplicas int32 `json:"desiredReplicas"`

	// Number of current replicas pods that matches controller selector labels
	// required: true
	// example: 2
	CurrentReplicas int32 `json:"currentReplicas"`

	// Number of available replicas
	// required: true
	// example: 1
	AvailableReplicas int32 `json:"availableReplicas"`

	// Pods bound to the workload
	Pods Pods `json:"pods"`

	// Services that match workload selector
	Services Services `json:"services"`

	// Runtimes and associated dashboards
	Runtimes []Runtime `json:"runtimes"`

	// Additional details to display, such as configured annotations
	AdditionalDetails []AdditionalItem `json:"additionalDetails"`
}

Workload has the details of a workload

func (Workload) CastWorkloadStatus added in v1.25.0

func (w Workload) CastWorkloadStatus() *WorkloadStatus

CastWorkloadStatus returns a WorkloadStatus out of a given Workload

func (*Workload) HasIstioSidecar added in v0.20.0

func (workload *Workload) HasIstioSidecar() bool

HasIstioSidecar return true if there is at least one pod and all pods have sidecars

func (*Workload) ParseCronJob

func (workload *Workload) ParseCronJob(cnjb *batch_v1beta1.CronJob)

func (*Workload) ParseDaemonSet added in v1.33.0

func (workload *Workload) ParseDaemonSet(ds *apps_v1.DaemonSet)

func (*Workload) ParseDeployment

func (workload *Workload) ParseDeployment(d *apps_v1.Deployment)

func (*Workload) ParseDeploymentConfig

func (workload *Workload) ParseDeploymentConfig(dc *osapps_v1.DeploymentConfig)

func (*Workload) ParseJob

func (workload *Workload) ParseJob(job *batch_v1.Job)

func (*Workload) ParsePod

func (workload *Workload) ParsePod(pod *core_v1.Pod)

func (*Workload) ParsePods

func (workload *Workload) ParsePods(controllerName string, controllerType string, pods []core_v1.Pod)

func (*Workload) ParseReplicaSet

func (workload *Workload) ParseReplicaSet(r *apps_v1.ReplicaSet)

func (*Workload) ParseReplicaSetParent added in v1.29.0

func (workload *Workload) ParseReplicaSetParent(r *apps_v1.ReplicaSet, workloadName string, workloadType string)

func (*Workload) ParseReplicationController

func (workload *Workload) ParseReplicationController(r *core_v1.ReplicationController)

func (*Workload) ParseStatefulSet

func (workload *Workload) ParseStatefulSet(s *apps_v1.StatefulSet)

func (*Workload) SetPods

func (workload *Workload) SetPods(pods []core_v1.Pod)

func (*Workload) SetServices

func (workload *Workload) SetServices(svcs []core_v1.Service)

type WorkloadEntries added in v1.18.0

type WorkloadEntries []WorkloadEntry

WorkloadEntries workloadEntries

This is used for returning an array of WorkloadEntry

swagger:model workloadEntries An array of workloadEntry swagger:allOf

func (*WorkloadEntries) Parse added in v1.18.0

func (wes *WorkloadEntries) Parse(workloadEntries []kubernetes.IstioObject)

type WorkloadEntry added in v1.18.0

type WorkloadEntry struct {
	IstioBase
	Spec struct {
		Address        interface{} `json:"address"`
		Ports          interface{} `json:"ports"`
		Labels         interface{} `json:"labels"`
		Network        interface{} `json:"network"`
		Locality       interface{} `json:"locality"`
		Weight         interface{} `json:"weight"`
		ServiceAccount interface{} `json:"serviceAccount"`
	} `json:"spec"`
}

WorkloadEntry workloadEntry

This is used for returning an WorkloadEntry

swagger:model workloadEntry

func (*WorkloadEntry) Parse added in v1.18.0

func (we *WorkloadEntry) Parse(workloadEntry kubernetes.IstioObject)

type WorkloadGroup added in v1.35.0

type WorkloadGroup struct {
	IstioBase
	Spec struct {
		// This is not an error, the WorkloadGroup has a Metadata inside the Spec
		// https://istio.io/latest/docs/reference/config/networking/workload-group/#WorkloadGroup
		Metadata interface{} `json:"metadata"`
		Template interface{} `json:"template"`
		Probe    interface{} `json:"probe"`
	} `json:"spec"`
}

WorkloadGroup workloadGroup

This is used for returning a WorkloadGroup

swagger:model workloadGroup

func (*WorkloadGroup) Parse added in v1.35.0

func (wg *WorkloadGroup) Parse(workloadGroup kubernetes.IstioObject)

type WorkloadGroups added in v1.35.0

type WorkloadGroups []WorkloadGroup

WorkloadGroups workloadGroups

This is used for returning an array of WorkloadGroup

swagger:model workloadGroups An array of workloadGroup swagger:allOf

func (*WorkloadGroups) Parse added in v1.35.0

func (wgs *WorkloadGroups) Parse(workloadGroups []kubernetes.IstioObject)

type WorkloadHealth

type WorkloadHealth struct {
	WorkloadStatus *WorkloadStatus `json:"workloadStatus"`
	Requests       RequestHealth   `json:"requests"`
}

WorkloadHealth contains aggregated health from various sources, for a given workload

func EmptyWorkloadHealth added in v1.24.0

func EmptyWorkloadHealth() *WorkloadHealth

EmptyWorkloadHealth create an empty WorkloadHealth

type WorkloadItem

type WorkloadItem struct {
	// Name of a workload member of an application
	// required: true
	// example: reviews-v1
	WorkloadName string `json:"workloadName"`

	// Define if all Pods related to the Workload has an IstioSidecar deployed
	// required: true
	// example: true
	IstioSidecar bool `json:"istioSidecar"`
}

type WorkloadList

type WorkloadList struct {
	// Namespace where the workloads live in
	// required: true
	// example: bookinfo
	Namespace Namespace `json:"namespace"`

	// Workloads for a given namespace
	// required: true
	Workloads []WorkloadListItem `json:"workloads"`
}

func (WorkloadList) GetLabels added in v1.16.0

func (wl WorkloadList) GetLabels() []labels.Set

type WorkloadListItem

type WorkloadListItem struct {
	// Name of the workload
	// required: true
	// example: reviews-v1
	Name string `json:"name"`

	// Type of the workload
	// required: true
	// example: deployment
	Type string `json:"type"`

	// Creation timestamp (in RFC3339 format)
	// required: true
	// example: 2018-07-31T12:24:17Z
	CreatedAt string `json:"createdAt"`

	// Kubernetes ResourceVersion
	// required: true
	// example: 192892127
	ResourceVersion string `json:"resourceVersion"`

	// Define if Workload has an explicit Istio policy annotation
	// Istio supports this as a label as well - this will be defined if the label is set, too.
	// If both annotation and label are set, if any is false, injection is disabled.
	// It's mapped as a pointer to show three values nil, true, false
	IstioInjectionAnnotation *bool `json:"istioInjectionAnnotation,omitempty"`

	// Define if Pods related to this Workload has an IstioSidecar deployed
	// required: true
	// example: true
	IstioSidecar bool `json:"istioSidecar"`

	// Additional item sample, such as type of api being served (graphql, grpc, rest)
	// example: rest
	// required: false
	AdditionalDetailSample *AdditionalItem `json:"additionalDetailSample"`

	// Workload labels
	Labels map[string]string `json:"labels"`

	// Define if Pods related to this Workload has the label App
	// required: true
	// example: true
	AppLabel bool `json:"appLabel"`

	// Define if Pods related to this Workload has the label Version
	// required: true
	// example: true
	VersionLabel bool `json:"versionLabel"`

	// Number of current workload pods
	// required: true
	// example: 1
	PodCount int `json:"podCount"`

	// HealthAnnotations
	// required: false
	HealthAnnotations map[string]string `json:"healthAnnotations"`

	// Istio References
	IstioReferences []*IstioValidationKey `json:"istioReferences"`

	// Dashboard annotations
	// required: false
	DashboardAnnotations map[string]string `json:"dashboardAnnotations"`
}

WorkloadListItem has the necessary information to display the console workload list

func (*WorkloadListItem) ParseWorkload

func (workload *WorkloadListItem) ParseWorkload(w *Workload)

type WorkloadOverviews

type WorkloadOverviews []*WorkloadListItem

func (WorkloadOverviews) HasIstioSidecar added in v1.36.0

func (workloads WorkloadOverviews) HasIstioSidecar() bool

HasIstioSidecar returns true if there is at least one workload which has a sidecar

type WorkloadStatus

type WorkloadStatus struct {
	Name              string `json:"name"`
	DesiredReplicas   int32  `json:"desiredReplicas"`
	CurrentReplicas   int32  `json:"currentReplicas"`
	AvailableReplicas int32  `json:"availableReplicas"`
	SyncedProxies     int32  `json:"syncedProxies"`
}

WorkloadStatus gives - number of desired replicas defined in the Spec of a controller - number of current replicas that matches selector of a controller - number of available replicas for a given workload In healthy scenarios all variables should point same value. When something wrong happens the different values can indicate an unhealthy situation. i.e.

	desired = 1, current = 10, available = 0 would means that a user scaled down a workload from 10 to 1
 but in the operaton 10 pods showed problems, so no pod is available/ready but user will see 10 pods under a workload

type Workloads

type Workloads []*Workload

func (Workloads) CastWorkloadStatuses added in v1.25.0

func (ws Workloads) CastWorkloadStatuses() []*WorkloadStatus

CastWorkloadStatuses returns a WorkloadStatus array out of a given set of Workloads

Jump to

Keyboard shortcuts

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