Skip to content

feat(charts): add IAM Roles Anywhere support to streaming-hub - #1769

Merged
fredcamaral merged 3 commits into
developfrom
feat/streaming-hub-iam-roles-anywhere
Jul 31, 2026
Merged

feat(charts): add IAM Roles Anywhere support to streaming-hub#1769
fredcamaral merged 3 commits into
developfrom
feat/streaming-hub-iam-roles-anywhere

Conversation

@ferr3ira-gabriel

Copy link
Copy Markdown
Member

Adiciona o sidecar aws-signing-helper ao streaming-hub, seguindo o padrão
inline
que os outros charts já usam (fetcher, reporter, matcher, plugin-fees)
em vez da lib lerian-common: nenhum chart declara essa dependency hoje, e essa
mudança não deveria fazer do streaming-hub o primeiro adotante.

Wiring

Como os 3 roles compartilham o define streaming-hub.deployment, os 4 pontos
entram num lugar só em vez de repetidos por role:

  • securityContext.fsGroup: 65532 no pod, pro usuário non-root do sidecar ler a
    projeção 0440 do iam-certs (substitui podSecurityContext enquanto ligado)
  • AWS_EC2_METADATA_SERVICE_ENDPOINT / _MODE apontando o SDK pro sidecar
  • o container aws-signing-helper, com trustAnchorArn / profileArn / roleArn
    em required — sidecar mal configurado falha o render, não sobe quebrado
  • o volume iam-certs do Secret kubernetes.io/tls

Bloco padrão de 8 chaves aws.rolesAnywhere em values.yaml (default OFF) e
aws declarado no values.schema.json, igual aos 3 charts que já têm. Fora do
values-template.yaml, porque nenhum deles coloca lá.

Validação

Check Resultado
Desligado, mode=all e mode=split byte-idêntico ao 1.0.0-beta.4 publicado — zero regressão
Ligado, os 3 roles (all/ingest/delivery) sidecar + volume + fsGroup + 2 env IMDS
Fragmentos vs matcher-helm 3.1.0-beta.2 e vs helpers do lerian-common byte-idênticos nos 4
Os 3 ARNs vazios falham o render, cada um com sua mensagem
podSecurityContext com rolesAnywhere off preservado; e omitido quando não definido
helm lint limpo
Render gate do repo streaming-hub: ok (render-ok)

Como os 4 fragmentos saem idênticos aos helpers do lerian-common, migrar pra
lib depois é refactor puro, sem mudança de output.

Notas

  • O cert X.509 fica fora do chart: certificateSecretName aponta um Secret
    kubernetes.io/tls, criado nos ambientes Lerian por um Certificate do
    cert-manager no overlay que deploya.
  • Chart.yaml não foi tocado — o semantic-release é dono do version bump
    (chore(release): ... + update-chart-version-readme como prepareCmd).
  • README não alterado: nenhum dos outros charts documenta rolesAnywhere no seu.
  • O --strict do validador acusa 3 violações (flowker, matcher,
    underwriter sem Chart.yaml) — pré-existentes em develop, sem relação
    com essa mudança.
  • Título do PR usa scope charts porque pr-title.yml tem requireScope: true
    e streaming-hub não está na lista de scopes permitidos. Vale adicionar lá
    num PR separado. O targeting do release não é afetado: a matrix vem de changed
    paths (filter_paths: charts/, path_level: 2), não do scope.

🤖 Generated with Claude Code

Adds the aws-signing-helper credential sidecar to streaming-hub, following the
inline pattern the other charts already use (fetcher, reporter, matcher,
plugin-fees) rather than the lerian-common library: no chart here declares that
dependency yet, and this change should not make streaming-hub the first adopter.

Because the three roles share the streaming-hub.deployment define, the four
wiring points land in one place instead of being repeated per role:
- pod securityContext fsGroup 65532 so the sidecar's non-root user can read the
  0440 iam-certs projection (replaces podSecurityContext while enabled)
- AWS_EC2_METADATA_SERVICE_ENDPOINT / _MODE pointing the SDK at the sidecar
- the aws-signing-helper container, with trustAnchorArn / profileArn / roleArn
  wrapped in `required` so a misconfigured sidecar fails the render
- the iam-certs volume from the kubernetes.io/tls Secret

