Folio integration with an orchestration toolset

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:

https://folio-org.atlassian.net/browse/FOLIO-1931

JIRA tickets related to these needs:

https://folio-org.atlassian.net/browse/FOLIO-1519

https://folio-org.atlassian.net/browse/FOLIO-1550

https://folio-org.atlassian.net/browse/FOLIO-1577

https://folio-org.atlassian.net/browse/FOLIO-1992

https://folio-org.atlassian.net/browse/FOLIO-1993

https://folio-org.atlassian.net/browse/FOLIO-1994

https://folio-org.atlassian.net/browse/FOLIO-1995

https://folio-org.atlassian.net/browse/FOLIO-1996

https://folio-org.atlassian.net/browse/FOLIO-2019

https://folio-org.atlassian.net/browse/OKAPI-728

https://folio-org.atlassian.net/browse/OKAPI-729

https://folio-org.atlassian.net/browse/UXPROD-748

https://folio-org.atlassian.net/browse/UXPROD-753

https://folio-org.atlassian.net/browse/UXPROD-754

https://folio-org.atlassian.net/browse/UXPROD-755

https://folio-org.atlassian.net/browse/UXPROD-756

https://folio-org.atlassian.net/browse/UXPROD-1082

https://folio-org.atlassian.net/browse/UXPROD-1084

https://folio-org.atlassian.net/browse/UXPROD-1429