Hi Bastian.
SuiteCRM API Access:
The V8 API is already exposed through the OpenShift route — no additional configuration needed on the infrastructure side. For SuiteCRM 8, the endpoint is:
https://<your-route>/legacy/Api/V8/
To enable API access:
1. Generate OAuth2 keys (already done at build time in my image, but if you’re customizing):
oc exec deployment/suitecrm -- bash -c "cd /var/www/html/public/legacy/Api/V8/OAuth2 && openssl genrsa -out private.key 2048 && openssl rsa -in private.key -pubout -out public.key"
2. Create an OAuth2 client in SuiteCRM:
3. Get an access token:
curl -X POST https://<your-route>/legacy/Api/access_token \
-H "Content-Type: application/json" \
-d '{
"grant_type": "password",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"username": "admin",
"password": "YOUR_PASSWORD"
}'
4. Call the API:
curl https://<your-route>/legacy/Api/V8/module/Accounts \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Upgrades
This is where containerized deployments require a different mindset. Here’s my recommended approach for now, although I haven’t had time to test it yet:
Option 1: Blue-Green (safest for production)
1. Back up your database:
oc exec deployment/mariadb -- bash -c 'mysqldump -u root -p"${MYSQL_ROOT_PASSWORD}" suitecrm' > backup.sql
2. Build a new image with the target version (update the ARG SUITECRM_VERSION=8.x.x in the Containerfile in my repo)
3. If you have your own OpenShift or Kubernetes cluster, deploy to a new namespace, restore the database, and run the upgrade:
oc exec deployment/suitecrm -- ./bin/console suitecrm:app:upgrade -t SuiteCRM-8.x.x
oc exec deployment/suitecrm -- ./bin/console suitecrm:app:upgrade-finalize -t SuiteCRM-8.x.x
4. Test, then switch the route to the new deployment
Option 2: In-place upgrade (simpler, but higher risk)
1. Back up the database and PVC data
2. Download the upgrade package into the running container:
oc exec deployment/suitecrm -- mkdir -p /var/www/html/tmp/package/upgrade
oc cp SuiteCRM-8.x.x.zip suitecrm-pod:/var/www/html/tmp/package/upgrade/
3. Run the upgrade commands:
oc exec deployment/suitecrm -- ./bin/console suitecrm:app:upgrade -t SuiteCRM-8.x.x
oc exec deployment/suitecrm -- ./bin/console suitecrm:app:upgrade-finalize -t SuiteCRM-8.x.x
What persists across upgrades (via PVC):
-
Database (MariaDB PVC)
-
Uploads (/var/www/html/public/legacy/upload)
-
Custom modules (/var/www/html/public/legacy/custom)
-
Configuration (config.php, config_override.php)
I’ll add a proper upgrade guide to the repo — thanks for pushing me on this!