controllers

package
v1.4.2 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2026 License: Apache-2.0 Imports: 95 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KuadrantAppName                = "kuadrant"
	PolicyAffectedConditionPattern = "kuadrant.io/%sAffected" // Policy kinds are expected to be named XPolicy
	FieldManagerName               = "kuadrant-operator"
)
View Source
const (
	DNSRecordKind             = "DNSRecord"
	StateDNSPolicyAcceptedKey = "DNSPolicyValid"
	StateDNSPolicyErrorsKey   = "DNSPolicyErrors"

	PolicyConditionSubResourcesHealthy gatewayapiv1alpha2.PolicyConditionType   = "SubResourcesHealthy"
	PolicyReasonSubResourcesHealthy    gatewayapiv1alpha2.PolicyConditionReason = "SubResourcesHealthy"
)
View Source
const (

	// State keys
	StateEnvoyGatewayTracingClustersModified = "EnvoyGatewayTracingClustersModified"
	StateIstioTracingClustersModified        = "IstioTracingClustersModified"
)
View Source
const (
	LabelListenerReference = "kuadrant.io/listener-name"
)
View Source
const (
	ReadyConditionType string = "Ready"
)
View Source
const StateEffectiveTokenRateLimitPolicies = "EffectiveTokenRateLimitPolicies"
View Source
const StateTokenRateLimitPolicyValid = "TokenRateLimitPolicyValid"
View Source
const (
	TLSPolicyAcceptedKey = "TLSPolicyValid"
)
View Source
const (
	TopologyConfigMapName = "topology"
)

Variables

View Source
var (
	StateAuthPolicyValid                  = "AuthPolicyValid"
	StateEffectiveAuthPolicies            = "EffectiveAuthPolicies"
	StateModifiedAuthConfigs              = "ModifiedAuthConfigs"
	StateIstioAuthClustersModified        = "IstioAuthClustersModified"
	StateEnvoyGatewayAuthClustersModified = "EnvoyGatewayAuthClustersModified"

	ErrMissingAuthorino                  = fmt.Errorf("missing authorino object in the topology")
	ErrMissingStateEffectiveAuthPolicies = fmt.Errorf("missing auth effective policies stored in the reconciliation state")
)
View Source
var (
	AppLabelKey   = "app"
	AppLabelValue = KuadrantAppName
)
View Source
var (
	WASMFilterImageURL = env.GetString("RELATED_IMAGE_WASMSHIM", "quay.io/kuadrant/wasm-shim:latest")
	// protectedRegistry this defines a default protected registry. If this is in the wasm image URL we add a pull secret name to the WASMPLugin resource
	ProtectedRegistry = env.GetString("PROTECTED_REGISTRY", "registry.redhat.io")

	// registryPullSecretName this is the pull secret name we will add to the WASMPlugin if the URL for he image is from the defined PROTECTED_REGISTRY
	RegistryPullSecretName = "wasm-plugin-pull-secret"

	StateIstioExtensionsModified        = "IstioExtensionsModified"
	StateEnvoyGatewayExtensionsModified = "EnvoyGatewayExtensionsModified"
)
View Source
var (
	DNSRecordResource  = kuadrantdnsv1alpha1.GroupVersion.WithResource("dnsrecords")
	DNSRecordGroupKind = schema.GroupKind{Group: kuadrantdnsv1alpha1.GroupVersion.Group, Kind: DNSRecordKind}
)
View Source
var (
	ErrNoRoutes    = fmt.Errorf("no routes attached to any gateway listeners")
	ErrNoAddresses = fmt.Errorf("no valid status addresses to use on gateway")
)
View Source
var (
	StateRateLimitPolicyValid                  = "RateLimitPolicyValid"
	StateEffectiveRateLimitPolicies            = "EffectiveRateLimitPolicies"
	StateLimitadorLimitsModified               = "LimitadorLimitsModified"
	StateIstioRateLimitClustersModified        = "IstioRateLimitClustersModified"
	StateEnvoyGatewayRateLimitClustersModified = "EnvoyGatewayRateLimitClustersModified"

	ErrMissingLimitador                            = fmt.Errorf("missing limitador object in the topology")
	ErrMissingLimitadorServiceInfo                 = fmt.Errorf("missing limitador service info in the limitador object")
	ErrMissingStateEffectiveRateLimitPolicies      = fmt.Errorf("missing rate limit effective policies stored in the reconciliation state")
	ErrMissingStateEffectiveTokenRateLimitPolicies = fmt.Errorf("missing token rate limit effective policies stored in the reconciliation state")
)
View Source
var (
	CertManagerCertificatesResource  = certmanagerv1.SchemeGroupVersion.WithResource("certificates")
	CertManagerIssuersResource       = certmanagerv1.SchemeGroupVersion.WithResource("issuers")
	CertMangerClusterIssuersResource = certmanagerv1.SchemeGroupVersion.WithResource("clusterissuers")

	CertManagerCertificateKind   = schema.GroupKind{Group: certmanager.GroupName, Kind: certmanagerv1.CertificateKind}
	CertManagerIssuerKind        = schema.GroupKind{Group: certmanager.GroupName, Kind: certmanagerv1.IssuerKind}
	CertManagerClusterIssuerKind = schema.GroupKind{Group: certmanager.GroupName, Kind: certmanagerv1.ClusterIssuerKind}
)
View Source
var (
	ConfigMapGroupKind = schema.GroupKind{Group: corev1.GroupName, Kind: "ConfigMap"}
)
View Source
var NegativePolarityConditions []string

