Closed everettraven closed 2 months ago
Name | Link |
---|---|
Latest commit | dcd37f04daedec62c93ec9592cb45eb22d127481 |
Latest deploy log | https://app.netlify.com/sites/olmv1/deploys/66acee810502b8000801f846 |
Deploy Preview | https://deploy-preview-1068--olmv1.netlify.app |
Preview on mobile | Toggle QR Code...Use your smartphone camera to open QR code link. |
To edit notification comments on pull requests, go to your Netlify site configuration.
Nice! I like this idea. I'll take a closer look at this tomorrow, but one thing I would suggest off the bat is talking to @thetechnick about the Applier
interface. I was chatting with him last week about experimenting with plugging package-operator
's apply logic into operator-controller. I figure having a second implementation candidate would help validate our ideas behind the shape of that interface.
I do have a very rough first PoC here:
https://github.com/thetechnick/operator-controller/pull/1
It directly uses Package Operator APIs to offload bundle reconciliation, so operator-controller just has to create a ClusterPackage
, read status from it and lean back, while getting features similar to the OLMv0 Subscription config for free.
@joelanford Sounds good. Are you thinking to utilize the ClusterPackage
similarly to what @thetechnick has done (via the PoC) or more along the lines of importing the apply logic and using it as a library?
I'd be a bit hesitant to move back to an approach where we are creating an underlying resource like the ClusterPackage
since we intentionally decided to deviate from that approach relatively recently (~3ish months ago).
I will squash commits after reviews are fully addressed
Attention: Patch coverage is 56.91057%
with 53 lines
in your changes missing coverage. Please review.
Project coverage is 75.28%. Comparing base (
989a3df
) to head (dcd37f0
).
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Looks reasonable to me, but needs a rebase.
Description
Makes the
reconcile
method on theClusterExtensionReconciler
easier to unit test by encapsulating distinct operations as interfaces that can be mocked:Resolver
interface.Resolver
. The reasoning behind this is that it reduces the complexity of thereconcile
method by making the assumption that the configuredResolver
will always return a valid bundle. Validation unit tests that existed in theinternal/controller
package have been moved and updated in theinternal/resolve
packageApplier
interface. This makes it easier to, in the future, swap out the underlying installation method by implementing a newApplier
interface and swapping it out for the existing one. The existing Helm-based installation logic was moved to an implementation of this interface.Watcher
interface that was implemented as part of the provided service account work. This was going to be a change that took place in the near future. From a functionality perspective, nothing should have changed.ClusterExtensionReconciler.reconcile()
methodReviewer Checklist