models

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jul 6, 2018 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

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 v1.EndpointAddress)

type Addresses

type Addresses []Address

func (*Addresses) Parse

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

type Autoscaler

type Autoscaler struct {
	Name      string            `json:"name"`
	Labels    map[string]string `json:"labels"`
	CreatedAt string            `json:"createdAt"`
	// Spec
	MinReplicas                    int32 `json:"minReplicas"`
	MaxReplicas                    int32 `json:"maxReplicas"`
	TargetCPUUtilizationPercentage int32 `json:"targetCPUUtilizationPercentage"`
	// Status
	ObservedGeneration              int64  `json:"observedGeneration,omitempty"`
	LastScaleTime                   string `json:"lastScaleTime,omitempty"`
	CurrentReplicas                 int32  `json:"currentReplicas"`
	DesiredReplicas                 int32  `json:"desiredReplicas"`
	CurrentCPUUtilizationPercentage int32  `json:"currentCPUUtilizationPercentage,omitempty"`
}

func (*Autoscaler) Parse

func (autoscaler *Autoscaler) Parse(d *v1.HorizontalPodAutoscaler)

type ContainerInfo

type ContainerInfo struct {
	Name  string `json:"name"`
	Image string `json:"image"`
}

ContainerInfo holds container name and image

type Deployment

type Deployment struct {
	Name                string            `json:"name"`
	TemplateAnnotations map[string]string `json:"templateAnnotations"`
	Labels              map[string]string `json:"labels"`
	CreatedAt           string            `json:"createdAt"`
	ResourceVersion     string            `json:"resourceVersion"`
	Replicas            int32             `json:"replicas"`
	AvailableReplicas   int32             `json:"availableReplicas"`
	UnavailableReplicas int32             `json:"unavailableReplicas"`
	Autoscaler          Autoscaler        `json:"autoscaler"`
}

func (*Deployment) Parse

func (deployment *Deployment) Parse(d *v1beta1.Deployment)

type DeploymentStatus

type DeploymentStatus struct {
	Name              string `json:"name"`
	Replicas          int32  `json:"replicas"`
	AvailableReplicas int32  `json:"available"`
}

DeploymentStatus gives the available / total replicas in a deployment of a pod

type Deployments

type Deployments []*Deployment

func (*Deployments) AddAutoscalers

func (deployments *Deployments) AddAutoscalers(as *v1.HorizontalPodAutoscalerList)

func (*Deployments) Parse

func (deployments *Deployments) Parse(ds *v1beta1.DeploymentList)

type DestinationRule

type DestinationRule struct {
	// The name of the destinationRule
	//
	// required: true
	Name string `json:"name"`
	// The creation date of the destinationRule
	//
	// required: true
	CreatedAt string `json:"createdAt"`
	// The resource version of the destinationRule
	//
	// required: true
	ResourceVersion string      `json:"resourceVersion"`
	Host            interface{} `json:"host"`
	TrafficPolicy   interface{} `json:"trafficPolicy"`
	Subsets         interface{} `json:"subsets"`
}

DestinationRule destinationRule

This is used for returning a DestinationRule

swagger:model destinationRule

func (*DestinationRule) Parse

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

type DestinationRules

type DestinationRules []DestinationRule

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 v1.EndpointSubset)

type Endpoints

type Endpoints []Endpoint

func (*Endpoints) Parse

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

type EnvoyHealthWrapper

type EnvoyHealthWrapper struct {
	prometheus.EnvoyHealth
	Fetched bool `json:"-"`
}

EnvoyHealthWrapper wraps EnvoyHealth with memo flag

func (*EnvoyHealthWrapper) FillIfMissing

func (in *EnvoyHealthWrapper) FillIfMissing(supplier func() prometheus.EnvoyHealth)

FillIfMissing sets EnvoyHealth if necessary. Supplier must return (healthy, total)

type Gateway

type Gateway struct {
	Name            string      `json:"name"`
	CreatedAt       string      `json:"createdAt"`
	ResourceVersion string      `json:"resourceVersion"`
	Servers         interface{} `json:"servers"`
	Selector        interface{} `json:"selector"`
}

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 {
	URL              string `json:"url"`
	VariablesSuffix  string `json:"variablesSuffix"`
	Dashboard        string `json:"dashboard"`
	VarServiceSource string `json:"varServiceSource"`
	VarServiceDest   string `json:"varServiceDest"`
}

GrafanaInfo provides information to access Grafana dashboards

type Health

type Health struct {
	Envoy              EnvoyHealthWrapper `json:"envoy"`
	DeploymentStatuses []DeploymentStatus `json:"deploymentStatuses"`
	Requests           RequestHealth      `json:"requests"`
	DeploymentsFetched bool               `json:"-"`
}

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

func (*Health) FillDeploymentStatusesIfMissing

func (in *Health) FillDeploymentStatusesIfMissing(supplier func() []DeploymentStatus)

FillDeploymentStatusesIfMissing sets DeploymentStatuses if necessary

type IstioCheck