Adds the standard 8-key aws.rolesAnywhere block to values.yaml (default OFF) and
declares aws in values.schema.json, matching the three charts that already ship
it. Left out of values-template.yaml, since none of them put it there either.

Verified:
- disabled renders BYTE-IDENTICAL to the published 1.0.0-beta.4 in both
  mode=all and mode=split, so there is no regression for existing deployments
- enabled, all three roles (all / ingest / delivery) get the sidecar, volume,
  fsGroup and both IMDS env vars
- the sidecar, volume, imdsEnv and podSecurityContext fragments are byte-identical
  to matcher-helm 3.1.0-beta.2 and to the lerian-common helpers, so adopting that
  library later is a pure refactor
- each of the three ARNs fails the render with its own message when left empty
- podSecurityContext is still honoured when rolesAnywhere is off, and still
  omitted entirely when unset
- helm lint clean; the repo render gate reports "streaming-hub: ok (render-ok)"

The X.509 cert/key stay outside the chart: certificateSecretName names a
kubernetes.io/tls Secret, created in the Lerian environments by a cert-manager
Certificate in the deploying overlay.

Chart.yaml is deliberately untouched — semantic-release owns the version bump.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ferr3ira-gabriel
ferr3ira-gabriel requested a review from a team as a code owner July 30, 2026 18:47
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 230b66cc-101c-4ec4-802c-15e072dfc733

📥 Commits

Reviewing files that changed from the base of the PR and between 7c11ac2 and 638930f.

📒 Files selected for processing (1)
  • charts/streaming-hub/values.yaml

📝 Walkthrough

Walkthrough

Changes

The streaming-hub Helm chart adds opt-in AWS Roles Anywhere support. It defines configuration values, accepts the AWS configuration in the schema, routes IMDS requests to a signing-helper sidecar, and mounts TLS credentials.

AWS Roles Anywhere integration

Layer / File(s) Summary
Roles Anywhere configuration contract
charts/streaming-hub/values.yaml, charts/streaming-hub/values.schema.json
Adds settings for ARNs, region, session duration, certificate secret, sidecar image, endpoint port, and resources. The schema accepts the top-level aws configuration.
Deployment sidecar and credential routing
charts/streaming-hub/templates/_deployment.tpl
When enabled, sets fsGroup: 65532, routes AWS SDK metadata requests to the local sidecar, validates required ARNs, and mounts the IAM certificate secret into the aws-signing-helper container.

Sequence Diagram(s)

sequenceDiagram
  participant StreamingHub as streaming-hub container
  participant SigningHelper as aws-signing-helper sidecar
  participant IAMCerts as iam-certs Secret
  StreamingHub->>SigningHelper: Sends IMDS credential requests to 127.0.0.1
  SigningHelper->>IAMCerts: Reads mounted TLS certificate and key
  SigningHelper-->>StreamingHub: Returns IMDS-compatible credentials
Loading
✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch feat/streaming-hub-iam-roles-anywhere

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
charts/streaming-hub/values.yaml (1)

1-1: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Release-scoped secret-name fallback is dead code due to the values.yaml default.

values.yaml documents that certificateSecretName should fall back to a release-scoped name (<release-fullname>-iam-tls) when left empty, and _deployment.tpl implements exactly that fallback — but since the shipped default is the non-empty literal "streaming-hub-iam-tls", the fallback branch never executes under default configuration, so every release resolves to the same hardcoded secret name regardless of release name.

  • charts/streaming-hub/values.yaml#L468-470: change the default to certificateSecretName: "" so the release-scoped fallback actually activates as documented.
  • charts/streaming-hub/templates/_deployment.tpl#L189-199: no change needed once the values.yaml default is fixed — the existing | default (printf "%s-iam-tls" (include "streaming-hub.fullname" $)) fallback (Line 192) will then work as intended.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@charts/streaming-hub/values.yaml` at line 1, Change the default value of
