
# Pinning Versions

## Old Version

If you want to test rolling updates and upgrades to a new minor version, check out the *e90* sample:

This sample installs version 9.0.1400 for testing. Because cluster node discovery changed with a newer jGroups version in nscale, the chart detects the older version and enables the legacy discovery mechanism so the Pod can find its peers on versions prior to 9.1.1200.

```
helm install \
    --values samples/empty.yaml \
    --values samples/demo.yaml \
    --values versions/9.0.1400.yaml \
    sample-e90 nplus/nplus-instance
```

## New Version Sample

Some nscale versions are license compatible, meaning a 9.1 license file can also run nscale 9.0 software. But that is not always the case.

So you may need to set individual licenses per instance:

```
kubectl create secret generic nscale-license-e10 \
  --from-file=license.xml=license10.xml
```

Check that the license has been created:

```
# kubectl get secret | grep license
nscale-license          Opaque              1      7d22h
nscale-license-e10      Opaque              1      17s
```

Now install the instance:

```
helm upgrade -i \
    --values samples/empty.yaml \
    --values samples/demo.yaml \
    --values versions/10.0.yaml \
    --set global.license=nscale-license-e10 \
    sample-e10 nplus/nplus-instance
```

## Probes

Older versions might not work with the newer/current probes and may not start even though they are actually running. You can override the probes to match older versions, for example:

```
nappl:
  probes:
    livenessProbe:
      httpGet:
        path: /index.html
        port: 8080
      initialDelaySeconds: 60
      timeoutSeconds: 3
      failureThreshold: 5
    readinessProbe:
      httpGet:
        path: /index.html
        port: 8080
      initialDelaySeconds: 60
      timeoutSeconds: 3
      failureThreshold: 5
```
