func (r *HelmAdapter) GetImageNames() ([]string, error) {
	var imageNames []string
	r.Charts = map[string]ChartVersions{}
	index, err := r.getHelmIndex()
	if err != nil {
		return imageNames, err
	}
	for name, entry := range index.Entries {
		if len(entry) == 0 {
			continue
		}
		r.Charts[name] = entry
		imageNames = append(imageNames, name)
	}
	return imageNames, nil
}
GetImageNames - retrieve the images
package adapters
import (
	"archive/tar"
	"compress/gzip"
	"fmt"
	"io"
	"io/ioutil"
	"net/http"
	"path"
	"sort"
	"strings"
	"time"
	"github.com/Masterminds/semver"
	"github.com/automationbroker/bundle-lib/bundle"
	"github.com/ghodss/yaml"
)
const (
	helmName          = "helm"
	helmIndexPath     = "/index.yaml"
	valuesFilePattern = "*/values.yaml"
)
type HelmAdapter struct {
	Config Configuration
	Charts map[string]ChartVersions
}
type ChartVersions []*ChartVersion
func (c ChartVersions) Len() int { return len(c) }
func (c ChartVersions) Swap(i, j int) { c[i], c[j] = c[j], c[i] }
func (c ChartVersions) Less(a, b int) bool {
	i, err := semver.NewVersion(c[a].Version)
	if err != nil {
		return true
	}
	j, err := semver.NewVersion(c[b].Version)
	if err != nil {
		return false
	}
	return i.LessThan(j)
}
type IndexFile struct {
	APIVersion string                   `json:"apiVersion"`
	Generated  time.Time                `json:"generated"`
	Entries    map[string]ChartVersions `json:"entries"`
	PublicKeys []string                 `json:"publicKeys,omitempty"`
}
type Maintainer struct {
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Email string `protobuf:"bytes,2,opt,name=email" json:"email,omitempty"`
	URL string `protobuf:"bytes,3,opt,name=url" json:"url,omitempty"`
}
type ChartVersion struct {
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Home string `protobuf:"bytes,2,opt,name=home" json:"home,omitempty"`
	Sources []string `protobuf:"bytes,3,rep,name=sources" json:"sources,omitempty"`
	Version string `protobuf:"bytes,4,opt,name=version" json:"version,omitempty"`
	Description string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"`
	Keywords []string `protobuf:"bytes,6,rep,name=keywords" json:"keywords,omitempty"`
	Maintainers []*Maintainer `protobuf:"bytes,7,rep,name=maintainers" json:"maintainers,omitempty"`
	Engine string `protobuf:"bytes,8,opt,name=engine" json:"engine,omitempty"`
	Icon string `protobuf:"bytes,9,opt,name=icon" json:"icon,omitempty"`
	APIVersion string `protobuf:"bytes,10,opt,name=apiVersion" json:"apiVersion,omitempty"`
	Condition string `protobuf:"bytes,11,opt,name=condition" json:"condition,omitempty"`
	Tags string `protobuf:"bytes,12,opt,name=tags" json:"tags,omitempty"`
	AppVersion string `protobuf:"bytes,13,opt,name=appVersion" json:"appVersion,omitempty"`
	Deprecated bool `protobuf:"varint,14,opt,name=deprecated" json:"deprecated,omitempty"`
	TillerVersion string `protobuf:"bytes,15,opt,name=tillerVersion" json:"tillerVersion,omitempty"`
	Annotations map[string]string `protobuf:"bytes,16,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	KubeVersion string    `protobuf:"bytes,17,opt,name=kubeVersion" json:"kubeVersion,omitempty"`
	URLs        []string  `json:"urls"`
	Created     time.Time `json:"created,omitempty"`
	Removed     bool      `json:"removed,omitempty"`
	Digest      string    `json:"digest,omitempty"`
}
func (r *HelmAdapter) RegistryName() string {
	return helmName
}