certificateSecretName in values.yaml from the hardcoded streaming-hub-iam-tls
name to an empty string, allowing _deployment.tpl’s existing release-scoped
fullname fallback to generate a unique secret name per release.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@charts/streaming-hub/templates/_deployment.tpl`:
- Line 62: Define a single template variable near the top of the deployment
template’s define block for the AWS Roles Anywhere enabled condition, then
replace the repeated conditions at the four visible if sites with that variable.
Preserve the existing truthiness checks for aws, rolesAnywhere, and
rolesAnywhere.enabled.
- Around line 62-72: Update the securityContext rendering around
$sh.podSecurityContext so Roles Anywhere enforces fsGroup 65532 while preserving
and merging all other configured podSecurityContext fields, including
seccompProfile, sysctls, and supplementalGroups. Keep the existing fallback
behavior when Roles Anywhere is disabled.

In `@charts/streaming-hub/values.yaml`:
- Around line 468-470: Set the chart value certificateSecretName to an empty
string by default so _deployment.tpl can apply its release-specific
<release-fullname>-iam-tls fallback. Preserve the documented override behavior
for users who provide an explicit secret name.

---

Outside diff comments:
In `@charts/streaming-hub/values.yaml`:
- Line 1: Change the default value of certificateSecretName in values.yaml from
the hardcoded streaming-hub-iam-tls name to an empty string, allowing
_deployment.tpl’s existing release-scoped fullname fallback to generate a unique
secret name per release.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 2fe57b98-8a75-4a7d-9499-f1a4771ba35f

📥 Commits

Reviewing files that changed from the base of the PR and between 4266b1b and 3422c6c.

📒 Files selected for processing (3)
  • charts/streaming-hub/templates/_deployment.tpl
  • charts/streaming-hub/values.schema.json
  • charts/streaming-hub/values.yaml

Comment thread charts/streaming-hub/templates/_deployment.tpl Outdated
Comment thread charts/streaming-hub/templates/_deployment.tpl Outdated
Comment thread charts/streaming-hub/values.yaml Outdated
Addresses the three CodeRabbit findings on #1769.

1. fsGroup no longer discards the deployer's podSecurityContext. With Roles
   Anywhere on, the block used to be replaced wholesale by a bare
   `fsGroup: 65532`, silently dropping runAsNonRoot, seccompProfile,
   supplementalGroups and anything else configured. It is now merged, with
   fsGroup winning so the 0440 iam-certs projection stays readable by the
   sidecar even when the deployer sets a different fsGroup.

2. certificateSecretName defaults to "" so the documented fallback in
   _deployment.tpl is reachable. The non-empty literal pinned every install to
   one name and made fullnameOverride ineffective. The comment also claimed the
   fallback was release-scoped; it is not — streaming-hub.fullname is the chart
   name (or fullnameOverride), never the release name. Corrected in place rather
   than left as a false promise.

3. The Roles Anywhere condition is hoisted into $rolesAnywhere, replacing four
   verbatim copies that could drift apart.

Verified by render, not by inspection:
- on + custom podSecurityContext -> fsGroup 65532 AND runAsNonRoot,
  seccompProfile, supplementalGroups all survive
- on + deployer fsGroup 1000 -> 65532 wins (enforcement preserved)
- on + no podSecurityContext -> renders fsGroup alone, no error
- empty certificateSecretName -> resolves to streaming-hub-iam-tls, which is
  the name every current consumer already passes explicitly, so no deployed
  environment changes
- off -> zero sidecar, zero iam-certs, prior behaviour byte-identical
- helm lint clean

Claude-Session: https://claude.ai/code/session_01AQHofhVKKGUbSo959SEn5r
@fredcamaral

Copy link
Copy Markdown
Member

All three review findings addressed in 7c11ac2.

1. fsGroup replaced the whole podSecurityContext (Major). Merged instead, with fsGroup winning so the 0440 iam-certs projection stays readable even when a deployer sets a different fsGroup. Everything else they configured now survives.

2. certificateSecretName default defeated its own fallback (Major). Now "". One correction to the finding: the fallback is not release-scoped — streaming-hub.fullname resolves to the chart name (or fullnameOverride), never the Helm release name, so the collision-across-releases risk described doesn't apply as stated. The real defect is the one that stands: the non-empty default made the branch unreachable and fullnameOverride ineffective. Fixed, and the comment that claimed <release-fullname> was corrected rather than left as a false promise.

3. Duplicated condition, 4 sites (Trivial). Hoisted into $rolesAnywhere.

Verified by render, not inspection:

Case Result
on + custom podSecurityContext fsGroup: 65532 plus runAsNonRoot, seccompProfile, supplementalGroups — all survive
on + deployer sets fsGroup: 1000 65532 wins; enforcement preserved
on + no podSecurityContext renders fsGroup alone, no error
empty certificateSecretName resolves to streaming-hub-iam-tls
off zero sidecar, zero iam-certs, prior behaviour unchanged
helm lint clean

No deployed environment changes. Every current consumer of this feature already passes certificateSecretName explicitly (stg-mt/streaming-hub, plus matcher, fetcher, reporter, flowker, plugin-fees, tenant-manager), and the empty default resolves to the same literal those installs were getting.


Context on why this is time-sensitive, from outside this repo: stg-mt/streaming-hub in lerian-internal-gitops currently renders the alpha package cut from this branch, because rolesAnywhere.enabled: true there and no released chart carries the feature. helm-alpha-cleanup deletes alpha tags older than 3 days, so that build disappears around 2026-08-03 03:00 UTC — after which argocd-vault-plugin cannot pull the chart and the whole stg-mt render fails, deploying nothing. Merging here cuts 1.0.0-beta.5 on the normal path and the gitops repointing becomes a one-line change.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@charts/streaming-hub/values.yaml`:
- Around line 469-472: Update the explanatory comment near the empty TLS name
setting to document that streaming-hub.fullname honors nameOverride before
fullnameOverride, so nameOverride: foo produces foo-iam-tls; retain the existing
fullnameOverride and default-name behavior accurately.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 02a481e1-37dd-43f9-932a-04055190ecac

