This has been tested on Google Kubernetes Engine - it should work with other cluster types, but if you run into problems open an issue.
Deploy a Basic TerriaMap Instance
From within TerriaMap...
helm upgrade --install -f deploy/helm/example-prod.yml terria deploy/helm/terria
Config Customization
You can customize TerriaMap through helm by either modifying example-prod or creating your own helm config file. Server config is available at terriamap.serverConfig
, init config at terriamap.initConfig
and client config at terriamap.clientConfig
. Changes that you make will be merged with the default values in deploy/terria/charts/terriamap/values.yaml
.
E.g.
global:
rollingUpdate:
maxUnavailable: 1
image:
tag: "0.0.6"
terriamap:
clientConfig:
parameters:
disclaimer:
text: "This is a disclaimer"
serverConfig:
port: 8080
initConfig:
camera:
north: "1"
east: "2"
south: "3"
west: "4"
Building Your Own Image
You can build your own TerriaMap image
docker build -t app-name:tag .
Working Locally
If you want to run a local version of TerriaMap using Kubernetes then you can try one of these applications:
- Docker Desktop: Application with embedded Kubernetes setup for fast and easy app development, requiring a subscription licence in most cases for commercial use
- Rancher Desktop: Apache-2.0 alternative to Docker Desktop
Or try a tool recommended in the official Kuberntes setup documentation.
Then run:
docker build -t app-name:tag .
helm upgrade --install -f deploy/helm/example-prod.yml terria deploy/helm/terria --set terriamap.image.full=app-name:tag --set global.image.pullPolicy=Never
using the same app-name
& tag
in both.
You can repeat the command docker build -t app-name:tag .
and delete the terria-terriamap pod to update it, and you can run the above helm upgrade
command after modifying or copying example-prod.yml
to change the config.