From d85baf3bebb818bed57662bc5e33453de63000cb Mon Sep 17 00:00:00 2001 From: Erik Brakkee Date: Thu, 2 Jan 2025 23:00:11 +0100 Subject: [PATCH] deterministic ordering of output. --- cmd/policygen/config.go | 1 + cmd/policygen/generator.go | 17 +++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/cmd/policygen/config.go b/cmd/policygen/config.go index c4ca70d..1820035 100644 --- a/cmd/policygen/config.go +++ b/cmd/policygen/config.go @@ -173,6 +173,7 @@ func LoadConfig(file string) (*Config, error) { dec := yaml.NewDecoder(bytes.NewReader(yamlFile), yaml.UseJSONUnmarshaler(), yaml.DisallowUnknownField(), + yaml.UseOrderedMap(), ) var config Config err = dec.Decode(&config) diff --git a/cmd/policygen/generator.go b/cmd/policygen/generator.go index c1859ea..b2e169c 100644 --- a/cmd/policygen/generator.go +++ b/cmd/policygen/generator.go @@ -72,12 +72,10 @@ func Generate(writer io.Writer, generator Generator, config *Config) error { } // Loop over all applications and gather the ingress and egress for each application - var applications = make(map[string]*Application) var ingresses = make(map[string]*Ingress) var egresses = make(map[string]*Egress) for _, ns := range config.Namespaces { for _, app := range ns.Applications { - applications[app.Name] = app if ingresses[app.Name] == nil { ingresses[app.Name] = &Ingress{} } @@ -149,12 +147,15 @@ func Generate(writer io.Writer, generator Generator, config *Config) error { } // loop over all apps and configure them - for app, ingress := range ingresses { - egress := egresses[app] - if !ingress.Empty() || !egress.Empty() { - err := generator.GenerateCommunicationRule(writer, applications[app], ingress, egress) - if err != nil { - return err + for _, ns := range config.Namespaces { + for _, app := range ns.Applications { + ingress := ingresses[app.Name] + egress := egresses[app.Name] + if !ingress.Empty() || !egress.Empty() { + err := generator.GenerateCommunicationRule(writer, app, ingress, egress) + if err != nil { + return err + } } } }