AIStor Key Manager Helm Chart
The following code block includes the full contents of the AIStor Key Manager Helm Chart default values.yaml
and all accompanying documentation.
# Following annotations/labels are applied to all resources created by the Helm chart
annotations: {}
labels: {}
# Allow to override the namespace for all resources
#namespaceOverride: "test"
# The Helm chart will try to auto-detect OpenShift. If it cannot detect OpenShift
# (i.e. when running helm template), then it will default to false. You can
# override this setting to force OpenShift mode.
#forceOpenShift: true
###
# Root key for AIStor Key Manager
keyManager:
###
# The Key Manager name
#
# When the key manager name is not specified, the chart will use the release name
# as the key manager name.
#name: mykms
###
# Specify the container image to use.
# ``image.tag``
# For example, the following sets the image to the ``quay.io/minio/aistor/minkms`` repo and the RELEASE.2025-03-24T19-33-06Z tag.
# The container pulls the image if not already present:
#
# .. code-block:: yaml
#
# image:
# repository: quay.io/minio/aistor/minkms
# tag: RELEASE.2025-03-24T19-33-06Z
# pullPolicy: IfNotPresent
#
# The chart also supports specifying an image based on digest value:
#
# .. code-block:: yaml
#
# image:
# repository: quay.io/minio/aistor/minkms@sha256
# digest: 2ebef198955b802aae9fc2b7789d1d3073e9d1d05c8b70d702aeef7d064a9e56
# pullPolicy: IfNotPresent
#
#
image: {}
# repository: quay.io/minio/aistor/minkms
# tag: RELEASE.2025-03-24T19-33-06Z
# pullPolicy: IfNotPresent
###
#
# An array of Kubernetes secrets to use for pulling images from a private ``image.repository``.
# Only one array element is supported at this time.
imagePullSecret: {}
###
# The Kubernetes secret name that contains MinKMS configuration file
# The secret is expected to have a key named server-config.yaml that holds the configuration
configuration:
#name: mykms-server-config
existingSecret: false
hsm:
#name: mykms-secret
existingSecret: false
#
# Generate key using the `minkms --soft-hsm` command
#
# IMPORTANT: This default value cannot be used and should be replaced
key: "hsm:aes256:????????????????????????????????????????????"
affinity:
nodeAffinity: { }
podAffinity: { }
podAntiAffinity: { }
annotations: { }
###
# Configures external certificate settings for the Key Manager.
certificates:
disableAutoCert: false
###
# Specify an array of Kubernetes TLS secrets, where each entry corresponds to a secret the TLS private key and public certificate pair.
#
# This is used by Key Manager to verify TLS connections from clients using those CAs
# If you omit this and have clients using TLS certificates minted by an external CA, those connections may fail with warnings around certificate verification.
# See `ObjectStore CRD: ObjectStoreSpec <https://min.io/docs/aistor/kubernetes/upstream/reference/operator-crd.html#objectStoreSpec>`__.
certConfig: {}
# commonName: ...
# dnsNames:
# - "..."
# - "..."
# organizationName:
# - "..."
# - "..."
###
# externalCaCertSecret Allows KeyManager pods to verify client certificates signed by a Certificate Authority not in the default pod's trust store.
#
# If the ObjectStore uses custom or user-controlled TLS certificates, you *must* provide the CA for those certificates here
# externalCaCertSecret:
# - name: external-ca-secret-name
# type: kubernetes.io/tls
# - "..."
# externalClientCertSecrets is the secret storing the KMS server certificate if `disableAutoCert: true` and want to provide an externally generated TLS certificate.
#
# You must pass the CA used to sign these certificates to clients like the Object Store to allow for TLS validation during connection.
# externalClientCertSecrets:
# - name: keymanger-server-secret
# type: kubernetes.io/tls
# containerSecurityContext:
# runAsUser: 1000
# runAsGroup: 1000
# runAsNonRoot: true
# allowPrivilegeEscalation: false
# capabilities:
# drop:
# - ALL
# seccompProfile:
# type: RuntimeDefault
# securityContext:
# runAsUser: 1000
# runAsGroup: 1000
# runAsNonRoot: true
# fsGroup: 1000
###
# An array of `Initialization Containers <https://kubernetes.io/docs/concepts/workloads/pods/init-containers/>`__ to initialize the Key Manager pods.
#
# All initialization containers should be run to completion before the Key Manager pod starts.
initContainers: []
# labels: { }
# serviceAccountName: ""
# nodeSelector: { }
###
# The `PodManagement <https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy>`__ policy for Key Manager pods.
# Can be "OrderedReady" or "Parallel"
podManagementPolicy: Parallel
###
# PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods.
# Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass/
priorityClassName: ""
replicas: 3
# resources: { }
# runtimeClassName: ""
# schedulerName: ""
service: {}
# annotations: {}
# labels: {}
# nodePort: 31002
# serviceType: NodePort
# type: NodePort
# serviceExternalTrafficPolicy: Local
###
# The `Kubernetes Service Account <https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/>`__ associated with the Object Store.
serviceAccountName: ""
sideCars: {}
# containers: []
# resources: {}
# volumeClaimTemplates: []
# volumes: []
# tolerations: []
# topologySpreadConstraints: {}
###
# volumeClaimTemplate is used to create a PersistentVolumeClaim for the Key Manager pods.
# The amount of storage requested is specified in the `resources.requests.storage` field
# The default value of '25Mib' should meet the requirements of reasonable production workloads.
# KeyManager may require more storage in workloads with a large number
# of enclaves and master keys. You can use the following formula to
# roughly estimate required storage:
# ( N_enclaves * 200 ) + ( N_keys * 200 ) + ( 64 * 1024 ) = total number of bytes
volumeClaimTemplate:
metadata:
name: mykms-volume
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 25Mi
extraResources: []