docs/concepts/configuration
Mark Chmarny ce828c853d namespace in all yaml samples 2020-05-02 04:04:13 -07:00
..
README.md namespace in all yaml samples 2020-05-02 04:04:13 -07:00

README.md

Configurations

Dapr configurations are settings that enable you to change the behavior of individual Dapr sidecars or globally on the system services in the Dapr control plane.

An example of a per Dapr sidecar setting is configuring trace settings. An example of a control plane setting is mutual TLS which is a global setting on the Sentry system service.

Self hosted sidecar configuration

In self hosted mode the Dapr configuration is a configuration file, for example myappconfig.yaml. By default Dapr side looks in the components/ sub-folder under the folder where you run your application for a configuration file.

A Dapr sidecar can also apply a configuration by using a --config flag to the file path with dapr run CLI command.

Kubernetes sidecar configuration

In Kubernetes mode the Dapr configuration is a Configuration CRD, that is applied to the cluster. For example;

kubectl apply -f myappconfig.yaml

You can use the Dapr CLI to list the Configuration CRDs

dapr configurations -k

A Dapr sidecar can apply a specific configuration by using a dapr.io/config annotation. For example:

  annotations:
    dapr.io/enabled: "true"
    dapr.io/id: "nodeapp"
    dapr.io/port: "3000"
    dapr.io/config: "myappconfig"

Note: There are more Kubernetes annotations available to configure the Dapr sidecar on activation by sidecar Injector system service.

Sidecar configuration settings

The following configuration settings can be applied to Dapr sidecars;

Tracing configuration

The tracing section under the Configuration spec contains the following properties:

tracing:
    enabled: true
    expandParams: true
    includeBody: true

The following table lists the different properties.

Property Type Description
enabled bool Set tracing to be enabled or disabled
expandParams bool When true, expands parameters passed to HTTP endpoints
includeBody bool When true, includes the request body in the tracing event

Middleware configuration

The middleware section under the Configuration spec contains the following properties:

httpPipeline:
  handlers:
    - name: oauth2
      type: middleware.http.oauth2
    - name: uppercase
      type: middleware.http.uppercase

The following table lists the different properties.

Property Type Description
name string name of the middleware component
type string type of middleware component

Example sidecar configuration

apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
  name: myappconfig
  namespace: default
spec:
  tracing:
    enabled: true
    expandParams: true
    includeBody: true
  httpPipeline:
    - name: oauth2
      type: middleware.http.oauth2

Kubernetes control plane configuration

There is a single configuration file called default installed with the control plane system services that applies global settings.

Control plane configuration settings

A Dapr control plane configuration can configure the following settings:

Property Type Description
enabled bool Set mtls to be enabled or disabled
allowedClockSkew string The extra time to give for certificate expiry based on possible clock skew on a machine. Default is 15 minutes.
workloadCertTTL string Time a certificate is valid for. Default is 24 hours

Example control plane configuration

apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
  name: default
  namespace: default
spec:
  mtls:
    enabled: true
    allowedClockSkew: 15m
    workloadCertTTL: 24h

References