Skip to the content.

Smilr Helm Chart


This is a working Helm chart to deploy Smilr. It requires that you have an Ingress Controller deployed, which can be easily installed via Helm. Currently Helm 3 is required.

Quick Start

Configuration Settings

Create a values file e.g. myvalues.yaml by taking a copy of the provided values.sample.yaml file and change the defaults. The two values that you are most likely to want to change are registryPrefix and ingress.domainSuffix, see details below

Then install into your cluster with

helm install <<release-name>> smilr -f myvalues.yaml

General Settings

Setting Description Type Default
registryPrefix Set this to your registry name with trailing slash. If left blank images will be pulled from here on Docker Hub. String blank

Ingress Settings

Setting Description Type Default
ingress.domainSuffix DNS Domain name associated with your ingress controller.
• If this is set, the chart will create host based ingress rules, with release name as the subdomain. E.g. if domainSuffix was set to and you created a release called ‘release1’, the ingress will point at your app.
• If you have not set up DNS for your ingress controller then leave this blank. Path based ingress rules will be created based on the release name. E.g. creating a release called ‘release2’ will result in your app being at http://{ingress-ip}/release2/
String blank
ingress.class The class of Ingress to use, if not using AKS and the HTTP Routing add-on, then change this to the class of Ingress you have running in your cluster (e.g. nginx or contour) String addon-http-application-routing
ingress.certIssuer If you have cert-manager configured and installed in your cluster set the name of the ClusterIssuer you wish to use here. The ingress shim will automatically request & issue certs. String blank
ingress.certName If you have an existing TLS cert stored as a secret put the name here, you can use this if you don’t want the cert-manager ingress shim automatically issuing certs (so leave ingress.certIssuer as blank) String blank

Data API Settings

Setting Description Type Default
dataApi.imageTag Which tag to pull, e.g. latest String latest
dataApi.replicas Number of pod replicas to create Int 1
dataApi.mongoConnStr Leave blank to use “in cluster” MongoDB pod & service, set to a value to point to an external or existing MongoDB instance, e.g. Cosmos DB or other. If this value is set then no MonogDB deployment will take place String blank
dataApi.imagePullPolicy One of: Always or IfNotPresent String Always

Frontend Settings

Setting Description Type Default
frontend.imageTag Which tag to pull, e.g. latest String latest
frontend.replicas Number of pod replicas to create Int 1
frontend.imagePullPolicy One of: Always or IfNotPresent String Always

MongoDB Settings

To prevent MongoDB from being deployed at all, set mongodb.enabled: false in this situation, ensure dataApi.mongoConnStr points to an external MongoDB/Cosmos DB instance.

Setting Description Type Default
mongodb.enabled Deploy MongoDB or not, Boolean true

The smilr chart pulls in the official mongodb chart as a dependency. A full list of the MANY settings that can be used are available here

A common scenario is to turn persistence on/off using mongodb.persistence.enabled, for speed in demos it’s set to false as a default. When enabled teh chart will create a persistent volume, and MonogDB startup might be significantly longer

Sentiment API Settings

Running the sentiment analysis ‘in-cluster’ is optional.

Setting Description Type Default
sentiment.enabled Enable or disable running the cognitive services container Boolean false
sentiment.key Cognitive Services API key. Required if enabled String blank
sentiment.region Cognitive Services Azure region. Required if enabled String blank