Skip to content

Recommendations

Recommended Configuration

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
NameValue
Namespace Layoutglobal.spire.recommendations.namespaceLayout
Namespace Pod Security Standardsglobal.spire.recommendations.namespacePSS
PriorityClassNameglobal.spire.recommendations.priorityClassName
Prometheusglobal.spire.recommendations.prometheus
Strict Modeglobal.spire.recommendations.strictMode
Security Contextsglobal.spire.recommendations.securityContexts

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

Namespace TypeNamespace ValueDefault ValuePurpose
Serverglobal.spire.namespaces.server.namespire-serverServices that should have restricted Kubernetes privileges
Systemglobal.spire.namespaces.system.namespire-systemServices needing Kubernetes privileges
Service NameNamespace Type
SPIRE ServerServer
SPIFFE OIDC Discovery ProviderServer
SPIFFE CSI DriverSystem
SPIRE AgentSystem

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 TypePod Security Standard
ServerRestricted
SystemPrivileged

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.

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.

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.

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.