Functions

func AuthClusterName

func AuthClusterName(gatewayName string) string

func AuthConfigNameForPath

func AuthConfigNameForPath(pathID string) string

func AuthObjectLabels

func AuthObjectLabels() labels.Set

func CommonLabels

func CommonLabels() map[string]string

func FindRouteParentStatusFunc

func FindRouteParentStatusFunc(route *gatewayapiv1.HTTPRoute, gatewayKey client.ObjectKey, controllerName gatewayapiv1.GatewayController) func(gatewayapiv1.RouteParentStatus) bool

func GetAuthorinoFromTopology

func GetAuthorinoFromTopology(topology *machinery.Topology) *authorinooperatorv1beta1.Authorino

func GetKuadrantFromTopology

func GetKuadrantFromTopology(topology *machinery.Topology) *kuadrantv1beta1.Kuadrant

func GetKuadrantFromTopologyDuringDeletion added in v1.4.0

func GetKuadrantFromTopologyDuringDeletion(topology *machinery.Topology) *kuadrantv1beta1.Kuadrant

func GetLimitadorFromTopology

func GetLimitadorFromTopology(topology *machinery.Topology) *limitadorv1alpha1.Limitador

func IsPolicyAccepted

func IsPolicyAccepted(ctx context.Context, p machinery.Policy, s *sync.Map) bool

func IsTLSPolicyValid

func IsTLSPolicyValid(ctx context.Context, s *sync.Map, policy *kuadrantv1.TLSPolicy) (bool, error)

func KuadrantManagedObjectLabels

func KuadrantManagedObjectLabels() labels.Set

func LimitNameToLimitadorIdentifier

func LimitNameToLimitadorIdentifier(rlpKey k8stypes.NamespacedName, uniqueLimitName string) string

func LimitsNamespaceFromRoute

func LimitsNamespaceFromRoute(route *gatewayapiv1.HTTPRoute) string

func LinkDNSPolicyToDNSRecord

func LinkDNSPolicyToDNSRecord(objs controller.Store) machinery.LinkFunc

func LinkListenerToCertificateFunc

func LinkListenerToCertificateFunc(objs controller.Store) machinery.LinkFunc

func LinkListenerToDNSRecord

func LinkListenerToDNSRecord(objs controller.Store) machinery.LinkFunc

func LinkTLSPolicyToClusterIssuerFunc

func LinkTLSPolicyToClusterIssuerFunc(objs controller.Store) machinery.LinkFunc

func LinkTLSPolicyToIssuerFunc

func LinkTLSPolicyToIssuerFunc(objs controller.Store) machinery.LinkFunc

func NewDNSWorkflow

func NewDNSWorkflow(client *dynamic.DynamicClient, scheme *runtime.Scheme, isGatewayAPIInstalled, isDNSOperatorInstalled bool) *controller.Workflow

func NewDataPlanePoliciesWorkflow

