Trust Manager

This Plugin provides trust-manager to automate the management and distribution of trust bundles across Kubernetes clusters.

Trust-manager is a Kubernetes operator that distributes trust bundles (CA certificates) to workloads running in your cluster. It works alongside cert-manager and enables you to manage CA trust stores declaratively.

Prerequisites

  • cert-manager must be installed on the target cluster before deploying this plugin. Trust-manager depends on cert-manager for its webhook certificates. You can install it using the cert-manager Greenhouse plugin.

Configuration

This section highlights configuration of selected Plugin features. All available configuration options are described in the plugindefinition.yaml.

Trust Bundle

The plugin creates a Bundle resource that distributes trust bundles to selected namespaces. The bundle includes:

  • Default CAs from the trust package image
  • The cluster’s kube-root-ca.crt ConfigMap

Bundle creation can be disabled by setting bundle.enabled to false.

OptionTypeDefaultDescription
bundle.enabledbooltrueWhether to create the Bundle resource
bundle.namestringtrust-bundleName of the Bundle resource to create
namespacesmap{}Namespace selector for the trust bundle target

⚠️ Warning: An empty namespaces selector ({}) matches ALL namespaces, distributing the trust bundle cluster-wide. To restrict distribution, configure a matchLabels or matchExpressions selector.

Namespace Selector Example

namespaces:
  matchExpressions:
    - key: kubernetes.io/metadata.name
      operator: In
      values:
        - my-namespace-1
        - my-namespace-2

Additional Bundle Sources

Additional CA sources can be included in the trust bundle by enabling and configuring additionalSources.

OptionTypeDefaultDescription
additionalSources.enabledboolfalseWhether to include additional bundle sources
additionalSources.sourceslist[]List of additional sources to include

Example

additionalSources:
  enabled: true
  sources:
    - configMap:
        key: ca.crt
        name: my-custom-ca

Cert Exporter

An optional cert-exporter can be deployed to monitor trust bundle certificates and expose Prometheus metrics.

OptionTypeDefaultDescription
certExporter.enabledboolfalseWhether to deploy the cert-exporter
certExporter.namespaceslist[]Namespaces to deploy cert-exporter into
certExporter.image.registrystringdocker.ioRegistry for the cert-exporter image
certExporter.image.repositorystringjoeelliott/cert-exporterRepository for the cert-exporter image
certExporter.image.tagstringv2.13.0Tag for the cert-exporter image

Trust Manager Configuration

OptionTypeDefaultDescription
trust-manager.app.trust.namespacestringtrust-managerNamespace where trust bundles are managed
trust-manager.resources.limits.cpustring200mCPU limit for trust-manager
trust-manager.resources.limits.memorystring256MiMemory limit for trust-manager
trust-manager.resources.requests.cpustring100mCPU request for trust-manager
trust-manager.resources.requests.memorystring128MiMemory request for trust-manager
trust-manager.defaultPackageImage.registrystringquay.ioRegistry for the default trust package image
trust-manager.defaultPackageImage.repositorystringjetstack/trust-pkg-debian-bookwormRepository for the default trust package image