Skip to content

Use Existing Licenses

Mount Existing Product License

You can pass the license file to a container via mounting to the container's /opt/in directory.

Note: You do not need to do this if you are using your DevOps User/Key. If you have provided license files via the volume mount and a DevOps User/Key, it will ignore the DevOps User/Key.

The /opt/in directory overlays files onto the products runtime filesystem, the license needs to be named correctly and mounted in the exact location the product checks for valid licenses.

Example Mounts

Product File Name Mount Path
PingFederate pingfederate.lic /opt/in/instance/server/default/conf/pingfederate.lic
PingAccess pingaccess.lic /opt/in/instance/conf/pingaccess.lic
PingDirectory PingDirectory.lic /opt/in/pd.profile/server-root/pre-setup/PingDirectory.lic
PingDirectoryProxy PingDirectory.lic /opt/in/pd.profile/server-root/pre-setup/PingDirectory.lic
PingDataSync PingDirectory.lic /opt/in/pd.profile/server-root/pre-setup/PingDirectory.lic
PingAuthorize PingAuthorize.lic /opt/in/pd.profile/server-root/pre-setup/PingAuthorize.lic
PingAuthorize PAP PingAuthorize.lic /opt/in/pd.profile/server-root/pre-setup/PingAuthorize.lic
PingCentral pingcentral.lic /opt/in/instance/conf/pingcentral.lic

Volume Mount Syntax


Sample docker run command with mounted license:

docker run \
  --name pingfederate \
  --volume <local/path/to/pingfederate.lic>:/opt/in/instance/server/default/conf/pingfederate.lic

Sample docker-compose.yaml with mounted license:

version: "2.4"
    image: pingidentity/pingfederate:edge
      - path/to/pingfederate.lic:/opt/in/instance/server/default/conf/pingfederate.lic


Create a Kubernetes secret from the license file

kubectl create secret generic pingfederate-license \

Then mount it to the pod

  - name: pingfederate
    image: pingidentity/pingfederate
      - name: pingfederate-license-volume
        mountPath: "/opt/in/instance/server/default/conf/pingfederate.lic"
        subPath: pingfederate.lic
  - name: pingfederate-license-volume
      secretName: pingfederate-license


Create a Kubernetes secret from the license file

kubectl create secret generic pingfederate-license \

Add the secretVolumes within your values.yaml deployment file

        pingfederate.lic: /opt/in/instance/server/default/conf/pingfederate.lic

Note on updating the product license when mounting it as a file

If you are updating the license file for a product, simply replacing the file on the filesystem may not update the license of the running server.

For PingData products (PingDirectory, PingDataSync, PingAuthorize, and PingDirectoryProxy) the license can be updated by copying the new license to the expected location in the server profile - pd.profile/server-root/pre-setup. After doing so, dsconfig can be used to update the license on the running server. Ensure that the updated license file is still present in the server profile on subsequent restarts of the container.

For example, for PingDirectory:

dsconfig set-license-prop \
  --set "directory-platform-license-key<input-file.lic"

The exact name of the license property in the above example will depend on which PingData product is being used.

For non-PingData products, the license can be updated on the product with the typical method. This process will depend on the product, but will generally be done either through the administrative console or using an API call. See the product documentation for details.