From 8ac31330bec9693ef29ef9fd85129ddf979eeab2 Mon Sep 17 00:00:00 2001 From: decentral1se Date: Sat, 28 Dec 2024 21:55:02 +0100 Subject: [PATCH] fix: error out if missing "deploy.labels" See https://git.coopcloud.tech/toolshed/organising/issues/643 --- pkg/lint/recipe.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/pkg/lint/recipe.go b/pkg/lint/recipe.go index 51ee392f..32dd268c 100644 --- a/pkg/lint/recipe.go +++ b/pkg/lint/recipe.go @@ -137,6 +137,13 @@ var LintRules = map[string][]LintRule{ HowToResolve: "name a servce 'app'", Function: LintAppService, }, + { + Ref: "R015", + Level: "error", + Description: "deploy labels stanza present", + HowToResolve: "include \"deploy: labels: ...\" stanza", + Function: LintDeployLabelsPresent, + }, { Ref: "R010", Level: "error", @@ -269,6 +276,21 @@ func LintTraefikEnabled(recipe recipe.Recipe) (bool, error) { return false, nil } +func LintDeployLabelsPresent(recipe recipe.Recipe) (bool, error) { + config, err := recipe.GetComposeConfig(nil) + if err != nil { + return false, err + } + + for _, service := range config.Services { + if service.Name == "app" && service.Deploy.Labels != nil { + return true, nil + } + } + + return false, nil +} + func LintHealthchecks(recipe recipe.Recipe) (bool, error) { config, err := recipe.GetComposeConfig(nil) if err != nil {