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
- In the KOTS Admin Console, click Sync License from the dashboard.
- 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 versionStep 2: Verify Installed Application
kubectl kots get appsExample output:
SLUG STATUS VERSION
jama-k8s ready 9.6.4Step 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
.yamllicense 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.yamlExample:
--app-version-label=9.17.1Airgap 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.yamlThe 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 healthzResolution
Create an SSH tunnel:
ssh -L 8800:<SERVER IP>:8800 <USER>@localhostPost-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
- Replicated KOTS Release Notes v1.108.0
- Replicated KOTS - kots cli - install
- https://docs.replicated.com/enterprise/updating-licenses
- Success Programs
- Success Catalog
- Datasheets
- Request a Solution Offering or Training from the Success Catalog
Feedback:
We welcome your input! Please sign in to leave any comments, suggestions, or ideas for improvement below.
Comments
3 comments
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.
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?
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.
Please sign in to leave a comment.