Documentation ¶
Index ¶
- func NewKubeCache(kialiClient kubernetes.ClientInterface, cfg config.Config, ...) (*kubeCache, error)
- type KialiCache
- func FakeGatewaysKialiCache(gws []*networking_v1beta1.Gateway) KialiCache
- func FakeServicesKialiCache(rss []*kubernetes.RegistryService, gws []*networking_v1beta1.Gateway, ...) KialiCache
- func FakeTlsKialiCache(token string, namespaces []string, pa []*security_v1beta1.PeerAuthentication, ...) KialiCache
- func NewKialiCache(clientFactory kubernetes.ClientFactory, cfg config.Config) (KialiCache, error)
- type KubeCache
- type NamespacesCache
- type ProxyStatusCache
- type RegistryRefreshHandler
- type RegistryStatusCache
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewKubeCache ¶ added in v1.64.0
func NewKubeCache(kialiClient kubernetes.ClientInterface, cfg config.Config, refreshHandler RegistryRefreshHandler) (*kubeCache, error)
Starts all informers. These run until context is cancelled.
Types ¶
type KialiCache ¶
type KialiCache interface { GetKubeCaches() map[string]KubeCache GetKubeCache(cluster string) (KubeCache, error) // GetClusters returns the list of clusters that the cache knows about. // This gets set by the mesh service. GetClusters() []kubernetes.Cluster // SetClusters sets the list of clusters that the cache knows about. SetClusters([]kubernetes.Cluster) // Embedded for backward compatibility for business methods that just use one cluster. // All business methods should eventually use the multi-cluster cache. // Instead of using the interface directly for kube objects, use the GetKubeCache() method. KubeCache NamespacesCache ProxyStatusCache RegistryStatusCache }
KialiCache stores both kube objects and non-kube related data such as pods' proxy status. It is exclusively used by the business layer where it's expected to be a singleton. This business layer cache needs access to all the kiali service account has access to so it uses the kiali service account token instead of a user token. Access to the objects returned by the cache should be filtered/restricted to the user's token access but the cache returns objects without any filtering or restrictions.
func FakeGatewaysKialiCache ¶ added in v1.45.0
func FakeGatewaysKialiCache(gws []*networking_v1beta1.Gateway) KialiCache
Fake KialiCache used for Gateway Scenarios It populates the Namespaces, Informers and Gateway information needed
func FakeServicesKialiCache ¶ added in v1.46.0
func FakeServicesKialiCache(rss []*kubernetes.RegistryService, gws []*networking_v1beta1.Gateway, vss []*networking_v1beta1.VirtualService, drs []*networking_v1beta1.DestinationRule, ses []*networking_v1beta1.ServiceEntry, sds []*networking_v1beta1.Sidecar, ras []*security_v1beta1.RequestAuthentication, wes []*networking_v1beta1.WorkloadEntry, ) KialiCache
Fake KialiCache used for RegistryServices and All IstioConfigs Scenarios It populates the Namespaces, Informers and Registry information needed
func FakeTlsKialiCache ¶ added in v1.45.0
func FakeTlsKialiCache(token string, namespaces []string, pa []*security_v1beta1.PeerAuthentication, dr []*networking_v1beta1.DestinationRule) KialiCache
Fake KialiCache used for TLS Scenarios It populates the Namespaces, Informers and Registry information needed
func NewKialiCache ¶
func NewKialiCache(clientFactory kubernetes.ClientFactory, cfg config.Config) (KialiCache, error)
type KubeCache ¶ added in v1.64.0
type KubeCache interface { // Control methods // Check if a namespace is listed to be cached; if yes, creates a cache for that namespace CheckNamespace(namespace string) bool // Refresh will recreate the necessary cache. If the cache is cluster-scoped the "namespace" argument // is ignored and the whole cache is recreated, otherwise only the namespace-specific cache is updated. Refresh(namespace string) // Stop all caches Stop() // Client returns the underlying client for the KubeCache. // This is useful for when you want to talk directly to the kube API // using the Kiali Service Account client. Client() kubernetes.ClientInterface // UpdateClient will update the client used by the cache. // Useful for when the token is refreshed for the client. // This causes a full refresh of the cache. UpdateClient(client kubernetes.ClientInterface) error GetConfigMap(namespace, name string) (*core_v1.ConfigMap, error) GetDaemonSets(namespace string) ([]apps_v1.DaemonSet, error) GetDaemonSet(namespace, name string) (*apps_v1.DaemonSet, error) GetDeployments(namespace string) ([]apps_v1.Deployment, error) GetDeploymentsWithSelector(namespace string, labelSelector string) ([]apps_v1.Deployment, error) GetDeployment(namespace, name string) (*apps_v1.Deployment, error) GetEndpoints(namespace, name string) (*core_v1.Endpoints, error) GetStatefulSets(namespace string) ([]apps_v1.StatefulSet, error) GetStatefulSet(namespace, name string) (*apps_v1.StatefulSet, error) GetServices(namespace string, selectorLabels map[string]string) ([]core_v1.Service, error) GetService(namespace string, name string) (*core_v1.Service, error) GetPods(namespace, labelSelector string) ([]core_v1.Pod, error) GetReplicaSets(namespace string) ([]apps_v1.ReplicaSet, error) GetDestinationRule(namespace, name string) (*networking_v1beta1.DestinationRule, error) GetDestinationRules(namespace, labelSelector string) ([]*networking_v1beta1.DestinationRule, error) GetEnvoyFilter(namespace, name string) (*networking_v1alpha3.EnvoyFilter, error) GetEnvoyFilters(namespace, labelSelector string) ([]*networking_v1alpha3.EnvoyFilter, error) GetGateway(namespace, name string) (*networking_v1beta1.Gateway, error) GetGateways(namespace, labelSelector string) ([]*networking_v1beta1.Gateway, error) GetServiceEntry(namespace, name string) (*networking_v1beta1.ServiceEntry, error) GetServiceEntries(namespace, labelSelector string) ([]*networking_v1beta1.ServiceEntry, error) GetSidecar(namespace, name string) (*networking_v1beta1.Sidecar, error) GetSidecars(namespace, labelSelector string) ([]*networking_v1beta1.Sidecar, error) GetVirtualService(namespace, name string) (*networking_v1beta1.VirtualService, error) GetVirtualServices(namespace, labelSelector string) ([]*networking_v1beta1.VirtualService, error) GetWorkloadEntry(namespace, name string) (*networking_v1beta1.WorkloadEntry, error) GetWorkloadEntries(namespace, labelSelector string) ([]*networking_v1beta1.WorkloadEntry, error) GetWorkloadGroup(namespace, name string) (*networking_v1beta1.WorkloadGroup, error) GetWorkloadGroups(namespace, labelSelector string) ([]*networking_v1beta1.WorkloadGroup, error) GetWasmPlugin(namespace, name string) (*extentions_v1alpha1.WasmPlugin, error) GetWasmPlugins(namespace, labelSelector string) ([]*extentions_v1alpha1.WasmPlugin, error) GetTelemetry(namespace, name string) (*v1alpha1.Telemetry, error) GetTelemetries(namespace, labelSelector string) ([]*v1alpha1.Telemetry, error) GetK8sGatewayClasses(namespace, labelSelector string) ([]*gatewayapi_v1beta1.GatewayClass, error) GetK8sGateway(namespace, name string) (*gatewayapi_v1beta1.Gateway, error) GetK8sGateways(namespace, labelSelector string) ([]*gatewayapi_v1beta1.Gateway, error) GetK8sHTTPRoute(namespace, name string) (*gatewayapi_v1beta1.HTTPRoute, error) GetK8sHTTPRoutes(namespace, labelSelector string) ([]*gatewayapi_v1beta1.HTTPRoute, error) GetAuthorizationPolicy(namespace, name string) (*security_v1beta1.AuthorizationPolicy, error) GetAuthorizationPolicies(namespace, labelSelector string) ([]*security_v1beta1.AuthorizationPolicy, error) GetPeerAuthentication(namespace, name string) (*security_v1beta1.PeerAuthentication, error) GetPeerAuthentications(namespace, labelSelector string) ([]*security_v1beta1.PeerAuthentication, error) GetRequestAuthentication(namespace, name string) (*security_v1beta1.RequestAuthentication, error) GetRequestAuthentications(namespace, labelSelector string) ([]*security_v1beta1.RequestAuthentication, error) }
type NamespacesCache ¶
type ProxyStatusCache ¶ added in v1.25.0
type ProxyStatusCache interface {
GetPodProxyStatus(cluster, namespace, pod string) *kubernetes.ProxyStatus
}
type RegistryRefreshHandler ¶ added in v1.44.0
type RegistryRefreshHandler struct {
// contains filtered or unexported fields
}
func NewRegistryHandler ¶ added in v1.44.0
func NewRegistryHandler(refresh func()) RegistryRefreshHandler
func (RegistryRefreshHandler) OnAdd ¶ added in v1.44.0
func (sh RegistryRefreshHandler) OnAdd(obj interface{}, isInInitialList bool)
func (RegistryRefreshHandler) OnDelete ¶ added in v1.44.0
func (sh RegistryRefreshHandler) OnDelete(obj interface{})
func (RegistryRefreshHandler) OnUpdate ¶ added in v1.44.0
func (sh RegistryRefreshHandler) OnUpdate(oldObj, newObj interface{})
type RegistryStatusCache ¶ added in v1.35.0
type RegistryStatusCache interface { CheckRegistryStatus() bool GetRegistryStatus() *kubernetes.RegistryStatus SetRegistryStatus(registryStatus *kubernetes.RegistryStatus) RefreshRegistryStatus() }