Conversation
…there are started flags but no primary ip
…ts in peer relation
There was a problem hiding this comment.
Pull request overview
This PR moves Valkey/Glide-based integration test interactions into a dedicated “glide-runner” (requirer) charm, adding action-driven continuous-writes and command execution capabilities, and updates the main charm’s status/TLS handling accordingly.
Changes:
- Introduces a new requirer charm workflow for executing Valkey commands and running continuous-writes via Juju actions (including config-driven connectivity via
glide-config). - Refactors integration test helpers/tests to use runner-based endpoints and action calls (including K8s endpoint support).
- Adjusts charm status/TLS logic (e.g., start-state/status tracking changes, TLS status ordering).
Reviewed changes
Copilot reviewed 23 out of 23 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/integration/tls/test_tls.py | Updates TLS integration tests to deploy/use glide-runner and endpoint-based helpers. |
| tests/integration/tls/test_private_key.py | Refactors private-key TLS tests to use glide-runner and updated helper APIs. |
| tests/integration/tls/test_certificate_rotation.py | Refactors certificate rotation tests to use glide-runner and updated helper APIs. |
| tests/integration/tls/test_certificate_options.py | Refactors certificate options tests to deploy glide-runner and use endpoint-based helpers. |
| tests/integration/test_charm.py | Refactors core integration tests to deploy glide-runner and use new helper signatures. |
| tests/integration/helpers.py | Adds K8s endpoints helper, replaces direct Glide usage with runner execute action, and refactors auth/ping/replica helpers. |
| tests/integration/ha/test_scaling.py | Migrates HA scaling tests to action-driven continuous-writes and runner-based seed-data. |
| tests/integration/ha/test_network_cut.py | Migrates network-cut HA tests to action-driven continuous-writes and runner-based checks. |
| tests/integration/ha/test_failover.py | Migrates failover HA tests to action-driven continuous-writes and runner-based checks. |
| tests/integration/glide_helpers.py | Adds JSON (de)serialization for GlideClientConfiguration for passing via action params. |
| tests/integration/cw_helpers.py | Replaces subprocess-based continuous writes with runner charm action helpers and config wiring. |
| tests/integration/continuous_writes.py | Removes the old local continuous-writes implementation (replaced by runner charm daemon). |
| tests/integration/conftest.py | Adds fixtures for deploying the glide-runner charm and removes old ContinuousWrites fixtures. |
| tests/integration/clients/requirer-charm/src/glide_helpers.py | Adds runner-side config deserialization and command result normalization. |
| tests/integration/clients/requirer-charm/src/cw_helpers.py | Adds runner-side daemon support helpers (PID wait, LLEN helper). |
| tests/integration/clients/requirer-charm/src/continuous_writes.py | Adds runner-side continuous-writes daemon with state tracking and hot reload. |
| tests/integration/clients/requirer-charm/src/client.py | Refactors ValkeyClient to support multi-endpoint configs and adds seed/execute APIs. |
| tests/integration/clients/requirer-charm/src/charm.py | Adds new actions (execute/seed/continuous-writes) and glide-config support to the runner charm. |
| tests/integration/clients/requirer-charm/charmcraft.yaml | Registers new actions and adds glide-config charm config option. |
| src/statuses.py | Removes unused running attribute from a StartStatuses entry. |
| src/managers/tls.py | Fixes TLS status check ordering for correct status reporting. |
| src/managers/cluster.py | Adjusts status retrieval to use status state store for running-status-only behavior. |
| src/events/base_events.py | Updates start handling to use unit_server.update instead of setting StartStatuses running status. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
reneradoi
reviewed
Apr 17, 2026
Contributor
reneradoi
left a comment
There was a problem hiding this comment.
The TLS configuration for the client in the requirer charm is fine now, thank you for fixing it.
Mehdi-Bendriss
approved these changes
Apr 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant enhancements to the integration test client charm for Valkey, focusing on improved testing capabilities, especially around continuous writes and flexible client configuration. It also includes some internal refactoring and minor fixes. The most important changes are grouped below.
Integration test charm enhancements:
continuous_writes.pydaemon script to support robust, background continuous-write testing, including state tracking, atomic state updates, config hot-reload, and graceful shutdown. This enables advanced data consistency and disruption testing for Valkey deployments.charmcraft.yamlfor the integration test requirer charm with several new actions:execute,start-continuous-writes,get-continuous-writes-state,assert-continuous-writes-increasing,clear-continuous-writes,stop-continuous-writes, andseed-data. These actions facilitate advanced integration and consistency testing scenarios.glide-configconfig option, allowing the charm to connect directly to Valkey using arbitrary endpoints and credentials, independent of relations.Valkey client improvements:
ValkeyClientclass to support multiple endpoints, optional password, and improved TLS configuration. Added new methods for seeding data (seed_data) and executing arbitrary commands (execute_command), with robust result handling for different Valkey response types. [1] [2]Charm core/status logic fixes:
StartStatusesenum for running status and updating status management to use the newunit_server.updatemethod and improved status list retrieval. [1] [2] [3]Miscellaneous:
charmcraft.yamland import statements. [1] [2] [3] [4]These changes collectively provide much more powerful tools for integration and disruption testing of Valkey, as well as cleaner and more robust status management in the charm.