Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
329 commits
Select commit Hold shift + click to select a range
60504e2
only log the command no arguments to avoid leaking secrets
skourta Feb 12, 2026
ea71353
refactored start procedure and added rene feedback
skourta Feb 13, 2026
ab3e4c5
fix unit tests and fine tune statuses
skourta Feb 13, 2026
99562f0
fixes for rene feedback
skourta Feb 13, 2026
4258bd5
remove get_private_ip and replace it with bind_address
skourta Feb 13, 2026
d00c206
add unit tests for peer relation changed
skourta Feb 13, 2026
ee7f331
fix some feedback from mehdi
skourta Feb 16, 2026
0c4eb4e
refactor client and add health checks
skourta Feb 16, 2026
994e852
mock tenacity nap times and fix unit tests
skourta Feb 16, 2026
53a6285
update name of charmed_operator_password for units
skourta Feb 16, 2026
7e616ed
remove unnecessary check on admin app password
skourta Feb 16, 2026
a9f33da
add alive check in start
skourta Feb 16, 2026
d5c3a01
remove refresh argument from reading secret
skourta Feb 17, 2026
bf491e8
read and manage sentinel config via a dict
skourta Feb 17, 2026
27a6e23
move workload fields to be body annotations
skourta Feb 17, 2026
178f560
some minor changes based on feedback
skourta Feb 17, 2026
ed477cf
simplify and generalise start up logic
skourta Feb 18, 2026
d4aa771
remove unnecessary state and fix unit tests
skourta Feb 18, 2026
3beea80
only leader starts priomary if num of units is 0
skourta Feb 18, 2026
eeddaad
clean the cases where primary ip is None and set a blocked status if …
skourta Feb 18, 2026
f2e80b0
extend unit test coverage and rename unit tests to reflect business l…
skourta Feb 18, 2026
68b89a4
leader has to start primary because non leaders might not see all uni…
skourta Feb 18, 2026
250e39b
add running status for better UX
skourta Feb 19, 2026
147240f
move to glide and wrap client requests in helpers
skourta Feb 19, 2026
cb3e0ec
install charmed-valkey snap
skourta Feb 19, 2026
95abc33
add sudo and snap to allowlist
skourta Feb 19, 2026
7d51cb4
mv from snap to downloading cli
skourta Feb 19, 2026
c1fa74e
switch creating glie client to context manager to close connection au…
skourta Feb 20, 2026
dfbde41
wip scale down
skourta Feb 20, 2026
ec578b7
revert back is sentinel discovered argument
skourta Feb 20, 2026
a14839d
statuses for scale down
skourta Feb 24, 2026
487ec64
refactor client tp separate valkey and sentinel and use json where po…
skourta Feb 25, 2026
b300ccd
only recompute model when writing to databag
skourta Feb 25, 2026
40789bf
client refactoring and added delief
skourta Feb 25, 2026
46cb2a9
refactor locks to adhere to ux of advanced rollingops
skourta Feb 25, 2026
01e8a73
refactor managers to use the new clients
skourta Feb 25, 2026
c825223
refactor verify_expected_replica_count
skourta Feb 25, 2026
f9c37f8
update base events with new refactoring
skourta Feb 25, 2026
674b96f
remove unnecessary debug log
skourta Feb 25, 2026
610d333
Merge branch '9/edge' into DPE-9324-scale-down
skourta Feb 26, 2026
733dbd1
shorten statuses
skourta Feb 26, 2026
b1258b4
fix unit tests and change some function names on client
skourta Feb 26, 2026
cbe8f66
remove unnecessary catches
skourta Feb 26, 2026
b30e1e9
add scale down unit tests
skourta Feb 26, 2026
e2ba6ef
only try to update passwords on valkey if it is started
skourta Feb 26, 2026
ba0ccc0
add k8s scaledown tests
skourta Feb 26, 2026
9949da3
fix unit tests
skourta Feb 26, 2026
d4cfb59
handle scale down to 0
skourta Feb 26, 2026
ac4348b
fix unit test
skourta Feb 26, 2026
3fed063
add scaling down to 0 and back
skourta Feb 26, 2026
e2a4964
clear cw
skourta Feb 26, 2026
7288292
fix linter
skourta Feb 26, 2026
b521089
add remove app test
skourta Feb 26, 2026
e6267cb
copilot feedback
skourta Feb 27, 2026
f103091
port fix from tls for leader elected event
skourta Feb 27, 2026
a8f8912
cw use databag to filter units and use helper to remove units on both…
skourta Mar 3, 2026
d796c8c
Merge branch '9/edge' into DPE-9324-scale-down
skourta Mar 3, 2026
7ea8175
add c_writes to scale down
skourta Mar 3, 2026
64bb344
fail faster if any hostname is down
skourta Mar 3, 2026
320d17d
rename tests so we can easily run all scale down tests using -k
skourta Mar 3, 2026
ce045e4
vm agnostic test
skourta Mar 3, 2026
71008c5
add scale down primary test on vm
skourta Mar 3, 2026
3fef2bf
feedback from rene
skourta Mar 4, 2026
f500b43
add a todo comment
skourta Mar 4, 2026
49f8826
lint and add clearing c_writes
skourta Mar 4, 2026
fde927f
increase cw request timeout to 1s
skourta Mar 4, 2026
f56dd74
remove unneeded raises and augment unit test coverage for sentinel ma…
skourta Mar 4, 2026
2dee78c
reduce request timeout
skourta Mar 4, 2026
d327afd
Merge branch '9/edge' into DPE-9324-scale-down
skourta Mar 4, 2026
5fe97f0
fix conflicts
skourta Mar 4, 2026
f15a45a
add is_tls_enabled property
skourta Mar 10, 2026
c8e40d6
Merge branch '9/edge' into DPE-9324-scale-down
skourta Mar 10, 2026
f87db82
add primary ip to valkey lock
skourta Mar 10, 2026
10940e4
try to get primary ip for 40s and clean certicicates on leader going out
skourta Mar 10, 2026
d6a0bce
fix and increase unit tests
skourta Mar 10, 2026
75a90d3
lint
skourta Mar 10, 2026
867e699
feedback from rene
skourta Mar 11, 2026
0bf408e
[DPE-9373]: Use hostnames instead of IPs for k8s (#19)
skourta Mar 13, 2026
c02cf29
add timestamp to lock
skourta Mar 16, 2026
184119c
fix lock bug
skourta Mar 16, 2026
2be86dd
network cut on k8s
skourta Mar 16, 2026
3412ba9
add handling ip change certs and tls in network cuts PR
skourta Mar 16, 2026
08fc054
skip tls on k8s and add spread files
skourta Mar 16, 2026
e798fc1
fix linter
skourta Mar 16, 2026
a0c6017
clean cwrites even when test fails
skourta Mar 16, 2026
d00a189
remove f strings in loggers
skourta Mar 17, 2026
abe43b9
charm level feedback
skourta Mar 17, 2026
d801de9
rename ip to endpoint and add existing app
skourta Mar 17, 2026
4dc6340
add support for existing app in scale tests
skourta Mar 17, 2026
4e399a8
patch is_failover_in_progress
skourta Mar 17, 2026
335100b
Merge branch 'DPE-9324-scale-down' into dpe-9325-network-ha
skourta Mar 17, 2026
b229e7d
simplify code
skourta Mar 17, 2026
be5bd08
fix bug and unit tests
skourta Mar 17, 2026
d62ea9b
add network cut without ip change for vm
skourta Mar 18, 2026
cb1138d
Merge branch '9/edge' into DPE-9324-scale-down
skourta Mar 18, 2026
a931e7c
only remove APP_NAME in tests
skourta Mar 18, 2026
d0aeff6
minor feedback
skourta Mar 18, 2026
abc1996
Merge branch 'DPE-9324-scale-down' into dpe-9325-network-ha
skourta Mar 18, 2026
dacaaba
small refactor
skourta Mar 18, 2026
a883967
fix bug in config gen
skourta Mar 18, 2026
2a78390
run tls on k8s too
skourta Mar 18, 2026
1ca51a3
add tls on for k8s
skourta Mar 18, 2026
3fbf5c9
remove skip on build and deploy
skourta Mar 18, 2026
e61cf2c
do not crash if deletion on key fails on valkey on cw clearing
skourta Mar 18, 2026
b9b961a
add rolling restart for ip change
skourta Mar 18, 2026
95c6a04
Merge branch '9/edge' into dpe-9325-network-ha
skourta Mar 18, 2026
b3d25be
add kill primary db process test
skourta Mar 19, 2026
c2f817c
fix test for k8s
skourta Mar 19, 2026
512c73d
optimize lock and start procedure
skourta Mar 19, 2026
54468c9
add freeze db test
skourta Mar 19, 2026
3ea19b3
add full cluster restart test
skourta Mar 19, 2026
af3197a
full cluster crash
skourta Mar 19, 2026
43e4de2
add reboot primary test
skourta Mar 19, 2026
7f233ec
add spread files
skourta Mar 19, 2026
1ca413a
increase idle time to 30s after password update
skourta Mar 19, 2026
daafcef
full cluster reboot test
skourta Mar 19, 2026
83867bd
update cw endoiints
skourta Mar 19, 2026
fc3a9e3
add error handling on restart
skourta Mar 23, 2026
08f60ea
invert tls client condition
skourta Mar 23, 2026
086b196
add source of scripts and fix typo
skourta Mar 23, 2026
52d4dac
feedback fixes
skourta Mar 23, 2026
e6d1def
check old primary is down and new ip in sentinels
skourta Mar 23, 2026
86f6784
add checking sentinel state for ip change and no ip change
skourta Mar 23, 2026
586c863
always use juju exec to get ips
skourta Mar 23, 2026
0da51e9
remove comment
skourta Mar 23, 2026
3cf67a4
Merge branch '9/edge' into dpe-9325-network-ha
skourta Mar 23, 2026
76d22f4
fix network test for k8s
skourta Mar 23, 2026
3c9f9cd
Merge branch '9/edge' into dpe-9325-network-ha
skourta Mar 24, 2026
81b2b4f
Merge branch 'dpe-9325-network-ha' into dpe-9326-failover-tests
skourta Mar 26, 2026
0d1ccfd
clean import stabilize test and add some feedback
skourta Mar 26, 2026
2166af0
add tls version of failover tests
skourta Mar 26, 2026
8994b60
spred files for tls on failover
skourta Mar 26, 2026
ba70fe6
feedback and refactoring
skourta Apr 3, 2026
9eceeb5
stabilize test by retrying quorum
skourta Apr 3, 2026
3662194
use insecure tls for tests
skourta Apr 3, 2026
e572db5
add retry to stabilize test
skourta Apr 5, 2026
ff77068
insecure tls in cw
skourta Apr 5, 2026
93c6026
Merge branch 'dpe-9325-network-ha' into dpe-9326-failover-tests
skourta Apr 6, 2026
53a3d3d
merge 9/edge
skourta Apr 7, 2026
fdc1133
remove merge conflict
skourta Apr 7, 2026
5ffa0ca
fix bug in build sans
skourta Apr 7, 2026
f4ff587
fix unit test
skourta Apr 7, 2026
97c3ebf
Merge branch '9/edge' into dpe-9325-network-ha
skourta Apr 7, 2026
30a4fd8
change consistency to check same list values on all instances
skourta Apr 8, 2026
a8cabea
merge 9/edge
skourta Apr 8, 2026
b8e9346
always wait and write the last successful value on disk instead of la…
skourta Apr 8, 2026
40df36c
fix get quorum
skourta Apr 8, 2026
3e4f2c4
fix ip adding to certs in k8s
skourta Apr 8, 2026
76363a0
fix fetching endpoint on k8s
skourta Apr 8, 2026
4cc0004
fix log
skourta Apr 8, 2026
e2659a8
use ip and exlcude old primary
skourta Apr 8, 2026
6de9442
fix log
skourta Apr 8, 2026
d6a3757
fix retrying for primary ip and reduce retry attempts
skourta Apr 8, 2026
f4fad06
reraise
skourta Apr 8, 2026
49e5f22
revert back retries for quorum
skourta Apr 8, 2026
9739b69
tolerate delays in certificate update
skourta Apr 8, 2026
fa04a11
use juju status ips and wait until they change
skourta Apr 9, 2026
6a34fd8
add init charm for baseline
skourta Apr 10, 2026
62201f9
change health status from running to normal and use databag to sync
skourta Apr 10, 2026
3ca0211
fine tune exception handling
skourta Apr 10, 2026
fbefb83
add cw
skourta Apr 10, 2026
0ffba89
redirect logs to file and read certs as base64
skourta Apr 10, 2026
7e6568b
update description of configs
skourta Apr 10, 2026
788f6a3
add config changes and clearing cw
skourta Apr 10, 2026
d8decd1
reafactor code
skourta Apr 10, 2026
c1e6840
Merge branch 'dpe-9325-network-ha' into dpe-9326-failover-tests
skourta Apr 10, 2026
2b59f17
add default username
skourta Apr 10, 2026
166ecd0
add sentinel check and some refactoring
skourta Apr 10, 2026
3852c75
add option to clear cw on stop
skourta Apr 11, 2026
e81365d
add clear cw action
skourta Apr 11, 2026
fc54748
rename ca-cert to cacert to match valkeycli
skourta Apr 11, 2026
6d6bcd5
change default for connection-source to config
skourta Apr 11, 2026
82142f5
add helpers for cw charm
skourta Apr 11, 2026
31707ed
small refactoring
skourta Apr 11, 2026
69b053a
rename get_cluster_hostnames to get_cluster_addresses
skourta Apr 13, 2026
e8450d1
add get cw state action
skourta Apr 13, 2026
ac98429
Merge branch 'dpe-9325-network-ha' into client-charm-cw
skourta Apr 13, 2026
db99f80
update integration tests to use charm cw
skourta Apr 13, 2026
bb0be51
add assert cw increasing in requirer charm
skourta Apr 13, 2026
4db9c6b
change assertion to action
skourta Apr 13, 2026
58f3f3c
add reraise
skourta Apr 13, 2026
9b7b18d
Merge branch 'dpe-9325-network-ha' into client-charm-cw
skourta Apr 13, 2026
afa1b17
stop cw at end of test
skourta Apr 13, 2026
bfe667c
remove reraise from unit reachable lxd
skourta Apr 13, 2026
5d7a986
Merge branch 'dpe-9325-network-ha' into client-charm-cw
skourta Apr 13, 2026
c0b968e
update 0 to leader
skourta Apr 13, 2026
0c9263b
rename cw runner to glide runner
skourta Apr 13, 2026
698c0d4
add execute action
skourta Apr 13, 2026
deeeb0d
Merge branch 'dpe-9325-network-ha' into dpe-9326-failover-tests
skourta Apr 13, 2026
5739065
merge network and add restart test
skourta Apr 13, 2026
7247512
add tls to assert cw consistent
skourta Apr 14, 2026
d4a2c8e
Merge branch '9/edge' into dpe-9325-network-ha
skourta Apr 14, 2026
44054b5
Merge branch 'dpe-9325-network-ha' into dpe-9326-failover-tests
skourta Apr 14, 2026
524d015
Merge branch 'dpe-9325-network-ha' into client-charm-cw
skourta Apr 14, 2026
ce662bc
move getting replica number to use action from dummy charm
skourta Apr 14, 2026
aff79db
configure cw runner with DN for k8s
skourta Apr 14, 2026
f3058a8
move away from juju exec back to status ip
skourta Apr 14, 2026
cbdd17d
Merge branch 'dpe-9325-network-ha' into dpe-9326-failover-tests
skourta Apr 14, 2026
16210dd
add substrate to get_ip_from_unit in failover
skourta Apr 14, 2026
ed03a55
move all config options to a single glide config option
skourta Apr 14, 2026
05e2765
use an action param to pass config for execute action
skourta Apr 14, 2026
f339094
Merge branch '9/edge' into dpe-9325-network-ha
skourta Apr 14, 2026
80b1260
Merge branch 'dpe-9325-network-ha' into dpe-9326-failover-tests
skourta Apr 14, 2026
0a3654b
Merge branch 'dpe-9325-network-ha' into client-charm-cw
skourta Apr 14, 2026
cbaa80f
fix linter issues
skourta Apr 14, 2026
b3d8ce1
Merge branch 'dpe-9326-failover-tests' into client-charm-cw
skourta Apr 14, 2026
98cdeda
migrate test_charm
skourta Apr 14, 2026
f12e258
fix status for secret access
skourta Apr 14, 2026
69426cd
migrate test_tls
skourta Apr 14, 2026
23af303
add deploying glide runner to build and deploy
skourta Apr 14, 2026
19e07d2
reorder statuses for tests and migrate test_private_key
skourta Apr 14, 2026
57ad1fb
migrate certificate rotation
skourta Apr 14, 2026
3c3556f
fix lint
skourta Apr 14, 2026
2398c82
downgrade waiting for valkey from running status
skourta Apr 14, 2026
c229872
migrate certificate options
skourta Apr 14, 2026
85393a3
Merge branch '9/edge' into dpe-9325-network-ha
skourta Apr 15, 2026
b4e1805
Merge branch 'dpe-9325-network-ha' into dpe-9326-failover-tests
skourta Apr 15, 2026
04391f3
Merge branch 'dpe-9326-failover-tests' into client-charm-cw
skourta Apr 15, 2026
2827187
Merge branch '9/edge' into dpe-9325-network-ha
skourta Apr 15, 2026
ae1ce59
Merge branch 'dpe-9325-network-ha' into dpe-9326-failover-tests
skourta Apr 15, 2026
3d63551
Merge branch 'dpe-9326-failover-tests' into client-charm-cw
skourta Apr 15, 2026
27fe93c
merge 9/edge
skourta Apr 15, 2026
64de12b
use endpoints where needed
skourta Apr 15, 2026
91f3cfe
Merge branch 'dpe-9326-failover-tests' into client-charm-cw
skourta Apr 15, 2026
27f0e7d
fix certiicates options
skourta Apr 15, 2026
2bdd6c9
add seed data action to requirer charm
skourta Apr 15, 2026
31a2ac9
migrate test_scaling
skourta Apr 15, 2026
145c518
network cut
skourta Apr 15, 2026
b44eec6
port failover tests
skourta Apr 15, 2026
2f5e85e
format
skourta Apr 15, 2026
27575bc
add tls_enabled in get number of replicas and remove unused code
skourta Apr 15, 2026
6914b3f
add tls enabled to consistency check on failover
skourta Apr 15, 2026
bd1f717
feedback
skourta Apr 17, 2026
03b0d6b
use single client
skourta Apr 17, 2026
cc781de
add back conditions for client integration tests
skourta Apr 17, 2026
18041a3
remove unused functions from glide helpers
skourta Apr 17, 2026
755bb34
Merge branch '9/edge' into client-charm-cw
skourta Apr 17, 2026
36ed96d
fix llen
skourta Apr 17, 2026
5e48085
lint
skourta Apr 17, 2026
66845b2
refactor
skourta Apr 17, 2026
d94a2e6
refactoring and fix copilot feedback
skourta Apr 17, 2026
0b71297
retry failed writes
skourta Apr 17, 2026
ec674b8
only recreate client if closingerror
skourta Apr 20, 2026
387a52d
Merge branch '9/edge' into client-charm-cw
skourta Apr 20, 2026
e603c7f
fix cw on failover
skourta Apr 21, 2026
2c18940
always recreate client on exception
skourta Apr 21, 2026
8f6602b
Merge branch '9/edge' into client-charm-cw
skourta Apr 21, 2026
d547a86
create client in try block
skourta Apr 21, 2026
2f77d13
Merge branch '9/edge' into client-charm-cw
skourta Apr 21, 2026
535cb65
refresh snapd to candidate
skourta Apr 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions src/events/base_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
Substrate,
TLSState,
)
from statuses import CharmStatuses, ClusterStatuses, ScaleDownStatuses, StartStatuses
from statuses import CharmStatuses, ClusterStatuses, ScaleDownStatuses

if TYPE_CHECKING:
from charm import ValkeyCharm
Expand Down Expand Up @@ -197,11 +197,8 @@ def _on_start(self, event: ops.StartEvent) -> None:
event.defer()
return

self.charm.status.set_running_status(
StartStatuses.SERVICE_STARTING.value,
scope="unit",
statuses_state=self.charm.state.statuses,
component_name=self.charm.cluster_manager.name,
self.charm.state.unit_server.update(
{"start_state": StartState.STARTING_WAITING_VALKEY.value}
)
self.unit_fully_started.emit(
is_primary=primary_endpoint
Expand Down
6 changes: 5 additions & 1 deletion src/managers/cluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,11 @@ def reload_tls_settings(self, tls_config: dict[str, str]) -> None:

def get_statuses(self, scope: Scope, recompute: bool = False) -> list[StatusObject]:
"""Compute the cluster manager's statuses."""
status_list: list[StatusObject] = []
status_list: list[StatusObject] = self.state.statuses.get(
scope=scope,
component=self.name,
running_status_only=True,
).root

# Peer relation not established yet, or model not built yet for unit or app
if not self.state.cluster.model or not self.state.unit_server.model:
Expand Down
6 changes: 3 additions & 3 deletions src/managers/tls.py
Original file line number Diff line number Diff line change
Expand Up @@ -438,14 +438,14 @@ def get_statuses(self, scope: Scope, recompute: bool = False) -> list[StatusObje
):
status_list.append(TLSStatuses.DISABLING_CLIENT_TLS_FAILED.value)

if self.state.cluster.tls_client_private_key and not self.state.client_tls_relation:
status_list.append(TLSStatuses.PRIVATE_KEY_BUT_NO_TLS.value)

if (
private_key_id := self.state.config.get(TLS_CLIENT_PRIVATE_KEY_CONFIG)
) and self.read_and_validate_private_key(str(private_key_id)) is None:
status_list.append(TLSStatuses.PRIVATE_KEY_INVALID.value)

if self.state.cluster.tls_client_private_key and not self.state.client_tls_relation:
status_list.append(TLSStatuses.PRIVATE_KEY_BUT_NO_TLS.value)

if self.state.unit_server.tls_client_state == TLSState.TO_NO_TLS:
status_list.append(TLSStatuses.DISABLING_CLIENT_TLS.value)

Expand Down
1 change: 0 additions & 1 deletion src/statuses.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ class StartStatuses(Enum):
SERVICE_STARTING = StatusObject(
status="maintenance",
message="Waiting for Valkey to start...",
running="async",
)
WAITING_FOR_SENTINEL_DISCOVERY = StatusObject(
status="maintenance",
Expand Down
3 changes: 3 additions & 0 deletions src/workload_vm.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,9 @@ def install(self, revision: str | None = None, retry_and_raise: bool = True) ->
revision = str(SNAP_REVISIONS[platform.machine()])

try:
# TODO revesit this logic after snapd update is released
# refresh snapd to use candidate to bypass risv check issue.
snap.add("snapd", channel="candidate")
# as long as 26.04 is not stable, we need to install the core26 snap from beta
snap.add("core26", channel="beta")

Expand Down
91 changes: 90 additions & 1 deletion tests/integration/clients/requirer-charm/charmcraft.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -103,20 +103,109 @@ actions:
description: The username to use
type: string

execute:
description: Execute an arbitrary Valkey command through the Glide client
params:
command:
description: The Valkey command to execute (e.g. "PING", "SET key value", "GET key")
type: string
config:
description: >
Serialized GlideClientConfiguration JSON produced by
glide_helpers.serialize_glide_config(). The charm connects using this
configuration directly, independent of any relation or glide-config
option.
type: string

get-credentials:
description: Action for fetching all available credentials from relations.

start-continuous-writes:
description: >
Start a background daemon that continuously writes incrementing integers
to a Valkey list using the relation-provided credentials. The daemon
survives between action calls and can be stopped with
stop-continuous-writes.
params:
sleep-interval:
description: Seconds to sleep between writes (float, default 1.0)
type: number
default: 1.0
clear-existing:
description: Delete any existing list values before starting (default true)
type: boolean
default: true

get-continuous-writes-state:
description: >
Return the last written value and total count from the continuous-writes
state file without stopping the daemon.

assert-continuous-writes-increasing:
description: >
Assert that the continuous-writes daemon is actively writing by sampling
the state file twice with a configurable wait between samples and
verifying the count has increased.
params:
wait:
description: Seconds to wait between the two state samples (default 10)
type: number
default: 10

clear-continuous-writes:
description: >
Delete the continuous-writes key from Valkey. Can be run while the daemon
is stopped to reset data between test runs.

stop-continuous-writes:
description: >
Stop the continuous-writes daemon and return the last written value and
total count of successful writes. Use this after a disruptive operation to
retrieve stats for consistency verification.
params:
clear:
description: Delete continuous-writes data from Valkey after stopping (default
false)
type: boolean
default: false

seed-data:
description: >
Seed Valkey with random 1 KB values using the relation-provided
credentials. Keys are written in batches of 5000 using MSET and named
"<key-prefix><index>".
params:
target-gb:
description: Target amount of data to seed in GB (default 1.0)
type: number
default: 1.0
key-prefix:
description: Prefix for generated keys (default "seed:key:")
type: string
default: "seed:key:"

config:
options:
data-interfaces-version:
description: Version of data interfaces to use
type: int
default: 1
glide-config:
description: >
JSON string with Glide connection options. When set, the charm uses
config-based connection instead of the Valkey relation. Expected keys:
endpoints (comma-separated "host:port" string), username (string),
password (string), tls_enabled (bool), cacert (base64-encoded PEM CA
certificate string), cert (base64-encoded PEM client certificate
string), key (base64-encoded PEM client private key string).
type: string
default: ""
use-mtls:
description: Flag to enable use of mutual TLS
type: boolean
default: false
use-certificate-auth:
description: Flag to enable authentication via the common name of the client certificate
description: Flag to enable authentication via the common name of the client
certificate
type: boolean
default: false
Loading