func NewDataPlanePoliciesWorkflow(mgr controllerruntime.Manager, client *dynamic.DynamicClient, isGatewayAPInstalled, isIstioInstalled, isEnvoyGatewayInstalled, isLimitadorOperatorInstalled, isAuthorinoOperatorInstalled bool) *controller.Workflow

func NewPolicyMachineryController

func NewPolicyMachineryController(manager ctrlruntime.Manager, client *dynamic.DynamicClient, logger logr.Logger, opts ...controller.ControllerOption) (*controller.Controller, error)

func NewTLSWorkflow

func NewTLSWorkflow(client *dynamic.DynamicClient, scheme *runtime.Scheme, isGatewayAPIInstalled, isCertManagerInstalled bool) *controller.Workflow

func PolicyAffectedCondition

func PolicyAffectedCondition(policyKind string, policies []machinery.Policy) metav1.Condition

func PolicyAffectedConditionType

func PolicyAffectedConditionType(policyKind string) string

func RateLimitClusterName

func RateLimitClusterName(gatewayName string) string

func RateLimitObjectLabels

func RateLimitObjectLabels() labels.Set

func TokenLimitNameToLimitadorIdentifier added in v1.3.0

func TokenLimitNameToLimitadorIdentifier(trlpKey k8stypes.NamespacedName, uniqueLimitName string) string

TokenLimitNameToLimitadorIdentifier converts a token rate limit policy and limit name to a unique Limitador ident

func TokenRateLimitObjectLabels added in v1.3.0

func TokenRateLimitObjectLabels() labels.Set

func TracingClusterName added in v1.4.0

func TracingClusterName(gatewayName string) string

TracingClusterName returns the name for the tracing cluster EnvoyFilter/EnvoyPatchPolicy

func TracingObjectLabels added in v1.4.0

func TracingObjectLabels() labels.Set

TracingObjectLabels returns labels for tracing-related objects

Types

type AuthConfigsReconciler

type AuthConfigsReconciler struct {
	// contains filtered or unexported fields
}

func (*AuthConfigsReconciler) Reconcile

func (r *AuthConfigsReconciler) Reconcile(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, state *sync.Map) error

func (*AuthConfigsReconciler) Subscription

func (r *AuthConfigsReconciler) Subscription() controller.Subscription

AuthConfigsReconciler subscribes to events with potential to change Authorino AuthConfig custom resources

type AuthPolicyStatusUpdater

type AuthPolicyStatusUpdater struct {
	// contains filtered or unexported fields
}

func (*AuthPolicyStatusUpdater) Subscription

AuthPolicyStatusUpdater reconciles to events with impact to change the status of AuthPolicy resources

func (*AuthPolicyStatusUpdater) UpdateStatus

func (r *AuthPolicyStatusUpdater) UpdateStatus(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, state *sync.Map) error

type AuthPolicyValidator

type AuthPolicyValidator struct {
	// contains filtered or unexported fields
}

func (*AuthPolicyValidator) Subscription

func (r *AuthPolicyValidator) Subscription() controller.Subscription

AuthPolicyValidator subscribes to events with potential to flip the validity of auth policies

func (*AuthPolicyValidator) Validate

func (r *AuthPolicyValidator) Validate(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, state *sync.Map) error

type AuthorinoIstioIntegrationReconciler added in v1.3.0

type AuthorinoIstioIntegrationReconciler struct {
	*reconcilers.BaseReconciler

	Client *dynamic.DynamicClient
}

func NewAuthorinoIstioIntegrationReconciler added in v1.3.0

func NewAuthorinoIstioIntegrationReconciler(mgr controllerruntime.Manager, client *dynamic.DynamicClient) *AuthorinoIstioIntegrationReconciler

func (*AuthorinoIstioIntegrationReconciler) Run added in v1.3.0

func (*AuthorinoIstioIntegrationReconciler) Subscription added in v1.3.0

type AuthorinoReconciler

type AuthorinoReconciler struct {
	Client *dynamic.DynamicClient
}

func NewAuthorinoReconciler

func NewAuthorinoReconciler(client *dynamic.DynamicClient) *AuthorinoReconciler

func (*AuthorinoReconciler) Reconcile

func (r *AuthorinoReconciler) Reconcile(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, _ *sync.Map) error

