Recommendations

Recommended Configuration

Enable Recommendations

In a production deployment there are a series of recommendations we have. By enabling the recommendations, you can easily get all of them applied to your deployment. If there are particular recommmendations you do not wish to use, you can still set those recommendations to false to disable them.

your-values.yaml snippet:

global:
  spire:
    recommendations:
      enabled: true

Individual Recommentations

Name Value
Namespace Layout global.spire.recommendations.namespaceLayout
Namespace Pod Security Standards global.spire.recommendations.namespacePSS
PriorityClassName global.spire.recommendations.priorityClassName
Prometheus global.spire.recommendations.prometheus
Strict Mode global.spire.recommendations.strictMode
Security Contexts global.spire.recommendations.securityContexts

Namespace Layout

Option global.spire.recommendations.namespaceLayout causes the services to be deployed across the two recommended namespaces for the services:

Namespace Type Namespace Value Default Value Purpose
Server global.spire.namespaces.server.name spire-server Services that should have restricted Kubernetes privileges
System global.spire.namespaces.system.name spire-system Services needing Kubernetes privileges
Service Name Namespace Type
SPIRE Server Server
SPIFFE OIDC Discovery Provider Server
SPIFFE CSI Driver System
SPIRE Agent System

Namespace Pod Security Standards

Option global.spire.recommendations.namespacePSS sets the chart to set the recommended Kubernetes Pod Security Standard labels when namespaces are created with the chart via any of the namespace flags as described in the namespace documentation

On creation, the following Namespaces are assigned their Pod Security Standard:

Namespace Type Pod Security Standard
Server Restricted
System Privileged

Priority Class Name

Option global.spire.recommendations.priorityClassName sets the Kubernetes Priority Class Names so that if there is resource contention on the cluster the SPIRE Services will have a very high priority. SPIRE malfunctioning can cuase other important workloads to malfunction too so we prevent that from happening.

Prometheus

Option global.spire.recommendations.prometheus enables prometheus style exporters to be exposed out of the relevant pods. This enables Prometheus or other compatable services to gather metrics from the various services.

Strict Mode

Option global.spire.recommendations.strictMode adds additional checks on the configuration to help ensure your configuration is production ready. These are settings that are recommended as part of the install instructions.

Security Contexts

Option global.spire.recommendations.securityContexts sets the Kubernetes pod securityContext and container securityContext to settings that meet the required Kubernetes Pod Security Standards as well as addition settings that tighten security as much as the maintainers know how.