Skip to content

Initial commit: itential.valkey collection - #2

Open
Amunagala-itential wants to merge 2 commits into
itential:devfrom
Amunagala-itential:add-valkey-collection
Open

Amunagala-itential wants to merge 2 commits into
itential:devfrom
Amunagala-itential:add-valkey-collection

Conversation

@Amunagala-itential

Copy link
Copy Markdown
Collaborator

Summary

Initial scaffold of the standalone itential.valkey Ansible collection: installs Valkey as a Remi-free, EL9/Amazon Linux 2023-only alternative to itential.deployer's redis role.

This collection is transitional — it exists separately from itential.deployer only until roles/redis is retired there, at which point roles/valkey and its playbooks are intended to be merged directly into itential.deployer.

Depends on itential.deployer at runtime for the shared common/offline utility roles (referenced by FQCN).

Contents

  • roles/valkey/ — the role, ported from itential.deployer's in-progress PR (#374 there), with common/offline calls rewritten to FQCN and internal variables renamed with a valkey_ prefix for namespace safety
  • playbooks/valkey.yml, verify_valkey.yml, certify_valkey.yml, download_packages_valkey.yml
  • docs/valkey_guide.md, example_inventories/valkey/
  • CI scaffolding matching itential.deployer's conventions (ansible-lint, role-readme-check, changelog/publish workflows)

Test plan

  • ansible-lint clean (0 failures) with both itential.valkey and itential.deployer registered as collections
  • Live-tested against real AWS-hosted Rocky 9 hosts across HA2 (colocated Sentinel) and ASA (dedicated Sentinel) topologies: certify_valkey.yml passes clean on all hosts, cross-collection FQCN resolution confirmed working end-to-end

Standalone Ansible collection installing Valkey as a Remi-free,
EL9/Amazon Linux 2023-only alternative to itential.deployer's redis
role. Depends on itential.deployer at runtime for the shared common
and offline utility roles.

This collection is transitional: it exists separately from
itential.deployer only until roles/redis is retired there, at which
point roles/valkey and its playbooks are intended to be merged
directly into itential.deployer.
Replaces the "Quick Start" stub (which just linked out to
itential.deployer's own README) with an actual step-by-step flow:
installing both collections, setting up the working directory,
building a combined inventory (Valkey + MongoDB + Platform), and the
verify/install/certify command sequence across both collections.

Also documents a real gap found while writing this: itential.deployer's
os.yml doesn't yet target valkey_master/valkey_replica/valkey_sentinel,
so baseline OS/firewalld setup doesn't run against fresh Valkey hosts
via the normal flow. Tracked as a known limitation for now, not fixed
here since it lives in a different repo.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can remove this action. The changelog is updated by the publish action. Please make sure I'm not missing something.

Comment on lines +6 to +7
# Valkey is only supported on RHEL/Rocky/AlmaLinux 9. A host on any other OS or major version
# will fail validate-vars.yml immediately. Use the redis role on EL8.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And AL2023?


# Target node download directories
valkey_offline_target_node_rpms_dir: "{{ valkey_offline_target_node_root }}/rpms"
valkey_offline_target_node_archives_dir: "{{ valkey_offline_target_node_root }}/archives"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this needed?


# Control node download directories
valkey_offline_control_node_rpms_dir: "{{ valkey_offline_control_node_root }}/rpms"
valkey_offline_control_node_archives_dir: "{{ valkey_offline_control_node_root }}/archives"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this needed?

Comment thread README.md
ansible-galaxy collection install itential.valkey
```

This does not automatically install `itential.deployer` — install both:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this true? I thought if itential.deployer is listed as a dependency in the galaxy.yml then it would get install automatically?

Comment thread README.md
Comment on lines +55 to +60
This walks through deploying Valkey alongside the rest of the Itential stack (MongoDB,
Platform, Gateway), using `itential.deployer`'s own bootstrap flow. If you've already got a
working directory set up for `itential.deployer` (see its README's "Running the Deployer"
section for the full explanation of each step below), skip to
[3. Add Valkey to your inventory](#3-add-valkey-to-your-inventory).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need to go over installing the Platform stack in this readme.

Comment thread README.md
Comment on lines +168 to +170
| `verify_valkey.yml` | `itential.valkey.verify_valkey` | Pre-install verification for Valkey hosts |
| `certify_valkey.yml` | `itential.valkey.certify_valkey` | Generate Valkey/Sentinel installation certification reports |
| `download_packages_valkey.yml` | `itential.valkey.download_packages_valkey` | Download Valkey packages for offline install |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is a standalone collection for Valkey, should we remove the _valkey from these playbook names? It made sense in the Deployer because we had multiple components.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants