code: func Chartfile(linter *support.Linter) {
  	chartFileName := "Chart.yaml"
  	chartPath := filepath.Join(linter.ChartDir, chartFileName)
  
  	linter.RunLinterRule(support.ErrorSev, chartFileName, validateChartYamlNotDirectory(chartPath))
  
  	chartFile, err := chartutil.LoadChartfile(chartPath)
  	validChartFile := linter.RunLinterRule(support.ErrorSev, chartFileName, validateChartYamlFormat(err))
  
  	// Guard clause. Following linter rules require a parseable ChartFile
  	if !validChartFile {
  		return
  	}
  
  	linter.RunLinterRule(support.ErrorSev, chartFileName, validateChartNamePresence(chartFile))
  	linter.RunLinterRule(support.WarningSev, chartFileName, validateChartNameFormat(chartFile))
  	linter.RunLinterRule(support.ErrorSev, chartFileName, validateChartNameDirMatch(linter.ChartDir, chartFile))
  
  	// Chart metadata
  	linter.RunLinterRule(support.ErrorSev, chartFileName, validateChartVersion(chartFile))
  	linter.RunLinterRule(support.ErrorSev, chartFileName, validateChartEngine(chartFile))
  	linter.RunLinterRule(support.ErrorSev, chartFileName, validateChartMaintainer(chartFile))
  	linter.RunLinterRule(support.ErrorSev, chartFileName, validateChartSources(chartFile))
  	linter.RunLinterRule(support.InfoSev, chartFileName, validateChartIconPresence(chartFile))
  	linter.RunLinterRule(support.ErrorSev, chartFileName, validateChartIconURL(chartFile))
  }
docs: // Chartfile runs a set of linter rules related to Chart.yaml file