Git Product home page Git Product logo

ibm-cp4ba-enterprise-deployment's Introduction

Installation of Cloud Pak for Business Automation on containers - Cloud Pak Deployer (formerly Apollo one-shot deployment) πŸ”«

Disclaimer βœ‹

This is not an official IBM documentation.
Absolutely no warranties, no support, no responsibility for anything.
Use it on your own risk and always follow the official IBM documentations.
It is always your responsibility to make sure you are license compliant.

Deploy CP4BA using Cloud Pak Deployer (CPD) πŸš€

Main repository at https://github.com/IBM/cloud-pak-deployer
Docs entry point at https://ibm.github.io/cloud-pak-deployer
CP4BA reference in docs at https://ibm.github.io/cloud-pak-deployer/30-reference/configuration/cloud-pak/#cp4ba
CP4BA Additional details in docs at https://ibm.github.io/cloud-pak-deployer/30-reference/configuration/cp4ba

Follow the guide on https://ibm.github.io/cloud-pak-deployer/50-advanced/run-on-openshift/run-deployer-on-openshift-using-console/

In the Configure the Cloud Paks and services to be deployed section, modify and provide the following configuration for CP4BA instead of the one from the documentation for CP4D.

Customize:

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: cloud-pak-deployer-config
  namespace: cloud-pak-deployer