func (*AuthorinoReconciler) Subscription

func (r *AuthorinoReconciler) Subscription() *controller.Subscription

type BootOptionsBuilder

type BootOptionsBuilder struct {
	// contains filtered or unexported fields
}

func NewBootOptionsBuilder

func NewBootOptionsBuilder(manager ctrlruntime.Manager, client *dynamic.DynamicClient, logger logr.Logger) *BootOptionsBuilder

NewBootOptionsBuilder is used to return a list of controller.ControllerOption and a controller.ReconcileFunc that depend on if external dependent CRDs are installed at boot time

func (*BootOptionsBuilder) Reconciler

type CertTarget

type CertTarget struct {
	// contains filtered or unexported fields
}

type ConsolePluginReconciler

type ConsolePluginReconciler struct {
	*reconcilers.BaseReconciler
	// contains filtered or unexported fields
}

func NewConsolePluginReconciler

func NewConsolePluginReconciler(mgr ctrlruntime.Manager, namespace string) *ConsolePluginReconciler

func (*ConsolePluginReconciler) Run

func (*ConsolePluginReconciler) Subscription

func (r *ConsolePluginReconciler) Subscription() *controller.Subscription

type DNSPoliciesValidator

type DNSPoliciesValidator struct {
	// contains filtered or unexported fields
}

func NewDNSPoliciesValidator

func NewDNSPoliciesValidator(isGatewayAPIInstalled, isDNSOperatorInstalled bool) *DNSPoliciesValidator

func (*DNSPoliciesValidator) Subscription

func (r *DNSPoliciesValidator) Subscription() controller.Subscription

type DNSPolicyStatusUpdater

type DNSPolicyStatusUpdater struct {
	// contains filtered or unexported fields
}

func NewDNSPolicyStatusUpdater

func NewDNSPolicyStatusUpdater(client *dynamic.DynamicClient) *DNSPolicyStatusUpdater

func (*DNSPolicyStatusUpdater) Subscription

type DeveloperPortalReconciler added in v1.4.0

type DeveloperPortalReconciler struct {
	*reconcilers.BaseReconciler
}

func NewDeveloperPortalReconciler added in v1.4.0

func NewDeveloperPortalReconciler(mgr ctrlruntime.Manager) *DeveloperPortalReconciler

func (*DeveloperPortalReconciler) Reconcile added in v1.4.0

func (r *DeveloperPortalReconciler) Reconcile(baseCtx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, _ *sync.Map) error

func (*DeveloperPortalReconciler) Subscription added in v1.4.0

type EffectiveAuthPolicies

type EffectiveAuthPolicies map[string]EffectiveAuthPolicy

func CalculateEffectiveAuthPolicies added in v1.3.0

func CalculateEffectiveAuthPolicies(ctx context.Context, topology *machinery.Topology, kuadrant machinery.Object, state *sync.Map) EffectiveAuthPolicies

type EffectiveAuthPolicy

type EffectiveAuthPolicy struct {
	Path           []machinery.Targetable
	Spec           kuadrantv1.AuthPolicy
	SourcePolicies []string
}

type EffectiveAuthPolicyReconciler

type EffectiveAuthPolicyReconciler struct {
	// contains filtered or unexported fields
}

func (*EffectiveAuthPolicyReconciler) Reconcile

func (*EffectiveAuthPolicyReconciler) Subscription

Subscription subscribe to the same events as rate limit because they are used together to compose gateway extension resources

type EffectiveDNSPoliciesReconciler

type EffectiveDNSPoliciesReconciler struct {
	// contains filtered or unexported fields
}

func NewEffectiveDNSPoliciesReconciler

func NewEffectiveDNSPoliciesReconciler(client *dynamic.DynamicClient, scheme *runtime.Scheme) *EffectiveDNSPoliciesReconciler

func (*EffectiveDNSPoliciesReconciler) Subscription

type EffectiveRateLimitPolicies

type EffectiveRateLimitPolicies map[string]EffectiveRateLimitPolicy

type EffectiveRateLimitPolicy

type EffectiveRateLimitPolicy struct {
	Path           []machinery.Targetable
	Spec           kuadrantv1.RateLimitPolicy
	SourcePolicies []string
}

