Repository navigation
TPT-4130: Feature/dbaas valkey integration - #1047
Merged
zliang-akamai merged 35 commits intoOct 16, 2026
Merged
Conversation
lgarber-akamai
requested review from
a team,
ezilber-akamai and
psnoch-akamai
and removed request for
a team
September 22, 2026 14:46
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Two moderate issues remain in valkey.go involving ClusterSize serialization and discarded oldest_restore_time data.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (2)
What changed in this PR
Adds end-to-end Valkey Managed Database support, including API operations, lifecycle polling, configuration handling, and tests.
Changes:
- Adds Valkey models, serialization, CRUD, lifecycle, SSL, credentials, patch, and configuration APIs.
- Extends shared engine and restore-time support.
- Adds unit, integration, and fixture coverage.
| File | Description |
|---|---|
waitfor.go |
Valkey status polling |
valkey.go |
Valkey models and API methods |
test/unit/valkey_test.go |
Valkey unit tests |
test/unit/fixtures/valkey_databases_list.json |
Valkey list fixture |
test/unit/fixtures/valkey_database_update.json |
Valkey update fixture |
test/unit/fixtures/valkey_database_unmarshal.json |
Valkey unmarshal fixture |
test/unit/fixtures/valkey_database_unmarshal_engine_config.json |
Engine configuration fixture |
test/unit/fixtures/valkey_database_ssl_get.json |
SSL response fixture |
test/unit/fixtures/valkey_database_get.json |
Database response fixture |
test/unit/fixtures/valkey_database_credentials_get.json |
Credentials fixture |
test/unit/fixtures/valkey_database_create.json |
Create response fixture |
test/unit/fixtures/valkey_database_config_get.json |
Configuration fixture |
test/unit/fixtures/database_unmarshal.json |
Shared database fixture |
test/unit/fixtures/database_unmarshal_oldest_restore_time.json |
Restore-time fixture |
test/unit/database_test.go |
Shared restore-time tests |
test/integration/valkey_test.go |
Valkey lifecycle tests |
test/integration/valkey_db_config_test.go |
Configuration catalog tests |
test/integration/fixtures/TestDatabaseValkey_EngineConfig_Get.yaml |
Integration replay fixture |
databases.go |
Shared Valkey and restore-time support |
.ci-trigger |
CI trigger marker |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
ezilber-akamai
approved these changes
Oct 6, 2026
ezilber-akamai
left a comment
Contributor
There was a problem hiding this comment.
Thanks for the contribution!
bepare
approved these changes
Oct 12, 2026
dchavan25
approved these changes
Oct 13, 2026
anmsharm1
marked this pull request as ready for review
October 13, 2026 15:36
…ow mysql.go and postgresql.go implement
DBAAS1-1729 update datastructures
…thods DBAAS1-1729: add valkey client methods
…ests DBAAS1-1729: Valkey integration tests
feat: TPT-4130 / DBAAS1-1729: valkey fork restore time should be visible
…047 (DBAAS1-1729)
…cts making them value fields rather than pointer fields, DBAAS1-1729
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…ded serialization test coverage
anmsharm1
force-pushed
the
feature/dbaas_valkey_integration
branch
from
October 15, 2026 15:21
f22fe5f to
da2319e
Compare
zliang-akamai
approved these changes
Oct 16, 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.


📝 Description
- TPT-4130
This change set adds full Valkey database support to the Linode API client and covers it end-to-end with unit and integration tests.
It was developed and staged originally across four related PRs:
available_restore_timesThis PR adds support for
available_restore_timeson the shared Database model, Valkey database response deserialization, Valkey create/update option models, client methods for list/get/create/update/delete, SSL, credentials, patch, suspend/resume and advanced config.This follows the existing database patterns used by MySQL/PostgreSQL and ensures Valkey behaves consistently within the shared client surface.
✔️ How to Test
Here are some notes I took for doing my local development environment setup for linodego development:
linodego developer setup
What are the steps to reproduce the issue or verify the changes?
The test suite helps validate:
available_restore_timesdeserializes correctly for both Valkey and PostgreSQL response shapesHow do I run the relevant unit/integration tests?
Unit tests
Integration tests
Linodego’s integration tests can exercise the real API against a live Linode account, using the same client code that users call in production. They typically create or mutate real database resources, wait for the resource to reach the expected state, assert on the returned fields and lifecycle behavior, and then clean up so the tests validate end-to-end behavior rather than just mocked JSON parsing.
To trigger the live tests, a
LINODE_TOKENshould be set an env var,