How to: Roll Out License Custom Fields Value Changes

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:

  1. Update the license field value in the Vendor Portal.
  2. Create a new version of the application in the Vendor Portal.
  3. Promote this version to the appropriate channel.
  4. 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.