Configuring Product Master deployment YAML (Fix Pack 11 and later)
Before deployment you need to configure Product Master YAML file that you downloaded from IBM® Support Fix Central.
Before you begin
- Before proceeding with deployment of the IBM Product Master, ensure that you meet the software and hardware requirements. For more information, see System requirements - Containers.
- File storage is mandatory for appdata persistent volume. We recommend File storage for all the persistent volumes. If you use file storage access_modes should be set to ReadWriteMany.
- All persistent volume claims are mandatory for successful deployment.
- Before performing removing a deployment, it is recommended to take a complete backup of all the persistent volumes.
Procedure
-
Review and update secret values in the app_secrets.yaml file.
- Generate self-signed certificate or procure valid certificate that is issued by the
certificate authority for applying to the Ingress routes, which in turn are applied to application
URLs. Convert certificate and key to Base64 format by using the following command.
cat crt.cert | base64 cat cert.key | base64
Convert the output to single line for the crt.cert and cert.key files.
- Generate self-signed certificate or procure valid certificate that is issued by the
certificate authority for applying to the Ingress routes, which in turn are applied to application
URLs. Convert certificate and key to Base64 format by using the following command.
-
Update the values in the app_secrets.yaml file in the following
format.
apiVersion: v1 kind: Secret metadata: name: app-secret namespace: <namespace> type: Opaque stringData: #Database details db_type: "<db2 / oracle>" db_name: "<DB name>" db_host: "<IP or hostname of DB>" db_user: "<DB username>" db_pass: "<DB password. For FP5 and earlier releases provide encrypted password.>" db_port: "<DB server port>" #SSL details db_ssl_crt: "<database plain text ssl certificate>" #OpenSearch details for Free Text Search opensearch_host: "https://<OpenSearch hostname>" opensearch_user: "<OpenSearch username>" opensearch_pass: "<OpenSearch password>" opensearch_port: "<OpenSearch port>" opensearch_ssl_crt: "<OpenSearch plain text ssl certificate>" #IBM Watson Knowledge Catalog details cpd_host_url: "<CPD host URL>" cpd_user_name: "<CPD User name>" wkc_auth_api_key: "<WKC API Key>" wkc_catalog_name: "<WKC Catalog name>" #Simple Mail Transfer Protocol (SMTP) details smtp_address: "<SMTP server hostname>" from_address: "<From email address>" smtp_port: "<SMTP server port>" smtp_user: "<SMTP username or API key>" smtp_pass: "<SMTP password>" smtp_additional_props: "<SMTP additional properties>" #Security Assertion Markup Language (SAML) Single sign-on (SSO) details sso_company: "<company code>" sso_config_adminui: "<AdminUI SAML WebSSO configuration for IBM WebSphere® Liberty, in the <samlWebSso20>..</samlWebSso20>> format" sso_config_personaui: "<PersonaUI SAML WebSSO configuration for IBM WebSphere® Liberty, in the format <samlWebSso20>..</samlWebSso20>>" sso_idp_metadata: "<Identity provider metadata file content>" #Magento connector details magento_user: "<Magento service username>" magento_pass: "<Magento service password>" magento_host: "<Magento IP or hostname>" magento_port: "<Magento connector port>" magento_ipm_user: "<application username>" magento_ipm_pass: "<application password>" magento_ipm_company: "<application Magento company name>" #IBM MQ details mq_app_user: "<MQ service username>" mq_app_pass: "<MQ service password>" mq_ui_pass: "<MQ user interface password>" #Update the following details only if SAML SSO is required, else you can remove these entries --- apiVersion: v1 kind: Secret metadata: name: tls-secret namespace: <namespace> type: kubernetes.io/tls data: #Specify the Base64 converted domain name certificate and key in a single line without any space tls.crt: "" tls.key: ""
-
Following is a list of sample deployment files for your reference.
- catalog_source.yaml
-
apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: ibm-productmaster-catalog namespace: <namespace> spec: displayName: IBM Product Master publisher: IBM sourceType: grpc image: registry.ng.bluemix.net/product_master/ipm-operator-catalog@<DIGEST_VALUE>
- operator_group.yaml
-
apiVersion: operators.coreos.com/v1alpha2 kind: OperatorGroup metadata: name: ibm-productmaster-catalog-group namespace: <namespace> spec: targetNamespaces: - <namespace>
- subscription.yaml
-
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: ibm-productmaster-catalog-subscription namespace: <namespace> spec: channel: v1.0 name: productmaster-operator installPlanApproval: Automatic source: ibm-productmaster-catalog sourceNamespace: <namespace>
- volumes.yaml
-
kind: PersistentVolume apiVersion: v1 metadata: name: appdata-volume namespace: default labels: svc: appdata-volume spec: capacity: storage: 10Gi accessModes: - ReadWriteMany storageClassName: standard hostPath: path: /mnt/ipm12/appdata --- kind: PersistentVolume apiVersion: v1 metadata: name: admin-log-volume namespace: default labels: svc: admin-log-volume spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/admin --- kind: PersistentVolume apiVersion: v1 metadata: name: ftsind-log-volume namespace: default labels: svc: ftsind-log-volume spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/ftsindlog --- kind: PersistentVolume apiVersion: v1 metadata: name: ftspim-log-volume namespace: default labels: svc: ftspim-log-volume spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/ftspimlog --- kind: PersistentVolume apiVersion: v1 metadata: name: gds-log-volume namespace: default labels: svc: gds-log-volume spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/gds --- kind: PersistentVolume apiVersion: v1 metadata: name: ml-log-volume namespace: default labels: svc: ml-log-volume spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/ml --- kind: PersistentVolume apiVersion: v1 metadata: name: mongodb-data-volume namespace: default labels: svc: mongodb-data-volume spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/mongodb --- kind: PersistentVolume apiVersion: v1 metadata: name: mongodb-log-volume namespace: default labels: svc: mongodb-log-volume spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/mongodblog --- kind: PersistentVolume apiVersion: v1 metadata: name: mq-data-volume namespace: default labels: svc: mq-data-volume spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/mq-data --- kind: PersistentVolume apiVersion: v1 metadata: name: personaui-log-volume namespace: default labels: svc: personaui-log-volume spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/personaui --- kind: PersistentVolume apiVersion: v1 metadata: name: restapi-log-volume namespace: default labels: svc: restapi-log-volume spec: capacity: storage: 5Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/restapi --- kind: PersistentVolume apiVersion: v1 metadata: name: sch-log-volume namespace: default labels: svc: sch-log-volume spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/sch --- kind: PersistentVolume apiVersion: v1 metadata: name: wfl-log-volume namespace: default labels: svc: wfl-log-volume spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/wfl --- kind: PersistentVolume apiVersion: v1 metadata: name: magento-connector-log-volume namespace: default labels: svc: magento-connector-log-volume spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce storageClassName: standard hostPath: path: /mnt/ipm12/magento-connector
- You can specify any value for the path: /mnt/ipm12.
- ipm_12.0.x_cr.yaml
-
Important: Starting from IBM Product Master Fix Pack 11, you must use block storage for the log location and file storage for the app data location. These file_storageclass and block_storageclass properties get applied to all the pods. You can no longer use the storage_class_name property in the ipm_12.0.x_cr.yaml file.
apiVersion: productmaster.ibm.com/v1 kind: ProductMaster metadata: name: productmaster spec: license: accept: true deployment_platform: openshift: enable: 1 domain_name: "" block_storageclass: "" file_storageclass: "" self_managed_k8s: enable: 0 domain_name: "" block_storageclass: "" file_storageclass: "" aws_eks: enable: 0 certificate_arn: "" block_storageclass: "" file_storageclass: "" version: 12.0.11 autoScaleConfig: false enable: fts: 1 vendor: 1 dam: 1 ml: 1 gds: 1 logsearch: 0 wkc: 0 sso: 0 mountmgr: 1 connector: magento: 0 image: registry: registry.ng.bluemix.net/product_master pullpolicy: Always productmastersecret: "ipm-registry" app_secret_name: "app-secret" random_secret_name: "random-secret" certs_secret_name: "tls-secret" enable_volume_selectors: false volume_details: admin: log: name: admin-log-volume access_modes: ReadWriteOnce storage: 2Gi ftspim: log: name: ftspim-log-volume access_modes: ReadWriteOnce storage: 2Gi ftsind: log: name: ftsind-log-volume access_modes: ReadWriteOnce storage: 2Gi personaui: log: name: personaui-log-volume access_modes: ReadWriteOnce storage: 2Gi restapi: log: name: restapi-log-volume access_modes: ReadWriteOnce storage: 2Gi wfl: log: name: wfl-log-volume access_modes: ReadWriteOnce storage: 2Gi sch: log: name: sch-log-volume access_modes: ReadWriteOnce storage: 2Gi gds: log: name: gds-log-volume access_modes: ReadWriteOnce storage: 2Gi appdata: name: appdata-volume access_modes: ReadWriteMany storage: 10Gi magento: log: name: magento-connector-log-volume access_modes: ReadWriteOnce storage: 2Gi messagearchive: log: name: messagearchive-log-volume access_modes: ReadWriteOnce storage: 2Gi ######################################################################## # This is file storage ######################################################################## mq: data: name: mq-data-volume access_modes: ReadWriteOnce storage: 1Gi mongodb: data: name: mongodb-data-volume access_modes: ReadWriteOnce storage: 1Gi log: name: mongodb-log-volume access_modes: ReadWriteOnce storage: 1Gi ml: log: name: ml-log-volume access_modes: ReadWriteOnce storage: 2Gi ################################ ml_service: replica_count: 1 minreplicas: 1 maxreplicas: 5 image: ipm-ml imagetag: 12.0.x http: ext_port: 31005 httpa: ext_port: 31105 httpb: ext_port: 31205 httpc: ext_port: 31305 readiness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 liveness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 resources: requests: memory: 2048Mi cpu: 500m limits: memory: 3072Mi cpu: 600m admin_service: replica_count: 1 minreplicas: 1 maxreplicas: 10 image: ipm-admin imagetag: 12.0.x memflag: -Xmx1024m -Xms256m evmemflag: -Xmx128m -Xms48m quememflag: -Xmx128m -Xms48m admmemflag: -Xmx128m -Xms48m readiness_probe: initial_delay_seconds: 90 timeout_seconds: 900 period_seconds: 10 liveness_probe: initial_delay_seconds: 120 timeout_seconds: 900 period_seconds: 60 resources: requests: memory: 2048Mi cpu: 1000m limits: memory: 3072Mi cpu: 1400m wfl_service: replica_count: 1 minreplicas: 1 maxreplicas: 10 image: ipm-wfl imagetag: 12.0.x memflag: -Xmx1024m -Xms48m readiness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 liveness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 61 resources: requests: memory: 1536Mi cpu: 600m limits: memory: 2048Mi cpu: 800m sch_service: replica_count: 1 minreplicas: 1 maxreplicas: 10 image: ipm-sch imagetag: 12.0.x memflag: -Xmx1024m -Xms48m readiness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 liveness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 resources: requests: memory: 1536Mi cpu: 600m limits: memory: 2048Mi cpu: 800m gds_service: replica_count: 1 minreplicas: 1 maxreplicas: 10 image: ipm-gds imagetag: 12.0.x memflag: -Xmx1024m -Xms48m gds_app_type: Supply gds_datapool_gln: 8380160030003 gds_self_gln: 0864471000477 company_name: supply readiness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 liveness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 resources: requests: memory: 1536Mi cpu: 600m limits: memory: 2048Mi cpu: 800m magento_service: replica_count: 1 image: ipm-magento-connector imagetag: 12.0.x memflag: -Xmx1024m -Xms48m mg_company: magento3 readiness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 liveness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 resources: requests: memory: 1536Mi cpu: 600m limits: memory: 2048Mi cpu: 800m messagearchive_service: replica_count: 1 image: ipm-message-archive-service imagetag: 12.0.x memflag: -Xmx1024m -Xms48m readiness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 liveness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 resources: requests: memory: 1536Mi cpu: 600m limits: memory: 2048Mi cpu: 800m ftsind_service: replica_count: 1 minreplicas: 1 maxreplicas: 5 image: ipm-fts-indexer imagetag: 12.0.x memflag: -Xmx1024m -Xms256m readiness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 10 liveness_probe: initial_delay_seconds: 60 timeout_seconds: 5000 period_seconds: 60 resources: requests: memory: 1536Mi cpu: 500m limits: memory: 2048Mi cpu: 600m ftspim_service: replica_count: 1 minreplicas: 1 maxreplicas: 5 image: ipm-fts-pim imagetag: 12.0.x memflag: -Xmx1024m -Xms256m readiness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 10 liveness_probe: initial_delay_seconds: 60 timeout_seconds: 900 period_seconds: 60 resources: requests: memory: 1536Mi cpu: 500m limits: memory: 2048Mi cpu: 600m personaui_service: replica_count: 1 minreplicas: 1 maxreplicas: 5 image: ipm-personaui imagetag: 12.0.x maxmem: 1280 readiness_probe: initial_delay_seconds: 30 timeout_seconds: 900 period_seconds: 60 liveness_probe: initial_delay_seconds: 30 period_seconds: 60 timeout_seconds: 900 resources: requests: memory: 1536Mi cpu: 1000m limits: memory: 2048Mi cpu: 1400m restapi_service: replica_count: 1 minreplicas: 1 maxreplicas: 10 image: ipm-restapi imagetag: 12.0.x maxmem: 1536 readiness_probe: initial_delay_seconds: 90 timeout_seconds: 900 period_seconds: 10 liveness_probe: initial_delay_seconds: 120 period_seconds: 60 timeout_seconds: 900 resources: requests: memory: 1536Mi cpu: 1000m limits: memory: 2048Mi cpu: 1400m hazelcast_service: replica_count: 1 image: ipm-hazelcast imagetag: 5.3.6 readiness_probe: initial_delay_seconds: 10 timeout_seconds: 900 period_seconds: 5 liveness_probe: initial_delay_seconds: 15 period_seconds: 10 timeout_seconds: 900 resources: requests: memory: 1002Mi cpu: 498m limits: memory: 1254Mi cpu: 612m ibm_mq_service: replica_count: 1 image: ipm-mq imagetag: 9.3.0.4-r1 mq_qmgr_name: QM1 mq_channel_name: DEV.APP.SVRCONN queue_connection_factory: ptpQcf inbound_queue_name: DEV.QUEUE.1 outbound_queue_name: DEV.QUEUE.2 readiness_probe: initial_delay_seconds: 30 timeout_seconds: 5000 period_seconds: 10 port: http liveness_probe: initial_delay_seconds: 30 timeout_seconds: 5000 period_seconds: 10 port: http service: productmaster-mq-service port: 1414 resources: requests: memory: 240Mi cpu: 80m limits: memory: 300Mi cpu: 100m mongodb_service: replica_count: 1 image: ipm-mongodb imagetag: 7.0.2 privileged: false memflag: -Xmx2048m -Xms500m readiness_probe: initial_delay_seconds: 90 timeout_seconds: 5000 period_seconds: 10 liveness_probe: initial_delay_seconds: 120 timeout_seconds: 5000 period_seconds: 110 resources: requests: memory: 3216Mi cpu: 488m limits: memory: 3500Mi cpu: 600m fluentd_service: image: fluent/fluentd-kubernetes-daemonset imagetag: v1.16.2-debian-opensearch-1.0 resources: requests: memory: 50Mi cpu: 50m limits: memory: 150Mi cpu: 100m
- Update the parameters in the ipm_12.0.x_cr.yamlfile before deployment as per the requirement. For more information, see ipm_12.0.x_cr.yaml file parameters.