type IstioCheck struct {
	Message  string `json:"message"`  // Description of the check
	Severity string `json:"severity"` // Indicates the level of importance: error or warning
	Path     string `json:"path"`     // String that describes where in the yaml file is the check located
}

IstioCheck represents an individual check.

func BuildCheck

func BuildCheck(message, severity, path string) IstioCheck

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"`
	Rule             *IstioRuleDetails `json:"rule"`
	QuotaSpec        *QuotaSpec        `json:"quotaSpec"`
	QuotaSpecBinding *QuotaSpecBinding `json:"quotaSpecBinding"`
}

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"`
	Rules             IstioRules        `json:"rules"`
	QuotaSpecs        QuotaSpecs        `json:"quotaSpecs"`
	QuotaSpecBindings QuotaSpecBindings `json:"quotaSpecBindings"`
}

IstioConfigList istioConfigList

This type is used for returning a response of IstioConfigList

swagger:model IstioConfigList

type IstioHandler

type IstioHandler struct {
	Name    string      `json:"name"`
	Adapter string      `json:"adapter"`
	Spec    interface{} `json:"spec"`
}

func CastIstioHandler

func CastIstioHandler(handler kubernetes.IstioObject) *IstioHandler

type IstioInstance

type IstioInstance struct {
	Name     string      `json:"name"`
	Template string      `json:"template"`
	Spec     interface{} `json:"spec"`
}

func CastIstioInstance

func CastIstioInstance(instance kubernetes.IstioObject) *IstioInstance

type IstioRule

type IstioRule struct {
	// The name of the istioRule
	//
	// required: true
	Name    string      `json:"name"`
	Match   interface{} `json:"match"`
	Actions interface{} `json:"actions"`
}

IstioRule istioRule

This type type is used for returning a IstioRule

swagger:model istioRule

func CastIstioRule

func CastIstioRule(rule kubernetes.IstioObject) IstioRule

type IstioRuleAction

type IstioRuleAction struct {
	Handler   *IstioHandler    `json:"handler"`
	Instances []*IstioInstance `json:"instances"`
}

func CastIstioRuleAction

func CastIstioRuleAction(action *kubernetes.IstioRuleAction) *IstioRuleAction

func CastIstioRuleActions

func CastIstioRuleActions(actions []*kubernetes.IstioRuleAction) []*IstioRuleAction

type IstioRuleDetails

type IstioRuleDetails struct {
	Name      string             `json:"name"`
	Namespace Namespace          `json:"namespace"`
	Match     interface{}        `json:"match"`
	Actions   []*IstioRuleAction `json:"actions"`
}

func CastIstioRuleDetails

func CastIstioRuleDetails(rule *kubernetes.IstioRuleDetails) *IstioRuleDetails

type IstioRuleList

type IstioRuleList struct {
	Namespace Namespace   `json:"namespace"`
	Rules     []IstioRule `json:"rules"`
}

type IstioRules

type IstioRules []IstioRule

IstioRules istioRules

This type type is used for returning an array of IstioRules

swagger:model istioRules An array of istioRule swagger:allOf

func CastIstioRulesCollection

func CastIstioRulesCollection(rules *kubernetes.IstioRules) IstioRules

type IstioValidation

type IstioValidation struct {
	Name       string        `json:"name"`       // Name of the object itself
	ObjectType string        `json:"objectType"` // Type of the object
	Valid      bool          `json:"valid"`      // Represents validity of the object: in case of warning, validity remainds as true
	Checks     []*IstioCheck `json:"checks"`     // Array of checks
}

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

type IstioValidationKey

type IstioValidationKey struct {
	ObjectType string
	Name       string
}

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

type IstioValidations

type IstioValidations map[IstioValidationKey]*IstioValidation

IstioValidations represents a set of IstioValidation grouped by IstioValidationKey.

func (IstioValidations) MarshalJSON

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

MarshalJSON implements the json.Marshaler interface.

func (IstioValidations) MergeValidations

func (iv IstioValidations) MergeValidations(validations IstioValidations) IstioValidations

type JaegerInfo

type JaegerInfo struct {
	URL string `json:"url"`
}

JaegerInfo provides information to access Jaeger UI

type Namespace

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

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 v1.Namespace) Namespace

func CastNamespaceCollection

func CastNamespaceCollection(nsl *v1.NamespaceList) []Namespace

func GetNamespaces

func GetNamespaces() ([]Namespace, error)

type NamespaceParam added in v0.5.0

type NamespaceParam struct {
	// The id of the namespace.
	//
	// in: path
	// required: true
	Name string `json:"namespace"`
}

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

swagger:parameters istioConfigList

type NamespaceValidations

type NamespaceValidations map[string]IstioValidations

NamespaceValidations represents a set of IstioValidations grouped by namespace

type Pod

type Pod struct {
	Name                string            `json:"name"`
	Labels              map[string]string `json:"labels"`
	CreatedAt           string            `json:"createdAt"`
	CreatedBy           []Reference       `json:"createdBy"`
	IstioContainers     []*ContainerInfo  `json:"istioContainers"`
	IstioInitContainers []*ContainerInfo  `json:"istioInitContainers"`
}

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

