Values File Settings for Universal Orchestrator Containers Under Kubernetes

When Universal OrchestratorClosed Keyfactor orchestrators perform a variety of functions, including managing certificate stores and SSH key stores. is installed in a containerized implementation, there are a number of settings that can be configured in the values file to pass to the Helm chart to provide customization. These are provided in the following table.

Table 1234: Universal Orchestrator Containerized Installation Values File Settings

Name

Description

Example Default
containerSecurityContext
allowPrivilegeEscalation

Specifies whether a process in a container can gain more privileges than its parent process. If set to true, processes in the container can escalate their privileges, potentially allowing them to gain additional system capabilities. If set to false, privilege escalation is prevented, which can improve security by limiting the container's ability to perform actions that require higher privileges than the container's default security context allows.

  false
fullnameOverride

Provide the deployment with a completely custom name, overriding both the default name of the Helm release defined in the chart.yaml file and the name of the Helm deployment provided in the Helm install command.

   
image
pullPolicy

The pullPolicy defines when the container image should be pulled from the Keyfactor artifactory. It can be set to Always (pull the image every time the container starts), IfNotPresent (pull only if the image is not already present locally), or Never (never pull the image, only use the locally available version). This helps control image pulling behavior and optimize deployments.

  IfNotPresent
image
repository

The Universal Orchestrator image to retrieve from the Keyfactor artifactory, including the artifactory path.

  • repo.keyfactor.com/images/command/universal-orchestrator-ssl

    This image is for orchestrators that will perform SSL scanning. The SSL image does not support custom extensions.

  • repo.keyfactor.com/images/command/universal-orchestrator

    This image is for orchestrators that will have a custom extension installed and will perform certificate store jobs with the extension.

  repo.keyfactor.com/images/command/universal-orchestrator-ssl
image
tag

The tag specifies the version or variant of the container image to be used. For the Universal Orchestrator, the default value is set to the chart's appVersion, ensuring that the container image corresponds to the version of the application defined in the Helm chart. This provides consistency between the chart version and the deployed application version, ensuring predictable deployments.

Specify a version number to deploy a release of the Universal Orchestrator other than that specified in the Helm chart.

  The chart appVersion
imagePullSecrets
- name

The Kubernetes secret name given to the credentials used to authenticate to the Keyfactor artifactory to retrieve the image.

   
initContainers

This structure is used to add extensions. Examples of use are shown with the example values file (see Kubernetes with Helm).

For more information on this data structure, see:

https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

   
metadata
annotations

Annotations are key-value pairs used to store arbitrary, non-identifying metadata on Kubernetes resources. They are typically used for integration with external tools, storing build information, or documenting deployment details. Annotations do not affect the resource’s behavior and are not used for selection.

   
metadata
labels

Labels are key-value pairs used to categorize and identify Kubernetes resources for easy selection and management. They are often used for grouping resources by application, environment, or version, enabling efficient querying and filtering. Labels are essential for resource selection and grouping in Kubernetes operations.

   
nameOverride

Override the default name of the Helm release defined in the chart.yaml file. For the Universal Orchestrator this value is:

universal-orchestrator

This setting does not override the name of the Helm deployment provided in the Helm install command. For example, if you set this value to abc-uo and execute the following Helm install command:

sudo helm install univ-orch-one --namespace keyfactor-orchestrators --values values.yaml oci://repo.keyfactor.com/charts/command/universal-orchestrator --version 26.2.1

The resulting deployment name would be:

univ-orch-one-abc-uo
   
orchestrator
auth
ad
SecretName
The name of the Kubernetes secret containing the secret values for the service account created in Active Directory to allow the orchestrator to make requests to Keyfactor Command.   basic-credentials
orchestrator
auth
ad
secretPasswordKey
The key within the Kubernetes secret named by secretName referencing the secret value for the service account created in Active Directory to allow the orchestrator to make requests to Keyfactor Command.   password
orchestrator
auth
ad
secretUsernameKey
The key within the Kubernetes secret named by secretName referencing the username for the service account created in Active Directory to allow the orchestrator to make requests to Keyfactor Command.   username
orchestrator
auth
oauth
audience
The audience value for tokens issued from the OAuth identity provider.    
orchestrator
auth
oauth
scope
One or more scopes that should be included in token requests delivered to the OAuth identity provider when making a token request. Multiple scopes should be separated by spaces.    
orchestrator
auth
oauth
secretClientIdKey
The key within the Kubernetes secret named by secretName referencing the ID for the client application created in the OAuth identity provider to allow the orchestrator to make requests to Keyfactor Command.   client-id
orchestrator
auth
oauth
secretClientSecretKey
The key within the Kubernetes secret named by secretName referencing the secret value for the client application created in the OAuth identity provider to allow the orchestrator to make requests to Keyfactor Command.   client-secret
orchestrator
auth
oauth
SecretName
The name of the Kubernetes secret containing the secret values for the client application created in the OAuth identity provider to allow the orchestrator to make requests to Keyfactor Command.   client-credentials
orchestrator
auth
oauth
tokenUrl
The URL of the token endpoint for your OAuth identity provider.    
orchestrator
auth
useAD
Authenticate the orchestrator to Keyfactor Command using Active Directory (True) or OAuth (False).   false
orchestrator
autoRegistrationPoolId
The Keyfactor Command reference GUID of the orchestrator pool for automatic registration during installation. Orchestrators registered in this manner are approved automatically.    
orchestrator
checkCrl
A Boolean that indicates whether the revocation status (CRL) of the SSL certificate on the Keyfactor Command server should be checked when connecting to Keyfactor Command.   true
orchestrator
commandUrl
The URL of the orchestrator API on the Keyfactor Command server. https://keyfactor.keyexample.com/KeyfactorAgents  
orchestrator
env
Other environment variables that should be included.    
orchestrator
logLevel

