Helping with Silta development

Development workflow#

Each chart (drupal, frontend, simple) has respective project that uses the chart as subfolder under /charts. So adjustments to chart can be made on each commit. Check .cirlceci/config.yml in Drupal chart to see how it's defined. So you make a PR for a specific chart (either drupal-project-k8s or frontend-project-k8s or simple-project-k8s)

Testing#

Before making a pull request you should install the unittest helm plugin:

helm plugin install https://github.com/quintush/helm-unittest --version 0.2.4

and run in on your updated chart:

helm unittest ./charts/drupal --helm3

To test charts locally You will need related helm repositories to be installed locally (see charts/chartname/Chart.yaml) and subcharts downloaded.

  1. Adding helm repository:
helm repo add wunderio https://storage.googleapis.com/charts.wdr.io
  1. Download / rebuild the charts/ directory based on the Chart.lock file
helm dependency build charts/drupal
  1. Dry-run chart and check kubernetes resource definitions for expected output
helm upgrade --install test charts/drupal --dry-run --debug --values silta/silta.yml

Contribution#

  1. Someone from silta dev team will review changes and review the PR. Once accepted by one of them, it can be merged to master.
  2. Once changes are merged to project there are 2 options:
    1. Silta developers diff wunderio/charts/drupal to wunderio/drupal-project-k8s/charts/drupal before next release by copying over multiple changes in bulk and increment chart version in both repos, making them in sync again.
    2. You can make a copy of that accepted PR to wunderio/charts repo where it will be accepted again.

If you want to test a feature PR:

  1. Create a new branch from feature/myAwesomeThing -> feature/myAwesomeThing-test.
  2. Enable the myAwesomeThing related functionality or apply new configuration related to the feature.
  3. Commit the changes to the test branch and push to origin.
  4. Check that functionality works as it should.
  5. Write tests when possible and push them to the original feature branch or request the original author to add them.
  6. Delete the test branch if everything works.

Some tips and external documentation when working with HELM charts#

Helm template guide - control structures
Goland Sprig functions