type EffectiveRateLimitPolicyReconciler

type EffectiveRateLimitPolicyReconciler struct {
	// contains filtered or unexported fields
}

func (*EffectiveRateLimitPolicyReconciler) Reconcile

func (*EffectiveRateLimitPolicyReconciler) Subscription

EffectiveRateLimitPolicyReconciler subscribe to the same events as auth because they are used together to compose gateway extension resources

type EffectiveTLSPoliciesReconciler

type EffectiveTLSPoliciesReconciler struct {
	// contains filtered or unexported fields
}

func NewEffectiveTLSPoliciesReconciler

func NewEffectiveTLSPoliciesReconciler(client *dynamic.DynamicClient, scheme *runtime.Scheme) *EffectiveTLSPoliciesReconciler

func (*EffectiveTLSPoliciesReconciler) Reconcile

func (*EffectiveTLSPoliciesReconciler) Subscription

type EffectiveTokenRateLimitPolicies added in v1.3.0

type EffectiveTokenRateLimitPolicies map[string]EffectiveTokenRateLimitPolicy

type EffectiveTokenRateLimitPolicy added in v1.3.0

type EffectiveTokenRateLimitPolicy struct {
	Path           []machinery.Targetable
	Spec           kuadrantv1alpha1.TokenRateLimitPolicy
	SourcePolicies []string
}

type EffectiveTokenRateLimitPolicyReconciler added in v1.3.0

type EffectiveTokenRateLimitPolicyReconciler struct {
	// contains filtered or unexported fields
}

func (*EffectiveTokenRateLimitPolicyReconciler) Reconcile added in v1.3.0

func (*EffectiveTokenRateLimitPolicyReconciler) Subscription added in v1.3.0

EffectiveTokenRateLimitPolicyReconciler subscribe to the same events as auth because they are used together to compose gateway extension resources

type EnvoyGatewayAuthClusterReconciler

type EnvoyGatewayAuthClusterReconciler struct {
	// contains filtered or unexported fields
}

EnvoyGatewayAuthClusterReconciler reconciles Envoy Gateway EnvoyPatchPolicy custom resources for auth

func (*EnvoyGatewayAuthClusterReconciler) Reconcile

func (*EnvoyGatewayAuthClusterReconciler) Subscription

EnvoyGatewayAuthClusterReconciler subscribes to events with potential impact on the Envoy Gateway EnvoyPatchPolicy custom resources for auth

type EnvoyGatewayExtensionReconciler

type EnvoyGatewayExtensionReconciler struct {
	// contains filtered or unexported fields
}

EnvoyGatewayExtensionReconciler reconciles Envoy Gateway EnvoyExtensionPolicy custom resources

func (*EnvoyGatewayExtensionReconciler) Reconcile

func (*EnvoyGatewayExtensionReconciler) Subscription

EnvoyGatewayExtensionReconciler subscribes to events with potential impact on the Envoy Gateway EnvoyExtensionPolicy custom resources

type EnvoyGatewayRateLimitClusterReconciler

type EnvoyGatewayRateLimitClusterReconciler struct {
	// contains filtered or unexported fields
}

EnvoyGatewayRateLimitClusterReconciler reconciles Envoy Gateway EnvoyPatchPolicy custom resources for rate limiting

func (*EnvoyGatewayRateLimitClusterReconciler) Reconcile

func (*EnvoyGatewayRateLimitClusterReconciler) Subscription

EnvoyGatewayRateLimitClusterReconciler subscribes to events with potential impact on the Envoy Gateway EnvoyPatchPolicy custom resources for rate limiting

type EnvoyGatewayTracingClusterReconciler added in v1.4.0

type EnvoyGatewayTracingClusterReconciler struct {
	// contains filtered or unexported fields
}

EnvoyGatewayTracingClusterReconciler reconciles Envoy Gateway EnvoyPatchPolicy custom resources for tracing

func (*EnvoyGatewayTracingClusterReconciler) Reconcile added in v1.4.0

func (*EnvoyGatewayTracingClusterReconciler) Subscription added in v1.4.0

Subscription subscribes to events with potential impact on the Envoy Gateway EnvoyPatchPolicy custom resources for tracing

type EventLogger

type EventLogger struct{}

func NewEventLogger

