Application Configuration
Configuration for Develocity Provenance Governor is provided through files mounted into the container at startup. The application reads from three configuration directories:
-
properties- Non-sensitive settings (URIs, public keys) -
secrets- Sensitive data (access keys, tokens, private keys) -
policies- YAML policy definitions
Changes to these configuration files take effect after restarting the container (or restarting the Kubernetes deployment).
|
Kubernetes deployments use ConfigMaps and Secrets to populate these directories. See Kubernetes Deployment. Docker deployments use bind-mounted host directories. See Docker Deployment. |
Properties and Secrets Configuration
How to Configure Properties and Secrets
Develocity Provenance Governor reads configuration from two sources:
-
properties- Non-sensitive configuration (URIs, options, public keys) -
secrets- Sensitive configuration (access tokens, private signing keys)
There are two ways to structure configuration in these resources:
Option 1: Individual Property Keys (Recommended for few properties)
Each property is a separate key (Kubernetes) or a separate file (Docker).
-
Kubernetes
-
Docker
apiVersion: v1
kind: ConfigMap
metadata:
name: properties
namespace: develocity-provenance-governor
data:
develocity.instances.prod.uri: "https://develocity.example.com"
s3.instances.prod-bucket.region: "us-east-1"
s3.instances.prod-bucket.bucket-name: "dpg-attestations"
apiVersion: v1
kind: Secret
metadata:
name: secrets
namespace: develocity-provenance-governor
type: Opaque
stringData:
develocity.instances.prod.access-key: "your-access-key-here"
artifactory.instances.main.access-token: "your-token-here"
echo "https://develocity.example.com" > ./dpg-config/properties/develocity.instances.prod.uri
echo "us-east-1" > ./dpg-config/properties/s3.instances.prod-bucket.region
echo "dpg-attestations" > ./dpg-config/properties/s3.instances.prod-bucket.bucket-name
echo "your-access-key-here" > ./dpg-config/secrets/develocity.instances.prod.access-key
echo "your-token-here" > ./dpg-config/secrets/artifactory.instances.main.access-token
Option 2: Single application.yml File (Recommended for many properties)
All properties in a single YAML file.
-
Kubernetes
-
Docker
apiVersion: v1
kind: ConfigMap
metadata:
name: properties
namespace: develocity-provenance-governor
data:
application.yml: |
develocity:
instances:
prod:
uri: "https://develocity.example.com"
s3:
instances:
prod-bucket:
region: "us-east-1"
bucket-name: "dpg-attestations"
apiVersion: v1
kind: Secret
metadata:
name: secrets
namespace: develocity-provenance-governor
type: Opaque
stringData:
application.yml: |
develocity:
instances:
prod:
access-key: "your-access-key-here"
artifactory:
instances:
main:
access-token: "your-token-here"
signing:
keys:
- key: |
-----BEGIN PRIVATE KEY-----
MHcCAQEEIL...
-----END PRIVATE KEY-----
./dpg-config/properties/application.ymldevelocity:
instances:
prod:
uri: "https://develocity.example.com"
s3:
instances:
prod-bucket:
region: "us-east-1"
bucket-name: "dpg-attestations"
./dpg-config/secrets/application.ymldevelocity:
instances:
prod:
access-key: "your-access-key-here"
artifactory:
instances:
main:
access-token: "your-token-here"
signing:
keys:
- key: |
-----BEGIN PRIVATE KEY-----
MHcCAQEEIL...
-----END PRIVATE KEY-----
|
Choose the approach that works best for your organization:
Both approaches can be mixed - some properties in individual keys/files, others in application.yml files. |
Configuration Topics
Configure Develocity Provenance Governor in the following order:
| Component | Description | Required |
|---|---|---|
Connect to Develocity instance(s) to retrieve build scan data for attestation generation |
✓ Required |
|
Configure at least one storage backend: Artifactory or S3 |
✓ Required (choose one or both) |
|
Generate and configure signing keys for cryptographically signing attestations |
Recommended |
|
Define who can access which resources via Access Control policies |
✓ Required |
|
Configure HMAC-signed presigned URLs for credential-free, time-limited access to package attestation data |
Optional |
|
Define Policy Scan™ definitions and validation rules for evaluating packages |
Optional (required for policy evaluation) |
|
Tune retry, concurrency, and resilience for OSV and OSI API communication |
Optional |
|
Minimum viable configuration requires:
Recommended configuration also includes:
|