This repository contains a Tekton pipelines to deploy Maximo using mas-ansible.
An IBM Technology Zone deployer
cluster is assumed to be configured with an appropriate Red Hat OpenShift version for the Maximo version you wish to deploy, with appropriate sizing. Refer to Maximo Product Documentation for more information.
A deployer cluster can be created by installing the Deployer Operator
A deployer
cluster is configured with the following items:
- ExternalSecrets operator deployed with a ClusterSecretStore configured.
- Techzone Deployer Tekton tasks deployed (deploy YAML).
- OpenShift GitOps configured with One Touch Provisioning ArgoCD instance, and any relevant RBAC rules.
- OpenShift Pipelines operator deployed.
- deployer pipelines tasks and cluster tasks
If deploying on TechZone the entitlement key is provided from the TechZone Secrets Repo. If deploying in a non-techzone cluster you will need to provide an entitlement key for the pipelinerun.
Documentation for obtaining an entitlement key here: https://www.ibm.com/docs/en/cloud-paks/1.0?topic=clusters-obtaining-your-entitlement-key
To activate Maximo you will need a valid license key which is a text file that contains software authorizations and entitlements. This pipeline in order to run automatically will need this file to be base64 encoded and saved in a kubernetes secret.
- save the license file to a file locally such as license.dat.
- Use a tool to base64 encode the file such as "
cat license.dat | base64 > license.dat.b64
- copy the output into an OpenShift secret in the default namespace
oc create secret generic maximolicense --from-file=licensefile=license.dat.b64 -n default
remember the name of the secret for the pipeline run. ( in the example above "maximolicense" is the name)
Maximo is deployed with a Tekton Pipeline that is defined in pipeline.yaml
the pipeline runs the MAS DevOps playbooks and can be modified or extended using other roles and playbooks.
Consult the documentation for MAS DevOps here
Run Deployer prep on the cluster. link: https://github.com/cloud-native-toolkit/deployer-cluster-prep/blob/main/prepare-cluster.sh
switch to version directory of choice and run these commands
oc apply -f pipeline.yaml
oc create -f pipeline-run.yaml
In testing we have seen the pipeline take from 2-6 hours to progress from installation of operators to active instances of the software. please be patient.
The pipeline is fully idempotent and can be restarted as needed.
known issues around db2 not coming up may cause problems with maximo manage installation:
- ibm-mas/ansible-devops#1039
- https://www.ibm.com/docs/en/cloud-paks/cp-data/4.6.x?topic=issues-watson-query#known-issues-dv__install-upgrade__title__1
if the maximo manage activation is not progressing. check to see if a pod that starts with something like inst1-masdev-manage-maxinst-* exists and view its logs. If you see messages like "invalid tablespaces", check to see if db2 is healthy. if db2u etcd pod is unhealthy or crashing, you can delete the pod to restart it.
at this point you will have to reset the db2 database with this workaround:
Go to terminal c-db2w-shared-db2u-0 in db2u namespace
su -lc '/tmp/setupdb.sh | tee /tmp/setupdb.log' db2inst1
Go to project mas-inst1-manage Delete the pod inst1-masdev-manage-maxinst-*
the pipeline looks for a lets-encrypt cert previously generated by upstream automation and if found uses this cert for maximo public routes. This cert may not have all maximo paths enabled by default. If you encounter a non-trusted certificate you may have to open the path in a separate browser window and accept the cert.