func NewEventLogger() *EventLogger

func (*EventLogger) Log

func (e *EventLogger) Log(ctx context.Context, resourceEvents []controller.ResourceEvent, _ *machinery.Topology, err error, _ *sync.Map) error

type ExampleExtensionReconciler added in v1.3.0

type ExampleExtensionReconciler struct {
}

func (*ExampleExtensionReconciler) Reconcile added in v1.3.0

type ExamplePolicy added in v1.3.0

type ExamplePolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec ExamplePolicySpec `json:"spec,omitempty"`
}

func (*ExamplePolicy) DeepCopyObject added in v1.3.0

func (e *ExamplePolicy) DeepCopyObject() runtime.Object

func (*ExamplePolicy) GetTargetRefs added in v1.3.0

type ExamplePolicySpec added in v1.3.0

type ExamplePolicySpec struct {
	TargetRef gatewayapiv1alpha2.LocalPolicyTargetReferenceWithSectionName `json:"targetRef"`
}

type GatewayPolicyDiscoverabilityReconciler

type GatewayPolicyDiscoverabilityReconciler struct {
	Client *dynamic.DynamicClient
}

func NewGatewayPolicyDiscoverabilityReconciler

func NewGatewayPolicyDiscoverabilityReconciler(client *dynamic.DynamicClient) *GatewayPolicyDiscoverabilityReconciler

func (*GatewayPolicyDiscoverabilityReconciler) Subscription

type GatewayWrapper

type GatewayWrapper struct {
	*gatewayapiv1.Gateway
	// contains filtered or unexported fields
}

GatewayWrapper is a wrapper for gateway to implement interface from the builder

func NewGatewayWrapper

func NewGatewayWrapper(gateway *gatewayapiv1.Gateway) *GatewayWrapper

func (*GatewayWrapper) GetAddresses

func (g *GatewayWrapper) GetAddresses() []builder.TargetAddress

func (*GatewayWrapper) RemoveExcludedStatusAddresses

func (g *GatewayWrapper) RemoveExcludedStatusAddresses(p *kuadrantv1.DNSPolicy) error

type HTTPRoutePolicyDiscoverabilityReconciler

type HTTPRoutePolicyDiscoverabilityReconciler struct {
	Client *dynamic.DynamicClient
}

func NewHTTPRoutePolicyDiscoverabilityReconciler

func NewHTTPRoutePolicyDiscoverabilityReconciler(client *dynamic.DynamicClient) *HTTPRoutePolicyDiscoverabilityReconciler

func (*HTTPRoutePolicyDiscoverabilityReconciler) Subscription

type IstioAuthClusterReconciler

type IstioAuthClusterReconciler struct {
	// contains filtered or unexported fields
}

IstioAuthClusterReconciler reconciles Istio EnvoyFilter custom resources for auth

func (*IstioAuthClusterReconciler) Reconcile

func (*IstioAuthClusterReconciler) Subscription

IstioAuthClusterReconciler subscribes to events with potential impact on the Istio EnvoyFilter custom resources for auth

type IstioExtensionReconciler

type IstioExtensionReconciler struct {
	// contains filtered or unexported fields
}

IstioExtensionReconciler reconciles Istio WasmPlugin custom resources

func (*IstioExtensionReconciler) Reconcile

func (r *IstioExtensionReconciler) Reconcile(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, state *sync.Map) error

func (*IstioExtensionReconciler) Subscription

IstioExtensionReconciler subscribes to events with potential impact on the Istio WasmPlugin custom resources

type IstioRateLimitClusterReconciler

type IstioRateLimitClusterReconciler struct {
	// contains filtered or unexported fields
}

IstioRateLimitClusterReconciler reconciles Istio EnvoyFilter custom resources for rate limiting

func (*IstioRateLimitClusterReconciler) Reconcile

func (*IstioRateLimitClusterReconciler) Subscription

IstioRateLimitClusterReconciler subscribes to events with potential impact on the Istio EnvoyFilter custom resources for rate limiting

type IstioTracingClusterReconciler added in v1.4.0

type IstioTracingClusterReconciler struct {
	// contains filtered or unexported fields
}

IstioTracingClusterReconciler reconciles Istio EnvoyFilter custom resources for tracing

