I've started reviewing the documentation for the new development environments and have some questions. As I cannot comment on a page in github I am writing them up here.
Each question takes the form of a quote and a follow up question. I can create more explicit separation if that might help?
Questions
Every project has its own Postgres, Okapi, pre-installed core backend modules, and Stripes Platform.
How are the modules included by default in a project determined? for example, is it based upon a particular revision of a branch of a platform?
Select the default Cluster and your Project.
Are there any projects present at the moment, I could not find any in the list for the default cluster? How is a new project created?
FOLIO modules are installed from the FOLIO Helm repository.
How does this affect the process for introducing a new module into FOLIO?
All Projects have installed FOLIO Helm repository (
Catalog
in Rancher) which contains all backend modules
What is meant by module in this context? Does this catalog contain one entry for each module family (e.g. mod-inventory-storage) or one per version of a module (e.g. mod-inventory-storage 19.2.1)
By default the backend modules are pulled fromDockerHub/folioci repository with a 'latest' tag.
Is this latest at the point when the project was created?
All modules can be managed in the
App
menu in Rancher, where new modules can be added or existing ones can be upgraded.
Is this the Apps
menu item at the top of the page? And when accessed from within a project it is specific to that project?
You can build your own module, and automatically deploy it with Rancher pipeline and Helm. To get started, create your own branch
Create your own branch of what, the Helm repository or the module repository?
The linked rancher configuration includes a tag docker.dev.folio.org/mod-pubsub:folijet-latest Does this mean that every custom module version is published to an FOLIO local docker repository and needs to be uniquely named to avoid conflicts?
Go to Workloads -> Pipelines, run pipeline for that branch, and then Rancher will deploy the new version of that module
Is this specific to a project or across the whole Rancher cluster? Are these the two separate menu items Workloads
and Pipelines
under the Resources
menu?
Module registration runs automatically after the install or upgrade procedure.
What are the install or upgrade procedures (I haven't noticed them outlined elsewhere in the document)?
Helm gets ModuleDescriptors from the FOLIO Registry (
http://folio-registry.aws.indexdata.com
) -- it gets the latest master branch snapshot descriptor.
Is this the case for versions of modules built from a branch? If so, what if the branch contains updated descriptors, are those ignored?
Docker commands can also be used to do registration manually
How are these Docker commands run? Are they executed from the Rancher UI?
Creating tenant (default 'diku')
Does this mean that each project is an isolated environment and can have separate tenants within it (that each could have different modules installed)?
As a developer, how do I complete the following:
Assuming that FOLIO system is running in a Rancher project (AKA team space):
Backend
- How to build, deploy and register a particular branch of a backend module (e.g
mod-users/feature-x
) for diku tenant? - How to provision another tenant?
- How to build, deploy and register a particular branch of a backend module (e.g
mod-users/feature-x
) for a tenant other than diku? - How can I CRUD pipelines available via Rancher?
- How can I understand what branch and build number has been deployed for a module just by looking at Rancher UI?
- How to deploy more than on branch of given module? (
mod-users/feature-x
andmod-users/feature-y)?
- How to deploy (with I believe includes proxy registration, discovery registration and tenant enablement) a custom module version that has changes to the module descriptor?
- How to deploy coordinated breaking compatibility changes across multiple modules? For example, 1 UI, 1 BL, and 1 Storage modules should be updated together?
UI
- How to build, deploy and register a UI bundle which includes a particular branch of a front-end module (e.g
ui-users/feature-A
)? - How to run more than one bundle (e.g. one with
ui-users/feature-A
an one withui-users/feature-B
) for the same tenant? - How to run 2 bundles (e.g. one with
ui-users/feature-A
an one withui-users/feature-B
) for 2 different tenants?
System wide updates
- How to do a soft reset of the whole system (start from scratch without DevOps help)?
- How to do a hard reset of the whole system (DevOps)?
- Is there a way to move the whole of the system onto the latest in one step?
- How can I provision previous release system? For example, Flameflower. That would be important for schema updates testing.
- Can I have 2 FOLIO systems within 1 project?