thirdparty-ops-docker-helm/charts/opal/README.md

5.0 KiB

Opal

This chart is used for acceptance and production use cases.

Containers

The created containers are:

  • MOLGENIS
  • ElasticSearch
  • PostgreSQL (optional)

Provisioning

You can choose from which registry you want to pull. There are 2 registries:

The registry.molgenis.org contains the bleeding edge versions (PR's and master merges). The hub.docker.com contains the released artifacts (MOLGENIS releases and release candidates).

The three properties you need to specify are:

  • molgenis.image.repository
  • molgenis.image.name
  • molgenis.image.tag

Besides determining which image you want to pull, you also have to set an administrator password. You can do this by specifying the following property.

  • molgenis.adminPassword

Firewall

Is defined at service level you can specify this attribute in the values:

  • molgenis.firewall.enabled default 'false'

If set to 'true' the following options are available. One of the options below has to be set.

  • molgenis.firewall.umcg.enabled default 'false'
  • molgenis.firewall.cluster.enabled default 'false'

UMCG = only available within the UMCG. Cluster = only available within the GCC cluster environment.

Services

When you start MOLGENIS you need:

  • an elasticsearch instance (5.5.6)
  • an postgres instance (9.6)

You can attach additional services like:

  • an opencpu instance

Elasticsearch

You can configure elasticsearch by giving in the cluster location.

To configure the transport address you can address the node communication channel but also the native JAVA API. Which MOLGENIS uses to communicate with Elasticsearch. From Elasticsearch version 6 and further the JAVA API is not supported anymore. At this moment you can only use Elastic instance till major version 5.

  • molgenis.services.elasticsearch.transportAddresses: localhost:9300

To configure the index on a Elasticsearch cluster you can specify the clusterName property.

  • molgenis.services.elasticsearch.clusterName: molgenis

Postgres

You can specify the location of the postgres instance by specify the following property:

  • molgenis.services.postgres.host: localhost

You can specify the schema by filling out this property:

  • molgenis.services.postgres.scheme: molgenis

You can specify credentials for the database scheme by specifying the following properties:

  • molgenis.services.postgres.user: molgenis
  • molgenis.services.postgres.password: molgenis

To test you can use the PostgreSQL-helm chart of Kubernetes and specify these answers:

# answers for postgresql chart
postgresUser=molgenis
postgresPassword=molgenis
postgresDatabase=molgenis
persistence.enabled=false

OpenCPU

You can specify the location of the OpenCPU cluster by specifying this property:

  • molgenis.services.opencpu.host: localhost

You can test OpenCPU settings using the OpenCPU-helm chart of MOLGENIS.

Resources

You can specify resources by resource type. There are 2 resource types.

  • memory of container
  • maximum heap space JVM

Specify memory usage of container:

  • molgenis.resources.limits.memory

Specify memory usage for Java JVM:

  • molgenis.javaOpts.maxHeapSpace

Select the resources you need dependant on the customer you need to serve.

Persistence

You can enable persistence on your MOLGENIS stack by specifying the following property.

  • persistence.enabled default 'true'

You can also choose to retain the volume of the NFS.

  • persistence.retain default 'false'

The size and claim name can be specified per service. There are now two services that can be persist.

  • MOLGENIS
  • ElasticSearch
  • PostgreSQL (optional)

MOLGENIS persistent properties.

  • molgenis.persistence.claim
  • molgenis.persistence.size

ElasticSearch persistent properties.

  • elasticsearch.persistence.claim
  • elasticsearch.persistence.size

PostgreSQL persistent properties.

  • postgres.persistence.claim
  • postgres.persistence.size

Resolve you persistent volume

You do not know which volume is attached to your MOLGENIS instance. You can resolve this by executing:

kubectl get pv

You can now view the persistent volume claims and the attached volumes.

NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-45988f55-900f-11e8-a0b4-005056a51744 30G RWX Retain Bound molgenis-solverd/molgenis-nfs-claim nfs-provisioner-retain 33d
pvc-3984723d-220f-14e8-a98a-skjhf88823kk 30G RWO Delete Bound molgenis-test/molgenis-nfs-claim nfs-provisioner 33d

You see the molgenis-test/molgenis-nfs-claim is bound to the volume: pvc-3984723d-220f-14e8-a98a-skjhf88823kk. When you want to view the data in the this volume you can go to the nfs-provisioning pod and execute the shell. Go to the directory export and lookup the directory pvc-3984723d-220f-14e8-a98a-skjhf88823kk.