In addition to starting sip2world inside Docker, Kubernetes, Swarm, Vagrant I decided to deploy it in Openshift. The main profit of these deployments is revealing hidden problems and features. This deployment is not without problems too.

At work we use multiple deployments with single application inside (communication through services), then this deployment have complicated structure with multiple applications, which depend on each other. In recent release of Kubernetes was added new feature which allows to control process of starting containers inside Pod, but Openshift doesn't have this feature yet.

The main problem of this deployment is that cdrstats container launched before postgresql container and as conclusion doesn't work properly. The little investigation showed me, that I can manipulate start process through change the order of containers records inside deployment configuration (move one below other and vice versa), but this method gives strange results sometimes.

In the end I want to mention tool that convert existing docker-compose configuration into Openshift/Kubernetes format. This tool does not support all features, but in general it's useful.

Watch on YouTube


Data should be placed on cluster nodes:

cd /share

git clone

cd sip2world/docker/

chmod -R 777 data/freeswitch
chown -R 33:33 data/fusionpbx
chown -R 102:106 data/postgresql
find data/postgresql -type d -exec chmod 0700 {} \;

Quick start:

git clone
cd sip2world/openshift/

oc create -f sip2world.yml