You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
authservice currently depends on a statically defined JSON configuration for defining FilterChain entries. These chains are strictly ordered, and each defines how incoming requests are matched and filtered. This design creates friction for platform operators and application teams:
Adding new applications requires central configuration updates and service restarts.
GitOps workflows are inhibited, since dynamic configuration via Kubernetes-native mechanisms is unsupported.
There is no way to define chains modularly and independently.
Motivation
A Kubernetes-native AuthChain Custom Resource would enable:
Decentralized, declarative configuration of authservice chains.
GitOps-friendly workflows for dynamically onboarding applications.
Consistent lifecycle, validation, and scoping of OIDC and routing behavior.
Dynamic, priority-aware request routing within the authservice.
Proposed Solution
1. Introduce a new namespaced AuthChain CRD
Group:authservice.istio.io
Version:v1alpha1
Kind:AuthChain
Scope: Namespaced
Each AuthChain defines:
A priority to determine evaluation order.
A match rule (using header, prefix, or equality) to decide whether the chain should process a given request.
A list of one or more filters, aligned 1:1 with the FilterChain proto.
I agree this would be really nice to have. I'd only add one small thing: we'll also need to add a validation webhook to reject invalid configurations, the rest looks good to me.
Problem
authservice
currently depends on a statically defined JSON configuration for definingFilterChain
entries. These chains are strictly ordered, and each defines how incoming requests are matched and filtered. This design creates friction for platform operators and application teams:Motivation
A Kubernetes-native
AuthChain
Custom Resource would enable:authservice
chains.authservice
.Proposed Solution
1. Introduce a new namespaced
AuthChain
CRDauthservice.istio.io
v1alpha1
AuthChain
Each
AuthChain
defines:priority
to determine evaluation order.match
rule (usingheader
,prefix
, orequality
) to decide whether the chain should process a given request.filters
, aligned 1:1 with theFilterChain
proto.Example
AuthChain
Resource2. Dynamic Discovery in AuthService
AuthChain
resources cluster-wide.match.header
(e.g.,":path"
) with optionalprefix
orequality
.3. Ordering Support
spec.priority
controls evaluation order (lower values are evaluated first).metadata.name
.4. Compatibility and Migration
Benefits
Next Steps
If this proposal is accepted, the following should be created:
AuthChain
CRD definition with OpenAPI validationAuthChain
resources and updates the filter chain runtimeThe text was updated successfully, but these errors were encountered: