-
Notifications
You must be signed in to change notification settings - Fork 954
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Externally Managed CRD Fields #5723
Comments
@dalton-hill-0 WRT using |
Also, breadcrumbs to #4149 which I think was related. |
@negz |
Crossplane does not currently have enough maintainers to address every issue and pull request. This issue has been automatically marked as |
/fresh |
What problem are you facing?
When configuring an XRD with a conversion webhook and CA Bundle injection via CertManager, the resulting CRD reconciliation enters an infinite patch loop between Crossplane and CertManager.
The loop behaves as follows:
This results in:
How could Crossplane help solve your problem?
TwoThree approaches come to mind.Hard-Coded Approach
Add hard-coded logic in Crossplane's Claim CRD and CompositeResource CRD reconcilers that is specific to CertManager. This logic would check for a CA Bundle in the existing CRD and copy it over before applying the spec derived from the XRD.
Generic Approach
Extend the XRD API to allow users to specify paths that are externally managed (e.g., by CertManger). For each path, the CRD reconciler would attempt to copy the value from existing CRD before applying the CRD derived from the XRD.
Using Patch Applicator
We could replace the usage of
NewAPIUpdatingApplicator
withNewAPIPatchingApplicator
for the CRD reconcilers. I tested this and it solves the issue, but may have negative side effects.The text was updated successfully, but these errors were encountered: