kubernetes

package
v0.17.0 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2019 License: Apache-2.0 Imports: 34 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ConfigGroupVersion = schema.GroupVersion{
		Group:   "config.istio.io",
		Version: "v1alpha2",
	}
	ApiConfigVersion = ConfigGroupVersion.Group + "/" + ConfigGroupVersion.Version

	NetworkingGroupVersion = schema.GroupVersion{
		Group:   "networking.istio.io",
		Version: "v1alpha3",
	}
	ApiNetworkingVersion = NetworkingGroupVersion.Group + "/" + NetworkingGroupVersion.Version

	AuthenticationGroupVersion = schema.GroupVersion{
		Group:   "authentication.istio.io",
		Version: "v1alpha1",
	}
	ApiAuthenticationVersion = AuthenticationGroupVersion.Group + "/" + AuthenticationGroupVersion.Version

	RbacGroupVersion = schema.GroupVersion{
		Group:   "rbac.istio.io",
		Version: "v1alpha1",
	}
	ApiRbacVersion = RbacGroupVersion.Group + "/" + RbacGroupVersion.Version

	PluralType = map[string]string{
				// contains filtered or unexported fields
	}
)

Functions

func ConfigClient

func ConfigClient() (*rest.Config, error)

ConfigClient return a client with the correct configuration Returns configuration if Kiali is in Cluster when InCluster is true Returns configuration if Kiali is not int Cluster when InCluster is false It returns an error on any problem

func DestinationRuleHasMTLSEnabledForHost

func DestinationRuleHasMTLSEnabledForHost(expectedHost string, destinationRule IstioObject) (bool, string)

func DestinationRuleHasMeshWideMTLSEnabled

func DestinationRuleHasMeshWideMTLSEnabled(destinationRule IstioObject) (bool, string)

func DestinationRuleHasNamespaceWideMTLSEnabled

func DestinationRuleHasNamespaceWideMTLSEnabled(namespace string, destinationRule IstioObject) (bool, string)

func FilterByHost

func FilterByHost(host, serviceName, namespace string) bool

func FilterByRoute

func FilterByRoute(spec map[string]interface{}, protocols []string, service string, namespace string, serviceEntries map[string]struct{}) bool

func FilterPodsForController

func FilterPodsForController(controllerName string, controllerType string, allPods []v1.Pod) []v1.Pod

func FilterPodsForEndpoints

func FilterPodsForEndpoints(endpoints *v1.Endpoints, unfiltered []v1.Pod) []v1.Pod

FilterPodsForEndpoints performs a second pass was selector may return too many data This case happens when a "nil" selector (such as one of default/kubernetes service) is used

func FilterPodsForSelector

func FilterPodsForSelector(selector labels.Selector, allPods []v1.Pod) []v1.Pod

func FilterPodsForService

func FilterPodsForService(s *v1.Service, allPods []v1.Pod) []v1.Pod

FilterPodsForService returns a subpart of pod list filtered according service selector

func FilterServicesForSelector

func FilterServicesForSelector(selector labels.Selector, allServices []v1.Service) []v1.Service

func GatewayNames

func GatewayNames(gateways [][]IstioObject) map[string]struct{}

GatewayNames extracts the gateway names for easier matching

func NewNotFound

func NewNotFound(name, group, resource string) error

NewNotFound is a helper method to create a NotFound error similar as used by the kubernetes client. This method helps upper layers to send a explicit NotFound error without querying the backend.

func PolicyHasMTLSEnabled

func PolicyHasMTLSEnabled(policy IstioObject) (bool, string)

func PolicyHasStrictMTLS added in v0.17.0

func PolicyHasStrictMTLS(policy IstioObject) bool

func ServiceEntryHostnames

func ServiceEntryHostnames(serviceEntries []IstioObject) map[string][]string

ServiceEntryHostnames returns a list of hostnames defined in the ServiceEntries Specs. Key in the resulting map is the protocol (in lowercase) + hostname exported for test

func ValidatePort

func ValidatePort(portDef interface{}) bool

