44 lines
776 B
Go
44 lines
776 B
Go
package testserver
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"path/filepath"
|
|
|
|
"helm.sh/helm/v3/pkg/action"
|
|
"helm.sh/helm/v3/pkg/repo"
|
|
"sigs.k8s.io/yaml"
|
|
)
|
|
|
|
func NewTempHelmServer() (*Helm, error) {
|
|
server, err := NewTempHTTPServer()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
helm := &Helm{server}
|
|
return helm, nil
|
|
}
|
|
|
|
type Helm struct {
|
|
*HTTP
|
|
}
|
|
|
|
func (s *Helm) GenerateIndex() error {
|
|
index, err := repo.IndexDirectory(s.HTTP.docroot, s.HTTP.URL())
|
|
if err != nil {
|
|
return err
|
|
}
|
|
d, err := yaml.Marshal(index)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
f := filepath.Join(s.HTTP.docroot, "index.yaml")
|
|
return ioutil.WriteFile(f, d, 0644)
|
|
}
|
|
|
|
func (s *Helm) PackageChart(path string) error {
|
|
pkg := action.NewPackage()
|
|
pkg.Destination = s.HTTP.docroot
|
|
_, err := pkg.Run(path, nil)
|
|
return err
|
|
}
|