Skip to content

Commit

Permalink
feat(checker): add kustbuildandeval
Browse files Browse the repository at this point in the history
  • Loading branch information
anarcher committed Mar 26, 2020
1 parent 29679ca commit 5a80431
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
5 changes: 5 additions & 0 deletions pkg/checker/checker.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package checker

type Checker interface {
Check() error
}
49 changes: 49 additions & 0 deletions pkg/checker/kustbuildandeval.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package checker

import (
"fmt"

"github.com/anarcher/kustomize-check-action/pkg/command"
"github.com/anarcher/kustomize-check-action/pkg/config"
"github.com/anarcher/kustomize-check-action/pkg/finder"
)

const (
kustBuildAndEvalCmdFmt = "set -o pipefail ; kustomize build %s | kubeval --ignore-missing-schemas "
)

type KustBuildAndEval struct {
cfg *config.Config
finder finder.PathFinder
cmd command.Commander
}

func NewKustBuildAndEval(cfg *config.Config, f finder.PathFinder, cmd command.Commander) *KustBuildAndEval {
k := &KustBuildAndEval{
cfg: cfg,
finder: f,
cmd: cmd,
}
return k
}

func (k *KustBuildAndEval) Check() error {
paths, err := k.finder.PathFind()
if err != nil {
return err
}
if len(paths) == 0 {
fmt.Println("kustomization not found")
return nil
}
for _, p := range paths {
fmt.Printf("PATH: %s\n", p)
fmt.Println("CMD:", fmt.Sprintf(kustBuildAndEvalCmdFmt, p))
_, err := k.cmd.Run("bash", "-c", fmt.Sprintf(kustBuildAndEvalCmdFmt, p))
fmt.Println("err::::", err)
if err != nil {
return err
}
}
return nil
}

0 comments on commit 5a80431

Please sign in to comment.