When managing customer licenses in the Replicated Vendor Portal, each license record contains several built-in fields. These include customer-specific properties such as:
- Customer name
- Vendor Portal channel assignment
- Customer email
How Built-In License Fields Are Injected
When a customer installs a Helm-based application, Replicated registry automatically injects these license-related values into the Helm chart values under:
.Values.global.replicated.licenseFields
There are two main installation methods:
- Helm CLI: Replicated registry injects values at install.
- KOTS: KOTS behaves similarly by injecting these values during deployment.
Key Difference: Updating License Field Values
Let’s say a customer’s license includes a field:
NGNINX_USER_TOKEN: abcdefg
And this token is referenced in the app’s ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-license
data:
NGNINX_USER_TOKEN: "{{ .Values.global.replicated.licenseFields.NGNINX_USER_TOKEN.value }}"
If the token is updated in the Vendor Portal (e.g., from abcdefg to 123456), the way this change is rolled out differs significantly between Helm and KOTS.
Helm CLI Installations
For applications installed using the Helm CLI, license field updates are straightforward.
After updating the license value in the Vendor Portal, the customer can download the updated chart from Replicated:
helm pull oci://registry.replicated.com/app-slug/unstable/nginx
The new license value (123456) will be injected and reflected in the values.yaml
of this updated Chart.
KOTS Installations
For KOTS installations, the behavior is different.
Even after the updated license value is reflected in the KOTS Admin Console as License Change, deploying the change does not automatically update the ConfigMap.
Why?
KOTS uses a process called WriteUpstream to fetch and render Helm charts. This includes retrieving latest chart values via updatedContent. However, license field updates are not reapplied unless a new version of the application is created, which re-triggers the WriteUpstream
process.
Workaround for KOTS Users
To roll out the updated license field value in KOTS:
- Update the license field value in the Vendor Portal.
- Create a new version of the application in the Vendor Portal.
- Promote this version to the appropriate channel.
- In the KOTS Admin Console, deploy the new version.
Only then will the new licenseFields value be injected and reflected in the rendered manifests like your ConfigMap.