data:
  cpd-config.yaml: |
    global_config:
      environment_name: cp4ba
      cloud_platform: existing-ocp
      env_id: cp4ba
      universal_password: ''

    openshift:
    - cluster_name: "{{ env_id }}"
      domain_name: example.com
      name: "{{ env_id }}"
      ocp_version: 4.14
      console_banner: "{{ env_id }}"
      openshift_storage:
      - storage_name: auto-storage
        storage_type: auto

    cp4ba:
    - project: cp4ba
      collateral_project: cp4ba-collateral
      openshift_cluster_name: "{{ env_id }}"
      openshift_storage_name: auto-storage
      accept_licenses: true
      state: installed
      cpfs_profile_size: small # Profile size which affect replicas and resources of Pods of CPFS as per https://www.ibm.com/docs/en/cpfs?topic=operator-hardware-requirements-recommendations-foundational-services

      # Section for Cloud Pak for Business Automation itself
      cp4ba:
        # Set to false if you don't want to install (or remove) CP4BA
        enabled: true # Currently always true
        profile_size: small # Profile size which affect replicas and resources of Pods as per https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/latest?topic=pcmppd-system-requirements
        patterns:
          foundation: # Foundation pattern, always true - https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/22.0.2?topic=deployment-capabilities-production-deployments#concept_c2l_1ks_fnb__foundation
            optional_components:
              bas: true # Business Automation Studio (BAS) 
              bai: true # Business Automation Insights (BAI)
              ae: true # Application Engine (AE)
          decisions: # Operational Decision Manager (ODM) - https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/22.0.2?topic=deployment-capabilities-production-deployments#concept_c2l_1ks_fnb__odm
            enabled: true
            optional_components:
              decision_center: true # Decison Center (ODM)
              decision_runner: true # Decison Runner (ODM)
              decision_server_runtime: true # Decison Server (ODM)
            # Additional customization for Operational Decision Management
            # Contents of the following will be merged into ODM part of CP4BA CR yaml file. Arrays are overwritten.
            cr_custom:
              spec:
                odm_configuration:
                  decisionCenter:
                    # Enable support for decision models
                    disabledDecisionModel: false
          decisions_ads: # Automation Decision Services (ADS) - https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/22.0.2?topic=deployment-capabilities-production-deployments#concept_c2l_1ks_fnb__ads
            enabled: true
            optional_components:
              ads_designer: true # Designer (ADS)
              ads_runtime: true # Runtime (ADS)
          content: # FileNet Content Manager (FNCM) - https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/22.0.2?topic=deployment-capabilities-production-deployments#concept_c2l_1ks_fnb__ecm
            enabled: true
            optional_components:
              cmis: true # Content Management Interoperability Services (FNCM - CMIS)
              css: true # Content Search Services (FNCM - CSS)
              es: true # External Share (FNCM - ES)
              tm: true # Task Manager (FNCM - TM)
              ier: true # IBM Enterprise Records (FNCM - IER)
              icc4sap: false # IBM Content Collector for SAP (FNCM - ICC4SAP) - Currently not implemented
          application: # Business Automation Application (BAA) - https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/22.0.2?topic=deployment-capabilities-production-deployments#concept_c2l_1ks_fnb__baa
            enabled: true
            optional_components:
              app_designer: true # App Designer (BAA)
              ae_data_persistence: true # App Engine data persistence (BAA)
          document_processing: # Automation Document Processing (ADP) - https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/22.0.2?topic=deployment-capabilities-production-deployments#concept_c2l_1ks_fnb__adp
            enabled: true
            optional_components: 
              document_processing_designer: true # Designer (ADP)
            # Additional customization for Automation Document Processing
            # Contents of the following will be merged into ADP part of CP4BA CR yaml file. Arrays are overwritten.
            cr_custom:
              spec:
                ca_configuration:
                  # GPU config as described on https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/22.0.1?topic=resource-configuring-document-processing
                  deeplearning:
                    gpu_enabled: false
                    nodelabel_key: nvidia.com/gpu.present
                    nodelabel_value: "true"
                  ocrextraction:
                    use_iocr: none # Allowed values: "none" to uninstall, "all" or "auto" to install (these are aliases)                         
          workflow: # Business Automation Workflow (BAW) - https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/22.0.1?topic=deployment-capabilities-production-deployments#concept_c2l_1ks_fnb__baw
            enabled: true
            optional_components:
              baw_authoring: true # Workflow Authoring (BAW) - always keep true if workflow pattern is chosen. BAW Runtime is not implemented.
              kafka: true # Will install a kafka cluster and enable kafka service for workflow authoring.
      
      # Section for IBM Process mining
      pm:
        # Set to false if you don't want to install (or remove) Process Mining
        enabled: true
        # Additional customization for Process Mining
        # Contents of the following will be merged into PM CR yaml file. Arrays are overwritten.
        cr_custom:
          spec:
            processmining:
              storage:
                # Disables redis to spare resources as per https://www.ibm.com/docs/en/process-mining/1.13.2?topic=configurations-custom-resource-definition
                redis:
                  install: false  

      # Section for IBM Robotic Process Automation
      rpa:
        # Set to false if you don't want to install (or remove) RPA
        enabled: true
        # Additional customization for Robotic Process Automation
        # Contents of the following will be merged into RPA CR yaml file. Arrays are overwritten.
        cr_custom:
          spec:
            # Configures the NLP provider component of IBM RPA. You can disable it by specifying 0. https://www.ibm.com/docs/en/rpa/21.0?topic=platform-configuring-rpa-custom-resources#basic-setup
            nlp:
              replicas: 1

      # Section for Asset Repository
      asset_repo:
        # Set to false if you don't want to install (or remove) Asset Repo
        enabled: false # Currently not implemented

      # Set to false if you don't want to install (or remove) CloudBeaver (PostgreSQL, DB2, MSSQL UI)
      cloudbeaver_enabled: true

      # Set to false if you don't want to install (or remove) Roundcube
      roundcube_enabled: true

      # Set to false if you don't want to install (or remove) Cerebro
      cerebro_enabled: true

      # Set to false if you don't want to install (or remove) AKHQ
      akhq_enabled: true

      # Set to false if you don't want to install (or remove) Mongo Express
      mongo_express_enabled: true
      
      # Set to false if you don't want to install (or remove) phpLDAPAdmin
      phpldapadmin_enabled: true

Removal

To remove CP4BA deployment, edit the main configmap

kind: ConfigMap
metadata:
  name: cloud-pak-deployer-config
  namespace: cloud-pak-deployer

Update state to removed

    cp4ba:
    - project: cp4ba
      openshift_cluster_name: "{{ env_id }}"
      openshift_storage_name: auto-storage
      accept_licenses: true
      state: removed # Change from installed

Reapply the Pod from step Start the Deployer. It knows that it should remove the deployment based on the parameter in the ConfigMap.

Contacts

Jan Dusek
[email protected]
Business Automation Technical Specialist
IBM Czech Republic

Notice

Β© Copyright IBM Corporation 2021.

