-
Notifications
You must be signed in to change notification settings - Fork 33
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
Serve locally stored fbc content via a server #113
Comments
/assign @anik120 |
closes operator-framework#113 Signed-off-by: Anik <[email protected]>
@everettraven what's the motivation for implementing rukpak's storage interface again?
Looks like rukpak's storage interface is specialized for storing/loading a filesystem (like an operator bundle, which has multiple files containing multiple Kubernetes CRs), but for catalogd, we want something like
I.e that ☝🏽 is an interface that's for loading and storing fbc files, whereas the first one, is an interface to store and load bundles (two different interfaces with separate purpose). If we were to store the catalog as a tar.gz file, it'd probably still make sense to implement the rukpak storage. But looks like we decided to store the catalogs as json files, and not compress them like we have to for bundle content.
There's an extra step of loading the fs into |
This right here is the motivation. A file-based catalog is a filesystem of YAML/JSON files that represent catalog objects. Additionally the unpacking process we currently use returns an
I agree that this would be a better interface if we wanted to use the
I don't think we should use the catalogd/pkg/controllers/core/catalog_controller.go Lines 392 to 442 in 64a9fe5
Using |
What I meant was, looks like rukpak's storage interface is specialized for compressing/decompressing the content of a filesystem. Bundles can have arbitrary number and type of content, so it makes total sense to compress and store them. And looks like we've made the same conclusion in the RFC, that it makes more sense to store the FBCs as JSON files.
IIRC, there's been discussions about working on that unpacking interface, we just haven't had the chance to get to it. So if I'm not wrong, that interface is already up for debate in rukpak(due to the fidelity of pod logs). We may want to actually write an unpacker that returns a
That's a good point. Although, it's just another way that input:component:output instead if we do there's only one chunk being loaded into memory (the declCfg.DeclarativeConfig), instead of two (fs.FS and declCfg.DeclarativeConfig). At the very least, it feels like we should start with the simplest thing, which is a Storer which gets declCfg.DeclarativeConfig. That way, we have the option of deciding "nope, we'll just use the rukpak interface, so we'll change this implementation to be a rukpak storage", which is much easier than untying things.
this is saying there are two components (catalogD and rukpak) which does the same thing, but are located in different places. That's hard to reconcile when bundle content (unstructured, from the perspective of rukpak) is very different from catalog content(structured fbc). |
obsoletes operator-framework#113 Signed-off-by: Anik <[email protected]>
Further discussion in this slack thread: https://kubernetes.slack.com/archives/C0181L6JYQ2/p1691082152778479 Check back later for TLDR..next steps :loading: |
obsoletes operator-framework#113 Signed-off-by: Anik <[email protected]>
obsoletes operator-framework#113 Signed-off-by: Anik <[email protected]>
obsoletes operator-framework#113 Signed-off-by: Anik <[email protected]>
obsoletes operator-framework#113 Signed-off-by: Anik <[email protected]>
obsoletes operator-framework#113 Signed-off-by: Anik <[email protected]>
closes operator-framework#113 Signed-off-by: Anik <[email protected]>
closes operator-framework#113 Signed-off-by: Anik <[email protected]>
closes operator-framework#113 Signed-off-by: Anik <[email protected]>
closes operator-framework#113 Signed-off-by: Anik <[email protected]>
closes #113 Signed-off-by: Anik <[email protected]>
I think this was incorrectly closed. The original intent with this issue was to implement the filesystem storage and the http fileserver for serving the stored content. With the way things are split up this issue will be appropriately closed once #148 is merged |
Storage
interface Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes operator-framework#113 Signed-off-by: Anik <[email protected]>
Closes #113 Signed-off-by: Anik <[email protected]>
As part of implementing the RFC for catalogd's content storage and serving mechanism we should import the RukPak
storage
library (dependent on operator-framework/rukpak#656). Once imported we will need to create a custom implementation of theStorage
interface.The custom
Storage
implementation should:{catalogName}/all.json
file{catalogName}/all.json
file via a gohttp.FileServer
handlerAcceptance Criteria
Storage
interface implementation that:{catalogName}/all.json
file{catalogName}/all.json
file via a gohttp.FileServer
handlerThe text was updated successfully, but these errors were encountered: