Skip to content

Configuration Properties ​

Server ​

Set these in application.yaml, as arguments, or as environment variables: cosky.store.redis.uri is COSKY_STORE_REDIS_URI.

Store ​

PropertyDefaultMeaning
cosky.store.typeredisredis, or memory for development: nothing survives the process
cosky.store.redis.uriredis://localhost:6379Also takes Sentinel URIs
cosky.store.redis.clusterfalseThe URI is a seed of a Redis Cluster
cosky.store.redis.tail-poll-interval1sHow often each namespace is read when no hint arrives

Authentication ​

PropertyDefaultMeaning
cosky.auth.enabledtrueOff, everyone may do everything. Only for development.
cosky.auth.bootstrap-token$COSKY_BOOTSTRAP_TOKENBecomes the admin ServiceAccount on the first start
cosky.auth.oidc.issuer—Turns OIDC on, together with client-id
cosky.auth.oidc.client-id—The Dashboard's client
cosky.auth.oidc.audienceThe clientWhat a token must be for
cosky.auth.oidc.groups-claimgroupsThe claim holding group names
cosky.auth.oidc.scopesopenid, profileWhat the Dashboard asks for. Some providers send groups only when asked.

Watch and reads ​

PropertyDefaultMeaning
cosky.watch.window10000Events kept for resuming, and in the store's log. Should be at least the peak event rate times the longest reconnection gap.
cosky.watch.window-bytes64MBThe same in bytes, per namespace, in memory and in the store's log.
cosky.watch.progress-interval10sBookmarks sent on idle watches
cosky.watch.max-per-stream1000Watches on one stream
cosky.watch.anti-entropy-interval5mHow often a replica compares its view with the store
cosky.read.min-revision-timeout3sHow long a read or a resume waits for a replica to catch up
cosky.view.topology-flush-interval30sHow often a replica records who watches whom. Edges expire after three times this.

Leases ​

PropertyDefaultMeaning
cosky.lease.reaper-interval1sHow often expired leases are looked for
cosky.lease.reaper-grace30sNo reaping for this long after becoming leader, or after failing to reach the store
cosky.lease.reaper-max-per-tick100Leases reaped per namespace per round
cosky.lease.lock-ttl15sHow long the reaper's leadership lasts without renewal
cosky.lease.protection-threshold0.5Reaping pauses when more than this share of a namespace's leases expire at once
cosky.lease.protection-min-leases10Namespaces with fewer leases have no such pause
cosky.lease.protection-max-duration5mHow long the pause lasts at most

From Spring ​

PropertyDefaultMeaning
server.port8080REST, Dashboard and Actuator
spring.grpc.server.port9090gRPC
server.ssl.bundle, spring.grpc.server.ssl.bundle—TLS
spring.grpc.server.shutdown.grace-period5sHow long open streams get on shutdown
management.tracing.sampling.probability0.1Share of requests traced
management.opentelemetry.tracing.export.otlp.endpoint—Where traces go

Fixed limits ​

These cannot be set in 8.0.

LimitValue
Config content1 MiB
Config historyThe last 20 revisions
Lease TTL5 to 300 seconds, 30 by default
Instance metadata64 entries; keys up to 63 characters, values up to 1024
Labels32 entries; keys up to 63 characters, values up to 253
Description1024 characters
Tokens per ServiceAccount2
One message2 MiB; larger results come in pages or parts
One page of a list500 by default, 1000 at most

Spring Boot starter ​

PropertyDefaultMeaning
cosky.enabledtrueEverything below
cosky.endpointslocalhost:9090Servers to try in turn
cosky.token—Sent on every call
cosky.namespacedefault
cosky.tls.enabledfalseConnect over TLS
cosky.tls.trusted-certificates—A PEM file to trust, for a private CA. The JVM's trust store decides otherwise.
cosky.snapshot.enabledtrueKeep views on disk
cosky.snapshot.dir~/.cosky
cosky.snapshot.include-configtrueSnapshots are not encrypted, so false keeps Config contents off the disk
cosky.registry.enabledtrueRegister this application
cosky.registry.weight10 takes no traffic
cosky.registry.metadata—
cosky.discovery.enabledtrueDiscoveryClient and LoadBalancer
cosky.discovery.load-timeout5sHow long the first read of a service waits
cosky.config.load-timeout5sHow long importing a Config waits
cosky.config.refresh.enabledtruePublish RefreshEvent on changes

The service name is spring.application.name. spring.cloud.service-registry.auto-registration.enabled: false also stops registering.

Released under the Apache License 2.0.