func (*IstioTracingClusterReconciler) Reconcile added in v1.4.0

func (*IstioTracingClusterReconciler) Subscription added in v1.4.0

Subscription subscribes to events with potential impact on the Istio EnvoyFilter custom resources for tracing

type KuadrantStatusUpdater

type KuadrantStatusUpdater struct {
	Client *dynamic.DynamicClient
	// contains filtered or unexported fields
}

func NewKuadrantStatusUpdater

func NewKuadrantStatusUpdater(client *dynamic.DynamicClient, isGatewayAPIInstalled, isGatewayProviderInstalled, isLimitadorOperatorInstalled, isAuthorinoOperatorInstalled bool) *KuadrantStatusUpdater

func (*KuadrantStatusUpdater) Reconcile

func (r *KuadrantStatusUpdater) Reconcile(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, state *sync.Map) error

func (*KuadrantStatusUpdater) Subscription

func (r *KuadrantStatusUpdater) Subscription() *controller.Subscription

type LimitadorIstioIntegrationReconciler added in v1.3.0

type LimitadorIstioIntegrationReconciler struct {
	*reconcilers.BaseReconciler

	Client *dynamic.DynamicClient
}

func NewLimitadorIstioIntegrationReconciler added in v1.3.0

func NewLimitadorIstioIntegrationReconciler(mgr controllerruntime.Manager, client *dynamic.DynamicClient) *LimitadorIstioIntegrationReconciler

func (*LimitadorIstioIntegrationReconciler) Run added in v1.3.0

func (*LimitadorIstioIntegrationReconciler) Subscription added in v1.3.0

type LimitadorLimitsReconciler

type LimitadorLimitsReconciler struct {
	// contains filtered or unexported fields
}

func (*LimitadorLimitsReconciler) Reconcile

func (r *LimitadorLimitsReconciler) Reconcile(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, state *sync.Map) error

func (*LimitadorLimitsReconciler) Subscription

LimitadorLimitsReconciler reconciles to events with impact to change the state of the Limitador custom resources regarding the definitions for the effective rate limit policies

type LimitadorReconciler

type LimitadorReconciler struct {
	Client *dynamic.DynamicClient
}

func NewLimitadorReconciler

func NewLimitadorReconciler(client *dynamic.DynamicClient) *LimitadorReconciler

func (*LimitadorReconciler) Reconcile

func (r *LimitadorReconciler) Reconcile(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, _ *sync.Map) error

func (*LimitadorReconciler) Subscription

func (r *LimitadorReconciler) Subscription() *controller.Subscription

type ObservabilityReconciler

type ObservabilityReconciler struct {
	*reconcilers.BaseReconciler

	Client *dynamic.DynamicClient
	// contains filtered or unexported fields
}

func NewObservabilityReconciler

func NewObservabilityReconciler(client *dynamic.DynamicClient, mgr ctrlruntime.Manager, namespace string) *ObservabilityReconciler

func (*ObservabilityReconciler) Reconcile

func (r *ObservabilityReconciler) Reconcile(baseCtx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, _ *sync.Map) error

func (*ObservabilityReconciler) Subscription

func (r *ObservabilityReconciler) Subscription() *controller.Subscription

type PeerAuthenticationReconciler added in v1.3.0

type PeerAuthenticationReconciler struct {
	*reconcilers.BaseReconciler

	Client *dynamic.DynamicClient
}

func NewPeerAuthenticationReconciler added in v1.3.0

func NewPeerAuthenticationReconciler(mgr controllerruntime.Manager, client *dynamic.DynamicClient) *PeerAuthenticationReconciler

func (*PeerAuthenticationReconciler) Run added in v1.3.0

func (*PeerAuthenticationReconciler) Subscription added in v1.3.0

type PolicyMetricsReconciler added in v1.4.0

type PolicyMetricsReconciler struct{}

PolicyMetricsReconciler emits Prometheus metrics for all Kuadrant policies

func NewPolicyMetricsReconciler added in v1.4.0

func NewPolicyMetricsReconciler() *PolicyMetricsReconciler

NewPolicyMetricsReconciler creates a new PolicyMetricsReconciler

func (*PolicyMetricsReconciler) Reconcile added in v1.4.0

