@@ -12,7 +12,9 @@ import (
1212 cranev1 "github.com/google/go-containerregistry/pkg/v1"
1313)
1414
15- var requiredLabels = []string {"name" , "vendor" , "version" , "release" , "summary" , "description" }
15+ var requiredLabels = []string {"name" , "vendor" , "version" , "release" , "summary" , "description" , "maintainer" }
16+
17+ var trademarkLabels = []string {"name" , "vendor" , "maintainer" }
1618
1719var _ check.Check = & HasRequiredLabelsCheck {}
1820
@@ -37,6 +39,13 @@ func (p *HasRequiredLabelsCheck) getDataForValidate(image cranev1.Image) (map[st
3739func (p * HasRequiredLabelsCheck ) validate (ctx context.Context , labels map [string ]string ) (bool , error ) {
3840 logger := logr .FromContextOrDiscard (ctx )
3941
42+ trademarkViolationLabels := []string {}
43+ for _ , label := range trademarkLabels {
44+ if violatesRedHatTrademark (labels [label ]) {
45+ trademarkViolationLabels = append (trademarkViolationLabels , label )
46+ }
47+ }
48+
4049 missingLabels := []string {}
4150 for _ , label := range requiredLabels {
4251 if labels [label ] == "" {
@@ -49,7 +58,11 @@ func (p *HasRequiredLabelsCheck) validate(ctx context.Context, labels map[string
4958 logger .V (log .DBG ).Info ("expected labels are missing" , "missingLabels" , missingLabels )
5059 }
5160
52- return len (missingLabels ) == 0 , nil
61+ if len (trademarkViolationLabels ) > 0 {
62+ logger .V (log .DBG ).Info ("labels violate Red Hat trademark" , "trademarkViolationLabels" , trademarkViolationLabels )
63+ }
64+
65+ return len (missingLabels ) == 0 && len (trademarkViolationLabels ) == 0 , nil
5366}
5467
5568func (p * HasRequiredLabelsCheck ) Name () string {
@@ -58,7 +71,8 @@ func (p *HasRequiredLabelsCheck) Name() string {
5871
5972func (p * HasRequiredLabelsCheck ) Metadata () check.Metadata {
6073 return check.Metadata {
61- Description : "Checking if the required labels (name, vendor, version, release, summary, description) are present in the container metadata." ,
74+ Description : "Checking if the required labels (name, vendor, version, release, summary, description, maintainer) are present in the container metadata." +
75+ "and that they do not violate Red Hat trademark." ,
6276 Level : "good" ,
6377 KnowledgeBaseURL : certDocumentationURL ,
6478 CheckURL : certDocumentationURL ,
@@ -67,7 +81,8 @@ func (p *HasRequiredLabelsCheck) Metadata() check.Metadata {
6781
6882func (p * HasRequiredLabelsCheck ) Help () check.HelpText {
6983 return check.HelpText {
70- Message : "Check Check HasRequiredLabel encountered an error. Please review the preflight.log file for more information." ,
71- Suggestion : "Add the following labels to your Dockerfile or Containerfile: name, vendor, version, release, summary, description" ,
84+ Message : "Check HasRequiredLabel encountered an error. Please review the preflight.log file for more information." ,
85+ Suggestion : "Add the following labels to your Dockerfile or Containerfile: name, vendor, version, release, summary, description" +
86+ "and validate that they do not violate Red Hat trademark." ,
7287 }
7388}
0 commit comments