📥 Commits

Reviewing files that changed from the base of the PR and between 3422c6c and 7c11ac2.

📒 Files selected for processing (2)
  • charts/streaming-hub/templates/_deployment.tpl
  • charts/streaming-hub/values.yaml

Comment thread charts/streaming-hub/values.yaml Outdated
@fredcamaral

Copy link
Copy Markdown
Member

@BlackSmith -- eh seu.

@blacksmith-sh

blacksmith-sh Bot commented Jul 31, 2026

Copy link
Copy Markdown

Got it, I'm checking the PR context first.

View with [code]smith

… comment

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
@blacksmith-sh

blacksmith-sh Bot commented Jul 31, 2026

Copy link
Copy Markdown

@fredcamaral

@BlackSmith -- eh seu.

Assumido. Estado do PR e o que fiz:

  • O único item aberto era o Minor do CodeRabbit em values.yaml:472 (o comentário do fallback ignorava nameOverride). Corrigi em 638930f: o comentário agora descreve a cadeia real de streaming-hub.fullname (fullnameOverridenameOverride → nome do chart, nunca o release name), verificado por render (nameOverride: foofoo-iam-tls, default → streaming-hub-iam-tls) e helm lint limpo. Mudança de comentário apenas, zero impacto no output.
  • Todos os checks de CI estão verdes. O merge segue BLOCKED só pelo CHANGES_REQUESTED do CodeRabbit; com o push ele deve re-revisar e resolver a thread. Se não resolver sozinho, basta dismissar a review dele.
  • Deixei CI autofix e auto-resposta a comentários de bot ligados no PR, então qualquer falha ou comentário novo até o merge eu trato automaticamente, sem precisar de ping. Dado o deadline do alpha-cleanup em 2026-08-03, o PR está pronto para merge assim que a review for destravada.

View with [code]smith

@fredcamaral
fredcamaral merged commit 02fbe4b into develop Jul 31, 2026
5 checks passed
@fredcamaral
fredcamaral deleted the feat/streaming-hub-iam-roles-anywhere branch July 31, 2026 20:45
lerian-studio-midaz-push-bot Bot pushed a commit that referenced this pull request Jul 31, 2026
##  (2026-07-31)

### Features