Reconcile collects and emits metrics for all policies in the topology. This reconciler automatically discovers and tracks all policy types by grouping policies by their Kind. Currently includes core policies: AuthPolicy, RateLimitPolicy, DNSPolicy, TLSPolicy, and TokenRateLimitPolicy. Note: Extension policies (OIDCPolicy, PlanPolicy, TelemetryPolicy) are not part of the topology and are not tracked.

type PolicyStatus added in v1.4.0

type PolicyStatus string

PolicyStatus represents the enforcement status of a policy

const (
	PolicyStatusTrue  PolicyStatus = "true"
	PolicyStatusFalse PolicyStatus = "false"
)

type RateLimitPolicyStatusUpdater

type RateLimitPolicyStatusUpdater struct {
	// contains filtered or unexported fields
}

func (*RateLimitPolicyStatusUpdater) Subscription

RateLimitPolicyStatusUpdater subscribe to events with potential impact on the status of RateLimitPolicy resources

func (*RateLimitPolicyStatusUpdater) UpdateStatus

func (r *RateLimitPolicyStatusUpdater) UpdateStatus(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, state *sync.Map) error

type RateLimitPolicyValidator

type RateLimitPolicyValidator struct {
	// contains filtered or unexported fields
}

func (*RateLimitPolicyValidator) Subscription

RateLimitPolicyValidator subscribes to events with potential to flip the validity of rate limit policies

func (*RateLimitPolicyValidator) Validate

type TLSPoliciesValidator

type TLSPoliciesValidator struct {
	// contains filtered or unexported fields
}

func NewTLSPoliciesValidator

func NewTLSPoliciesValidator(isGatewayAPIInstalled, isCertManagerInstalled bool) *TLSPoliciesValidator

func (*TLSPoliciesValidator) Subscription

func (r *TLSPoliciesValidator) Subscription() *controller.Subscription

func (*TLSPoliciesValidator) Validate

func (r *TLSPoliciesValidator) Validate(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, state *sync.Map) error

type TLSPolicyStatusUpdater

type TLSPolicyStatusUpdater struct {
	Client *dynamic.DynamicClient
}

func NewTLSPolicyStatusUpdater

func NewTLSPolicyStatusUpdater(client *dynamic.DynamicClient) *TLSPolicyStatusUpdater

func (*TLSPolicyStatusUpdater) Subscription

func (t *TLSPolicyStatusUpdater) Subscription() *controller.Subscription

func (*TLSPolicyStatusUpdater) UpdateStatus

func (t *TLSPolicyStatusUpdater) UpdateStatus(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, s *sync.Map) error

type TokenRateLimitPolicyStatusUpdater added in v1.3.0

type TokenRateLimitPolicyStatusUpdater struct {
	// contains filtered or unexported fields
}

func NewTokenRateLimitPolicyStatusUpdater added in v1.3.0

func NewTokenRateLimitPolicyStatusUpdater(client *dynamic.DynamicClient) *TokenRateLimitPolicyStatusUpdater

func (*TokenRateLimitPolicyStatusUpdater) Subscription added in v1.3.0

TokenRateLimitPolicyStatusUpdater subscribes to events with potential impact on the status of TokenRateLimitPolicy resources

func (*TokenRateLimitPolicyStatusUpdater) UpdateStatus added in v1.3.0

type TokenRateLimitPolicyValidator added in v1.3.0

type TokenRateLimitPolicyValidator struct {
	// contains filtered or unexported fields
}

func (*TokenRateLimitPolicyValidator) Subscription added in v1.3.0

TokenRateLimitPolicyValidator subscribes to events with potential to flip the validity of token rate limit policies

func (*TokenRateLimitPolicyValidator) Validate added in v1.3.0

type TopologyReconciler

type TopologyReconciler struct {
	Client    *dynamic.DynamicClient
	Namespace string
}

func NewTopologyReconciler

func NewTopologyReconciler(client *dynamic.DynamicClient, namespace string) *TopologyReconciler

func (*TopologyReconciler) Reconcile

func (r *TopologyReconciler) Reconcile(ctx context.Context, _ []controller.ResourceEvent, topology *machinery.Topology, _ error, _ *sync.Map) error

Source Files

Jump to

Keyboard shortcuts

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