Repository navigation
fix(gitops): keep each multi-tenant access-manager env on one channel - #985
Conversation
Caradhras publishes to the plugin-access-manager gitops directory, and on benedita that app took every channel in cross (beta, rc, stable) and both beta and rc in stg-mt. A beta runs its migrations on the env's database; an rc or stable cut before them then crash-loops against the newer schema. It happened with v1.7.1 on cross (2026-10-23) and an rc on stg-mt (2026-10-26). app_release_types filters a whole cluster, so it would also have cut dev-st, stg-st and prd-st. The app's app_extra_envs entry decides which channels reach the extra envs, so it now lists only stable for cross: cross follows stable, like tenant-manager's cross, and stg-mt keeps the rc it gets from the normal tag expansion and no beta. Closes #981
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Update plugin-access-manager environment mapping config/deployment-matrix.yml |
The mapping retains cross for stable releases and removes explicit beta and rc extras for stg-mt and cross. Comments describe the stg-mt exception and release-channel history. |
Priority:
Estimated code review effort: 2 (Simple) | ~8 minutes
Change: Bug fix · Severity of issue fixed: Medium
Possibly related PRs
- LerianStudio/github-actions-shared-workflows#977: Adds per-app release-channel filtering in the deployment matrix; this PR changes extra-environment mappings for
plugin-access-manager.
Suggested labels: workflow
Suggested reviewers: ferr3ira-gabriel
Merge Risk: 
Minimal · up to 0bbd4
-
This change restricts the cross environment to stable releases and leaves stg-mt on the rc channel, which addresses the crash-loop risk when a beta migrates a database ahead of rc or stable releases. No concrete merge-blocking defect was found. Caller-side environment overrides could still defeat the single-channel intent. Those overrides were not available to check, so it is worth confirming them after merge.
Pre-merge checks: 
5
-
Full details: Linked Issues check
-
Explanation
Issue
#981requires one release channel per multi-tenant environment or a release-time migration check. Inconfig/deployment-matrix.yml,plugin-access-managernow has onlystable: ["cross"]under Beneditaapp_extra_envs. The normal tag expansion continues to send rc releases tostg-mt, and the beta extra forstg-mtis removed. This implements the matrix option for the Caradhras path described in the issue. The reported deployment-matrix validation also supports the configuration change.
Full details: Out of Scope Changes check
-
Explanation
The pull request changes only the Benedita
app_extra_envsmapping and its explanatory comments. The comments document the migration failure, thegitops_app_namerelationship, and the channel behavior. These changes directly support issue#981. No unrelated application behavior, caller workflow, or release-time schema check was added.
Full details: Docstring Coverage
-
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
🔍 Lint Analysis
|
🔍 PR Validation Summary✅ PR Mergeable — no blocking failures
|
|
@coderabbitai review |
✅ Action performed
|
GitHub Actions Shared Workflows
Description
Problem. Caradhras deploys through the
plugin-access-managergitops directory (gitops_app_name: "plugin-access-manager"in itsrelease.yml). On benedita, that app'sapp_extra_envsentry sent every channel tocross(beta, rc, stable). It also added beta tostg-mt, which already gets rc from the normal tag expansion.A beta runs its migrations on the env's database. An rc or stable cut before those migrations then crash-loops against the newer schema. This happened with Caradhras
v1.7.1oncross(2026-10-23, a hotfix of the previous line cut during the1.8.0-beta.xseries) and with an rc onstg-mt(2026-10-26).Fix. Each multi-tenant env now follows a single channel:
crossfollows stable only, liketenant-manager'scross.stg-mtgets rc only, from the normal expansion. It no longer gets beta.The comments on the entry and on the
app_extra_envslist say why, and markplugin-access-manageras the one app with astg-mtdirectory that takes no beta there.Scope differs from the issue. The issue suggested
app_release_types. That filter removes the app from the whole cluster for the excluded release types, so it would also have cutdev-st,stg-standprd-st.app_extra_envsis the setting that decides which channels reach the extra envs. The other suggestion, refusing a binary that is behind the database migration, belongs to Caradhras (a schema-version check at startup) rather than to this matrix. Both choices, includingcrossfollowing stable, were agreed before implementation.Rollout notes
mainat runtime, so this takes effect oncedevelopreachesmain. No release tag is needed.plugin-access-manager's own releases, which write to the same directory.crossandstg-mtalready run the newest beta migrations. An rc or stable cut before them can still fail there once more, until the channel catches up.Type of Change
feat: New workflow or new input/output/step in an existing workflowfix: Bug fix in a workflow (incorrect behavior, broken step, wrong condition)perf: Performance improvement (e.g. caching, parallelism, reduced steps)refactor: Internal restructuring with no behavior changedocs: Documentation only (README, docs/, inline comments)ci: Changes to self-CI (workflows under.github/workflows/that run on this repo)chore: Dependency bumps, config updates, maintenancetest: Adding or updating testsBREAKING CHANGE: Callers must update their configuration after this PRBreaking Changes
None. No caller configuration changes. Betas of Caradhras and
plugin-access-managerstop reachingcrossandstg-mt, and rcs stop reachingcross. That is the intended change in where they deploy.dev-st,stg-standprd-stare unaffected.Testing
deployment-matrixlint script, run as CI runs it, printsDeployment matrix is valid (49 apps registered, 2 clusters defined);typosis clean@<pr-branch>) — see the Test this pull request commentCaller repo / workflow run: not run. The matrix is read from
mainat runtime, so a branch run would not exercise it.Related Issues
Closes #981
🤖 Generated with Claude Code