Let admission webhook check KongPlugins with secret configuration #1036
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it:
We don't currently support pulling configuration a KongPlugin's ConfigFrom configuration in the admission webhook. Some plugins have fields that must be populated and have no default, e.g.
issuer
for the OpenID Connect plugin. The only current remedy is to disable validation entirely, which isn't ideal.This PR:
configurationv1
import convention we use elsewhere forgithub.com/kong/kubernetes-ingress-controller/pkg/apis/configuration/v1
in the admission webhook.Which issue this PR fixes:
fixes #1023
Special notes for your reviewer:
Reviewed validation unit tests. We currently lack units for most of the webhook checks because most of them require a Kong instance's
/schemas/<whatever>/validate
endpoint or other admin API access (e.g.GET /consumers/<username>
to check whether a consumer would be a duplicate). We'd need integration tests to validate these, but our current framework doesn't allow us to easily test just whether we can upload configuration, since it's based around testing proxy behavior after. We should consider how to work such validation webhook tests into the new Go integration test system.