miki3421 opened a new pull request, #157:
URL: https://github.com/apache/openserverless-operator/pull/157

   Redis-only restarts can remove tenant ACL users while their saved data 
remains on the Redis PVC. This persists the current authorized ACL state on 
that volume and loads it on subsequent Redis starts, without requiring an 
operator restart to recover access.
   
   Related to apache/openserverless#181, including the reproduced 0.9.0 case in 
https://github.com/apache/openserverless/issues/181#issuecomment-6561222868.
   
   ### Changes
   
   - Existing persistent installations save their live ACLs before updating the 
managed Redis ConfigMap. Since Redis cannot change `aclfile` at runtime, 
account mutations atomically update the file through protected stdin until the 
next Redis restart activates native `ACL SAVE`. Preparation does not restart 
Redis or replay an older ACL export.
   - Fresh persistent installations initialize the default-user ACL from the 
configured password hash only when the file is absent. Existing files are 
preserved; an empty existing file fails initialization.
   - Tenant creation/reconciliation, quota permission changes, successful 
revocations and system-account changes persist ACL state. Existing credentials 
and permission rules are retained.
   - Ephemeral Redis retains its existing nonpersistent storage behavior. No 
component image version, storage layout or RBAC permissions change.
   
   ### Validation
   
   - 151 Python regression tests passed, including fresh bootstrap, 
preservation of an existing ACL file, failed saves, revocation, quota 
transitions, quoted configuration directives and protected snapshot input.
   - Native Kustomize output tested with Redis 8.2.1 and a new PVC in a 
temporary namespace: password authentication works, anonymous access is 
rejected, and a named identity/data survive a Redis pod replacement without 
overwriting the ACL file. Temporary resources were removed.
   - Existing 0.9.0 baseline: original ACLs and Alpha/Beta credentials 
preserved during preparation; Redis-only restart with unchanged operator; 
operator restart followed by another Redis-only restart. Authentication, 
peer-read denial, Lua reads, read-only permissions, successful revocation and 
PVC identity verified throughout. Temporary identities/data removed and 
original ACLs restored and saved.
   - Alpha/Beta application regression suite: 15 checks passed.
   
   The runtime tests use the existing locally patched baseline, layering only 
this production diff over its exact operator image. They are not a pristine 
upstream-image test. The full Kind integration suite was not rerun locally and 
remains for CI.
   
   RDB snapshot scheduling and shutdown/data durability are separate from ACL 
persistence and are unchanged.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to