ibm-cp4ba-enterprise-deployment's People

Contributors

doubektomas avatar jandusek4 avatar ondrejsvec-ibm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ibm-cp4ba-enterprise-deployment's Issues

Add IER to deployment

Is your feature request related to a problem? Please describe.
IER is currently missing and is needed by some users.

Describe the solution you'd like
Add IER to deployment and describe how to configure it if it cannot be automated.

cpadmins don't have permissions for Asset Repo

Describe the bug
Despite the code in ansible which sets the roles, they are somehow reset

To Reproduce
Steps to reproduce the behavior:

  1. Go to Zen UI
  2. You don't see asset repo in the hamburger menu

Expected behavior
cpadmins group has all access to asset repo

Input Validations

Is your feature request related to a problem? Please describe.
Sometimes the deployment won't run correctly or end in some stage because of incorrect inputs. There is currently none to little input variables validation.

Describe the solution you'd like
In the minimum validate what is in the variables.yml at the start of the run whenever possible

Subsequent run of installer auto approves newer Manual operator versions

Describe the bug
If install job fails or it is just run again on completed cluster, operators set to manual with older versions are auto updated.
Common role for managing manual operators doesn't check if the Subscription was already approved with the desired CSV

Expected behavior
Operators stay at the inittal desired CSV version

Remove entryuuid attribute if possible

Is your feature request related to a problem? Please describe.
As FNCM now uses SCIM, maybe we can remove ibm-entryuuid attribute from OpenLDAP deployment.

BLUDB removal takes long time even when it is not there

Is your feature request related to a problem? Please describe.
When we are removing the BLUDB from the DB2, it takes a long time even, when it is not there already.

Describe the solution you'd like
First validate if the db is still there and perform that using quicker actions then what is in there currently.

Improve Apollo repo pulling on install/remove Jobs

> Is your feature request related to a problem? Please describe

TL;DR: This feature will improve start speed (and footprint) of install & remove Jobs

==> I noticed your repo is becoming quite big (lots of commits, some big files too... 😯 ).
On the README.md, all YAMLS to launch the install/remove Jobs contain this line :

git clone --progress --branch ${GIT_BRANCH} ${GIT_REPOSITORY}

==> This command clones ALL the commit history inside the container...

> Describe the solution you'd like

As the commit history isn’t needed for running your scripts (we only want the last version of the scripts), you can add the 2 args --depth 1 --shallow-submodules to the git clone command to do a shallow clone (cf. git documentation).

So the command would become:

git clone --depth 1 --shallow-submodules --progress --branch ${GIT_BRANCH} ${GIT_REPOSITORY}

Results in image:
Apollo-git-clone-improve
For the pull timing, we can easily gain 15-30sec between the 2 methods πŸ™‚

> Additional context

Modification Impacts:
I’ve noticed 3 places in your repo where a git clone command is used :

  • README.md --> lines 599 & 738
  • scripts/servicing-pod.yaml --> line 14

Implement Force Delete

Is your feature request related to a problem? Please describe.
Soft delete is good when we want to be sure everything goes smoothly, but sometimes force delete is needed because of hanging issues and things like ghost fynalyzers.

Describe the solution you'd like
Add a parameter that can be set, based on which force delete will be performed. Force delete would include deleting finalizers from resources.

IBM Enterprise Records configuration

Is your feature request related to a problem? Please describe.
no

Describe the solution you'd like
I'd like to have IER, IBM Enterprise Records configured by the deployment so I have object stores and plugin in IBM Content Navigator ready to use.

Additional context
none

Wrong healthcheck URLs for pgAdmin Deployment config

Hello guys,
3 days after installing the last version of Apollo (full capability install), I had a "storage" related problem this morning linked to the way your pgadmin Deployment does healthchecks, could you update it? πŸ™‚

The Problem

I was warned this morning by the team managing the storage of my cluster (I use a Spectrum Scale) that I reached the max number of inodes on one of my PVC named pgadmin-data.
After some investigation, we found out that the pgadmin pod kept creating thousand files on the PVC.

After purging the content of the folder /var/lib/pgadmin/sessions (containing at the time around 58k session files ...), I noticed that 24 session files were created per minute.

