How to Update Your Application License

Chris
Chris

Published Date: December 5, 2023

Validated: Yes

Audience: Everyone

Products and Versions Covered:

  • Jama Connect® version(s)
  • Self-hosted, Replicated KOTS

Summary

This article explains how to update a Jama Connect® application license in a KOTS (Kubernetes Off-The-Shelf) environment. It covers both the standard license sync process and the manual update process when synchronization fails.

Under normal conditions, license updates occur through the KOTS Admin Console by syncing and deploying a new configuration sequence. However, in some cases, the updated license may not appear or may be associated with a different application version. When this occurs, a manual license update is required.

This article also explains the root cause of the issue: license synchronization failures between the KOTS Admin Console and the deployed application version.

Resolution

Standard License Update Process

  1. In the KOTS Admin Console, click Sync License from the dashboard. 
  2. Confirm that a new sequence is created with the updated license:
    • Alternatively, you can run:
kubectl kots get versions jama-k8s

      

In the above example, sequence 6 is currently deployed. The process of 'syncing' the license creates a new configuration sequence, which must be deployed before any changes take place in the application

3. You must DEPLOY the updated sequence to apply the license changes.

For more details, refer to:
https://docs.replicated.com/enterprise/updating-licenses


Manual License Update Process

Step 1: Verify KOTS Version

kubectl kots version

Step 2: Verify Installed Application

kubectl kots get apps

Example output:

SLUG        STATUS   VERSION
jama-k8s    ready    9.6.4
Screenshot 2026-03-30 at 5.04.23 PM.png

Step 3: Export Current Configuration

For KOTS version v1.108.0 or later:

kubectl kots get config jama-k8s -n default --current --decrypt > config.yaml

For earlier versions, specify the deployed sequence:

kubectl kots get config jama-k8s -n default --sequence=<SEQUENCE_NUMBER> --decrypt > config.yaml

Step 4: Remove Existing Application

kubectl kots remove jama-k8s -n default -f

Step 5: Prepare License File

  • Copy your .yaml license file to the application server

Step 6: Reinstall Application with Updated License

kubectl kots install jama-k8s/standardkots \
--app-version-label=<JAMA_APP_VERSION> \
--license-file /path/to/your/license.yaml \
--namespace default \
--config-values /path/to/your/config.yaml

Example:

--app-version-label=9.17.1

Airgap Environments

Include the airgap bundle:

kubectl kots install jama-k8s/standardkots \
--airgap-bundle /path/to/jama.airgap \
--app-version-label=<JAMA_APP_VERSION> \
--license-file /path/to/your/license.yaml \
--namespace default \
--config-values /path/to/your/config.yaml

The screenshot below demonstrates a successful operation. After that, the KOTS Admin Console should be available with the new license and config restored.

Step 7: Disable Automatic Updates (Recommended)

In the KOTS Admin Console:

  • Navigate to Dashboard
  • Select Configure automatic updates
  • Set:
    Do not automatically deploy new versions

And set the "Automatically deploy new versions" setting to "Do not automatically deploy new versions".

Troubleshooting

Error: 

failed to forward port: failed to query healthz

Resolution
Create an SSH tunnel:

ssh -L 8800:<SERVER IP>:8800 <USER>@localhost

Post-Update Issues

  • Tenant errors (e.g., "tenant is closed")
    → Follow: KOTS - Reset tenant state
  • License validation errors
    → Follow: Failed License Upload During KOTS Install

If, after manually updating the license, you run into an error where the application returns an error page stating the "tenant is closed" or "tenant does not exist" then please follow the steps in KOTS - Reset tenant state.

If you run into an error validating the installation, please follow the steps in Failed License Upload During KOTS Install

Additional Resources

Feedback:
We welcome your input! Please sign in to leave any comments, suggestions, or ideas for improvement below.

 

 

 

Was this article helpful?

1 out of 1 found this helpful

Have more questions? Submit a request

Comments

3 comments

  • Comment author
    Jenna

    Update: This procedure can also be used to swap license files in KOTS without disrupting the database and assets. 

    Use case: This was done successfully in a testing environment for a Jama Connect customer that wanted to keep their production environment up, create a new instance and migrate data over, then verify the data before decommissioning the previous app server and switch the license on the new instance from nonProd to prod.

    0
  • Comment author
    Lien Bäcker

    we are using Release 9.0.3. Following the steps given above,  at the stage “Wating for admin Console to be ready”, following error comes up.

    Deploying Admin Console
      • Waiting for Admin Console to be ready ✓
    Error: failed to forward port: failed to query healthz: Get "http://localhost:8800/healthz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

    Are we missing something?

    0
  • Comment author
    Alexander Cerrato

    I had a customer ask for their YAML license file and where they can find it. Eventually they found it. It would be great if this article would mention how to obtain it as well.

    1

Please sign in to leave a comment.