Let customers ignore specific properties in stack what-if (similar to Terraform's ignore_changes)

Aperta
#268 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Ambito
cloud

Direzione di ricerca

Start by reading the stack what-if implementation and the related drift detection issue #117 and tag noise issue #253; this request does not name source files or tests. The work needs a design for how ignored properties are declared on resources or stacks and how ignored differences appear in results. Done means customers can configure ignored property paths and see those differences identified as ignored.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Is your feature request related to a problem? Please describe.

Raised by a customer that reviews stack what-if results in pull requests. Some properties on their stack-managed resources are expected to change outside the template. For example, an Azure Policy (DeployIfNotExists) sets a tag with when and how a resource was last changed, including manual changes, so the template never sets it. Stack what-if reports those differences, so today they strip them out of the what-if JSON with a script before deciding whether anything changed.

Whether a difference like this is noise depends on the customer's setup, so it's hard for the platform to decide it for them.

Describe the solution you'd like

A way for customers to mark properties as ignored in stack what-if, similar to ignore_changes in Terraform:

  • on a resource in the template, for example with a decorator, and
  • for a whole stack, for example a list of property paths or tag names.

Ideally, ignored differences would still be listed as ignored rather than dropped, so it stays clear what was filtered out.

Describe alternatives you've considered

  • Setting every default explicitly in the template. That works for provider defaults, but not for values another process owns, like a policy-set tag.
  • Carrying the current value forward with this.existingResource(). What-if doesn't evaluate it yet (Azure/arm-template-whatif#83), so the property still shows as a change.
  • Filtering the what-if output with a script, which is what they do today.

Additional context

Related: Azure/bicep#3931 (ignore tag changes, closed after no recent activity), Azure/bicep#8729 (preserving existing properties during a deployment), #117 (drift detection) and #253 (tag noise in stack what-if). An ignored property is also drift the customer has chosen not to track, so this overlaps with drift detection.

Lingua principale
Bicep
Stelle
103
Fork
13
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Azure/deployment-stacks

Tutte le issue di Azure/deployment-stacks

Issue simili

Altre issue su Cloud

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.