Configuring Zenko

Zenko is readily configurable using Helm to pass values set in Helm charts. Helm charts are stored in Zenko/kubernetes/zenko/ and its subdirectories. Helm charts are YAML files with configurable values. In a Zenko deployment, reconfiguration, or upgrade, Helm reads charts in the following order:

  1. Base settings for Zenko microservices (for example, Grafana settings, written to Zenko/kubernetes/zenko/charts/grafana/values.yaml).
  2. Base settings for Zenko. These settings override the base microservice settings, and are found in Zenko/kubernetes/zenko/values.yaml.
  3. Custom settings, which you can write to an options.yaml file. Settings written to this file override settings read from the preceding values.yaml file.

Zenko’s charts are populated by default to provide a stable, feature-rich deployment. It is easiest and safest to deploy Zenko using these default settings in a test environment and to adjust settings there for a working deployment. If your use case requires configuring Zenko before deployment, these instructions will remain valid and portable to the production system.

Modify options.yaml

The options.yaml file is not present by default, but you added a simple one at Zenko/kubernetes/options.yaml when deploying Zenko. options.yaml is the best place to make all changes to your configuration (with one exception, nodeCounts). While it is possible to reconfigure any aspect of Zenko or its attendant microservices from those services’ base settings or in the Zenko settings, it is better to make changes to options.yaml. Because options.yaml is not a part of the base installation, it is not overwritten on a Zenko version upgrade. Likewise, finding changes written to several values.yaml file locations can become quite difficult and cumbersome. For these reasons, it is a best practice to confine all modifications to options.yaml.

Examples:

Zenko provides outward-facing NFS service using Cosmos, which is enabled by default. To deactivate Cosmos:

  1. Open kubernetes/zenko/cosmos/values.yaml with read-only access and review the cosmos block.

  2. Copy the block title declaration and the subsequent line:

    cosmos:
      enabled: true
    
  3. Open (or create) Zenko/kubernetes/options.yaml and paste the block you copied there.

  4. Change the value of enabled to false.

Cosmos mirrors data based on a cron-like schedule. To modify this cron interval (for an enabled Cosmos instance), descend into the YAML structure as follows:

  1. Review the cosmos block in kubernetes/zenko/cosmos/values.yaml.

  2. Copy the relevant hierarchy to options.yaml:

    cosmos:
      scheduler:
        schedule: "* */12 * * *"
    
  3. Edit the schedule to suit your requirements.

    Tip

    If you are comfortable with JSON or SOAP objects, you will find YAML to be logically similar. If you have problems with YAML, check the indentation first.

Modify values.yaml

The one setting that cannot be modified in the options.yaml file is nodeCount. To change the node count:

  1. Open Zenko/kubernetes/zenko/values.yaml
  2. Change the nodeCount value only.

Push Modifications to Zenko

Once you have entered all changes to options.yaml or changed the values.yaml nodeCount parameter, issue the following command from Zenko/kubernetes to push your changes to the deployed Zenko instance:

$ helm upgrade {{zenko-server-name}} ./zenko -f options.yaml