* **br-sisbajud:** add Helm chart for SISBAJUD plugin ([6b20f50](6b20f50))
* **lerian-common:** add multiTenant and streaming secret helpers ([5817577](5817577))
* **br-slc:** add opt-in ingress disabled by default ([f5cdf05](f5cdf05))
* **flowker:** add optional WORKOS_TM_CLIENT_SECRET secret ([5e66bd2](5e66bd2))
* **charts:** add per-upstream M2M OAuth2 client credentials to br-ccs secrets ([b548556](b548556))
* **br-sisbajud:** add PreSync Redpanda topics provisioner Job ([484e04e](484e04e))
* **lerian-common:** add shared Helm library chart ([0f266cd](0f266cd))
* **plugin-br-pix-indirect-btg:** add SWAGGER_ENABLED env var defaulting to true ([62d1d98](62d1d98))
* **charts:** mock-nuclea optional Deployment + prod guard (ADR-23) ([26252ea](26252ea))
* **charts:** model br-ccs snapshot quarantine knobs as configmap keys ([df6bb6c](df6bb6c))
* render streaming SASL/TLS secrets in midaz + plugin-fees Secrets ([ead8417](ead8417))
* **streaming-hub:** support AWS IAM Roles Anywhere ([3422c6c](3422c6c))
* **charts:** support LICENSE_KEY and ORGANIZATION_IDS in br-ccs secrets ([4b62eb6](4b62eb6))
* **helm-standard:** support type: library charts + lerian-common contract ([69b7fdb](69b7fdb))
* **midaz:** update midaz-crm@3.7.8, midaz-ledger@3.7.8 - new env vars ([0ad123f](0ad123f))
* **midaz:** update midaz-crm@3.8.0, midaz-ledger@3.8.0 ([f38da4c](f38da4c))
* **plugin-br-pix-indirect-btg:** update plugin-br-pix-indirect-btg@1.8.0, plugin-br-pix-indirect-btg-worker-reconciliation@1.8.0, plugin-br-pix-indirect-btg-worker-schedule@1.8.0, plugin-br-pix-indirect-btg-worker-inbound@1.8.0, plugin-br-pix-indirect-btg-worker-outbound@1.8.0 - new env vars ([ded3bc4](ded3bc4))
* **plugin-fees:** update plugin-fees@3.3.0 - new env vars ([e64d615](e64d615))
* **plugin-fees:** update plugin-fees@3.4.0 ([0237f21](0237f21))

### Bug Fixes

