Skip to content

Commit

Permalink
include rendering errors in builders lint results
Browse files Browse the repository at this point in the history
  • Loading branch information
bbawn committed Aug 2, 2023
1 parent 925123b commit 3056534
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions pkg/handlers/builders_lint.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ func LintBuildersRelease(c *gin.Context) {
log.Infof("Received builders lint request with content-length=%s, content-type=%s, client-ip=%s", c.GetHeader("content-length"), c.ContentType(), c.ClientIP())

specFiles := kots.SpecFiles{}

// Include rendering errors in the lint results (even though pedantically they're not lint expressions)
var lintExpressions []kots.LintExpression
if c.ContentType() == "application/tar" {
tarReader := tar.NewReader(c.Request.Body)
for {
Expand All @@ -50,6 +53,12 @@ func LintBuildersRelease(c *gin.Context) {
files, err := kots.GetFilesFromChartReader(tarReader)
if err != nil {
log.Infof("failed to get files from chart %s: %v", header.Name, err)
lintExpressions = append(lintExpressions, kots.LintExpression{
Rule: "rendering",
Type: "error",
Message: err.Error(),
Path: header.Name,
})
continue
}

Expand All @@ -58,9 +67,12 @@ func LintBuildersRelease(c *gin.Context) {
} else if c.ContentType() == "application/gzip" {
files, err := kots.GetFilesFromChartReader(c.Request.Body)
if err != nil {
log.Errorf("failed to get files from chart: %v", err)
c.AbortWithError(http.StatusInternalServerError, err)
return
log.Infof("failed to get files from request: %v", err)
lintExpressions = append(lintExpressions, kots.LintExpression{
Rule: "rendering",
Type: "error",
Message: err.Error(),
})
}

specFiles = append(specFiles, files...)
Expand All @@ -69,13 +81,14 @@ func LintBuildersRelease(c *gin.Context) {
return
}

lintExpressions, err := kots.LintBuilders(c.Request.Context(), specFiles)
lint, err := kots.LintBuilders(c.Request.Context(), specFiles)
if err != nil {
log.Errorf("failed to lint builders charts: %v", err)
c.AbortWithError(http.StatusInternalServerError, err)
return
}

lintExpressions = append(lintExpressions, lint...)
response := LintReleaseResponse{}
response.Body.LintExpressions = lintExpressions

Expand Down

0 comments on commit 3056534

Please sign in to comment.