github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/pkg/fanal/analyzer/config/k8s/k8s.go (about)

     1  package k8s
     2  
     3  import (
     4  	"github.com/devseccon/trivy/pkg/fanal/analyzer"
     5  	"github.com/devseccon/trivy/pkg/fanal/analyzer/config"
     6  	"github.com/devseccon/trivy/pkg/misconf"
     7  )
     8  
     9  const (
    10  	analyzerType = analyzer.TypeKubernetes
    11  	version      = 1
    12  )
    13  
    14  func init() {
    15  	analyzer.RegisterPostAnalyzer(analyzerType, newKubernetesConfigAnalyzer)
    16  }
    17  
    18  // kubernetesConfigAnalyzer is an analyzer for detecting misconfigurations in Kubernetes config files.
    19  // It embeds config.Analyzer so it can implement analyzer.PostAnalyzer.
    20  type kubernetesConfigAnalyzer struct {
    21  	*config.Analyzer
    22  }
    23  
    24  func newKubernetesConfigAnalyzer(opts analyzer.AnalyzerOptions) (analyzer.PostAnalyzer, error) {
    25  	a, err := config.NewAnalyzer(analyzerType, version, misconf.NewKubernetesScanner, opts)
    26  	if err != nil {
    27  		return nil, err
    28  	}
    29  	return &kubernetesConfigAnalyzer{Analyzer: a}, nil
    30  }