* **br-sisbajud:** address CI violations + CodeRabbit review ([41ef02f](41ef02f))
* **br-sisbajud:** align migration Job env with br-sta pattern ([18b02e5](18b02e5))
* align WEBHOOK_SCHEDULE_CASHOUT_URL default with other CASHOUT keys ([5a4c7b4](5a4c7b4))
* **br-sisbajud:** correct appVersion to 1.0.0-beta.109 ([59d300e](59d300e))
* **lender:** default consignado dark so eight deployments stop depending on one line ([adef35d](adef35d))
* **pipe:** escape Helm template syntax breaking GitHub Pages build ([c875970](c875970))
* **lerian-common:** fail on conflicting pdb fields in explicit mode ([d7a50d8](d7a50d8))
* **helm-standard:** gate library exemptions on chart.Type + fix messages ([477e4cd](477e4cd))
* **plugin-br-pix-indirect-btg:** give schedule worker PDB real disruption protection ([f90ecab](f90ecab)), closes [#1682](#1682)
* **charts:** harden mock-nuclea SPB runbook + mountPath schema (PR [#1699](#1699) review) ([4c276aa](4c276aa))
* **charts:** merge fsGroup instead of replacing the pod security context ([7c11ac2](7c11ac2)), closes [#1769](#1769)
* **br-sisbajud:** pin busybox to 1.36 in values.yaml defaults ([eebc7ce](eebc7ce))
* **br-sisbajud:** preserve valueFrom env in topics PreSync Job ([4e260aa](4e260aa)), closes [#1666](#1666)
* remove duplicate secret.yaml, secrets.yaml already exists ([540c4ad](540c4ad))
* **lerian-common:** render-gate skip for library + honor 0 in pdb/probes ([8ebcaeb](8ebcaeb))
* **flowker:** restore 3.1 chart content dropped by the 3.1.0 release ([caff99f](caff99f))
* **br-sisbajud:** set HOME=/tmp on topics provisioner Job ([9886085](9886085))
* **fetcher:** update fetcher-manager@3.0.2, fetcher-worker@3.0.2 ([3c815a7](3c815a7))
* **plugin-br-bank-transfer:** update plugin-br-bank-transfer@1.1.9 ([a5710e9](a5710e9))
* **plugin-br-pix-indirect-btg:** update plugin-br-pix-indirect-btg@1.7.6, plugin-br-pix-indirect-btg-worker-reconciliation@1.7.6, plugin-br-pix-indirect-btg-worker-inbound@1.7.6, plugin-br-pix-indirect-btg-worker-outbound@1.7.6 ([bcd81c1](bcd81c1))
* **reporter:** update reporter-manager@2.2.0, reporter-worker@2.2.0 ([cc51d8b](cc51d8b))
* **reporter:** update reporter-manager@2.3.0, reporter-worker@2.3.0 ([7b4ff5b](7b4ff5b))
* **br-sisbajud:** use stringData in app Secret template ([063f33b](063f33b))
lerian-studio-midaz-push-bot Bot pushed a commit that referenced this pull request Jul 31, 2026
##  (2026-07-31)

### Features

* **chart:** add adapter-lerian schema, README and values-template entries ([9180459](9180459))
* **chart:** add adapter-lerian template directories ([1882905](1882905))
* **chart:** add adapter-lerian values blocks, ingress routes and database ([328b236](328b236))
* **flowker:** add AWS IRSA and Roles Anywhere signing sidecar ([003b783](003b783))
* **new:** add br-slc BYOC Helm chart ([cc65a6d](cc65a6d)), closes [#99](#99)
* **br-slc:** add gated mock-nuclea component ([ed1a9c9](ed1a9c9))
* **br-sisbajud:** add Helm chart for SISBAJUD plugin ([6b20f50](6b20f50))
* **br-ccs:** add Helm chart ([0fa5f89](0fa5f89))
* **flowker:** add in-pod XSD validator sidecar ([1817bee](1817bee))
* **new:** add lender chart ([#1672](#1672)) ([1540885](1540885))
* **pix-btg:** add missing env defaults to chart values ([ee6841d](ee6841d))
* **lerian-common:** add multiTenant and streaming secret helpers ([5817577](5817577))
* **plugin-br-pix-indirect-btg:** add new develop envs (recurrence collection, terminal events, schedule reconcile, recurring module) ([576992f](576992f))
* **br-slc:** add opt-in ingress disabled by default ([f5cdf05](f5cdf05))
* **flowker:** add optional WORKOS_TM_CLIENT_SECRET secret ([5e66bd2](5e66bd2))
* **charts:** add per-upstream M2M OAuth2 client credentials to br-ccs secrets ([b548556](b548556))
* **plugin-br-pix-indirect-btg:** add PIX_RECURRENCE_PAYER inbound entity ([9bc7afc](9bc7afc))
* **br-sta:** add postgres migrations Job to chart ([b9f5bea](b9f5bea))
* **br-sisbajud:** add PreSync Redpanda topics provisioner Job ([484e04e](484e04e))
* **plugin-br-pix-indirect-btg:** add RECURRING FlowType entities to outbound configmap ([9d3645d](9d3645d))
* **flowker:** add scheduler worker Deployment and full env surface ([df8f89f](df8f89f))
* **lerian-common:** add shared Helm library chart ([0f266cd](0f266cd))
* **plugin-br-pix-indirect-btg:** add SWAGGER_ENABLED env var defaulting to true ([62d1d98](62d1d98))
* **flowker:** add valkey subchart backing the scheduler queue ([3f5fe0b](3f5fe0b))
* **br-ccs:** expose rate-limit disable and fail-open knobs in values ([25390d4](25390d4))
* **charts:** mock-nuclea optional Deployment + prod guard (ADR-23) ([26252ea](26252ea))
* **charts:** model br-ccs snapshot quarantine knobs as configmap keys ([df6bb6c](df6bb6c))
* render streaming SASL/TLS secrets in midaz + plugin-fees Secrets ([ead8417](ead8417))
* **flowker:** ship 3.1.0 multi-component release (schema, docs, image tag) ([75f8cdb](75f8cdb))
* **streaming-hub:** support AWS IAM Roles Anywhere ([3422c6c](3422c6c))
* **charts:** support LICENSE_KEY and ORGANIZATION_IDS in br-ccs secrets ([4b62eb6](4b62eb6))
* **helm-standard:** support type: library charts + lerian-common contract ([69b7fdb](69b7fdb))
* **midaz:** update midaz-crm@3.7.8, midaz-ledger@3.7.8 - new env vars ([0ad123f](0ad123f))
* **midaz:** update midaz-crm@3.8.0, midaz-ledger@3.8.0 ([f38da4c](f38da4c))
* **plugin-br-pix-indirect-btg:** update plugin-br-pix-indirect-btg@1.8.0, plugin-br-pix-indirect-btg-worker-reconciliation@1.8.0, plugin-br-pix-indirect-btg-worker-schedule@1.8.0, plugin-br-pix-indirect-btg-worker-inbound@1.8.0, plugin-br-pix-indirect-btg-worker-outbound@1.8.0 - new env vars ([ded3bc4](ded3bc4))
* **plugin-fees:** update plugin-fees@3.3.0 - new env vars ([e64d615](e64d615))
* **plugin-fees:** update plugin-fees@3.4.0 ([0237f21](0237f21))

### Bug Fixes

* **br-ccs:** add Chart Contract section to README ([a5ba0b3](a5ba0b3))
* **br-sisbajud:** address CI violations + CodeRabbit review ([41ef02f](41ef02f))
* **br-slc:** address CodeRabbit review on BYOC helm chart ([fc5659f](fc5659f))
* **br-ccs:** address CodeRabbit review on PR [#1617](#1617) ([b4112dd](b4112dd))
* **br-sisbajud:** align migration Job env with br-sta pattern ([18b02e5](18b02e5))
* align WEBHOOK_SCHEDULE_CASHOUT_URL default with other CASHOUT keys ([5a4c7b4](5a4c7b4))
* **chart:** classify adapter-lerian BRSFN_TOKEN_URL as a secret ([c4732a8](c4732a8))
* **flowker:** clear helm-chart-standard strict violations and address review ([6117aeb](6117aeb))
* **br-sisbajud:** correct appVersion to 1.0.0-beta.109 ([59d300e](59d300e))
* **pix-indirect-btg:** correct low-throughput defaults for recurrence/terminal entities ([27925f7](27925f7))
* **lender:** default consignado dark so eight deployments stop depending on one line ([adef35d](adef35d))
* **pipe:** escape Helm template syntax breaking GitHub Pages build ([c875970](c875970))
* **lerian-common:** fail on conflicting pdb fields in explicit mode ([d7a50d8](d7a50d8))
* **helm-standard:** gate library exemptions on chart.Type + fix messages ([477e4cd](477e4cd))
* **plugin-br-pix-indirect-btg:** give schedule worker PDB real disruption protection ([f90ecab](f90ecab)), closes [#1682](#1682)
* **charts:** harden mock-nuclea SPB runbook + mountPath schema (PR [#1699](#1699) review) ([4c276aa](4c276aa))
* **charts:** merge fsGroup instead of replacing the pod security context ([7c11ac2](7c11ac2)), closes [#1769](#1769)
* **br-sta:** pass ALLOW_INSECURE_TLS to migrations Job for non-TLS Postgres ([1fd3a50](1fd3a50))
* **br-sisbajud:** pin busybox to 1.36 in values.yaml defaults ([eebc7ce](eebc7ce))
* **br-sisbajud:** preserve valueFrom env in topics PreSync Job ([4e260aa](4e260aa)), closes [#1666](#1666)
* remove duplicate secret.yaml, secrets.yaml already exists ([540c4ad](540c4ad))
* **charts:** render br-ccs ALLOW_RATELIMIT_FAIL_OPEN, drop dead ALLOW_RATELIMIT_DISABLED ([24efbd2](24efbd2))
* **charts:** render br-ccs RABBITMQ_URL as a secret, not a configmap value ([e54f325](e54f325))
* **lerian-common:** render-gate skip for library + honor 0 in pdb/probes ([8ebcaeb](8ebcaeb))
* **flowker:** restore 3.1 chart content dropped by the 3.1.0 release ([caff99f](caff99f))
* **charts:** restore the streaming-hub release section in README ([8294e64](8294e64)), closes [#1571](#1571) [#1769](#1769)
* **chart:** serve adapter-lerian consumer probes under /lerian ([b4a338a](b4a338a))
* **br-sisbajud:** set HOME=/tmp on topics provisioner Job ([9886085](9886085))
* **streaming-hub:** the values header still claimed fsGroup replaces the pod security context ([3f4210e](3f4210e)), closes [#1769](#1769) [#1799](#1799)
* **fetcher:** update fetcher-manager@3.0.2, fetcher-worker@3.0.2 ([3c815a7](3c815a7))
* **plugin-br-bank-transfer:** update plugin-br-bank-transfer@1.1.9 ([a5710e9](a5710e9))
* **plugin-br-pix-indirect-btg:** update plugin-br-pix-indirect-btg@1.7.6, plugin-br-pix-indirect-btg-worker-reconciliation@1.7.6, plugin-br-pix-indirect-btg-worker-inbound@1.7.6, plugin-br-pix-indirect-btg-worker-outbound@1.7.6 ([bcd81c1](bcd81c1))
* **reporter:** update reporter-manager@2.2.0, reporter-worker@2.2.0 ([cc51d8b](cc51d8b))
* **reporter:** update reporter-manager@2.3.0, reporter-worker@2.3.0 ([7b4ff5b](7b4ff5b))
* **br-sisbajud:** use stringData in app Secret template ([063f33b](063f33b))
lerian-studio-midaz-push-bot Bot pushed a commit that referenced this pull request Aug 7, 2026
##  (2026-08-07)

### Features

* **midaz:** add tracer templates to the umbrella chart ([cb93090](cb93090))
* **charts:** mock-nuclea optional Deployment + prod guard (ADR-23) ([26252ea](26252ea))
* **midaz:** pass CRM, Fees, KMS and tracer config to the ledger ([bed01b2](bed01b2))
* **streaming-hub:** support AWS IAM Roles Anywhere ([3422c6c](3422c6c))

### Bug Fixes

* **midaz:** address review findings on unified ledger and tracer config ([25a3d76](25a3d76))
* **lender:** default consignado dark so eight deployments stop depending on one line ([adef35d](adef35d))
* **midaz:** gate v4 Deployments on migrations, track tracer DB name, tighten semver guard ([368e90c](368e90c))
* **charts:** harden mock-nuclea SPB runbook + mountPath schema (PR [#1699](#1699) review) ([4c276aa](4c276aa))
* **midaz:** make the chart able to actually run midaz v4 tracer and ledger ([d722d48](d722d48))
* **charts:** merge fsGroup instead of replacing the pod security context ([7c11ac2](7c11ac2)), closes [#1769](#1769)
* **midaz:** resolve tracer db host per release, fix transport seam, harden validation ([5a56a60](5a56a60))
* **charts:** restore the streaming-hub release section in README ([8294e64](8294e64)), closes [#1571](#1571) [#1769](#1769)
* **streaming-hub:** the values header still claimed fsGroup replaces the pod security context ([3f4210e](3f4210e)), closes [#1769](#1769) [#1799](#1799)
* **midaz:** wait for CRM/Fees Mongo in init container and honor explicit tracer PDB minAvailable: 0 ([0c3d853](0c3d853))
lerian-studio-midaz-push-bot Bot pushed a commit that referenced this pull request Aug 7, 2026
##  (2026-08-07)

### Features

* **midaz:** add tracer templates to the umbrella chart ([cb93090](cb93090))
* **charts:** mock-nuclea optional Deployment + prod guard (ADR-23) ([26252ea](26252ea))
* **midaz:** pass CRM, Fees, KMS and tracer config to the ledger ([bed01b2](bed01b2))
* **streaming-hub:** support AWS IAM Roles Anywhere ([3422c6c](3422c6c))

### Bug Fixes

* **midaz:** address review findings on unified ledger and tracer config ([25a3d76](25a3d76))
* **lender:** default consignado dark so eight deployments stop depending on one line ([adef35d](adef35d))
* **midaz:** gate v4 Deployments on migrations, track tracer DB name, tighten semver guard ([368e90c](368e90c))
* **charts:** harden mock-nuclea SPB runbook + mountPath schema (PR [#1699](#1699) review) ([4c276aa](4c276aa))
* **midaz:** make the chart able to actually run midaz v4 tracer and ledger ([d722d48](d722d48))
* **charts:** merge fsGroup instead of replacing the pod security context ([7c11ac2](7c11ac2)), closes [#1769](#1769)
* **midaz:** resolve tracer db host per release, fix transport seam, harden validation ([5a56a60](5a56a60))
* **charts:** restore the streaming-hub release section in README ([8294e64](8294e64)), closes [#1571](#1571) [#1769](#1769)
* **streaming-hub:** the values header still claimed fsGroup replaces the pod security context ([3f4210e](3f4210e)), closes [#1769](#1769) [#1799](#1799)
* **plugin-br-pix-indirect-btg:** update plugin-br-pix-indirect-btg@1.9.1 ([2ae166a](2ae166a))
* **midaz:** wait for CRM/Fees Mongo in init container and honor explicit tracer PDB minAvailable: 0 ([0c3d853](0c3d853))
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