Folio integration with an orchestration toolset

Okapi integration with etcd in Kubernetes, a use-case:

Currently, making Okapi aware of what modules a Folio system is running is a very manual process:

  • When a module comes up, it does not make itself aware to Okapi

  • Need to issue curl POST commands to tell Okapi where and how your module is running

  • No way to initialize a module for a Tenant other than issuing curl POST, again a very manual process

When using an orchestration tool, most provide some sort of discovery mechanism. Kubernetes and Rancher RKE use etcd.

Documentation for Kubernetes API is here:

https://kubernetes.io/docs/concepts/overview/kubernetes-api/

And etcd here:

https://coreos.com/etcd/docs/latest/getting-started-with-etcd.html

In addition to using etcd for each module’s deployment-descriptor for Okapi to use, etcd’s key-value store could also be utilized for critical module metadata and module-descriptors.

Another reason is to store deployment and module descriptors in etcd is backup and disaster recovery. We should be able to rebuild a complete Folio cluster by restoring a backup of the etcd database.

Summary of our current process for standing up a vetted Folio quarterly release, where dependencies have been resolved for me:

  1. Checkout or assemble Stripes platform and build

  2. Build and run Okapi

  3. Run back-end modules as Docker containers

  4. POST running back-end module deployment-descriptors to Okapi

  5. POST running back-end module module-descriptors to Okapi

  6. Create Tenant

  7. POST back-end modules to enable for Tenant to Okapi

  8. Run Stripes

  9. POST front-end module module-descriptors to Okapi

  10. POST front-end modules to enable for Tenant to Okapi

  11. Create superuser for Tenant

  12. Load reference data and sample data

We handle these POSTs via a deployment script and files ran inside of a Job. However, this needs to be maintained and updated over time as Folio grows.

Integrating Okapi with etcd Discovery Service could eliminate the manual steps 4,5, and 9.

Umbrella story:

FOLIO-1931 - Getting issue details... STATUS

JIRA tickets related to these needs:

FOLIO-1519 - Getting issue details... STATUS

FOLIO-1550 - Getting issue details... STATUS

FOLIO-1577 - Getting issue details... STATUS

FOLIO-1992 - Getting issue details... STATUS

FOLIO-1993 - Getting issue details... STATUS

FOLIO-1994 - Getting issue details... STATUS

FOLIO-1995 - Getting issue details... STATUS

FOLIO-1996 - Getting issue details... STATUS

FOLIO-2019 - Getting issue details... STATUS

OKAPI-728 - Getting issue details... STATUS

OKAPI-729 - Getting issue details... STATUS

UXPROD-748 - Getting issue details... STATUS

UXPROD-753 - Getting issue details... STATUS

UXPROD-754 - Getting issue details... STATUS

UXPROD-755 - Getting issue details... STATUS

UXPROD-756 - Getting issue details... STATUS

UXPROD-1082 - Getting issue details... STATUS

UXPROD-1084 - Getting issue details... STATUS

UXPROD-1429 - Getting issue details... STATUS