Skip to main content

Managed Configuration

Managed Configuration is the centralized mechanism for configuring Defakto features. Configuration is applied live without modifying Helm values, CLI flags, or restarting agents or servers.

How It Works

Configuration is expressed as YAML documents, each targeting a specific feature area (a section). Each document has three top-level fields:

section: AgentAttestation   # which feature this configures
schema: v1 # document version
spec: # section-specific configuration
policies:
- name: my_policy
requiredAttestors:
- type: k8s_token
config:
issuerURL: https://oidc.eks.us-east-1.amazonaws.com/id/ABCDEF123456

Configuration documents are scoped to an entity in the Defakto hierarchy. Different sections apply at different scopes:

SectionScope
AgentAttestationCluster
AttributeRedactionCluster
SVIDPolicy *Cluster
WorkloadAttestationCluster
KeyManagerTrust Domain Deployment
UpstreamAuthorityTrust Domain Deployment

* SVIDPolicy is coming end of April 2026. It replaces the per-cluster configuration for SPIFFE ID Templates, X.509-SVID Customization, and JWT-SVID Customization with a managed configuration section. Existing customization methods remain supported.

Applying Configuration

Using spirlctl

Apply one or more section documents to a cluster:

spirlctl config set cluster --id <cluster-id> config.yaml

Multiple documents can be applied in a single command:

spirlctl config set cluster --id <cluster-id> agent-attestation.yaml attribute-redaction.yaml

Apply to a trust domain deployment:

spirlctl config set trust-domain-deployment --id <deployment-id> key-manager.yaml

Using Terraform

resource "spirl_cluster_config" "example" {
cluster_id = spirl_cluster.my_cluster.id
sections = {
AgentAttestation = <<-YAML
section: AgentAttestation
schema: v1
spec:
policies:
- name: k8s_policy
requiredAttestors:
- type: k8s_token
config:
issuerURL: https://oidc.eks.us-east-1.amazonaws.com/id/ABCDEF123456
YAML
}
}

Propagation

Once a configuration document passes validation and is stored, the Defakto control plane syncs it to your Trust Domain Servers automatically. From there, any agent-relevant configuration is further synced to agents. No server or agent restart is required for most configuration changes.

Some settings require a restart (noted on each feature's configuration page).

Validation

Each section has its own validation rules. If a document is invalid, spirlctl returns structured error messages describing the failure before any change is stored.