ValidaPort parses the Istio Port definition and validates the naming scheme

func ValidateVirtualServiceGateways

func ValidateVirtualServiceGateways(spec map[string]interface{}, gatewayNames map[string]struct{}, namespace, clusterName string) (bool, int)

ValidateVirtualServiceGateways checks all VirtualService gateways (except mesh, which is reserved word) and checks that they're found from the given list of gatewayNames. Also return index of missing gatways to show clearer error path in editor

Types

type ClientFactory

type ClientFactory interface {
	GetClient(token string) (IstioClientInterface, error)
}

ClientFactory interface for the clientFactory object

func GetClientFactory added in v0.17.0

func GetClientFactory() (ClientFactory, error)

GetClientFactory returns the client factory. Creates a new one if necessary

type GenericIstioObject

type GenericIstioObject struct {
	meta_v1.TypeMeta   `json:",inline"`
	meta_v1.ObjectMeta `json:"metadata"`
	Spec               map[string]interface{} `json:"spec"`
}

GenericIstioObject is a type to test Istio types defined by Istio as a Kubernetes extension.

func (*GenericIstioObject) DeepCopy

func (in *GenericIstioObject) DeepCopy() *GenericIstioObject

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericIstioObject.

func (*GenericIstioObject) DeepCopyInto

func (in *GenericIstioObject) DeepCopyInto(out *GenericIstioObject)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GenericIstioObject) DeepCopyIstioObject

func (in *GenericIstioObject) DeepCopyIstioObject() IstioObject

DeepCopyIstioObject is an autogenerated deepcopy function, copying the receiver, creating a new IstioObject.

func (*GenericIstioObject) DeepCopyObject

func (in *GenericIstioObject) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GenericIstioObject) GetObjectMeta

func (in *GenericIstioObject) GetObjectMeta() meta_v1.ObjectMeta

GetObjectMeta from a wrapper

func (*GenericIstioObject) GetSpec

func (in *GenericIstioObject) GetSpec() map[string]interface{}

GetSpec from a wrapper

func (*GenericIstioObject) GetTypeMeta

func (in *GenericIstioObject) GetTypeMeta() meta_v1.TypeMeta

GetTypeMeta from a wrapper

func (*GenericIstioObject) SetObjectMeta

func (in *GenericIstioObject) SetObjectMeta(metadata meta_v1.ObjectMeta)

SetObjectMeta for a wrapper

func (*GenericIstioObject) SetSpec

func (in *GenericIstioObject) SetSpec(spec map[string]interface{})

SetSpec for a wrapper

func (*GenericIstioObject) SetTypeMeta

func (in *GenericIstioObject) SetTypeMeta(typemeta meta_v1.TypeMeta)

SetObjectMeta for a wrapper

type GenericIstioObjectList

type GenericIstioObjectList struct {
	meta_v1.TypeMeta `json:",inline"`
	meta_v1.ListMeta `json:"metadata"`
	Items            []GenericIstioObject `json:"items"`
}

GenericIstioObjectList is the generic Kubernetes API list wrapper