The container logging level output. Supported values are:

  • OFF: Turns off logging.

  • FATAL: Logs severe errors that cause early termination.

  • ERROR: Logs severe errors and other runtime errors or unexpected conditions that do not cause early termination.

  • WARN: Logs warnings such as deprecated API usage, poor API usage, and other undesirable or unexpected runtime conditions.

  • INFO: Logs all the above, plus general runtime events such as startup and shutdown.

  • DEBUG: Logs all the above, plus detailed information about system behavior and execution flow.

  • TRACE: Logs all available information. This level can result in significant log volume.

  Info
orchestrator
name
The name the orchestrator uses to register itself in Keyfactor Command.   By default, the Kubernetes Pod name is used if this value is not specified.
podSecurityContext
runAsNonRoot

The runAsNonRoot parameter specifies whether the Pod's containers should be run as a non-root user. When set to True, the containers must run as a user other than root, improving security by adhering to the principle of least privilege. If set to False (or not specified), containers may run as the root user, which could increase security risks.

  true
podSecurityContext
runAsUser

The runAsUser parameter specifies the user ID (UID) that the containers in the Pod should run as. By setting this value, you ensure that the containers run with the specified user privileges, rather than the default root user. This enhances security by limiting the container’s access to system resources and following the principle of least privilege. This value is used if runAsNonRoot is True.

  1000
replicas

Defines how many identical instances of an orchestrator run at the same time. Kubernetes ensures that the specified number of instances is maintained, starting new instances if one stops. Increasing replicas can improve availability and distribute workload across multiple instances.

If replicas is greater than 1, a custom orchestrator name cannot be specified using orchestrator > name. In this case, use the Kubernetes fullnameOverride parameter instead.

  1
serviceAccount
annotations

ServiceAccount annotations are key-value pairs used to attach non-identifying metadata to the service account resource. These annotations are typically used for integration with external tools, documenting configurations, or adding extra information relevant to the service account's usage. Like other annotations, they don't affect the resource's functionality and aren't used for selection.

   
serviceAccount
create

Create a new service account (True or False).

For more information on service accounts, see:

https://kubernetes.io/docs/concepts/security/service-accounts/

  true
serviceAccount
name

The name of an existing service account to use, or the name to give to a service account to be created.

  If create is true but the name is not provided, the default name will be used.
sidecarContainers

Additional containers that run alongside the main application container within a pod are known as sidecarContainers. These containers typically provide supporting functionality, such as logging, monitoring, or proxying, without modifying the primary application's behavior. These sidecarContainers share the same network Namespace and storage volumes as the main container, enabling close integration.

For more information on this data structure, see:

https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/

No sidecarContainers are included by default.

   
topologySpreadConstraints

The topologySpreadConstraints parameter defines rules for distributing pods across nodes to ensure high availability and fault tolerance. It allows you to control how pods are spread across different failure domains, such as availability zones or regions, to prevent resource contention and ensure that the application remains functional even if one domain fails.

For more information on this data structure, see:

https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/

No topology spread constraints are included by default.

   
volumeMounts
- name

An array of volume mounts. This parameter specifies the name of the volume mount. The value should match the value set by volumes > -name.

The example values file (see Kubernetes with Helm) includes a volume mount for the config map ca-roots to mount trusted CA certificates.

For more information on this data structure, see:

root-cas  
volumeMounts
mountPath

The mountPath specifies the location within the container where the volume is mounted. This can be a directory or, when used with subPath, a specific file. The container accesses the contents of the volume at this location.

A common use of a volume mount is to provide a CA bundle to the container, allowing it to trust internal or custom certificate authorities.

/etc/pki/tls/certs/ca-bundle.crt  
volumeMounts
subPath

The subPath value identifies the specific file or directory within the volume to mount at mountPath. The volume itself is defined separately (for example, from a ConfigMap or Secret). Use subPath when you want to mount a single item from that volume instead of the entire directory.

ca-certificates.crt  
volumes
- name

An array of volumes. This parameter specifies the name of the volume. The value should match the value set by volumeMounts > -name.

The example values file (see Kubernetes with Helm) includes a volume mount for the config map ca-roots to mount trusted CA certificates.

root-cas  
volumes
configMap
items
- key

Specifies the name of the data entry in the referenced ConfigMap to include in the volume. In the example values file, Kubernetes reads the value stored under the ca-certificates.crt key in the ca-roots ConfigMap and makes it available in the root-ca volume. The path value controls the file name used for that data in the volume.

ca-certificates.crt  
volumes
configMap
items
path

Specifies the file name or relative path created in the volume for the selected ConfigMap key. In the example values file, the data from the ConfigMap key ca-certificates.crt is made available in the root-ca volume as a file named ca-certificates.crt. The volumeMounts > subPath value then mounts that file at /etc/pki/tls/certs/ca-bundle.crt in the container.

ca-certificates.crt  
volumes
configMap
name

Specifies the name of the Kubernetes ConfigMap whose data should be made available through the volume. In the example values file, the root-ca volume is populated from the ca-roots ConfigMap. The items settings select which ConfigMap keys are included and how they appear in the volume.

ca-roots