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:
Checkout or assemble Stripes platform and build
Build and run Okapi
Run back-end modules as Docker containers
POST running back-end module deployment-descriptors to Okapi
POST running back-end module module-descriptors to Okapi
Create Tenant
POST back-end modules to enable for Tenant to Okapi
Run Stripes
POST front-end module module-descriptors to Okapi
POST front-end modules to enable for Tenant to Okapi
Create superuser for Tenant
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