CRDs need updates to accommodate authorizer-plugin support
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 2.2k
- Forks
- 300
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 184
Description
Problem Statement
Pull request #3110 adds support for pluggable authorizers. One remaining gap is the presence of Cedar-isms in the CRDs. For example:
There are a few ways to handle this, but they all likely require a new version of the affected CRDs:
Possible Solutions
- New CRD schema drops "inline" authz support, relying purely on a configmap-reference. Validation would remain at the code level but would be removed from the schema level.
- New CRD schema modifies "inline" authz support to relax schema checking (see https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#controlling-pruning) to accommodate various types of authz plugins. Validation would remain at the code level, but is removed at the schema level
- We drop "configmap-reference" support and create CRD(s) for Authz configuration. The inline configuration would be generalized to accept an inline representation of the Authz configuration using RawExtensions. Likewise, the previous use cases for configmap-based Authz configuration would now use the new Authz CRD. Validation would remain at the code and inline schema levels, and is now also introduced at the "external reference" level, since we've replaced ConfigMaps with a CRD.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with deploy/charts/operator-crds/files/crds/toolhive.stacklok.dev_mcpservers.yaml and review PR #3110 for the pluggable-authorizer changes. Compare the affected CRD schemas with the three proposed approaches, then confirm the design with maintainers before updating the CRD version and related manifests. Done means the affected CRDs accommodate authorizer-plugin configuration without retaining incompatible Cedar-specific schema assumptions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100