Migrating Mobile Foundation deployed using BYOL scripts to Helm based deployment on IBM Cloud Kubernetes Cluster
Deploying Mobile Foundation (MF) using Helm on IBM Cloud Kubernetes cluster provides many advantages compared to using scripts. The following are the major benefits of choosing Helm based deployment over BYOL Scripts:
- Easy and quick Install/Upgrade/Rollbacks.
- Mobile Foundation docker images are Red Hat UBI based and are made available in IBM Entitled registry.
- Images are scanned by IBM VA and Red Hat scanner and vulnerabilities are addressed.
- Enabled with enterprise grade Kubernetes features like Pod security policies, configuration management, network policies, and so on.
- Custom configuration updates to MF components made easy, for example, enabling trace logs, updating additional JNDI properties, updating any WebSphere liberty configuration.
- Support of Analytics Receiver and Liveupdate as a separate microservice.
- Support of standalone Elasticsearch for Mobile Foundation analytics.
- Support for Oracle and MySql databases.
The ibm-mobilefoundation-prod helm chart requires the following minimal configuration to be updated in values.yaml to deploy Mobile Foundation components:
- Db2 details and db-secret for Server, Liveupdate and Application center
- Elasticsearch namespace for analytics
Migrate the following items:
Database can be reused for the Mobile Foundation server, push, Liveupdate and Application center.
Get the existing database details of the BYOL deployment from the configmap:
kubectl describe configmap mfp-configmap kubectl describe configmap mfp-configmap-appcenter
Fill in the following sections in values.yaml of the ibm-mobilefoundation-prod helm-chart with these DB details:
Mobile Foundation server:
mfpserver: db: type: "DB2" host: "MFPF_SERVER_DB_HOST" port: "MFPF_SERVER_DB_PORT" name: "MFPF_SERVER_DB_NAME" secret: "MFPF_SERVER_DB_SECRET" schema: "MFPF_SERVER_DB_SCHEMA"
Note: Mobile Foundation server and push uses the same database details provided in this snippet.
Mobile Foundation LiveUpdate:
mfpliveupdate: db: type: "DB_TYPE" host: "MFPF_LIVEUPDATE_DB_HOST" port: "MFPF_LIVEUPDATE_DB_PORT" name: "MFPF_LIVEUPDATE_DB_NAME" secret: "MFPF_LIVEUPDATE_DB_SECRET" schema: "MFPF_LIVEUPDATE_DB_SCHEMA"
mfpappcenter: db: type: "DB_TYPE" host: "MFPF_APPCNTR_DB_HOST" port: "MFPF_APPCNTR_DB_PORT" name: "MFPF_APPCNTR_DB_NAME" secret: "MFPF_APPCNTR_DB_SECRET" schema: "MFPF_APPCNTR_DB_SCHEMA"
For creating DB secret, see installation documentation here.
Update elasticsearch namespace details in the following section:
mfpanalytics: esnamespace: ""
Reuse the existing pvc or use existing storageclass for Elasticsearch. Fill in the following section in values.yaml of the ibm-es-prod helm-chart with pvc or storage class name:
persistence: claimName: "" storageClassName: ""
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.