func (*GenericIstioObjectList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericIstioObjectList.

func (*GenericIstioObjectList) DeepCopyInto

func (in *GenericIstioObjectList) DeepCopyInto(out *GenericIstioObjectList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GenericIstioObjectList) DeepCopyObject

func (in *GenericIstioObjectList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*GenericIstioObjectList) GetItems

func (in *GenericIstioObjectList) GetItems() []IstioObject

GetItems from a wrapper

type Host

type Host struct {
	Service   string
	Namespace string
	Cluster   string
}

Host represents the FQDN format for Istio hostnames

func ParseHost

func ParseHost(hostName, namespace, cluster string) Host

Parse takes as an input a hostname (simple or full FQDN), namespace and clusterName and returns a parsed Host struct

func (Host) String

func (h Host) String() string

String outputs a full FQDN version of the Host

type IstioClient

type IstioClient struct {
	IstioClientInterface
	// contains filtered or unexported fields
}

IstioClient is the client struct for Kubernetes and Istio APIs It hides the way it queries each API

func NewClientFromConfig

func NewClientFromConfig(config *rest.Config) (*IstioClient, error)

NewClientFromConfig creates a new client to the Kubernetes and Istio APIs. It takes the assumption that Istio is deployed into the cluster. It hides the access to Kubernetes/Openshift credentials. It hides the low level use of the API of Kubernetes and Istio, it should be considered as an implementation detail. It returns an error on any problem.

func (*IstioClient) CreateIstioObject

func (in *IstioClient) CreateIstioObject(api, namespace, resourceType, json string) (IstioObject, error)

CreateIstioObject creates an Istio object

func (*IstioClient) DeleteIstioObject

func (in *IstioClient) DeleteIstioObject(api, namespace, resourceType, name string) error

DeleteIstioObject deletes an Istio object from either config api or networking api

func (*IstioClient) GetAdapter

func (in *IstioClient) GetAdapter(namespace, adapterType, adapterName string) (IstioObject, error)

func (*IstioClient) GetAdapters

func (in *IstioClient) GetAdapters(namespace string) ([]IstioObject, error)

func (*IstioClient) GetAuthorizationDetails added in v0.17.0

func (in *IstioClient) GetAuthorizationDetails(namespace string) (*RBACDetails, error)

GetAuthorizationDetails returns ServiceRoles, ServiceRoleBindings and ClusterRbacDetails

func (*IstioClient) GetClusterRbacConfig

func (in *IstioClient) GetClusterRbacConfig(namespace string, name string) (IstioObject, error)

func (*IstioClient) GetClusterRbacConfigs

func (in *IstioClient) GetClusterRbacConfigs(namespace string) ([]IstioObject, error)

func (*IstioClient) GetCronJobs

func (in *IstioClient) GetCronJobs(namespace string) ([]batch_v1beta1.CronJob, error)

func (*IstioClient) GetDeployment

func (in *IstioClient) GetDeployment(namespace, deploymentName string) (*v1beta1.Deployment, error)

GetDeployment returns the definition of a specific deployment. It returns an error on any problem.

func (*IstioClient) GetDeploymentConfig

func (in *IstioClient) GetDeploymentConfig(namespace, deploymentconfigName string) (*osappsv1.DeploymentConfig, error)

GetDeployment returns the definition of a specific deployment. It returns an error on any problem.

func (*IstioClient) GetDeploymentConfigs

func (in *IstioClient) GetDeploymentConfigs(namespace string) ([]osappsv1.DeploymentConfig, error)

GetDeployments returns an array of deployments for a given namespace and a set of labels. An empty labelSelector will fetch all Deployments for a namespace. It returns an error on any problem.

func (*IstioClient) GetDeployments

func (in *IstioClient) GetDeployments(namespace string) ([]v1beta1.Deployment, error)

GetDeployments returns an array of deployments for a given namespace and a set of labels. It returns an error on any problem.

func (*IstioClient) GetDestinationRule

func (in *IstioClient) GetDestinationRule(namespace string, destinationrule string) (IstioObject, error)

func (*IstioClient) GetDestinationRules

func (in *IstioClient) GetDestinationRules(namespace string, serviceName string) ([]IstioObject, error)

GetDestinationRules returns all DestinationRules for a given namespace. If serviceName param is provided it will filter all DestinationRules having a host defined on a particular service. It returns an error on any problem.

func (*IstioClient) GetEndpoints

func (in *IstioClient) GetEndpoints(namespace, serviceName string) (*v1.Endpoints, error)

GetEndpoints return the list of endpoint of a specific service. It returns an error on any problem.

func (*IstioClient) GetGateway

func (in *IstioClient) GetGateway(namespace string, gateway string) (IstioObject, error)

func (*IstioClient) GetGateways

func (in *IstioClient) GetGateways(namespace string) ([]IstioObject, error)

GetGateways return all Gateways for a given namespace. It returns an error on any problem.

func (*IstioClient) GetIstioConfigApi

func (client *IstioClient) GetIstioConfigApi() *rest.RESTClient

GetIstioConfigApi returns the istio config rest client

func (*IstioClient) GetIstioDetails

func (in *IstioClient) GetIstioDetails(namespace string, serviceName string) (*IstioDetails, error)

GetIstioDetails returns Istio details for a given namespace, on this version it collects the VirtualServices and DestinationRules defined for a namespace. If serviceName param is provided, it filters all the Istio objects pointing to a particular service. It returns an error on any problem.

func (*IstioClient) GetIstioNetworkingApi

func (client *IstioClient) GetIstioNetworkingApi() *rest.RESTClient

GetIstioNetworkingApi returns the istio config rest client

func (*IstioClient) GetIstioRbacApi

func (client *IstioClient) GetIstioRbacApi() *rest.RESTClient

GetIstioRbacApi returns the istio rbac rest client

func (*IstioClient) GetIstioRule

func (in *IstioClient) GetIstioRule(namespace string, istiorule string) (IstioObject, error)

func (*IstioClient) GetIstioRules

func (in *IstioClient) GetIstioRules(namespace string) ([]IstioObject, error)

GetIstioRules returns a list of mixer rules for a given namespace.

func (*IstioClient) GetJobs

func (in *IstioClient) GetJobs(namespace string) ([]batch_v1.Job, error)

func (*IstioClient) GetK8sApi

func (client *IstioClient) GetK8sApi() *kube.Clientset

GetK8sApi returns the clientset referencing all K8s rest clients

func (*IstioClient) GetMeshPolicies

func (in *IstioClient) GetMeshPolicies(namespace string) ([]IstioObject, error)

func (*IstioClient) GetMeshPolicy

func (in *IstioClient) GetMeshPolicy(namespace string, policyName string) (IstioObject, error)

func (*IstioClient) GetNamespace

func (in *IstioClient) GetNamespace(namespace string) (*v1.Namespace, error)

GetNamespace fetches and returns the specified namespace definition from the cluster

func (*IstioClient) GetNamespaces

func (in *IstioClient) GetNamespaces() ([]v1.Namespace, error)

GetNamespaces returns a list of all namespaces of the cluster. It returns a list of all namespaces of the cluster. It returns an error on any problem.

func (*IstioClient) GetPods

func (in *IstioClient) GetPods(namespace, labelSelector string) ([]v1.Pod, error)

GetPods returns the pods definitions for a given set of labels. An empty labelSelector will fetch all pods found per a namespace. It returns an error on any problem.

func (*IstioClient) GetPolicies

func (in *IstioClient) GetPolicies(namespace string) ([]IstioObject, error)

func (*IstioClient) GetPolicy

func (in *IstioClient) GetPolicy(namespace string, policyName string) (IstioObject, error)

func (*IstioClient) GetProject

func (in *IstioClient) GetProject(name string) (*osv1.Project, error)

GetProject fetches and returns the definition of the project with the specified name by querying the cluster API. GetProject will fail if the underlying cluster is not Openshift.

func (*IstioClient) GetProjects

func (in *IstioClient) GetProjects() ([]osv1.Project, error)

func (*IstioClient) GetQuotaSpec

func (in *IstioClient) GetQuotaSpec(namespace string, quotaSpecName string) (IstioObject, error)

func (*IstioClient) GetQuotaSpecBinding

func (in *IstioClient) GetQuotaSpecBinding(namespace string, quotaSpecBindingName string) (IstioObject, error)

func (*IstioClient) GetQuotaSpecBindings

func (in *IstioClient) GetQuotaSpecBindings(namespace string) ([]IstioObject, error)

GetQuotaSpecBindings returns all QuotaSpecBindings objects for a given namespace. It returns an error on any problem.

func (*IstioClient) GetQuotaSpecs

func (in *IstioClient) GetQuotaSpecs(namespace string) ([]IstioObject, error)

GetQuotaSpecs returns all QuotaSpecs objects for a given namespace. It returns an error on any problem.

func (*IstioClient) GetRbacConfig

func (in *IstioClient) GetRbacConfig(namespace string, name string) (IstioObject, error)

func (*IstioClient) GetRbacConfigs

func (in *IstioClient) GetRbacConfigs(namespace string) ([]IstioObject, error)

func (*IstioClient) GetReplicaSets

func (in *IstioClient) GetReplicaSets(namespace string) ([]v1beta2.ReplicaSet, error)

func (*IstioClient) GetReplicationControllers

func (in *IstioClient) GetReplicationControllers(namespace string) ([]v1.ReplicationController, error)

func (*IstioClient) GetSelfSubjectAccessReview

func (in *IstioClient) GetSelfSubjectAccessReview(namespace, api, resourceType string, verbs []string) ([]*auth_v1.SelfSubjectAccessReview, error)

GetSelfSubjectAccessReview provides information on Kiali permissions

func (*IstioClient) GetService

func (in *IstioClient) GetService(namespace, serviceName string) (*v1.Service, error)

GetService returns the definition of a specific service. It returns an error on any problem.

func (*IstioClient) GetServiceEntries

func (in *IstioClient) GetServiceEntries(namespace string) ([]IstioObject, error)

GetServiceEntries return all ServiceEntry objects for a given namespace. It returns an error on any problem.

func (*IstioClient) GetServiceEntry

func (in *IstioClient) GetServiceEntry(namespace string, serviceEntryName string) (IstioObject, error)

func (*IstioClient) GetServiceRole

func (in *IstioClient) GetServiceRole(namespace string, name string) (IstioObject, error)

func (*IstioClient) GetServiceRoleBinding

func (in *IstioClient) GetServiceRoleBinding(namespace string, name string) (IstioObject, error)

func (*IstioClient) GetServiceRoleBindings

func (in *IstioClient) GetServiceRoleBindings(namespace string) ([]IstioObject, error)

func (*IstioClient) GetServiceRoles

func (in *IstioClient) GetServiceRoles(namespace string) ([]IstioObject, error)

func (*IstioClient) GetServices

func (in *IstioClient) GetServices(namespace string, selectorLabels map[string]string) ([]v1.Service, error)

GetServices returns a list of services for a given namespace. If selectorLabels is defined the list of services is filtered for those that matches Services selector labels. It returns an error on any problem.

func (*IstioClient) GetStatefulSet

func (in *IstioClient) GetStatefulSet(namespace string, statefulsetName string) (*v1beta2.StatefulSet, error)

func (*IstioClient) GetStatefulSets

func (in *IstioClient) GetStatefulSets(namespace string) ([]v1beta2.StatefulSet, error)

func (*IstioClient) GetTemplate

func (in *IstioClient) GetTemplate(namespace, templateType, templateName string) (IstioObject, error)

func (*IstioClient) GetTemplates

func (in *IstioClient) GetTemplates(namespace string) ([]IstioObject, error)

func (*IstioClient) GetVirtualService

func (in *IstioClient) GetVirtualService(namespace string, virtualservice string) (IstioObject, error)

func (*IstioClient) GetVirtualServices

func (in *IstioClient) GetVirtualServices(namespace string, serviceName string) ([]IstioObject, error)

GetVirtualServices return all VirtualServices for a given namespace. If serviceName param is provided it will filter all VirtualServices having a host defined on a particular service. It returns an error on any problem.

func (*IstioClient) IsOpenShift

func (in *IstioClient) IsOpenShift() bool

func (*IstioClient) Stop

func (in *IstioClient) Stop()

func (*IstioClient) UpdateIstioObject

func (in *IstioClient) UpdateIstioObject(api, namespace, resourceType, name, jsonPatch string) (IstioObject, error)

UpdateIstioObject updates an Istio object from either config api or networking api

type IstioClientInterface

type IstioClientInterface interface {
	CreateIstioObject(api, namespace, resourceType, json string) (IstioObject, error)
	DeleteIstioObject(api, namespace, resourceType, name string) error
	GetAdapter(namespace, adapterType, adapterName string) (IstioObject, error)
	GetAdapters(namespace string) ([]IstioObject, error)
	GetAuthorizationDetails(namespace string) (*RBACDetails, error)
	GetCronJobs(namespace string) ([]batch_v1beta1.CronJob, error)
	GetDeployment(namespace string, deploymentName string) (*v1beta1.Deployment, error)
	GetDeployments(namespace string) ([]v1beta1.Deployment, error)
	GetDeploymentConfig(namespace string, deploymentconfigName string) (*osappsv1.DeploymentConfig, error)
	GetDeploymentConfigs(namespace string) ([]osappsv1.DeploymentConfig, error)
	GetDestinationRule(namespace string, destinationrule string) (IstioObject, error)
	GetDestinationRules(namespace string, serviceName string) ([]IstioObject, error)
	GetEndpoints(namespace string, serviceName string) (*v1.Endpoints, error)
	GetGateway(namespace string, gateway string) (IstioObject, error)
	GetGateways(namespace string) ([]IstioObject, error)
	GetIstioDetails(namespace string, serviceName string) (*IstioDetails, error)
	GetIstioRule(namespace string, istiorule string) (IstioObject, error)
	GetIstioRules(namespace string) ([]IstioObject, error)
	GetJobs(namespace string) ([]batch_v1.Job, error)
	GetNamespace(namespace string) (*v1.Namespace, error)
	GetNamespaces() ([]v1.Namespace, error)
	GetPods(namespace, labelSelector string) ([]v1.Pod, error)
	GetProject(project string) (*osv1.Project, error)
	GetProjects() ([]osv1.Project, error)
	GetQuotaSpec(namespace string, quotaSpecName string) (IstioObject, error)
	GetQuotaSpecs(namespace string) ([]IstioObject, error)
	GetQuotaSpecBinding(namespace string, quotaSpecBindingName string) (IstioObject, error)
	GetQuotaSpecBindings(namespace string) ([]IstioObject, error)
	GetReplicationControllers(namespace string) ([]v1.ReplicationController, error)
	GetReplicaSets(namespace string) ([]v1beta2.ReplicaSet, error)
	GetSelfSubjectAccessReview(namespace, api, resourceType string, verbs []string) ([]*auth_v1.SelfSubjectAccessReview, error)
	GetService(namespace string, serviceName string) (*v1.Service, error)
	GetServices(namespace string, selectorLabels map[string]string) ([]v1.Service, error)
	GetServiceEntries(namespace string) ([]IstioObject, error)
	GetServiceEntry(namespace string, serviceEntryName string) (IstioObject, error)
	GetStatefulSet(namespace string, statefulsetName string) (*v1beta2.StatefulSet, error)
	GetStatefulSets(namespace string) ([]v1beta2.StatefulSet, error)
	GetTemplate(namespace, templateType, templateName string) (IstioObject, error)
	GetTemplates(namespace string) ([]IstioObject, error)
	GetPolicy(namespace string, policyName string) (IstioObject, error)
	GetPolicies(namespace string) ([]IstioObject, error)
	GetMeshPolicy(namespace string, policyName string) (IstioObject, error)
	GetMeshPolicies(namespace string) ([]IstioObject, error)
	GetClusterRbacConfig(namespace string, name string) (IstioObject, error)
	GetClusterRbacConfigs(namespace string) ([]IstioObject, error)
	GetRbacConfig(namespace string, name string) (IstioObject, error)
	GetRbacConfigs(namespace string) ([]IstioObject, error)
	GetServiceRole(namespace string, name string) (IstioObject, error)
	GetServiceRoles(namespace string) ([]IstioObject, error)
	GetServiceRoleBinding(namespace string, name string) (IstioObject, error)
	GetServiceRoleBindings(namespace string) ([]IstioObject, error)
	GetVirtualService(namespace string, virtualservice string) (IstioObject, error)
	GetVirtualServices(namespace string, serviceName string) ([]IstioObject, error)
	IsOpenShift() bool
	Stop()
	UpdateIstioObject(api, namespace, resourceType, name, jsonPatch string) (IstioObject, error)
}

IstioClientInterface for mocks (only mocked function are necessary here)

type IstioDetails

type IstioDetails struct {
	VirtualServices  []IstioObject `json:"virtualservices"`
	DestinationRules []IstioObject `json:"destinationrules"`
	ServiceEntries   []IstioObject `json:"serviceentries"`
	Gateways         []IstioObject `json:"gateways"`
}

IstioDetails is a wrapper to group all Istio objects related to a Service. Used to fetch all Istio information in a single operation instead to invoke individual APIs per each group.

type IstioObject

type IstioObject interface {
	runtime.Object
	GetSpec() map[string]interface{}
	SetSpec(map[string]interface{})
	GetTypeMeta() meta_v1.TypeMeta
	SetTypeMeta(meta_v1.TypeMeta)
	GetObjectMeta() meta_v1.ObjectMeta
	SetObjectMeta(meta_v1.ObjectMeta)
	DeepCopyIstioObject() IstioObject
}

IstioObject is a k8s wrapper interface for config objects. Taken from istio.io

type IstioObjectList

type IstioObjectList interface {
	runtime.Object
	GetItems() []IstioObject
}

IstioObjectList is a k8s wrapper interface for list config objects. Taken from istio.io

type KialiMonitoringClient

type KialiMonitoringClient struct {
	KialiMonitoringInterface
	// contains filtered or unexported fields
}

KialiMonitoringClient is the client struct for Kiali Monitoring API over Kubernetes API to get MonitoringDashboards

func NewKialiMonitoringClient

func NewKialiMonitoringClient() (*KialiMonitoringClient, error)

NewKialiMonitoringClient creates a new client able to fetch Kiali Monitoring API.

func (*KialiMonitoringClient) GetDashboard

func (in *KialiMonitoringClient) GetDashboard(namespace, name string) (*v1alpha1.MonitoringDashboard, error)

GetDashboard returns a MonitoringDashboard for the given name

func (*KialiMonitoringClient) GetDashboards added in v0.17.0

func (in *KialiMonitoringClient) GetDashboards(namespace string) ([]v1alpha1.MonitoringDashboard, error)

GetDashboards returns all MonitoringDashboards from the given namespace

type KialiMonitoringInterface

type KialiMonitoringInterface interface {
	GetDashboard(namespace string, name string) (*v1alpha1.MonitoringDashboard, error)
	GetDashboards(namespace string) ([]v1alpha1.MonitoringDashboard, error)
}

KialiMonitoringInterface for mocks (only mocked function are necessary here)

type MTLSDetails

type MTLSDetails struct {
	DestinationRules []IstioObject `json:"destinationrules"`
	MeshPolicies     []IstioObject `json:"meshpolicies"`
	Policies         []IstioObject `json:"policies"`
}

MTLSDetails is a wrapper to group all Istio objects related to non-local mTLS configurations

type RBACDetails added in v0.17.0

type RBACDetails struct {
	ClusterRbacConfigs  []IstioObject `json:"clusterrbacconfigs"`
	ServiceRoles        []IstioObject `json:"serviceroles"`
	ServiceRoleBindings []IstioObject `json:"servicerolebindings"`
}

RBACDetails is a wrapper for objects related to Istio RBAC (Role Based Access Control)

type ServiceDetails

type ServiceDetails struct {
	Service     *v1.Service                                `json:"service"`
	Endpoints   *v1.Endpoints                              `json:"endpoints"`
	Deployments *v1beta1.DeploymentList                    `json:"deployments"`
	Autoscalers *autoscalingV1.HorizontalPodAutoscalerList `json:"autoscalers"`
	Pods        []v1.Pod                                   `json:"pods"`
}

ServiceDetails is a wrapper to group full Service description, Endpoints and Pods. Used to fetch all details in a single operation instead to invoke individual APIs per each group.

type ServiceList

type ServiceList struct {
	Services    *v1.ServiceList
	Pods        *v1.PodList
	Deployments *v1beta1.DeploymentList
}

ServiceList holds list of services, pods and deployments

Directories

Path Synopsis
kiali_monitoring

Jump to

Keyboard shortcuts

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