For helm versions 2.* and below:
  1. Grant Tiller access to create resources in kube-system namespace (see: Tiller and Role-based Access Control):
    # Create a ServiceAccount for Tiller 
    $ kubectl create serviceaccount tiller \ 
    --namespace=kube-system 
    
    # Create a ClusterRoleBinding 
    $ kubectl create clusterrolebinding tiller-cluster-rule \
     --clusterrole=cluster-admin \
     --serviceaccount=kube-system:tiller 
    
    # Patch Tiller's Deployment to use `tiller` service account 
    $ kubectl patch deployment tiller-deploy \
     --namespace=kube-system \
     --patch='{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
  2. Proceed with the instructions provided below for newer helm versions.

 

For helm versions 3.0 and above:
  1. Add Spotinst’s Helm charts repository:
    $ helm repo add spotinst https://spotinst.github.io/spotinst-kubernetes-helm-charts
  2. Update information of available charts:
    $ helm repo update
  3. Install the Spotinst Kubernetes cluster controller:
    helm install spotinst_controller spotinst/spotinst-kubernetes-cluster-controller \
    --set spotinst.token=[TOKEN] \
    --set spotinst.account=[ACCOUNT_ID] \
    --set spotinst.clusterIdentifier=[IDENTIFIER]
    NOTE: Please configure all chart's values using the set command line argument or a values.yaml file.
  4. In case you want to upgrade the Spotinst  controller’s version:
    $ helm upgrade spotinst-kubernetes-cluster-controller spotinst/spotinst-kubernetes-cluster-controller \
        --reuse-values \
        --version <VERSION>

    In order to discover the available Spotinst controller versions, please use the following command:

    $ helm search spotinst/spotinst-kubernetes-cluster-controller \
        --versions