func (*Pod) Parse

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

Parse extracts desired information from k8s Pod info

type Pods

type Pods []*Pod

Pods alias for list of Pod structs

func (*Pods) Parse

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

Parse extracts desired information from k8s []Pod info

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 v1.ServicePort)

func (*Port) ParseEndpointPort

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

type Ports

type Ports []Port

func (*Ports) Parse

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

func (*Ports) ParseEndpointPorts

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

type QuotaSpec added in v0.5.0

type QuotaSpec struct {
	Name            string      `json:"name"`
	CreatedAt       string      `json:"createdAt"`
	ResourceVersion string      `json:"resourceVersion"`
	Rules           interface{} `json:"rules"`
}

func (*QuotaSpec) Parse added in v0.5.0

func (qs *QuotaSpec) Parse(quotaSpec kubernetes.IstioObject)

type QuotaSpecBinding added in v0.5.0

type QuotaSpecBinding struct {
	Name            string      `json:"name"`
	CreatedAt       string      `json:"createdAt"`
	ResourceVersion string      `json:"resourceVersion"`
	QuotaSpecs      interface{} `json:"quotaSpecs"`
	Services        interface{} `json:"services"`
}

func (*QuotaSpecBinding) Parse added in v0.5.0

func (qsb *QuotaSpecBinding) Parse(quotaSpecBinding kubernetes.IstioObject)

type QuotaSpecBindings added in v0.5.0

type QuotaSpecBindings []QuotaSpecBinding

func (*QuotaSpecBindings) Parse added in v0.5.0

func (qsbs *QuotaSpecBindings) Parse(quotaSpecBindings []kubernetes.IstioObject)

type QuotaSpecs added in v0.5.0

type QuotaSpecs []QuotaSpec

func (*QuotaSpecs) Parse added in v0.5.0

func (qss *QuotaSpecs) Parse(quotaSpecs []kubernetes.IstioObject)

type Reference

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

Reference holds some information on the pod creator

type RequestHealth

type RequestHealth struct {
	RequestCount      float64 `json:"requestCount"`
	RequestErrorCount float64 `json:"requestErrorCount"`
	Fetched           bool    `json:"-"`
}

RequestHealth holds several stats about recent request errors

func (*RequestHealth) FillIfMissing

func (in *RequestHealth) FillIfMissing(supplier func() (float64, float64))

FillIfMissing sets RequestHealth if necessary. Supplier must return (errors, total)

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"`
	Type             string              `json:"type"`
	Ip               string              `json:"ip"`
	Ports            Ports               `json:"ports"`
	Endpoints        Endpoints           `json:"endpoints"`
	VirtualServices  VirtualServices     `json:"virtualServices"`
	DestinationRules DestinationRules    `json:"destinationRules"`
	Dependencies     map[string][]string `json:"dependencies"`
	Pods             Pods                `json:"pods"`
	Deployments      Deployments         `json:"deployments"`
	Health           Health              `json:"health"`
}

func (*Service) SetServiceDetails

func (s *Service) SetServiceDetails(serviceDetails *kubernetes.ServiceDetails, istioDetails *kubernetes.IstioDetails, prometheusDetails map[string][]string)

type ServiceEntries added in v0.5.0

type ServiceEntries []ServiceEntry

func (*ServiceEntries) Parse added in v0.5.0

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

type ServiceEntry added in v0.5.0

type ServiceEntry struct {
	Name            string      `json:"name"`
	CreatedAt       string      `json:"createdAt"`
	ResourceVersion string      `json:"resourceVersion"`
	Hosts           interface{} `json:"hosts"`
	Addresses       interface{} `json:"addresses"`
	Ports           interface{} `json:"ports"`
	Location        interface{} `json:"location"`
	Resolution      interface{} `json:"resolution"`
	Endpoints       interface{} `json:"endpoints"`
}

func (*ServiceEntry) Parse added in v0.5.0

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

type ServiceList

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

type ServiceOverview

type ServiceOverview struct {
	Name         string `json:"name"`
	IstioSidecar bool   `json:"istioSidecar"`
}

type VirtualService

type VirtualService struct {
	// The name of the virtualService
	//
	// required: true
	Name string `json:"name"`
	// The creation date of the virtualService
	//
	// required: true
	CreatedAt string `json:"createdAt"`
	// The resource version of the virtualService
	//
	// required: true
	ResourceVersion string      `json:"resourceVersion"`
	Hosts           interface{} `json:"hosts"`
	Gateways        interface{} `json:"gateways"`
	Http            interface{} `json:"http"`
	Tcp             interface{} `json:"tcp"`
}

VirtualService virtualService

This type is used for returning a VirtualService

swagger:model virtualService

func (*VirtualService) Parse

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

type VirtualServices

type VirtualServices []VirtualService

VirtualServices virtualServices

This type is used for returning an array of VirtualServices

swagger:model virtualServices An array of virtualService swagger:allOf

func (*VirtualServices) Parse

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

Jump to

Keyboard shortcuts

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