Link Search Menu Expand Document


Java application which serves REST API for cBioOnDemand. Using Kubernetes java client library to deploy cBioPortal instances to Kubernetes environment and managing cBioPortal lifecycle. API is also deployed as Kubernetes deployment.

GitLab repository:

cBioOnDemand instances description

Configuration for these instances are located in java

API documentation


We have three branches which are identical with deployment environment.

Folder ‘cbioondemandK8S’ holds Dockerfile and Java application ‘API’ which is packaged to image.

These images are stored in Gitlab image repository. Tag policy is set as <branch>-<hash_of_commit>. With this policy we can identifies where and when was application/image built.

Folder ‘k8s’ holds configuration for Kubernetes (deployment, service and definition of custom Object)


Everything should be templates and jobs are only special configuration of templates.

  • Stages (master/beta/dev):
    • Build (auto/auto/auto)- API image (‘cBioOnDemand folder’). Used in Deploy stage
    • Deploy (manual/auto/auto) - grab image of API from build stage and deploy it to Kubernetes

Special configuration

  • tolerations -> This ensure that Pod can be placed on Master node.
  • nodeAffinity -> Ensure that Pod will be placed on Master node.


As for now, there is no cleaning job for this images. Also there needs to be settle up some “removing images” policy. !!!