stacklok / stacklok/toolhive

CRDs need updates to accommodate authorizer-plugin support

Open
#3,157 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

authentication enhancement kubernetes operator
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:

https://github.com/stacklok/toolhive/blob/c973cdc2a88dc7b2c0c3e33f65bb1eade39345e5/deploy/charts/operator-crds/files/crds/toolhive.stacklok.dev_mcpservers.yaml#L93

There are a few ways to handle this, but they all likely require a new version of the affected CRDs:

Possible Solutions

  1. 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.
  2. 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
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.