After checking the Pod YAML definition, I found the culprits : the livenessProbe & readinessProbe defined on the Deployment config. Both probes were running every 10 sec, doing a query on the base URL of the pgAdmin UI.

This is where it becomes a problem: the baseUrl of the pgAdmin UI generates a session cookie/file for each new connection. As probes do not store HTTP cookies... a cookie/file is generated for each probe execution on the PVC.
This means around 34560 files gets generated for nothing each day.

The Solution

I searched a little on the web, and it seems the pgAdmin UI exposes a /misc/ping url that can safely be used to do health checks! (it does not generate session cookies) (example here)

Updating the "path" properties of both livenessProbe & readinessProbe from / to /misc/ping in your deployment should fix the issue πŸ˜‰ (cf. here, on lines 53 & 59)

livenessProbe:
failureThreshold: 30
timeoutSeconds: 5
httpGet:
path: /
port: http
readinessProbe:
failureThreshold: 30
timeoutSeconds: 5
httpGet:
path: /
port: http

Bonus: Another improvement possible: set a higher threshold for the livenessProbe as recommended by the Kubernetes documentation.

Documents cannot be uploaded to ADP

Describe the bug
No documents can be uploaded to ADP making it unusable.

To Reproduce
Steps to reproduce the behavior:

  1. Open ADP
  2. Go to some perspective with document upload
  3. Upload document
  4. You get an error

Expected behavior
I can upload docs to ADP

Simplified option with ADP install

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
Be able to install only ADP and what is necessary for it, probably the pattern ** document_processing**

Additional context
none

JSON bodies consolidation

Is your feature request related to a problem? Please describe.
Sometimes we use direct json with filled variables and sometimes we use yaml specification.

Describe the solution you'd like
Take a decision on the correct way, and consilidate across all the tasks and roles

Implement custom JKS for ODM and AKHQ

Is your feature request related to a problem? Please describe.
ODM and AKHQ should use custom JKS keystores with common password

Describe the solution you'd like
Also requires to add JDK with keytool.

Default Retries and Waits for each command

Is your feature request related to a problem? Please describe.
At the moment tasks use retries and waits that are hardcoded in each task.

Describe the solution you'd like
Wherever appropriate, use variables to set the reties and waits so it can be changed in an easier way.

ICN/FNCM configuration

Describe the solution you'd like
Automatically setup ICN/FNCM for additional features like Daeja license files, TeamSpaces, EntryTemplates, Social features

Additional context
Consider solutions with DB access, Public Java API, private REST API, UI automation.

Update to 21.0.3.8

Describe the solution you'd like
Update to 21.0.3.8. with pinned catalogs.

Unable to create a CR for BAW Authoring with BAI option

Describe the bug
Failed to create a CR with BAW Authoring and BAI enabled.

To Reproduce
Steps to reproduce the behavior:

  1. I used the cert-k8s-22.0.1.tar from the ibm-cp-automation-4.0.1.tar to generate a sample CR to determine the patterns and optional components enable in the Apollo-one-shot.configMap.
  2. The following patterns and optional components were generated by the cp4a-deployment.sh:3.
    sc_deployment_patterns: "foundation,workflow"
    sc_optional_components: "bai,baw_authoring,cmis"
  3. The Apollo One Shot config map was modified as per the attached file.
  4. The log file from the Apollo One Shot deployment job pod is attached showing the error. The CR is not generated.

Expected behavior
A CR should be generated.

*Additional context*
Add any other context about the problem here.
Apollo-One-Shot-Config-Map.txt
apollo-one-shot-install-8fkhw-7fbt2-apollo-one-shot.log

Use module defaults to spare some rows

Is your feature request related to a problem? Please describe.
Bit too long tasks lists and duplication, repetition.

Describe the solution you'd like
We can set the defaults at the start of each task list or in the variables and therefore be able to shorten and make a bit more concise tasks.

Update to CP4BA iFix7 with pinned catalogs

Is your feature request related to a problem? Please describe.
Even when Subscriptions are switched to manual it is error prone.

Describe the solution you'd like
Adopt new principle of pinned catalogs with CP4BA iFix 7

Additional context
Also evaluate how this affects on-top features like IPM and RPA.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.