diff --git a/cmd/manager/main.go b/cmd/manager/main.go index 7fc807f8..0168ed56 100644 --- a/cmd/manager/main.go +++ b/cmd/manager/main.go @@ -122,7 +122,7 @@ func main() { os.Exit(1) } - catalogServer := catalogserver.New(storageDir, catalogServerAddr) + catalogServer := catalogserver.Instance{Dir: storageDir, Addr: catalogServerAddr} if err := mgr.Add(catalogServer); err != nil { setupLog.Error(err, "unable to start catalog server") os.Exit(1) @@ -134,7 +134,7 @@ func main() { if err = (&corecontrollers.CatalogReconciler{ Client: mgr.GetClient(), Unpacker: unpacker, - Storage: storage.NewStorage(storageDir), + Storage: storage.Instance{RootDirectory: storageDir}, }).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "Catalog") os.Exit(1) diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index fb440e40..2a6b67f8 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -57,7 +57,7 @@ spec: name: https volumeMounts: - name: catalog-cache - mountPath: /var/cache/ + mountPath: /var/cache/catalogs securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/pkg/catalogserver/server.go b/pkg/catalogserver/server.go index 8626a93a..3aac9a01 100644 --- a/pkg/catalogserver/server.go +++ b/pkg/catalogserver/server.go @@ -18,16 +18,6 @@ type Instance struct { ShutdownTimeout time.Duration } -// New returns an Instance of a catalog server that serves -// the FBC content stored in the given directory on the given -// http address. -func New(dir, addr string) Instance { - return Instance{ - Dir: dir, - Addr: addr, - } -} - func (s Instance) Start(ctx context.Context) error { server := &http.Server{ Handler: ServerHandler(s.Dir), diff --git a/pkg/controllers/core/catalog_controller.go b/pkg/controllers/core/catalog_controller.go index 0af66824..0ba80215 100644 --- a/pkg/controllers/core/catalog_controller.go +++ b/pkg/controllers/core/catalog_controller.go @@ -53,7 +53,7 @@ const fbcDeletionFinalizer = "catalogd.operatorframework.io/delete-server-cache" type CatalogReconciler struct { client.Client Unpacker source.Unpacker - Storage storage.Storage + Storage storage.Instance } //+kubebuilder:rbac:groups=catalogd.operatorframework.io,resources=catalogs,verbs=get;list;watch;create;update;patch;delete diff --git a/pkg/controllers/core/catalog_controller_test.go b/pkg/controllers/core/catalog_controller_test.go index f1aca34c..9864b89b 100644 --- a/pkg/controllers/core/catalog_controller_test.go +++ b/pkg/controllers/core/catalog_controller_test.go @@ -70,7 +70,7 @@ var _ = Describe("Catalogd Controller Test", func() { v1alpha1.SourceTypeImage: mockSource, }, ), - Storage: storage.NewStorage(tmpDir), + Storage: storage.Instance{RootDirectory: tmpDir}, } testServer = httptest.NewServer(catalogserver.ServerHandler(tmpDir)) httpclient = &http.Client{} diff --git a/pkg/storage/storage.go b/pkg/storage/storage.go index c7533732..afbdfb24 100644 --- a/pkg/storage/storage.go +++ b/pkg/storage/storage.go @@ -9,32 +9,23 @@ import ( "github.com/operator-framework/operator-registry/alpha/declcfg" ) -// Storage is a store of FBC content of catalogs added to a cluster. -// It can be used to Store or Delete FBC in the host's filesystem -type Storage struct { +// Instance is a storage instance that stores FBC content of catalogs +// added to a cluster. It can be used to Store or Delete FBC in the +// host's filesystem +type Instance struct { RootDirectory string } -func NewStorage(rootDir string) Storage { - return Storage{ - RootDirectory: rootDir, - } -} - -func (s *Storage) Store(owner string, fbc *declcfg.DeclarativeConfig) error { +func (s *Instance) Store(owner string, fbc *declcfg.DeclarativeConfig) error { fbcFile, err := os.Create(s.fbcPath(owner)) if err != nil { return err } defer fbcFile.Close() - - if err := declcfg.WriteJSON(*fbc, fbcFile); err != nil { - return err - } - return nil + return declcfg.WriteJSON(*fbc, fbcFile) } -func (s *Storage) Delete(owner string) error { +func (s *Instance) Delete(owner string) error { err := os.Remove(s.fbcPath(owner)) if errors.Is(err, os.ErrNotExist) { return nil @@ -42,6 +33,6 @@ func (s *Storage) Delete(owner string) error { return err } -func (s *Storage) fbcPath(catalogName string) string { +func (s *Instance) fbcPath(catalogName string) string { return filepath.Join(s.RootDirectory, fmt.Sprintf("%s.json", catalogName)) }