From ec92b760543cccce343fdd9be0a17ab9b2572f61 Mon Sep 17 00:00:00 2001 From: Maciej Kwiek Date: Fri, 21 Apr 2017 13:50:44 +0200 Subject: [PATCH 01/28] Release are locked to avoid parallel changes Environment is supplied with release lock map which allows to lock a release by name to make sure that update, rollback or uninstall aren't running on one release at the same time. --- pkg/storage/storage.go | 57 +++++++++++++++++++++++++++++++++++- pkg/storage/storage_test.go | 28 ++++++++++++++++++ pkg/tiller/release_server.go | 18 ++++++++++++ 3 files changed, 102 insertions(+), 1 deletion(-) diff --git a/pkg/storage/storage.go b/pkg/storage/storage.go index a10f377da..46bd21d4a 100644 --- a/pkg/storage/storage.go +++ b/pkg/storage/storage.go @@ -19,6 +19,7 @@ package storage // import "k8s.io/helm/pkg/storage" import ( "fmt" "log" + "sync" rspb "k8s.io/helm/pkg/proto/hapi/release" relutil "k8s.io/helm/pkg/releaseutil" @@ -28,6 +29,11 @@ import ( // Storage represents a storage engine for a Release. type Storage struct { driver.Driver + + // releaseLocks are for locking releases to make sure that only one operation at a time is executed on each release + releaseLocks map[string]*sync.Mutex + // releaseLocksLock is a mutex for accessing releaseLocks + releaseLocksLock *sync.Mutex } // Get retrieves the release from storage. An error is returned @@ -153,6 +159,51 @@ func (s *Storage) Last(name string) (*rspb.Release, error) { return h[0], nil } +// LockRelease gains a mutually exclusive access to a release via a mutex. +func (s *Storage) LockRelease(name string) error { + s.releaseLocksLock.Lock() + defer s.releaseLocksLock.Unlock() + + var lock *sync.Mutex + lock, exists := s.releaseLocks[name] + + if !exists { + releases, err := s.ListReleases() + if err != nil { + return err + } + + found := false + for _, release := range releases { + if release.Name == name { + found = true + } + } + if !found { + return fmt.Errorf("Unable to lock release %s: release not found", name) + } + + lock = &sync.Mutex{} + s.releaseLocks[name] = lock + } + lock.Lock() + return nil +} + +// UnlockRelease releases a mutually exclusive access to a release. +// If release doesn't exist or wasn't previously locked - the unlock will pass +func (s *Storage) UnlockRelease(name string) { + s.releaseLocksLock.Lock() + defer s.releaseLocksLock.Unlock() + + var lock *sync.Mutex + lock, exists := s.releaseLocks[name] + if !exists { + return + } + lock.Unlock() +} + // makeKey concatenates a release name and version into // a string with format ```#v```. // This key is used to uniquely identify storage objects. @@ -167,5 +218,9 @@ func Init(d driver.Driver) *Storage { if d == nil { d = driver.NewMemory() } - return &Storage{Driver: d} + return &Storage{ + Driver: d, + releaseLocks: make(map[string]*sync.Mutex), + releaseLocksLock: &sync.Mutex{}, + } } diff --git a/pkg/storage/storage_test.go b/pkg/storage/storage_test.go index 141a019fa..d2dc8cdb2 100644 --- a/pkg/storage/storage_test.go +++ b/pkg/storage/storage_test.go @@ -272,3 +272,31 @@ func assertErrNil(eh func(args ...interface{}), err error, message string) { eh(fmt.Sprintf("%s: %q", message, err)) } } + +func TestReleaseLocksNotExist(t *testing.T) { + s := Init(driver.NewMemory()) + + err := s.LockRelease("no-such-release") + + if err == nil { + t.Errorf("Exptected error when trying to lock non-existing release, got nil") + } +} + +func TestReleaseLocks(t *testing.T) { + s := Init(driver.NewMemory()) + + releaseName := "angry-beaver" + rls := ReleaseTestData{ + Name: releaseName, + Version: 1, + }.ToRelease() + + s.Create(rls) + + err := s.LockRelease(releaseName) + if err != nil { + t.Errorf("Exptected nil err when locking existing release") + } + s.UnlockRelease(releaseName) +} diff --git a/pkg/tiller/release_server.go b/pkg/tiller/release_server.go index 5bd0a48de..bd480fb32 100644 --- a/pkg/tiller/release_server.go +++ b/pkg/tiller/release_server.go @@ -283,6 +283,12 @@ func (s *ReleaseServer) GetReleaseContent(c ctx.Context, req *services.GetReleas // UpdateRelease takes an existing release and new information, and upgrades the release. func (s *ReleaseServer) UpdateRelease(c ctx.Context, req *services.UpdateReleaseRequest) (*services.UpdateReleaseResponse, error) { + err := s.env.Releases.LockRelease(req.Name) + if err != nil { + return nil, err + } + defer s.env.Releases.UnlockRelease(req.Name) + currentRelease, updatedRelease, err := s.prepareUpdate(req) if err != nil { return nil, err @@ -465,6 +471,12 @@ func (s *ReleaseServer) prepareUpdate(req *services.UpdateReleaseRequest) (*rele // RollbackRelease rolls back to a previous version of the given release. func (s *ReleaseServer) RollbackRelease(c ctx.Context, req *services.RollbackReleaseRequest) (*services.RollbackReleaseResponse, error) { + err := s.env.Releases.LockRelease(req.Name) + if err != nil { + return nil, err + } + defer s.env.Releases.UnlockRelease(req.Name) + currentRelease, targetRelease, err := s.prepareRollback(req) if err != nil { return nil, err @@ -983,6 +995,12 @@ func (s *ReleaseServer) purgeReleases(rels ...*release.Release) error { // UninstallRelease deletes all of the resources associated with this release, and marks the release DELETED. func (s *ReleaseServer) UninstallRelease(c ctx.Context, req *services.UninstallReleaseRequest) (*services.UninstallReleaseResponse, error) { + err := s.env.Releases.LockRelease(req.Name) + if err != nil { + return nil, err + } + defer s.env.Releases.UnlockRelease(req.Name) + if !ValidName.MatchString(req.Name) { log.Printf("uninstall: Release not found: %s", req.Name) return nil, errMissingRelease From 7094651493648b706613cb9fd04b477870d6b5ef Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Mon, 17 Apr 2017 14:14:39 -0600 Subject: [PATCH 02/28] feat(*): update to latest gRPC and Protobuf Effectively, this switches us to gRPC's internal version 4. This is compatible with protoc 3.2 and grpc-go 1.2.1. --- _proto/Makefile | 4 + glide.lock | 15 +- glide.yaml | 4 +- pkg/proto/hapi/chart/config.pb.go | 14 ++ pkg/proto/hapi/chart/metadata.pb.go | 112 +++++++++ pkg/proto/hapi/chart/template.pb.go | 14 ++ pkg/proto/hapi/release/hook.pb.go | 42 ++++ pkg/proto/hapi/release/info.pb.go | 7 + pkg/proto/hapi/release/release.pb.go | 28 +++ pkg/proto/hapi/release/status.pb.go | 21 ++ pkg/proto/hapi/release/test_run.pb.go | 21 ++ pkg/proto/hapi/services/tiller.pb.go | 347 +++++++++++++++++++++++++- pkg/proto/hapi/version/version.pb.go | 21 ++ 13 files changed, 640 insertions(+), 10 deletions(-) diff --git a/_proto/Makefile b/_proto/Makefile index 38f4ba6c2..078514a9c 100644 --- a/_proto/Makefile +++ b/_proto/Makefile @@ -29,15 +29,19 @@ google_deps = Mgoogle/protobuf/timestamp.proto=github.com/golang/protobuf/ptype .PHONY: all all: chart release services version +.PHONY: chart chart: PATH=../bin:$(PATH) protoc --$(target)_out=plugins=$(plugins),$(google_deps),$(chart_ias):$(dst) $(chart_pbs) +.PHONY: release release: PATH=../bin:$(PATH) protoc --$(target)_out=plugins=$(plugins),$(google_deps),$(chart_ias),$(version_ias):$(dst) $(release_pbs) +.PHONY: services services: PATH=../bin:$(PATH) protoc --$(target)_out=plugins=$(plugins),$(google_deps),$(chart_ias),$(version_ias),$(release_ias):$(dst) $(services_pbs) +.PHONY: version version: PATH=../bin:$(PATH) protoc --$(target)_out=plugins=$(plugins),$(google_deps):$(dst) $(version_pbs) diff --git a/glide.lock b/glide.lock index 77abc9aa6..3524e3dcd 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ -hash: 59f320c07649cfd057b84f1044074670230fa3ca27b32632eb77a16a972adc8e -updated: 2017-04-20T01:34:59.645884965-07:00 +hash: e9366bddb36a7120a832959c89f72f75d56b9f10f84820420795c668d9cb0987 +updated: 2017-04-27T14:23:27.66000871-06:00 imports: - name: bitbucket.org/ww/goautoneg version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675 @@ -123,7 +123,7 @@ imports: - util/runes - util/strings - name: github.com/gogo/protobuf - version: e18d7aa8f8c624c915db340349aad4c49b10d173 + version: c0656edd0d9eab7c66d1eb0c568f9039345796f7 subpackages: - proto - sortkeys @@ -134,7 +134,7 @@ imports: subpackages: - lru - name: github.com/golang/protobuf - version: df1d3ca07d2d07bba352d5b73c4313b4e2a6203e + version: 2bba0603135d7d7f5cb73b2125beeda19c09f4ef subpackages: - proto - ptypes/any @@ -294,20 +294,23 @@ imports: - internal/urlfetch - urlfetch - name: google.golang.org/grpc - version: b7f1379d3cbbbeb2ca3405852012e237aa05459e + version: 8050b9cbc271307e5a716a9d782803d09b0d6f2d subpackages: - codes - credentials - grpclog - internal + - keepalive - metadata - naming - peer + - stats + - tap - transport - name: gopkg.in/inf.v0 version: 3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4 - name: gopkg.in/yaml.v2 - version: a83829b6f1293c91addabc89d0571c246397bbf4 + version: 53feefa2559fb8dfa8d81baad31be332c97d6c77 - name: k8s.io/apimachinery version: fbd6803372f831e58b86c78d07421637a64ad768 subpackages: diff --git a/glide.yaml b/glide.yaml index f2f6c69f0..62a0b58bd 100644 --- a/glide.yaml +++ b/glide.yaml @@ -17,13 +17,13 @@ import: version: ~1.2.3 - package: github.com/technosophos/moniker - package: github.com/golang/protobuf - version: df1d3ca07d2d07bba352d5b73c4313b4e2a6203e + version: 2bba0603135d7d7f5cb73b2125beeda19c09f4ef subpackages: - proto - ptypes/any - ptypes/timestamp - package: google.golang.org/grpc - version: 1.0.3 + version: 1.2.1 - package: k8s.io/apimachinery - package: k8s.io/client-go - package: k8s.io/kubernetes diff --git a/pkg/proto/hapi/chart/config.pb.go b/pkg/proto/hapi/chart/config.pb.go index 73ab3ec47..4a8b36d89 100644 --- a/pkg/proto/hapi/chart/config.pb.go +++ b/pkg/proto/hapi/chart/config.pb.go @@ -24,6 +24,13 @@ func (m *Config) String() string { return proto.CompactTextString(m) func (*Config) ProtoMessage() {} func (*Config) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} } +func (m *Config) GetRaw() string { + if m != nil { + return m.Raw + } + return "" +} + func (m *Config) GetValues() map[string]*Value { if m != nil { return m.Values @@ -41,6 +48,13 @@ func (m *Value) String() string { return proto.CompactTextString(m) } func (*Value) ProtoMessage() {} func (*Value) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} } +func (m *Value) GetValue() string { + if m != nil { + return m.Value + } + return "" +} + func init() { proto.RegisterType((*Config)(nil), "hapi.chart.Config") proto.RegisterType((*Value)(nil), "hapi.chart.Value") diff --git a/pkg/proto/hapi/chart/metadata.pb.go b/pkg/proto/hapi/chart/metadata.pb.go index 339ae9772..82abb04ff 100644 --- a/pkg/proto/hapi/chart/metadata.pb.go +++ b/pkg/proto/hapi/chart/metadata.pb.go @@ -47,6 +47,20 @@ func (m *Maintainer) String() string { return proto.CompactTextString func (*Maintainer) ProtoMessage() {} func (*Maintainer) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} } +func (m *Maintainer) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Maintainer) GetEmail() string { + if m != nil { + return m.Email + } + return "" +} + // Metadata for a Chart file. This models the structure of a Chart.yaml file. // // Spec: https://k8s.io/helm/blob/master/docs/design/chart_format.md#the-chart-file @@ -89,6 +103,48 @@ func (m *Metadata) String() string { return proto.CompactTextString(m func (*Metadata) ProtoMessage() {} func (*Metadata) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{1} } +func (m *Metadata) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Metadata) GetHome() string { + if m != nil { + return m.Home + } + return "" +} + +func (m *Metadata) GetSources() []string { + if m != nil { + return m.Sources + } + return nil +} + +func (m *Metadata) GetVersion() string { + if m != nil { + return m.Version + } + return "" +} + +func (m *Metadata) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +func (m *Metadata) GetKeywords() []string { + if m != nil { + return m.Keywords + } + return nil +} + func (m *Metadata) GetMaintainers() []*Maintainer { if m != nil { return m.Maintainers @@ -96,6 +152,62 @@ func (m *Metadata) GetMaintainers() []*Maintainer { return nil } +func (m *Metadata) GetEngine() string { + if m != nil { + return m.Engine + } + return "" +} + +func (m *Metadata) GetIcon() string { + if m != nil { + return m.Icon + } + return "" +} + +func (m *Metadata) GetApiVersion() string { + if m != nil { + return m.ApiVersion + } + return "" +} + +func (m *Metadata) GetCondition() string { + if m != nil { + return m.Condition + } + return "" +} + +func (m *Metadata) GetTags() string { + if m != nil { + return m.Tags + } + return "" +} + +func (m *Metadata) GetAppVersion() string { + if m != nil { + return m.AppVersion + } + return "" +} + +func (m *Metadata) GetDeprecated() bool { + if m != nil { + return m.Deprecated + } + return false +} + +func (m *Metadata) GetTillerVersion() string { + if m != nil { + return m.TillerVersion + } + return "" +} + func init() { proto.RegisterType((*Maintainer)(nil), "hapi.chart.Maintainer") proto.RegisterType((*Metadata)(nil), "hapi.chart.Metadata") diff --git a/pkg/proto/hapi/chart/template.pb.go b/pkg/proto/hapi/chart/template.pb.go index 74ecc4292..416269d18 100644 --- a/pkg/proto/hapi/chart/template.pb.go +++ b/pkg/proto/hapi/chart/template.pb.go @@ -29,6 +29,20 @@ func (m *Template) String() string { return proto.CompactTextString(m func (*Template) ProtoMessage() {} func (*Template) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{0} } +func (m *Template) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Template) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + func init() { proto.RegisterType((*Template)(nil), "hapi.chart.Template") } diff --git a/pkg/proto/hapi/release/hook.pb.go b/pkg/proto/hapi/release/hook.pb.go index 2fd8e5196..1724842e3 100644 --- a/pkg/proto/hapi/release/hook.pb.go +++ b/pkg/proto/hapi/release/hook.pb.go @@ -109,6 +109,41 @@ func (m *Hook) String() string { return proto.CompactTextString(m) } func (*Hook) ProtoMessage() {} func (*Hook) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (m *Hook) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Hook) GetKind() string { + if m != nil { + return m.Kind + } + return "" +} + +func (m *Hook) GetPath() string { + if m != nil { + return m.Path + } + return "" +} + +func (m *Hook) GetManifest() string { + if m != nil { + return m.Manifest + } + return "" +} + +func (m *Hook) GetEvents() []Hook_Event { + if m != nil { + return m.Events + } + return nil +} + func (m *Hook) GetLastRun() *google_protobuf.Timestamp { if m != nil { return m.LastRun @@ -116,6 +151,13 @@ func (m *Hook) GetLastRun() *google_protobuf.Timestamp { return nil } +func (m *Hook) GetWeight() int32 { + if m != nil { + return m.Weight + } + return 0 +} + func init() { proto.RegisterType((*Hook)(nil), "hapi.release.Hook") proto.RegisterEnum("hapi.release.Hook_Event", Hook_Event_name, Hook_Event_value) diff --git a/pkg/proto/hapi/release/info.pb.go b/pkg/proto/hapi/release/info.pb.go index daa26d4c9..9485ad058 100644 --- a/pkg/proto/hapi/release/info.pb.go +++ b/pkg/proto/hapi/release/info.pb.go @@ -58,6 +58,13 @@ func (m *Info) GetDeleted() *google_protobuf.Timestamp { return nil } +func (m *Info) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + func init() { proto.RegisterType((*Info)(nil), "hapi.release.Info") } diff --git a/pkg/proto/hapi/release/release.pb.go b/pkg/proto/hapi/release/release.pb.go index 01f79fe29..47b321b50 100644 --- a/pkg/proto/hapi/release/release.pb.go +++ b/pkg/proto/hapi/release/release.pb.go @@ -42,6 +42,13 @@ func (m *Release) String() string { return proto.CompactTextString(m) func (*Release) ProtoMessage() {} func (*Release) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} } +func (m *Release) GetName() string { + if m != nil { + return m.Name + } + return "" +} + func (m *Release) GetInfo() *Info { if m != nil { return m.Info @@ -63,6 +70,13 @@ func (m *Release) GetConfig() *hapi_chart.Config { return nil } +func (m *Release) GetManifest() string { + if m != nil { + return m.Manifest + } + return "" +} + func (m *Release) GetHooks() []*Hook { if m != nil { return m.Hooks @@ -70,6 +84,20 @@ func (m *Release) GetHooks() []*Hook { return nil } +func (m *Release) GetVersion() int32 { + if m != nil { + return m.Version + } + return 0 +} + +func (m *Release) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + func init() { proto.RegisterType((*Release)(nil), "hapi.release.Release") } diff --git a/pkg/proto/hapi/release/status.pb.go b/pkg/proto/hapi/release/status.pb.go index 65672a0cf..0098207a7 100644 --- a/pkg/proto/hapi/release/status.pb.go +++ b/pkg/proto/hapi/release/status.pb.go @@ -69,6 +69,27 @@ func (m *Status) String() string { return proto.CompactTextString(m) func (*Status) ProtoMessage() {} func (*Status) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{0} } +func (m *Status) GetCode() Status_Code { + if m != nil { + return m.Code + } + return Status_UNKNOWN +} + +func (m *Status) GetResources() string { + if m != nil { + return m.Resources + } + return "" +} + +func (m *Status) GetNotes() string { + if m != nil { + return m.Notes + } + return "" +} + func (m *Status) GetLastTestSuiteRun() *TestSuite { if m != nil { return m.LastTestSuiteRun diff --git a/pkg/proto/hapi/release/test_run.pb.go b/pkg/proto/hapi/release/test_run.pb.go index 46bdf81fc..79fce4ab4 100644 --- a/pkg/proto/hapi/release/test_run.pb.go +++ b/pkg/proto/hapi/release/test_run.pb.go @@ -51,6 +51,27 @@ func (m *TestRun) String() string { return proto.CompactTextString(m) func (*TestRun) ProtoMessage() {} func (*TestRun) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{0} } +func (m *TestRun) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *TestRun) GetStatus() TestRun_Status { + if m != nil { + return m.Status + } + return TestRun_UNKNOWN +} + +func (m *TestRun) GetInfo() string { + if m != nil { + return m.Info + } + return "" +} + func (m *TestRun) GetStartedAt() *google_protobuf.Timestamp { if m != nil { return m.StartedAt diff --git a/pkg/proto/hapi/services/tiller.pb.go b/pkg/proto/hapi/services/tiller.pb.go index 89983e5bc..d3f8676fc 100644 --- a/pkg/proto/hapi/services/tiller.pb.go +++ b/pkg/proto/hapi/services/tiller.pb.go @@ -138,6 +138,55 @@ func (m *ListReleasesRequest) String() string { return proto.CompactT func (*ListReleasesRequest) ProtoMessage() {} func (*ListReleasesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (m *ListReleasesRequest) GetLimit() int64 { + if m != nil { + return m.Limit + } + return 0 +} + +func (m *ListReleasesRequest) GetOffset() string { + if m != nil { + return m.Offset + } + return "" +} + +func (m *ListReleasesRequest) GetSortBy() ListSort_SortBy { + if m != nil { + return m.SortBy + } + return ListSort_UNKNOWN +} + +func (m *ListReleasesRequest) GetFilter() string { + if m != nil { + return m.Filter + } + return "" +} + +func (m *ListReleasesRequest) GetSortOrder() ListSort_SortOrder { + if m != nil { + return m.SortOrder + } + return ListSort_ASC +} + +func (m *ListReleasesRequest) GetStatusCodes() []hapi_release3.Status_Code { + if m != nil { + return m.StatusCodes + } + return nil +} + +func (m *ListReleasesRequest) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + // ListSort defines sorting fields on a release list. type ListSort struct { } @@ -165,6 +214,27 @@ func (m *ListReleasesResponse) String() string { return proto.Compact func (*ListReleasesResponse) ProtoMessage() {} func (*ListReleasesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } +func (m *ListReleasesResponse) GetCount() int64 { + if m != nil { + return m.Count + } + return 0 +} + +func (m *ListReleasesResponse) GetNext() string { + if m != nil { + return m.Next + } + return "" +} + +func (m *ListReleasesResponse) GetTotal() int64 { + if m != nil { + return m.Total + } + return 0 +} + func (m *ListReleasesResponse) GetReleases() []*hapi_release5.Release { if m != nil { return m.Releases @@ -185,6 +255,20 @@ func (m *GetReleaseStatusRequest) String() string { return proto.Comp func (*GetReleaseStatusRequest) ProtoMessage() {} func (*GetReleaseStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } +func (m *GetReleaseStatusRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *GetReleaseStatusRequest) GetVersion() int32 { + if m != nil { + return m.Version + } + return 0 +} + // GetReleaseStatusResponse is the response indicating the status of the named release. type GetReleaseStatusResponse struct { // Name is the name of the release. @@ -200,6 +284,13 @@ func (m *GetReleaseStatusResponse) String() string { return proto.Com func (*GetReleaseStatusResponse) ProtoMessage() {} func (*GetReleaseStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } +func (m *GetReleaseStatusResponse) GetName() string { + if m != nil { + return m.Name + } + return "" +} + func (m *GetReleaseStatusResponse) GetInfo() *hapi_release4.Info { if m != nil { return m.Info @@ -207,6 +298,13 @@ func (m *GetReleaseStatusResponse) GetInfo() *hapi_release4.Info { return nil } +func (m *GetReleaseStatusResponse) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + // GetReleaseContentRequest is a request to get the contents of a release. type GetReleaseContentRequest struct { // The name of the release @@ -220,6 +318,20 @@ func (m *GetReleaseContentRequest) String() string { return proto.Com func (*GetReleaseContentRequest) ProtoMessage() {} func (*GetReleaseContentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } +func (m *GetReleaseContentRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *GetReleaseContentRequest) GetVersion() int32 { + if m != nil { + return m.Version + } + return 0 +} + // GetReleaseContentResponse is a response containing the contents of a release. type GetReleaseContentResponse struct { // The release content @@ -269,6 +381,13 @@ func (m *UpdateReleaseRequest) String() string { return proto.Compact func (*UpdateReleaseRequest) ProtoMessage() {} func (*UpdateReleaseRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } +func (m *UpdateReleaseRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + func (m *UpdateReleaseRequest) GetChart() *hapi_chart3.Chart { if m != nil { return m.Chart @@ -283,6 +402,55 @@ func (m *UpdateReleaseRequest) GetValues() *hapi_chart.Config { return nil } +func (m *UpdateReleaseRequest) GetDryRun() bool { + if m != nil { + return m.DryRun + } + return false +} + +func (m *UpdateReleaseRequest) GetDisableHooks() bool { + if m != nil { + return m.DisableHooks + } + return false +} + +func (m *UpdateReleaseRequest) GetRecreate() bool { + if m != nil { + return m.Recreate + } + return false +} + +func (m *UpdateReleaseRequest) GetTimeout() int64 { + if m != nil { + return m.Timeout + } + return 0 +} + +func (m *UpdateReleaseRequest) GetResetValues() bool { + if m != nil { + return m.ResetValues + } + return false +} + +func (m *UpdateReleaseRequest) GetWait() bool { + if m != nil { + return m.Wait + } + return false +} + +func (m *UpdateReleaseRequest) GetReuseValues() bool { + if m != nil { + return m.ReuseValues + } + return false +} + // UpdateReleaseResponse is the response to an update request. type UpdateReleaseResponse struct { Release *hapi_release5.Release `protobuf:"bytes,1,opt,name=release" json:"release,omitempty"` @@ -323,6 +491,55 @@ func (m *RollbackReleaseRequest) String() string { return proto.Compa func (*RollbackReleaseRequest) ProtoMessage() {} func (*RollbackReleaseRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } +func (m *RollbackReleaseRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *RollbackReleaseRequest) GetDryRun() bool { + if m != nil { + return m.DryRun + } + return false +} + +func (m *RollbackReleaseRequest) GetDisableHooks() bool { + if m != nil { + return m.DisableHooks + } + return false +} + +func (m *RollbackReleaseRequest) GetVersion() int32 { + if m != nil { + return m.Version + } + return 0 +} + +func (m *RollbackReleaseRequest) GetRecreate() bool { + if m != nil { + return m.Recreate + } + return false +} + +func (m *RollbackReleaseRequest) GetTimeout() int64 { + if m != nil { + return m.Timeout + } + return 0 +} + +func (m *RollbackReleaseRequest) GetWait() bool { + if m != nil { + return m.Wait + } + return false +} + // RollbackReleaseResponse is the response to an update request. type RollbackReleaseResponse struct { Release *hapi_release5.Release `protobuf:"bytes,1,opt,name=release" json:"release,omitempty"` @@ -386,6 +603,55 @@ func (m *InstallReleaseRequest) GetValues() *hapi_chart.Config { return nil } +func (m *InstallReleaseRequest) GetDryRun() bool { + if m != nil { + return m.DryRun + } + return false +} + +func (m *InstallReleaseRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *InstallReleaseRequest) GetDisableHooks() bool { + if m != nil { + return m.DisableHooks + } + return false +} + +func (m *InstallReleaseRequest) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + +func (m *InstallReleaseRequest) GetReuseName() bool { + if m != nil { + return m.ReuseName + } + return false +} + +func (m *InstallReleaseRequest) GetTimeout() int64 { + if m != nil { + return m.Timeout + } + return 0 +} + +func (m *InstallReleaseRequest) GetWait() bool { + if m != nil { + return m.Wait + } + return false +} + // InstallReleaseResponse is the response from a release installation. type InstallReleaseResponse struct { Release *hapi_release5.Release `protobuf:"bytes,1,opt,name=release" json:"release,omitempty"` @@ -420,6 +686,34 @@ func (m *UninstallReleaseRequest) String() string { return proto.Comp func (*UninstallReleaseRequest) ProtoMessage() {} func (*UninstallReleaseRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } +func (m *UninstallReleaseRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *UninstallReleaseRequest) GetDisableHooks() bool { + if m != nil { + return m.DisableHooks + } + return false +} + +func (m *UninstallReleaseRequest) GetPurge() bool { + if m != nil { + return m.Purge + } + return false +} + +func (m *UninstallReleaseRequest) GetTimeout() int64 { + if m != nil { + return m.Timeout + } + return 0 +} + // UninstallReleaseResponse represents a successful response to an uninstall request. type UninstallReleaseResponse struct { // Release is the release that was marked deleted. @@ -440,6 +734,13 @@ func (m *UninstallReleaseResponse) GetRelease() *hapi_release5.Release { return nil } +func (m *UninstallReleaseResponse) GetInfo() string { + if m != nil { + return m.Info + } + return "" +} + // GetVersionRequest requests for version information. type GetVersionRequest struct { } @@ -478,6 +779,20 @@ func (m *GetHistoryRequest) String() string { return proto.CompactTex func (*GetHistoryRequest) ProtoMessage() {} func (*GetHistoryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } +func (m *GetHistoryRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *GetHistoryRequest) GetMax() int32 { + if m != nil { + return m.Max + } + return 0 +} + // GetHistoryResponse is received in response to a GetHistory rpc. type GetHistoryResponse struct { Releases []*hapi_release5.Release `protobuf:"bytes,1,rep,name=releases" json:"releases,omitempty"` @@ -510,6 +825,27 @@ func (m *TestReleaseRequest) String() string { return proto.CompactTe func (*TestReleaseRequest) ProtoMessage() {} func (*TestReleaseRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } +func (m *TestReleaseRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *TestReleaseRequest) GetTimeout() int64 { + if m != nil { + return m.Timeout + } + return 0 +} + +func (m *TestReleaseRequest) GetCleanup() bool { + if m != nil { + return m.Cleanup + } + return false +} + // TestReleaseResponse represents a message from executing a test type TestReleaseResponse struct { Msg string `protobuf:"bytes,1,opt,name=msg" json:"msg,omitempty"` @@ -520,6 +856,13 @@ func (m *TestReleaseResponse) String() string { return proto.CompactT func (*TestReleaseResponse) ProtoMessage() {} func (*TestReleaseResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } +func (m *TestReleaseResponse) GetMsg() string { + if m != nil { + return m.Msg + } + return "" +} + func init() { proto.RegisterType((*ListReleasesRequest)(nil), "hapi.services.tiller.ListReleasesRequest") proto.RegisterType((*ListSort)(nil), "hapi.services.tiller.ListSort") @@ -552,7 +895,7 @@ var _ grpc.ClientConn // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion3 +const _ = grpc.SupportPackageIsVersion4 // Client API for ReleaseService service @@ -993,7 +1336,7 @@ var _ReleaseService_serviceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: fileDescriptor0, + Metadata: "hapi/services/tiller.proto", } func init() { proto.RegisterFile("hapi/services/tiller.proto", fileDescriptor0) } diff --git a/pkg/proto/hapi/version/version.pb.go b/pkg/proto/hapi/version/version.pb.go index adbee1a33..e3d8a7096 100644 --- a/pkg/proto/hapi/version/version.pb.go +++ b/pkg/proto/hapi/version/version.pb.go @@ -40,6 +40,27 @@ func (m *Version) String() string { return proto.CompactTextString(m) func (*Version) ProtoMessage() {} func (*Version) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (m *Version) GetSemVer() string { + if m != nil { + return m.SemVer + } + return "" +} + +func (m *Version) GetGitCommit() string { + if m != nil { + return m.GitCommit + } + return "" +} + +func (m *Version) GetGitTreeState() string { + if m != nil { + return m.GitTreeState + } + return "" +} + func init() { proto.RegisterType((*Version)(nil), "hapi.version.Version") } From 6246fa12a807e5c6ceb863f38dd6afa05ffc14fb Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Thu, 27 Apr 2017 16:34:18 -0600 Subject: [PATCH 03/28] fix(helm): return error when dependencies are missing This upgrades a warning to an error in cases where `requirements.yaml` contains a requirement, but it's missing in charts/ This impacts install, upgrade, and package. Closes #2209 --- cmd/helm/install.go | 18 +++++++++++++++--- cmd/helm/install_test.go | 6 +++--- cmd/helm/package.go | 4 +++- cmd/helm/package_test.go | 2 +- cmd/helm/upgrade.go | 4 +++- cmd/helm/upgrade_test.go | 8 ++++---- 6 files changed, 29 insertions(+), 13 deletions(-) diff --git a/cmd/helm/install.go b/cmd/helm/install.go index d01ee514a..0cce58916 100644 --- a/cmd/helm/install.go +++ b/cmd/helm/install.go @@ -206,7 +206,12 @@ func (i *installCmd) run() error { } if req, err := chartutil.LoadRequirements(chartRequested); err == nil { - checkDependencies(chartRequested, req, i.out) + // If checkDependencies returns an error, we have unfullfilled dependencies. + // As of Helm 2.4.0, this is treated as a stopping condition: + // https://github.com/kubernetes/helm/issues/2209 + if err := checkDependencies(chartRequested, req, i.out); err != nil { + return prettyError(err) + } } res, err := i.client.InstallReleaseFromChart( @@ -398,7 +403,9 @@ func defaultNamespace() string { return "default" } -func checkDependencies(ch *chart.Chart, reqs *chartutil.Requirements, out io.Writer) { +func checkDependencies(ch *chart.Chart, reqs *chartutil.Requirements, out io.Writer) error { + missing := []string{} + deps := ch.GetDependencies() for _, r := range reqs.Dependencies { found := false @@ -409,7 +416,12 @@ func checkDependencies(ch *chart.Chart, reqs *chartutil.Requirements, out io.Wri } } if !found { - fmt.Fprintf(out, "Warning: %s is in requirements.yaml but not in the charts/ directory!\n", r.Name) + missing = append(missing, r.Name) } } + + if len(missing) > 0 { + return fmt.Errorf("found in requirements.yaml, but missing in charts/ directory: %s", strings.Join(missing, ", ")) + } + return nil } diff --git a/cmd/helm/install_test.go b/cmd/helm/install_test.go index ee0ffe0e8..7e749afc7 100644 --- a/cmd/helm/install_test.go +++ b/cmd/helm/install_test.go @@ -134,9 +134,9 @@ func TestInstall(t *testing.T) { }, // Install, chart with missing dependencies in /charts { - name: "install chart with missing dependencies", - args: []string{"testdata/testcharts/chart-missing-deps"}, - expected: "Warning: reqsubchart2 is in requirements.yaml but not in the charts/ directory!", + name: "install chart with missing dependencies", + args: []string{"testdata/testcharts/chart-missing-deps"}, + err: true, }, } diff --git a/cmd/helm/package.go b/cmd/helm/package.go index a2da2c338..8b4e12e55 100644 --- a/cmd/helm/package.go +++ b/cmd/helm/package.go @@ -127,7 +127,9 @@ func (p *packageCmd) run(cmd *cobra.Command, args []string) error { } if reqs, err := chartutil.LoadRequirements(ch); err == nil { - checkDependencies(ch, reqs, p.out) + if err := checkDependencies(ch, reqs, p.out); err != nil { + return err + } } var dest string diff --git a/cmd/helm/package_test.go b/cmd/helm/package_test.go index 1d25260d4..683858cd8 100644 --- a/cmd/helm/package_test.go +++ b/cmd/helm/package_test.go @@ -118,8 +118,8 @@ func TestPackage(t *testing.T) { { name: "package testdata/testcharts/chart-missing-deps", args: []string{"testdata/testcharts/chart-missing-deps"}, - expect: "Warning: reqsubchart2 is in requirements.yaml but not in the charts/ directory!\n", hasfile: "chart-missing-deps-0.1.0.tgz", + err: true, }, } diff --git a/cmd/helm/upgrade.go b/cmd/helm/upgrade.go index ea8d667a1..433e5a7f6 100644 --- a/cmd/helm/upgrade.go +++ b/cmd/helm/upgrade.go @@ -166,7 +166,9 @@ func (u *upgradeCmd) run() error { // Check chart requirements to make sure all dependencies are present in /charts if ch, err := chartutil.Load(chartPath); err == nil { if req, err := chartutil.LoadRequirements(ch); err == nil { - checkDependencies(ch, req, u.out) + if err := checkDependencies(ch, req, u.out); err != nil { + return err + } } } diff --git a/cmd/helm/upgrade_test.go b/cmd/helm/upgrade_test.go index a913016e2..9ee1ae585 100644 --- a/cmd/helm/upgrade_test.go +++ b/cmd/helm/upgrade_test.go @@ -138,10 +138,10 @@ func TestUpgradeCmd(t *testing.T) { expected: "Release \"crazy-bunny\" has been upgraded. Happy Helming!\n", }, { - name: "upgrade a release with missing dependencies", - args: []string{"bonkers-bunny", missingDepsPath}, - resp: releaseMock(&releaseOptions{name: "bonkers-bunny", version: 1, chart: ch3}), - expected: "Warning: reqsubchart2 is in requirements.yaml but not in the charts/ directory!", + name: "upgrade a release with missing dependencies", + args: []string{"bonkers-bunny", missingDepsPath}, + resp: releaseMock(&releaseOptions{name: "bonkers-bunny", version: 1, chart: ch3}), + err: true, }, } From 3516314838e7907296f96c2e594878ac736ef9e7 Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Thu, 27 Apr 2017 17:12:55 -0600 Subject: [PATCH 04/28] docs(chart_hooks): clarify hook execution order Closes #2234 --- docs/charts_hooks.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/charts_hooks.md b/docs/charts_hooks.md index a5babc481..1fef8cca3 100644 --- a/docs/charts_hooks.md +++ b/docs/charts_hooks.md @@ -79,8 +79,13 @@ Helm client will pause while the Job is run. For all other kinds, as soon as Kubernetes marks the resource as loaded (added or updated), the resource is considered "Ready". When many -resources are declared in a hook, the resources are executed serially, -but the order of their execution is not guaranteed. +resources are declared in a hook, the resources are executed serially. If they +have hook weights (see below), they are executed in weighted order. Otherwise, +ordering is not guaranteed. (In Helm 2.3.0 and after, they are sorted +alphabetically. That behavior, though, is not considered binding and could change +in the future.) It is considered good practice to add a hook weight, and set it +to `0` if weight is not important. + ### Hook resources are unmanaged @@ -157,12 +162,15 @@ When subcharts declare hooks, those are also evaluated. There is no way for a top-level chart to disable the hooks declared by subcharts. And again, there is no guaranteed ordering. -It is also possible to define a weight for a hook which will help build a deterministic executing order. Weights are defined using the following annotation: +It is also possible to define a weight for a hook which will help build a +deterministic executing order. Weights are defined using the following annotation: ``` annotations: "helm.sh/hook-weight": "5" ``` -Hook weights can be positive or negative numbers but must be represented as strings. When Tiller starts the execution cycle of hooks of a particular Kind it will sort those hooks in ascending order. +Hook weights can be positive or negative numbers but must be represented as +strings. When Tiller starts the execution cycle of hooks of a particular Kind it +will sort those hooks in ascending order. From 074d2eb711258efe822d48307f586936023e5331 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Thu, 27 Apr 2017 23:22:37 -0700 Subject: [PATCH 05/28] chore(scripts): remove unsupported local-cluster script --- scripts/cluster/skydns.yaml | 137 -------------- scripts/local-cluster.sh | 358 ------------------------------------ 2 files changed, 495 deletions(-) delete mode 100644 scripts/cluster/skydns.yaml delete mode 100755 scripts/local-cluster.sh diff --git a/scripts/cluster/skydns.yaml b/scripts/cluster/skydns.yaml deleted file mode 100644 index 720877d5d..000000000 --- a/scripts/cluster/skydns.yaml +++ /dev/null @@ -1,137 +0,0 @@ -apiVersion: v1 -kind: ReplicationController -metadata: - name: kube-dns-v10 - namespace: kube-system - labels: - k8s-app: kube-dns - version: v10 - kubernetes.io/cluster-service: "true" -spec: - replicas: 1 - selector: - k8s-app: kube-dns - version: v10 - template: - metadata: - labels: - k8s-app: kube-dns - version: v10 - kubernetes.io/cluster-service: "true" - spec: - containers: - - name: etcd - image: gcr.io/google_containers/etcd-amd64:2.2.1 - resources: - # keep request = limit to keep this container in guaranteed class - limits: - cpu: 100m - memory: 50Mi - requests: - cpu: 100m - memory: 50Mi - command: - - /usr/local/bin/etcd - - -data-dir - - /var/etcd/data - - -listen-client-urls - - http://127.0.0.1:2379,http://127.0.0.1:4001 - - -advertise-client-urls - - http://127.0.0.1:2379,http://127.0.0.1:4001 - - -initial-cluster-token - - skydns-etcd - volumeMounts: - - name: etcd-storage - mountPath: /var/etcd/data - - name: kube2sky - image: gcr.io/google_containers/kube2sky:1.12 - resources: - # keep request = limit to keep this container in guaranteed class - limits: - cpu: 100m - memory: 50Mi - requests: - cpu: 100m - memory: 50Mi - args: - # command = "/kube2sky" - - --domain=cluster.local - - name: skydns - image: gcr.io/google_containers/skydns:2015-10-13-8c72f8c - resources: - # keep request = limit to keep this container in guaranteed class - limits: - cpu: 100m - memory: 50Mi - requests: - cpu: 100m - memory: 50Mi - args: - # command = "/skydns" - - -machines=http://127.0.0.1:4001 - - -addr=0.0.0.0:53 - - -ns-rotate=false - - -domain=cluster.local. - ports: - - containerPort: 53 - name: dns - protocol: UDP - - containerPort: 53 - name: dns-tcp - protocol: TCP - livenessProbe: - httpGet: - path: /healthz - port: 8080 - scheme: HTTP - initialDelaySeconds: 30 - timeoutSeconds: 5 - readinessProbe: - httpGet: - path: /healthz - port: 8080 - scheme: HTTP - initialDelaySeconds: 1 - timeoutSeconds: 5 - - name: healthz - image: gcr.io/google_containers/exechealthz:1.0 - resources: - # keep request = limit to keep this container in guaranteed class - limits: - cpu: 10m - memory: 20Mi - requests: - cpu: 10m - memory: 20Mi - args: - - -cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null - - -port=8080 - ports: - - containerPort: 8080 - protocol: TCP - volumes: - - name: etcd-storage - emptyDir: {} - dnsPolicy: Default # Don't use cluster DNS. ---- -apiVersion: v1 -kind: Service -metadata: - name: kube-dns - namespace: kube-system - labels: - k8s-app: kube-dns - kubernetes.io/cluster-service: "true" - kubernetes.io/name: "KubeDNS" -spec: - selector: - k8s-app: kube-dns - clusterIP: 10.0.0.10 - ports: - - name: dns - port: 53 - protocol: UDP - - name: dns-tcp - port: 53 - protocol: TCP - diff --git a/scripts/local-cluster.sh b/scripts/local-cluster.sh deleted file mode 100755 index 83a57c3ce..000000000 --- a/scripts/local-cluster.sh +++ /dev/null @@ -1,358 +0,0 @@ -#!/usr/bin/env bash - -# Copyright 2016 The Kubernetes Authors All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Bash 'Strict Mode' -# http://redsymbol.net/articles/unofficial-bash-strict-mode -set -euo pipefail -IFS=$'\n\t' - -HELM_ROOT="${BASH_SOURCE[0]%/*}/.." -cd "$HELM_ROOT" - -# Globals ---------------------------------------------------------------------- - -KUBE_VERSION=${KUBE_VERSION:-} -KUBE_PORT=${KUBE_PORT:-8080} -KUBE_CONTEXT=${KUBE_CONTEXT:-docker} -KUBECTL=${KUBECTL:-kubectl} -ENABLE_CLUSTER_DNS=${KUBE_ENABLE_CLUSTER_DNS:-true} -LOG_LEVEL=${LOG_LEVEL:-2} - -# Helper Functions ------------------------------------------------------------- - -# Display error message and exit -error_exit() { - echo "error: ${1:-"unknown error"}" 1>&2 - exit 1 -} - -# Checks if a command exists. Returns 1 or 0 -command_exists() { - hash "${1}" 2>/dev/null -} - -# fetch url using wget or curl and print to stdout -fetch_url() { - local url="$1" - if command_exists wget; then - curl -sSL "$url" - elif command_exists curl; then - wget -qO- "$url" - else - error_exit "Couldn't find curl or wget. Bailing out." - fi -} - -# Program Functions ------------------------------------------------------------ - -# Check host platform and docker host -verify_prereqs() { - echo "Verifying Prerequisites...." - - case "$(uname -s)" in - Darwin) - host_os=darwin - ;; - Linux) - host_os=linux - ;; - *) - error_exit "Unsupported host OS. Must be Linux or Mac OS X." - ;; - esac - - case "$(uname -m)" in - x86_64*) - host_arch=amd64 - ;; - i?86_64*) - host_arch=amd64 - ;; - amd64*) - host_arch=amd64 - ;; - arm*) - host_arch=arm - ;; - i?86*) - host_arch=x86 - ;; - s390x*) - host_arch=s390x - ;; - ppc64le*) - host_arch=ppc64le - ;; - *) - error_exit "Unsupported host arch. Must be x86_64, 386, arm, s390x or ppc64le." - ;; - esac - - - command_exists docker || error_exit "You need docker" - - if ! docker info >/dev/null 2>&1 ; then - error_exit "Can't connect to 'docker' daemon." - fi - - if docker inspect kubelet >/dev/null 2>&1 ; then - error_exit "Kubernetes is already running" - fi - - $KUBECTL version --client >/dev/null || download_kubectl -} - -# Get the latest stable release tag -get_latest_version_number() { - local channel="stable" - if [[ -n "${ALPHA:-}" ]]; then - channel="latest" - fi - local latest_url="https://storage.googleapis.com/kubernetes-release/release/${channel}.txt" - fetch_url "$latest_url" -} - -# Detect ip address od docker host -detect_docker_host_ip() { - if [[ -n "${DOCKER_HOST:-}" ]]; then - awk -F'[/:]' '{print $4}' <<< "$DOCKER_HOST" - else - ifconfig docker0 \ - | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' \ - | grep -Eo '([0-9]*\.){3}[0-9]*' >/dev/null 2>&1 || : - fi -} - -# Set KUBE_MASTER_IP from docker host ip. Defaults to localhost -set_master_ip() { - local docker_ip - - if [[ -z "${KUBE_MASTER_IP:-}" ]]; then - docker_ip=$(detect_docker_host_ip) - if [[ -n "${docker_ip}" ]]; then - KUBE_MASTER_IP="${docker_ip}" - else - KUBE_MASTER_IP=localhost - fi - fi -} - -# Start dockerized kubelet -start_kubernetes() { - echo "Starting kubelet" - - # Enable dns - if [[ "${ENABLE_CLUSTER_DNS}" = true ]]; then - dns_args="--cluster-dns=10.0.0.10 --cluster-domain=cluster.local" - else - # DNS server for real world hostnames. - dns_args="--cluster-dns=8.8.8.8" - fi - - local start_time=$(date +%s) - - docker run \ - --name=kubelet \ - --volume=/:/rootfs:ro \ - --volume=/sys:/sys:ro \ - --volume=/var/lib/docker/:/var/lib/docker:rw \ - --volume=/var/lib/kubelet/:/var/lib/kubelet:rw,rslave \ - --volume=/var/run:/var/run:rw \ - --net=host \ - --pid=host \ - --privileged=true \ - -d \ - gcr.io/google_containers/hyperkube-amd64:${KUBE_VERSION} \ - /hyperkube kubelet \ - --containerized \ - --hostname-override="127.0.0.1" \ - --api-servers=http://localhost:${KUBE_PORT} \ - --config=/etc/kubernetes/manifests \ - --allow-privileged=true \ - ${dns_args} \ - --v=${LOG_LEVEL} >/dev/null - - until $KUBECTL cluster-info &> /dev/null; do - sleep 1 - done - - if [[ $KUBE_VERSION == "1.2"* ]]; then - create_kube_system_namespace - create_kube_dns - fi - - # We expect to have at least 3 running pods - etcd, master and kube-proxy. - local attempt=1 - while (($(KUBECTL get pods --all-namespaces --no-headers 2>/dev/null | grep -c "Running") < 3)); do - echo -n "." - sleep $(( attempt++ )) - done - echo - - echo "Started master components in $(($(date +%s) - start_time)) seconds." -} - -# Open kubernetes master api port. -setup_firewall() { - [[ -n "${DOCKER_MACHINE_NAME:-}" ]] || return - - echo "Adding iptables hackery for docker-machine..." - - local machine_ip - machine_ip=$(docker-machine ip "$DOCKER_MACHINE_NAME") - local iptables_rule="PREROUTING -p tcp -d ${machine_ip} --dport ${KUBE_PORT} -j DNAT --to-destination 127.0.0.1:${KUBE_PORT}" - - if ! docker-machine ssh "${DOCKER_MACHINE_NAME}" "sudo /usr/local/sbin/iptables -t nat -C ${iptables_rule}" &> /dev/null; then - docker-machine ssh "${DOCKER_MACHINE_NAME}" "sudo /usr/local/sbin/iptables -t nat -I ${iptables_rule}" - fi -} - -# Create kube-system namespace in kubernetes -create_kube_system_namespace() { - $KUBECTL create namespace kube-system >/dev/null -} - -# Activate skydns in kubernetes and wait for pods to be ready. -create_kube_dns() { - [[ "${ENABLE_CLUSTER_DNS}" = true ]] || return - - local start_time=$(date +%s) - - echo "Setting up cluster dns..." - - $KUBECTL create -f ./scripts/cluster/skydns.yaml >/dev/null - - echo "Waiting for cluster DNS to become available..." - - local attempt=1 - until $KUBECTL get pods --no-headers --namespace kube-system --selector=k8s-app=kube-dns 2>/dev/null | grep "Running" &>/dev/null; do - echo -n "." - sleep $(( attempt++ )) - done - echo - echo "Started DNS in $(($(date +%s) - start_time)) seconds." -} - -# Generate kubeconfig data for the created cluster. -generate_kubeconfig() { - local cluster_args=( - "--server=http://${KUBE_MASTER_IP}:${KUBE_PORT}" - "--insecure-skip-tls-verify=true" - ) - - $KUBECTL config set-cluster "${KUBE_CONTEXT}" "${cluster_args[@]}" >/dev/null - $KUBECTL config set-context "${KUBE_CONTEXT}" --cluster="${KUBE_CONTEXT}" >/dev/null - $KUBECTL config use-context "${KUBE_CONTEXT}" >/dev/null - - echo "Wrote config for kubeconfig using context: '${KUBE_CONTEXT}'" -} - -# Download kubectl -download_kubectl() { - echo "Downloading kubectl binary..." - - local output="/usr/local/bin/kubectl" - - kubectl_url="https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/bin/${host_os}/${host_arch}/kubectl" - fetch_url "${kubectl_url}" > "${output}" - chmod a+x "${output}" - - KUBECTL="${output}" -} - -# Clean volumes that are left by kubelet -# -# https://github.com/kubernetes/kubernetes/issues/23197 -# code stolen from https://github.com/huggsboson/docker-compose-kubernetes/blob/SwitchToSharedMount/kube-up.sh -clean_volumes() { - if [[ -n "${DOCKER_MACHINE_NAME:-}" ]]; then - docker-machine ssh "${DOCKER_MACHINE_NAME}" "mount | grep -o 'on /var/lib/kubelet.* type' | cut -c 4- | rev | cut -c 6- | rev | sort -r | xargs --no-run-if-empty sudo umount" - docker-machine ssh "${DOCKER_MACHINE_NAME}" "sudo rm -Rf /var/lib/kubelet" - docker-machine ssh "${DOCKER_MACHINE_NAME}" "sudo mkdir -p /var/lib/kubelet" - docker-machine ssh "${DOCKER_MACHINE_NAME}" "sudo mount --bind /var/lib/kubelet /var/lib/kubelet" - docker-machine ssh "${DOCKER_MACHINE_NAME}" "sudo mount --make-shared /var/lib/kubelet" - else - mount | grep -o 'on /var/lib/kubelet.* type' | cut -c 4- | rev | cut -c 6- | rev | sort -r | xargs --no-run-if-empty sudo umount - sudo rm -Rf /var/lib/kubelet - sudo mkdir -p /var/lib/kubelet - sudo mount --bind /var/lib/kubelet /var/lib/kubelet - sudo mount --make-shared /var/lib/kubelet - fi -} - -# Helper function to properly remove containers -delete_container() { - local container=("$@") - docker stop "${container[@]}" &>/dev/null || : - docker wait "${container[@]}" &>/dev/null || : - docker rm --force --volumes "${container[@]}" &>/dev/null || : -} - -# Delete master components and resources in kubernetes. -kube_down() { - echo "Deleting all resources in kubernetes..." - $KUBECTL delete replicationcontrollers,services,pods,secrets --all >/dev/null 2>&1 || : - $KUBECTL delete replicationcontrollers,services,pods,secrets --all --namespace=kube-system >/dev/null 2>&1 || : - $KUBECTL delete namespace kube-system >/dev/null 2>&1 || : - - echo "Stopping kubelet..." - delete_container kubelet - - echo "Stopping remaining kubernetes containers..." - local kube_containers=($(docker ps -aqf "name=k8s_")) - if [[ "${#kube_containers[@]}" -gt 0 ]]; then - delete_container "${kube_containers[@]}" - fi -} - -# Start a kubernetes cluster in docker. -kube_up() { - verify_prereqs - - set_master_ip - clean_volumes - setup_firewall - - generate_kubeconfig - start_kubernetes - - $KUBECTL cluster-info -} - -KUBE_VERSION=${KUBE_VERSION:-$(get_latest_version_number)} - -# Main ------------------------------------------------------------------------- - -main() { - case "$1" in - up|start) - kube_up - ;; - down|stop) - kube_down - ;; - restart) - kube_down - kube_up - ;; - *) - echo "Usage: $0 {up|down|restart}" - ;; - esac -} - -main "${@:-}" - From 83ed3384d29aa980c5a5ed8d5dbb6ae1d804d572 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Thu, 27 Apr 2017 23:24:19 -0700 Subject: [PATCH 06/28] chore(ci): remove travis configuration --- .travis.yml | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5811e2005..000000000 --- a/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: go - -go: - - '1.7.x' - -go_import_path: k8s.io/helm - -before_install: - - make bootstrap - -script: - - make test From 6bdc7ed9906aabe07ed09f55108ac07e7e8b3ca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20N=C3=A4gele?= Date: Fri, 28 Apr 2017 13:11:51 +0200 Subject: [PATCH 07/28] Add Git and Mercurial to build prerequisites Closes: #2343 --- docs/developers.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/developers.md b/docs/developers.md index ec17d2fa2..163ba1b9d 100644 --- a/docs/developers.md +++ b/docs/developers.md @@ -10,6 +10,8 @@ Helm and Tiller. - kubectl 1.2 or later - A Kubernetes cluster (optional) - The gRPC toolchain +- Git +- Mercurial ## Building Helm/Tiller From 8c437e518b33ba88edcf0d2c0be0cf6a4d135b8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20N=C3=A4gele?= Date: Fri, 28 Apr 2017 13:30:38 +0200 Subject: [PATCH 08/28] Update Makefile to require Mercurial --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile b/Makefile index 5ef44b222..d9d869a3b 100644 --- a/Makefile +++ b/Makefile @@ -104,6 +104,7 @@ coverage: HAS_GLIDE := $(shell command -v glide;) HAS_GOX := $(shell command -v gox;) HAS_GIT := $(shell command -v git;) +HAS_HG := $(shell command -v hg;) .PHONY: bootstrap bootstrap: @@ -116,6 +117,9 @@ endif ifndef HAS_GIT $(error You must install Git) +endif +ifndef HAS_HG + $(error You must install Mercurial) endif glide install --strip-vendor go build -o bin/protoc-gen-go ./vendor/github.com/golang/protobuf/protoc-gen-go From 3c55a0ee65804293c9f20d48108d5f4f273a35ba Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Fri, 28 Apr 2017 07:56:01 -0600 Subject: [PATCH 09/28] fix(helm): fix style issues This just adds a few comments where the style linter was complaining. --- pkg/helm/environment/environment.go | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/pkg/helm/environment/environment.go b/pkg/helm/environment/environment.go index 22fb43ae7..f65f90ac7 100644 --- a/pkg/helm/environment/environment.go +++ b/pkg/helm/environment/environment.go @@ -30,12 +30,17 @@ import ( ) const ( - HomeEnvVar = "HELM_HOME" - PluginEnvVar = "HELM_PLUGIN" + // HomeEnvVar is the HELM_HOME environment variable key. + HomeEnvVar = "HELM_HOME" + // PluginEnvVar is the HELM_PLUGIN environment variable key. + PluginEnvVar = "HELM_PLUGIN" + // PluginDisableEnvVar is the HELM_NO_PLUGINS environment variable key. PluginDisableEnvVar = "HELM_NO_PLUGINS" - HostEnvVar = "HELM_HOST" + // HostEnvVar is the HELM_HOST environment variable key. + HostEnvVar = "HELM_HOST" ) +// DefaultHelmHome gets the configured HELM_HOME, or returns the default. func DefaultHelmHome() string { if home := os.Getenv(HomeEnvVar); home != "" { return home @@ -43,14 +48,21 @@ func DefaultHelmHome() string { return filepath.Join(os.Getenv("HOME"), ".helm") } +// DefaultHelmHost returns the configured HELM_HOST or an empty string. func DefaultHelmHost() string { return os.Getenv(HostEnvVar) } +// EnvSettings describes all of the environment settings. type EnvSettings struct { - TillerHost string + // TillerHost is the host and port of Tiller. + TillerHost string + // TillerNamespace is the namespace in which Tiller runs. TillerNamespace string - Home helmpath.Home - PlugDirs string - Debug bool + // Home is the local path to the Helm home directory. + Home helmpath.Home + // PluginDirs is the path to the plugin directories. + PlugDirs string + // Debug indicates whether or not Helm is running in Debug mode. + Debug bool } From 124235ffed93e5c70e8a3826bfaad68dd4ceae85 Mon Sep 17 00:00:00 2001 From: Fabian Ruff Date: Sun, 30 Apr 2017 01:00:31 +0200 Subject: [PATCH 10/28] Fail template execution if included template fails --- pkg/engine/engine.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/engine/engine.go b/pkg/engine/engine.go index ab813968f..8dbf78907 100644 --- a/pkg/engine/engine.go +++ b/pkg/engine/engine.go @@ -138,12 +138,12 @@ func (e *Engine) alterFuncMap(t *template.Template) template.FuncMap { } // Add the 'include' function here so we can close over t. - funcMap["include"] = func(name string, data interface{}) string { + funcMap["include"] = func(name string, data interface{}) (string, error) { buf := bytes.NewBuffer(nil) if err := t.ExecuteTemplate(buf, name, data); err != nil { - buf.WriteString(err.Error()) + return "", err } - return buf.String() + return buf.String(), nil } // Add the 'required' function here From 5c53661a506c2d608855d8476e64b969de677691 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Sat, 29 Apr 2017 19:41:39 -0700 Subject: [PATCH 11/28] chore(ci): bump go 1.8.1 --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 46b1bee3d..fc9279ef3 100644 --- a/circle.yml +++ b/circle.yml @@ -3,7 +3,7 @@ machine: - curl -sSL https://s3.amazonaws.com/circle-downloads/install-circleci-docker.sh | bash -s -- 1.10.0 environment: - GOVERSION: "1.7.5" + GOVERSION: "1.8.1" GOPATH: "${HOME}/.go_workspace" WORKDIR: "${GOPATH}/src/k8s.io/helm" PROJECT_NAME: "kubernetes-helm" From 49e7aa854a19cde5c72fface2316fbf402d70242 Mon Sep 17 00:00:00 2001 From: Nikhil Manchanda Date: Fri, 28 Apr 2017 11:46:12 -0700 Subject: [PATCH 12/28] Add support for zsh to helm completion Updated the 'helm completion' command to take in the shell as a parameter. Currently acceptable options are 'bash' and 'zsh'. Also fixed the completions to work with zsh in a manner similar to what kubectl does. Also updated the docs to reflect this change. Closes #2201 --- cmd/helm/completion.go | 202 ++++++++++++++++++++++++++++++-- docs/helm/helm.md | 2 +- docs/helm/helm_completion.md | 12 +- docs/man/man1/helm_completion.1 | 12 +- scripts/completions.bash | 2 + 5 files changed, 207 insertions(+), 23 deletions(-) diff --git a/cmd/helm/completion.go b/cmd/helm/completion.go index ddb8f06c7..bf6e43c21 100644 --- a/cmd/helm/completion.go +++ b/cmd/helm/completion.go @@ -16,32 +16,214 @@ limitations under the License. package main import ( + "bytes" + "fmt" "io" "github.com/spf13/cobra" ) const completionDesc = ` -Generate bash autocompletions script for Helm. +Generate autocompletions script for Helm for the specified shell (bash or zsh). -This command can generate shell autocompletions. +This command can generate shell autocompletions. e.g. - $ helm completion + $ helm completion bash Can be sourced as such - $ source <(helm completion) + $ source <(helm completion bash) ` +var ( + completion_shells = map[string]func(out io.Writer, cmd *cobra.Command) error{ + "bash": runCompletionBash, + "zsh": runCompletionZsh, + } +) + func newCompletionCmd(out io.Writer) *cobra.Command { + shells := []string{} + for s := range completion_shells { + shells = append(shells, s) + } + cmd := &cobra.Command{ - Use: "completion", - Short: "Generate bash autocompletions script", - Long: completionDesc, - Hidden: false, - RunE: func(cmd *cobra.Command, _ []string) error { - return cmd.Root().GenBashCompletion(out) + Use: "completion SHELL", + Short: "Generate autocompletions script for the specified shell (bash or zsh)", + Long: completionDesc, + RunE: func(cmd *cobra.Command, args []string) error { + return RunCompletion(out, cmd, args) }, + ValidArgs: shells, } + return cmd } + +func RunCompletion(out io.Writer, cmd *cobra.Command, args []string) error { + if len(args) == 0 { + return fmt.Errorf("Shell not specified.") + } + if len(args) > 1 { + return fmt.Errorf("Too many arguments. Expected only the shell type.") + } + run, found := completion_shells[args[0]] + if !found { + return fmt.Errorf("Unsupported shell type %q.", args[0]) + } + + return run(out, cmd) +} + +func runCompletionBash(out io.Writer, cmd *cobra.Command) error { + return cmd.Root().GenBashCompletion(out) +} + +func runCompletionZsh(out io.Writer, cmd *cobra.Command) error { + zsh_initialization := ` +__helm_bash_source() { + alias shopt=':' + alias _expand=_bash_expand + alias _complete=_bash_comp + emulate -L sh + setopt kshglob noshglob braceexpand + source "$@" +} +__helm_type() { + # -t is not supported by zsh + if [ "$1" == "-t" ]; then + shift + # fake Bash 4 to disable "complete -o nospace". Instead + # "compopt +-o nospace" is used in the code to toggle trailing + # spaces. We don't support that, but leave trailing spaces on + # all the time + if [ "$1" = "__helm_compopt" ]; then + echo builtin + return 0 + fi + fi + type "$@" +} +__helm_compgen() { + local completions w + completions=( $(compgen "$@") ) || return $? + # filter by given word as prefix + while [[ "$1" = -* && "$1" != -- ]]; do + shift + shift + done + if [[ "$1" == -- ]]; then + shift + fi + for w in "${completions[@]}"; do + if [[ "${w}" = "$1"* ]]; then + echo "${w}" + fi + done +} +__helm_compopt() { + true # don't do anything. Not supported by bashcompinit in zsh +} +__helm_declare() { + if [ "$1" == "-F" ]; then + whence -w "$@" + else + builtin declare "$@" + fi +} +__helm_ltrim_colon_completions() +{ + if [[ "$1" == *:* && "$COMP_WORDBREAKS" == *:* ]]; then + # Remove colon-word prefix from COMPREPLY items + local colon_word=${1%${1##*:}} + local i=${#COMPREPLY[*]} + while [[ $((--i)) -ge 0 ]]; do + COMPREPLY[$i]=${COMPREPLY[$i]#"$colon_word"} + done + fi +} +__helm_get_comp_words_by_ref() { + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[${COMP_CWORD}-1]}" + words=("${COMP_WORDS[@]}") + cword=("${COMP_CWORD[@]}") +} +__helm_filedir() { + local RET OLD_IFS w qw + __debug "_filedir $@ cur=$cur" + if [[ "$1" = \~* ]]; then + # somehow does not work. Maybe, zsh does not call this at all + eval echo "$1" + return 0 + fi + OLD_IFS="$IFS" + IFS=$'\n' + if [ "$1" = "-d" ]; then + shift + RET=( $(compgen -d) ) + else + RET=( $(compgen -f) ) + fi + IFS="$OLD_IFS" + IFS="," __debug "RET=${RET[@]} len=${#RET[@]}" + for w in ${RET[@]}; do + if [[ ! "${w}" = "${cur}"* ]]; then + continue + fi + if eval "[[ \"\${w}\" = *.$1 || -d \"\${w}\" ]]"; then + qw="$(__helm_quote "${w}")" + if [ -d "${w}" ]; then + COMPREPLY+=("${qw}/") + else + COMPREPLY+=("${qw}") + fi + fi + done +} +__helm_quote() { + if [[ $1 == \'* || $1 == \"* ]]; then + # Leave out first character + printf %q "${1:1}" + else + printf %q "$1" + fi +} +autoload -U +X bashcompinit && bashcompinit +# use word boundary patterns for BSD or GNU sed +LWORD='[[:<:]]' +RWORD='[[:>:]]' +if sed --help 2>&1 | grep -q GNU; then + LWORD='\<' + RWORD='\>' +fi +__helm_convert_bash_to_zsh() { + sed \ + -e 's/declare -F/whence -w/' \ + -e 's/_get_comp_words_by_ref "\$@"/_get_comp_words_by_ref "\$*"/' \ + -e 's/local \([a-zA-Z0-9_]*\)=/local \1; \1=/' \ + -e 's/flags+=("\(--.*\)=")/flags+=("\1"); two_word_flags+=("\1")/' \ + -e 's/must_have_one_flag+=("\(--.*\)=")/must_have_one_flag+=("\1")/' \ + -e "s/${LWORD}_filedir${RWORD}/__helm_filedir/g" \ + -e "s/${LWORD}_get_comp_words_by_ref${RWORD}/__helm_get_comp_words_by_ref/g" \ + -e "s/${LWORD}__ltrim_colon_completions${RWORD}/__helm_ltrim_colon_completions/g" \ + -e "s/${LWORD}compgen${RWORD}/__helm_compgen/g" \ + -e "s/${LWORD}compopt${RWORD}/__helm_compopt/g" \ + -e "s/${LWORD}declare${RWORD}/__helm_declare/g" \ + -e "s/\\\$(type${RWORD}/\$(__helm_type/g" \ + <<'BASH_COMPLETION_EOF' +` + out.Write([]byte(zsh_initialization)) + + buf := new(bytes.Buffer) + cmd.Root().GenBashCompletion(buf) + out.Write(buf.Bytes()) + + zsh_tail := ` +BASH_COMPLETION_EOF +} +__helm_bash_source <(__helm_convert_bash_to_zsh) +` + out.Write([]byte(zsh_tail)) + return nil +} diff --git a/docs/helm/helm.md b/docs/helm/helm.md index 3b63cc5f2..135d5f995 100644 --- a/docs/helm/helm.md +++ b/docs/helm/helm.md @@ -40,7 +40,7 @@ Environment: ``` ### SEE ALSO -* [helm completion](helm_completion.md) - Generate bash autocompletions script +* [helm completion](helm_completion.md) - Generate autocompletions script for the specified shell (bash or zsh) * [helm create](helm_create.md) - create a new chart with the given name * [helm delete](helm_delete.md) - given a release name, delete the release from Kubernetes * [helm dependency](helm_dependency.md) - manage a chart's dependencies diff --git a/docs/helm/helm_completion.md b/docs/helm/helm_completion.md index 0e05b6700..463f6bc47 100644 --- a/docs/helm/helm_completion.md +++ b/docs/helm/helm_completion.md @@ -1,24 +1,24 @@ ## helm completion -Generate bash autocompletions script +Generate autocompletions script for the specified shell (bash or zsh) ### Synopsis -Generate bash autocompletions script for Helm. +Generate autocompletions script for Helm for the specified shell (bash or zsh). -This command can generate shell autocompletions. +This command can generate shell autocompletions. e.g. - $ helm completion + $ helm completion bash Can be sourced as such - $ source <(helm completion) + $ source <(helm completion bash) ``` -helm completion +helm completion SHELL ``` ### Options inherited from parent commands diff --git a/docs/man/man1/helm_completion.1 b/docs/man/man1/helm_completion.1 index 0468bd4f4..95e267e2d 100644 --- a/docs/man/man1/helm_completion.1 +++ b/docs/man/man1/helm_completion.1 @@ -5,26 +5,26 @@ .SH NAME .PP -helm\-completion \- Generate bash autocompletions script +helm\-completion \- Generate autocompletions script for the specified shell (bash or zsh) .SH SYNOPSIS .PP -\fBhelm completion\fP +\fBhelm completion SHELL\fP .SH DESCRIPTION .PP -Generate bash autocompletions script for Helm. +Generate autocompletions script for Helm for the specified shell (bash or zsh). .PP -This command can generate shell autocompletions. +This command can generate shell autocompletions. e.g. .PP .RS .nf -$ helm completion +$ helm completion bash .fi .RE @@ -36,7 +36,7 @@ Can be sourced as such .RS .nf -$ source <(helm completion) +$ source <(helm completion bash) .fi .RE diff --git a/scripts/completions.bash b/scripts/completions.bash index f928ae502..6d92d6324 100644 --- a/scripts/completions.bash +++ b/scripts/completions.bash @@ -242,6 +242,8 @@ _helm_completion() must_have_one_flag=() must_have_one_noun=() + must_have_one_noun+=("bash") + must_have_one_noun+=("zsh") noun_aliases=() } From 46035c35c418a18df7c62686196ac7d3ef54ac2f Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Fri, 28 Apr 2017 16:39:21 -0600 Subject: [PATCH 13/28] fix(tiller): fix TOML panic This fixes a TOML panic by replacing one parser library with another. The older library did not gracefully handle reflection issues, and so was prone to panic. The new one is not great, but it doesn't seem to panic. Closes #2271 --- glide.lock | 12 +++++------- glide.yaml | 4 ++-- pkg/chartutil/files.go | 12 +++++++----- pkg/chartutil/files_test.go | 16 ++++++++++++++-- 4 files changed, 28 insertions(+), 16 deletions(-) diff --git a/glide.lock b/glide.lock index 3524e3dcd..eda65db58 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ -hash: e9366bddb36a7120a832959c89f72f75d56b9f10f84820420795c668d9cb0987 -updated: 2017-04-27T14:23:27.66000871-06:00 +hash: 1933241d076be316f3ef64e587e5400c2c884ebaa68565339796c7803619c8a4 +updated: 2017-04-28T15:58:28.450420107-06:00 imports: - name: bitbucket.org/ww/goautoneg version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675 @@ -20,6 +20,8 @@ imports: version: 3ac7bf7a47d159a033b107610db8a1b6575507a4 subpackages: - quantile +- name: github.com/BurntSushi/toml + version: b26d9c308763d68093482582cea63d69be07a0f0 - name: github.com/chai2010/gettext-go version: bf70f2a70fb1b1f36d90d671a72795984eab0fcb - name: github.com/coreos/go-oidc @@ -169,7 +171,7 @@ imports: - name: github.com/Masterminds/sprig version: 23597e5f6ad0e4d590e71314bfd0251a4a3cf849 - name: github.com/Masterminds/vcs - version: 795e20f901c3d561de52811fb3488a2cb2c8588b + version: 3084677c2c188840777bff30054f2b553729d329 - name: github.com/mattn/go-runewidth version: d6bea18f789704b5f83375793155289da36a3c7f - name: github.com/matttproud/golang_protobuf_extensions @@ -180,10 +182,6 @@ imports: version: ad45545899c7b13c020ea92b2072220eefad42b8 - name: github.com/naoina/go-stringutil version: 6b638e95a32d0c1131db0e7fe83775cbea4a0d0b -- name: github.com/naoina/toml - version: 751171607256bb66e64c9f0220c00662420c38e9 - subpackages: - - ast - name: github.com/pborman/uuid version: ca53cad383cad2479bbba7f7a1a05797ec1386e4 - name: github.com/prometheus/client_golang diff --git a/glide.yaml b/glide.yaml index 62a0b58bd..d13703c78 100644 --- a/glide.yaml +++ b/glide.yaml @@ -38,8 +38,8 @@ import: version: ^0.2.1 - package: github.com/evanphx/json-patch - package: github.com/facebookgo/symwalk -- package: github.com/naoina/toml - version: ~0.1.0 +- package: github.com/BurntSushi/toml + version: ~0.3.0 - package: github.com/naoina/go-stringutil version: ~0.1.0 - package: github.com/chai2010/gettext-go diff --git a/pkg/chartutil/files.go b/pkg/chartutil/files.go index 6d6f17ef5..043357dd1 100644 --- a/pkg/chartutil/files.go +++ b/pkg/chartutil/files.go @@ -16,6 +16,7 @@ limitations under the License. package chartutil import ( + "bytes" "encoding/base64" "encoding/json" "path" @@ -23,9 +24,9 @@ import ( yaml "gopkg.in/yaml.v2" + "github.com/BurntSushi/toml" "github.com/gobwas/glob" "github.com/golang/protobuf/ptypes/any" - "github.com/naoina/toml" ) // Files is a map of files in a chart that can be accessed from a template. @@ -197,12 +198,13 @@ func FromYaml(str string) map[string]interface{} { // // This is designed to be called from a template. func ToToml(v interface{}) string { - data, err := toml.Marshal(v) + b := bytes.NewBuffer(nil) + e := toml.NewEncoder(b) + err := e.Encode(v) if err != nil { - // Swallow errors inside of a template. - return "" + return err.Error() } - return string(data) + return b.String() } // ToJson takes an interface, marshals it to json, and returns a string. It will diff --git a/pkg/chartutil/files_test.go b/pkg/chartutil/files_test.go index e87fb7187..731c82e6f 100644 --- a/pkg/chartutil/files_test.go +++ b/pkg/chartutil/files_test.go @@ -112,9 +112,9 @@ func TestToYaml(t *testing.T) { } func TestToToml(t *testing.T) { - expect := "foo=\"bar\"\n" + expect := "foo = \"bar\"\n" v := struct { - Foo string `json:"foo"` + Foo string `toml:"foo"` }{ Foo: "bar", } @@ -122,6 +122,18 @@ func TestToToml(t *testing.T) { if got := ToToml(v); got != expect { t.Errorf("Expected %q, got %q", expect, got) } + + // Regression for https://github.com/kubernetes/helm/issues/2271 + dict := map[string]map[string]string{ + "mast": { + "sail": "white", + }, + } + got := ToToml(dict) + expect = "[mast]\n sail = \"white\"\n" + if got != expect { + t.Errorf("Expected:\n%s\nGot\n%s\n", expect, got) + } } func TestFromYaml(t *testing.T) { From 64e9e471838ac44e551c32abcbd19f671c80ecce Mon Sep 17 00:00:00 2001 From: Michelle Noorali Date: Fri, 28 Apr 2017 13:06:38 -0400 Subject: [PATCH 14/28] feat(helm): add service account flag to helm init helps with half of #2224 --- cmd/helm/init.go | 25 ++++++++++++++----------- cmd/helm/installer/install.go | 1 + cmd/helm/installer/install_test.go | 28 ++++++++++++++++++++++++++++ cmd/helm/installer/options.go | 3 +++ docs/helm/helm_init.md | 3 ++- docs/man/man1/helm_init.1 | 8 ++++++-- scripts/completions.bash | 2 ++ 7 files changed, 56 insertions(+), 14 deletions(-) diff --git a/cmd/helm/init.go b/cmd/helm/init.go index a2bec7a65..ff1d56288 100644 --- a/cmd/helm/init.go +++ b/cmd/helm/init.go @@ -66,17 +66,18 @@ var ( ) type initCmd struct { - image string - clientOnly bool - canary bool - upgrade bool - namespace string - dryRun bool - skipRefresh bool - out io.Writer - home helmpath.Home - opts installer.Options - kubeClient internalclientset.Interface + image string + clientOnly bool + canary bool + upgrade bool + namespace string + dryRun bool + skipRefresh bool + out io.Writer + home helmpath.Home + opts installer.Options + kubeClient internalclientset.Interface + serviceAccount string } func newInitCmd(out io.Writer) *cobra.Command { @@ -116,6 +117,7 @@ func newInitCmd(out io.Writer) *cobra.Command { f.StringVar(&localRepositoryURL, "local-repo-url", localRepositoryURL, "URL for local repository") f.BoolVar(&i.opts.EnableHostNetwork, "net-host", false, "install tiller with net=host") + f.StringVar(&i.serviceAccount, "service-account", "", "name of service account") return cmd } @@ -154,6 +156,7 @@ func (i *initCmd) run() error { i.opts.Namespace = i.namespace i.opts.UseCanary = i.canary i.opts.ImageSpec = i.image + i.opts.ServiceAccount = i.serviceAccount if settings.Debug { writeYAMLManifest := func(apiVersion, kind, body string, first, last bool) error { diff --git a/cmd/helm/installer/install.go b/cmd/helm/installer/install.go index 90e832b07..d3c9217be 100644 --- a/cmd/helm/installer/install.go +++ b/cmd/helm/installer/install.go @@ -131,6 +131,7 @@ func generateDeployment(opts *Options) *extensions.Deployment { Labels: labels, }, Spec: api.PodSpec{ + ServiceAccountName: opts.ServiceAccount, Containers: []api.Container{ { Name: "tiller", diff --git a/cmd/helm/installer/install_test.go b/cmd/helm/installer/install_test.go index 63f8419b3..be3ef151f 100644 --- a/cmd/helm/installer/install_test.go +++ b/cmd/helm/installer/install_test.go @@ -70,6 +70,34 @@ func TestDeploymentManifest(t *testing.T) { } } +func TestDeploymentManifestForServiceAccount(t *testing.T) { + tests := []struct { + name string + image string + canary bool + expect string + imagePullPolicy api.PullPolicy + serviceAccount string + }{ + {"withSA", "", false, "gcr.io/kubernetes-helm/tiller:latest", "IfNotPresent", "service-account"}, + {"withoutSA", "", false, "gcr.io/kubernetes-helm/tiller:latest", "IfNotPresent", ""}, + } + for _, tt := range tests { + o, err := DeploymentManifest(&Options{Namespace: api.NamespaceDefault, ImageSpec: tt.image, UseCanary: tt.canary, ServiceAccount: tt.serviceAccount}) + if err != nil { + t.Fatalf("%s: error %q", tt.name, err) + } + + var d extensions.Deployment + if err := yaml.Unmarshal([]byte(o), &d); err != nil { + t.Fatalf("%s: error %q", tt.name, err) + } + if got := d.Spec.Template.Spec.ServiceAccountName; got != tt.serviceAccount { + t.Errorf("%s: expected service account value %q, got %q", tt.name, tt.serviceAccount, got) + } + } +} + func TestDeploymentManifest_WithTLS(t *testing.T) { tests := []struct { opts Options diff --git a/cmd/helm/installer/options.go b/cmd/helm/installer/options.go index eb9519f5d..6fb804a46 100644 --- a/cmd/helm/installer/options.go +++ b/cmd/helm/installer/options.go @@ -43,6 +43,9 @@ type Options struct { // Namespace is the kubernetes namespace to use to deploy tiller. Namespace string + // ServiceAccount is the Kubernetes service account to add to tiller + ServiceAccount string + // ImageSpec indentifies the image tiller will use when deployed. // // Valid if and only if UseCanary is false. diff --git a/docs/helm/helm_init.md b/docs/helm/helm_init.md index 3fe94b79c..e21121dcd 100644 --- a/docs/helm/helm_init.md +++ b/docs/helm/helm_init.md @@ -38,6 +38,7 @@ helm init --dry-run do not install local or remote --local-repo-url string URL for local repository (default "http://127.0.0.1:8879/charts") --net-host install tiller with net=host + --service-account string name of service account --skip-refresh do not refresh (download) the local repository cache --stable-repo-url string URL for stable repository (default "https://kubernetes-charts.storage.googleapis.com") -i, --tiller-image string override tiller image @@ -62,4 +63,4 @@ helm init ### SEE ALSO * [helm](helm.md) - The Helm package manager for Kubernetes. -###### Auto generated by spf13/cobra on 18-Apr-2017 +###### Auto generated by spf13/cobra on 1-May-2017 diff --git a/docs/man/man1/helm_init.1 b/docs/man/man1/helm_init.1 index 9fea8ba40..e92c51f76 100644 --- a/docs/man/man1/helm_init.1 +++ b/docs/man/man1/helm_init.1 @@ -1,4 +1,4 @@ -.TH "HELM" "1" "Apr 2017" "Auto generated by spf13/cobra" "" +.TH "HELM" "1" "May 2017" "Auto generated by spf13/cobra" "" .nh .ad l @@ -61,6 +61,10 @@ To dump a manifest containing the Tiller deployment YAML, combine the \fB\-\-net\-host\fP[=false] install tiller with net=host +.PP +\fB\-\-service\-account\fP="" + name of service account + .PP \fB\-\-skip\-refresh\fP[=false] do not refresh (download) the local repository cache @@ -128,4 +132,4 @@ To dump a manifest containing the Tiller deployment YAML, combine the .SH HISTORY .PP -18\-Apr\-2017 Auto generated by spf13/cobra +1\-May\-2017 Auto generated by spf13/cobra diff --git a/scripts/completions.bash b/scripts/completions.bash index f928ae502..0dd082989 100644 --- a/scripts/completions.bash +++ b/scripts/completions.bash @@ -638,6 +638,8 @@ _helm_init() local_nonpersistent_flags+=("--local-repo-url=") flags+=("--net-host") local_nonpersistent_flags+=("--net-host") + flags+=("--service-account=") + local_nonpersistent_flags+=("--service-account=") flags+=("--skip-refresh") local_nonpersistent_flags+=("--skip-refresh") flags+=("--stable-repo-url=") From 2e819e014d78b83c15252571f7bcac75cd226ab7 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Mon, 1 May 2017 12:06:50 -0700 Subject: [PATCH 15/28] fix(*): handle unreleased versioning Adds an `unreleased` flag to the version if not building from HEAD of a tag. The compatibility check is bypassed if the client or server are unreleased. fixes #2110 --- pkg/helm/option.go | 2 +- pkg/tiller/release_server_test.go | 3 +++ pkg/tiller/server.go | 4 ++-- pkg/version/compatible.go | 8 +++++++ pkg/version/version.go | 4 ++-- versioning.mk | 39 ++++++++++++++++++++----------- 6 files changed, 42 insertions(+), 18 deletions(-) diff --git a/pkg/helm/option.go b/pkg/helm/option.go index b4f6631c4..0604e244a 100644 --- a/pkg/helm/option.go +++ b/pkg/helm/option.go @@ -408,7 +408,7 @@ func WithMaxHistory(max int32) HistoryOption { // NewContext creates a versioned context. func NewContext() context.Context { - md := metadata.Pairs("x-helm-api-client", version.Version) + md := metadata.Pairs("x-helm-api-client", version.GetVersion()) return metadata.NewContext(context.TODO(), md) } diff --git a/pkg/tiller/release_server_test.go b/pkg/tiller/release_server_test.go index 636874b20..596f0803b 100644 --- a/pkg/tiller/release_server_test.go +++ b/pkg/tiller/release_server_test.go @@ -38,6 +38,7 @@ import ( "k8s.io/helm/pkg/storage" "k8s.io/helm/pkg/storage/driver" "k8s.io/helm/pkg/tiller/environment" + "k8s.io/helm/pkg/version" ) const notesText = "my notes here" @@ -465,6 +466,7 @@ func TestInstallRelease_WithNotesRendered(t *testing.T) { } func TestInstallRelease_TillerVersion(t *testing.T) { + version.Version = "2.2.0" c := helm.NewContext() rs := rsFixture() @@ -486,6 +488,7 @@ func TestInstallRelease_TillerVersion(t *testing.T) { } func TestInstallRelease_WrongTillerVersion(t *testing.T) { + version.Version = "2.2.0" c := helm.NewContext() rs := rsFixture() diff --git a/pkg/tiller/server.go b/pkg/tiller/server.go index 75db5e093..8d6b6fa13 100644 --- a/pkg/tiller/server.go +++ b/pkg/tiller/server.go @@ -88,8 +88,8 @@ func versionFromContext(ctx context.Context) string { func checkClientVersion(ctx context.Context) error { clientVersion := versionFromContext(ctx) - if !version.IsCompatible(clientVersion, version.Version) { - return fmt.Errorf("incompatible versions client: %s server: %s", clientVersion, version.Version) + if !version.IsCompatible(clientVersion, version.GetVersion()) { + return fmt.Errorf("incompatible versions client[%s] server[%s]", clientVersion, version.GetVersion()) } return nil } diff --git a/pkg/version/compatible.go b/pkg/version/compatible.go index c8f359971..735610778 100644 --- a/pkg/version/compatible.go +++ b/pkg/version/compatible.go @@ -18,12 +18,16 @@ package version // import "k8s.io/helm/pkg/version" import ( "fmt" + "strings" "github.com/Masterminds/semver" ) // IsCompatible tests if a client and server version are compatible. func IsCompatible(client, server string) bool { + if isUnreleased(client) || isUnreleased(server) { + return true + } cv, err := semver.NewVersion(client) if err != nil { return false @@ -55,3 +59,7 @@ func IsCompatibleRange(constraint, ver string) bool { } return c.Check(sv) } + +func isUnreleased(v string) bool { + return strings.HasSuffix(v, "unreleased") +} diff --git a/pkg/version/version.go b/pkg/version/version.go index ff68c4a91..a2e3e8ecd 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -26,10 +26,10 @@ var ( // Increment major number for new feature additions and behavioral changes. // Increment minor number for bug fixes and performance enhancements. // Increment patch number for critical fixes to existing releases. - Version = "v2.3.0" + Version = "v2.3.x" // BuildMetadata is extra build time data - BuildMetadata = "" + BuildMetadata = "unreleased" // GitCommit is the git sha1 GitCommit = "" // GitTreeState is the state of the git tree diff --git a/versioning.mk b/versioning.mk index b336a7999..83921f04d 100644 --- a/versioning.mk +++ b/versioning.mk @@ -1,9 +1,9 @@ -MUTABLE_VERSION ?= canary +MUTABLE_VERSION := canary -GIT_COMMIT ?= $(shell git rev-parse HEAD) -GIT_SHA ?= $(shell git rev-parse --short HEAD) -GIT_TAG ?= $(shell git describe --tags --abbrev=0 2>/dev/null) -GIT_DIRTY ?= $(shell test -n "`git status --porcelain`" && echo "dirty" || echo "clean") +GIT_COMMIT = $(shell git rev-parse HEAD) +GIT_SHA = $(shell git rev-parse --short HEAD) +GIT_TAG = $(shell git describe --tags --abbrev=0 --exact-match 2>/dev/null) +GIT_DIRTY = $(shell test -n "`git status --porcelain`" && echo "dirty" || echo "clean") ifdef VERSION DOCKER_VERSION = $(VERSION) @@ -11,25 +11,38 @@ ifdef VERSION endif DOCKER_VERSION ?= git-${GIT_SHA} -BINARY_VERSION ?= ${GIT_TAG}-${GIT_SHA} +BINARY_VERSION ?= ${GIT_TAG} -IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${SHORT_NAME}:${DOCKER_VERSION} -MUTABLE_IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${SHORT_NAME}:${MUTABLE_VERSION} +# Only set Version if building a tag or VERSION is set +ifneq ($(BINARY_VERSION),) + LDFLAGS += -X k8s.io/helm/pkg/version.Version=${BINARY_VERSION} +endif + +# Clear the "unreleased" string in BuildMetadata +ifneq ($(GIT_TAG),) + LDFLAGS += -X k8s.io/helm/pkg/version.BuildMetadata= +endif -LDFLAGS += -X k8s.io/helm/pkg/version.Version=${GIT_TAG} LDFLAGS += -X k8s.io/helm/pkg/version.GitCommit=${GIT_COMMIT} LDFLAGS += -X k8s.io/helm/pkg/version.GitTreeState=${GIT_DIRTY} +IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${SHORT_NAME}:${DOCKER_VERSION} +MUTABLE_IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${SHORT_NAME}:${MUTABLE_VERSION} + DOCKER_PUSH = docker push ifeq ($(DOCKER_REGISTRY),gcr.io) DOCKER_PUSH = gcloud docker push endif info: - @echo "Build tag: ${DOCKER_VERSION}" - @echo "Registry: ${DOCKER_REGISTRY}" - @echo "Immutable tag: ${IMAGE}" - @echo "Mutable tag: ${MUTABLE_IMAGE}" + @echo "Version: ${VERSION}" + @echo "Git Tag: ${GIT_TAG}" + @echo "Git Commit: ${GIT_COMMIT}" + @echo "Git Tree State: ${GIT_DIRTY}" + @echo "Docker Version: ${DOCKER_VERSION}" + @echo "Registry: ${DOCKER_REGISTRY}" + @echo "Immutable Image: ${IMAGE}" + @echo "Mutable Image: ${MUTABLE_IMAGE}" .PHONY: docker-push docker-push: docker-mutable-push docker-immutable-push From bd02f3938426ebfc26bc2ed7280c5b71da38a547 Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Fri, 28 Apr 2017 14:01:35 -0600 Subject: [PATCH 16/28] ref(getter): flatten the getter package tree This flattens the getter package tree, adds tests, and changes a little bit of the terminology to follow Go idioms. This also makes much of the getter API private to begin with. This will give us more flexibility in the future. --- cmd/helm/dependency_build.go | 4 +- cmd/helm/dependency_update.go | 4 +- cmd/helm/fetch.go | 4 +- cmd/helm/init.go | 4 +- cmd/helm/install.go | 4 +- cmd/helm/repo_add.go | 4 +- cmd/helm/repo_update.go | 4 +- cmd/helm/repo_update_test.go | 4 +- pkg/downloader/chart_downloader.go | 4 +- pkg/downloader/chart_downloader_test.go | 18 +- pkg/downloader/manager.go | 2 +- pkg/getter/defaultgetters/default.go | 71 - pkg/getter/doc.go | 21 + pkg/getter/getter.go | 79 +- pkg/getter/getter_test.go | 81 + .../{http/http_getter.go => httpgetter.go} | 18 +- pkg/getter/httpgetter_test.go | 48 + .../plugin_getter.go => plugingetter.go} | 44 +- pkg/getter/plugingetter_test.go | 92 + pkg/getter/testdata/plugins/testgetter/get.sh | 8 + .../testdata/plugins/testgetter/plugin.yaml | 15 + .../testdata/plugins/testgetter2/get.sh | 8 + .../testdata/plugins/testgetter2/plugin.yaml | 10 + .../repository/cache/local-index.yaml | 1 + .../repository/cache/stable-index.yaml | 7852 +++++++++++++++++ .../testdata/repository/local/index.yaml | 3 + .../testdata/repository/repositories.yaml | 15 + pkg/repo/chartrepo.go | 4 +- pkg/repo/chartrepo_test.go | 6 +- pkg/repo/index_test.go | 4 +- pkg/urlutil/urlutil.go | 18 +- pkg/urlutil/urlutil_test.go | 13 + 32 files changed, 8319 insertions(+), 148 deletions(-) delete mode 100644 pkg/getter/defaultgetters/default.go create mode 100644 pkg/getter/doc.go create mode 100644 pkg/getter/getter_test.go rename pkg/getter/{http/http_getter.go => httpgetter.go} (80%) create mode 100644 pkg/getter/httpgetter_test.go rename pkg/getter/{plugin/plugin_getter.go => plugingetter.go} (61%) create mode 100644 pkg/getter/plugingetter_test.go create mode 100755 pkg/getter/testdata/plugins/testgetter/get.sh create mode 100644 pkg/getter/testdata/plugins/testgetter/plugin.yaml create mode 100755 pkg/getter/testdata/plugins/testgetter2/get.sh create mode 100644 pkg/getter/testdata/plugins/testgetter2/plugin.yaml create mode 120000 pkg/getter/testdata/repository/cache/local-index.yaml create mode 100644 pkg/getter/testdata/repository/cache/stable-index.yaml create mode 100644 pkg/getter/testdata/repository/local/index.yaml create mode 100644 pkg/getter/testdata/repository/repositories.yaml diff --git a/cmd/helm/dependency_build.go b/cmd/helm/dependency_build.go index 3a92edd07..1168a2ed2 100644 --- a/cmd/helm/dependency_build.go +++ b/cmd/helm/dependency_build.go @@ -21,7 +21,7 @@ import ( "github.com/spf13/cobra" "k8s.io/helm/pkg/downloader" - "k8s.io/helm/pkg/getter/defaultgetters" + "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/helm/helmpath" ) @@ -77,7 +77,7 @@ func (d *dependencyBuildCmd) run() error { ChartPath: d.chartpath, HelmHome: d.helmhome, Keyring: d.keyring, - Getters: defaultgetters.Get(settings), + Getters: getter.All(settings), } if d.verify { man.Verify = downloader.VerifyIfPossible diff --git a/cmd/helm/dependency_update.go b/cmd/helm/dependency_update.go index 1838acb0a..188f21e88 100644 --- a/cmd/helm/dependency_update.go +++ b/cmd/helm/dependency_update.go @@ -21,7 +21,7 @@ import ( "github.com/spf13/cobra" "k8s.io/helm/pkg/downloader" - "k8s.io/helm/pkg/getter/defaultgetters" + "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/helm/helmpath" ) @@ -95,7 +95,7 @@ func (d *dependencyUpdateCmd) run() error { HelmHome: d.helmhome, Keyring: d.keyring, SkipUpdate: d.skipRefresh, - Getters: defaultgetters.Get(settings), + Getters: getter.All(settings), } if d.verify { man.Verify = downloader.VerifyIfPossible diff --git a/cmd/helm/fetch.go b/cmd/helm/fetch.go index 3dbf645cc..26fab1d99 100644 --- a/cmd/helm/fetch.go +++ b/cmd/helm/fetch.go @@ -26,7 +26,7 @@ import ( "github.com/spf13/cobra" "k8s.io/helm/pkg/chartutil" "k8s.io/helm/pkg/downloader" - "k8s.io/helm/pkg/getter/defaultgetters" + "k8s.io/helm/pkg/getter" ) const fetchDesc = ` @@ -97,7 +97,7 @@ func (f *fetchCmd) run() error { Out: f.out, Keyring: f.keyring, Verify: downloader.VerifyNever, - Getters: defaultgetters.Get(settings), + Getters: getter.All(settings), } if f.verify { diff --git a/cmd/helm/init.go b/cmd/helm/init.go index a2bec7a65..2b4b53b87 100644 --- a/cmd/helm/init.go +++ b/cmd/helm/init.go @@ -27,7 +27,7 @@ import ( "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/helm/cmd/helm/installer" - "k8s.io/helm/pkg/getter/defaultgetters" + "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/helm/helmpath" "k8s.io/helm/pkg/repo" ) @@ -314,7 +314,7 @@ func initStableRepo(cacheFile string, skipRefresh bool) (*repo.Entry, error) { URL: stableRepositoryURL, Cache: cacheFile, } - r, err := repo.NewChartRepository(&c, defaultgetters.Get(settings)) + r, err := repo.NewChartRepository(&c, getter.All(settings)) if err != nil { return nil, err } diff --git a/cmd/helm/install.go b/cmd/helm/install.go index d01ee514a..5e37f7ed8 100644 --- a/cmd/helm/install.go +++ b/cmd/helm/install.go @@ -34,7 +34,7 @@ import ( "k8s.io/helm/pkg/chartutil" "k8s.io/helm/pkg/downloader" - "k8s.io/helm/pkg/getter/defaultgetters" + "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/helm" "k8s.io/helm/pkg/kube" "k8s.io/helm/pkg/proto/hapi/chart" @@ -357,7 +357,7 @@ func locateChartPath(name, version string, verify bool, keyring string) (string, HelmHome: settings.Home, Out: os.Stdout, Keyring: keyring, - Getters: defaultgetters.Get(settings), + Getters: getter.All(settings), } if verify { dl.Verify = downloader.VerifyAlways diff --git a/cmd/helm/repo_add.go b/cmd/helm/repo_add.go index 92bf61107..314a31ae2 100644 --- a/cmd/helm/repo_add.go +++ b/cmd/helm/repo_add.go @@ -22,7 +22,7 @@ import ( "github.com/spf13/cobra" - "k8s.io/helm/pkg/getter/defaultgetters" + "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/helm/helmpath" "k8s.io/helm/pkg/repo" ) @@ -98,7 +98,7 @@ func addRepository(name, url string, home helmpath.Home, certFile, keyFile, caFi CAFile: caFile, } - r, err := repo.NewChartRepository(&c, defaultgetters.Get(settings)) + r, err := repo.NewChartRepository(&c, getter.All(settings)) if err != nil { return err } diff --git a/cmd/helm/repo_update.go b/cmd/helm/repo_update.go index d45633497..9ba42caf5 100644 --- a/cmd/helm/repo_update.go +++ b/cmd/helm/repo_update.go @@ -24,7 +24,7 @@ import ( "github.com/spf13/cobra" - "k8s.io/helm/pkg/getter/defaultgetters" + "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/helm/helmpath" "k8s.io/helm/pkg/repo" ) @@ -76,7 +76,7 @@ func (u *repoUpdateCmd) run() error { } var repos []*repo.ChartRepository for _, cfg := range f.Repositories { - r, err := repo.NewChartRepository(cfg, defaultgetters.Get(settings)) + r, err := repo.NewChartRepository(cfg, getter.All(settings)) if err != nil { return err } diff --git a/cmd/helm/repo_update_test.go b/cmd/helm/repo_update_test.go index ecd23543d..17eaed60b 100644 --- a/cmd/helm/repo_update_test.go +++ b/cmd/helm/repo_update_test.go @@ -23,7 +23,7 @@ import ( "strings" "testing" - "k8s.io/helm/pkg/getter/defaultgetters" + "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/helm/helmpath" "k8s.io/helm/pkg/repo" "k8s.io/helm/pkg/repo/repotest" @@ -85,7 +85,7 @@ func TestUpdateCharts(t *testing.T) { Name: "charts", URL: ts.URL(), Cache: hh.CacheIndex("charts"), - }, defaultgetters.Get(settings)) + }, getter.All(settings)) if err != nil { t.Error(err) } diff --git a/pkg/downloader/chart_downloader.go b/pkg/downloader/chart_downloader.go index 1a4c3a7a9..e1dadcb15 100644 --- a/pkg/downloader/chart_downloader.go +++ b/pkg/downloader/chart_downloader.go @@ -66,7 +66,7 @@ type ChartDownloader struct { // HelmHome is the $HELM_HOME. HelmHome helmpath.Home // Getter collection for the operation - Getters []getter.Prop + Getters getter.Providers } // DownloadTo retrieves a chart. Depending on the settings, it may also download a provenance file. @@ -161,7 +161,7 @@ func (c *ChartDownloader) ResolveChartVersion(ref, version string) (*url.URL, ge // If there is no special config, return the default HTTP client and // swallow the error. if err == ErrNoOwnerRepo { - getterConstructor, err := getter.ConstructorByScheme(c.Getters, u.Scheme) + getterConstructor, err := c.Getters.ByScheme(u.Scheme) if err != nil { return u, nil, err } diff --git a/pkg/downloader/chart_downloader_test.go b/pkg/downloader/chart_downloader_test.go index 17a66145b..c50c905b1 100644 --- a/pkg/downloader/chart_downloader_test.go +++ b/pkg/downloader/chart_downloader_test.go @@ -25,8 +25,7 @@ import ( "path/filepath" "testing" - "k8s.io/helm/pkg/getter/defaultgetters" - "k8s.io/helm/pkg/getter/http" + "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/helm/environment" "k8s.io/helm/pkg/helm/helmpath" "k8s.io/helm/pkg/repo" @@ -52,7 +51,7 @@ func TestResolveChartRef(t *testing.T) { c := ChartDownloader{ HelmHome: helmpath.Home("testdata/helmhome"), Out: os.Stderr, - Getters: defaultgetters.Get(environment.EnvSettings{}), + Getters: getter.All(environment.EnvSettings{}), } for _, tt := range tests { @@ -89,7 +88,12 @@ func TestDownload(t *testing.T) { })) defer srv.Close() - getter, err := httpgetter.New(srv.URL, "", "", "") + provider, err := getter.ByScheme("http", environment.EnvSettings{}) + if err != nil { + t.Fatal("No http provider found") + } + + getter, err := provider.New(srv.URL, "", "", "") if err != nil { t.Fatal(err) } @@ -182,7 +186,7 @@ func TestDownloadTo(t *testing.T) { Out: os.Stderr, Verify: VerifyAlways, Keyring: "testdata/helm-test-key.pub", - Getters: defaultgetters.Get(environment.EnvSettings{}), + Getters: getter.All(environment.EnvSettings{}), } cname := "/signtest-0.1.0.tgz" where, v, err := c.DownloadTo(srv.URL()+cname, "", dest) @@ -245,7 +249,7 @@ func TestDownloadTo_VerifyLater(t *testing.T) { HelmHome: hh, Out: os.Stderr, Verify: VerifyLater, - Getters: defaultgetters.Get(environment.EnvSettings{}), + Getters: getter.All(environment.EnvSettings{}), } cname := "/signtest-0.1.0.tgz" where, _, err := c.DownloadTo(srv.URL()+cname, "", dest) @@ -274,7 +278,7 @@ func TestScanReposForURL(t *testing.T) { HelmHome: hh, Out: os.Stderr, Verify: VerifyLater, - Getters: defaultgetters.Get(environment.EnvSettings{}), + Getters: getter.All(environment.EnvSettings{}), } u := "http://example.com/alpine-0.2.0.tgz" diff --git a/pkg/downloader/manager.go b/pkg/downloader/manager.go index 4f881591a..508122376 100644 --- a/pkg/downloader/manager.go +++ b/pkg/downloader/manager.go @@ -56,7 +56,7 @@ type Manager struct { // SkipUpdate indicates that the repository should not be updated first. SkipUpdate bool // Getter collection for the operation - Getters []getter.Prop + Getters []getter.Provider } // Build rebuilds a local charts directory from a lockfile. diff --git a/pkg/getter/defaultgetters/default.go b/pkg/getter/defaultgetters/default.go deleted file mode 100644 index 8e5f0c862..000000000 --- a/pkg/getter/defaultgetters/default.go +++ /dev/null @@ -1,71 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package defaultgetters - -import ( - "os" - - "k8s.io/helm/pkg/getter" - "k8s.io/helm/pkg/getter/http" - "k8s.io/helm/pkg/getter/plugin" - "k8s.io/helm/pkg/helm/environment" - "k8s.io/helm/pkg/helm/helmpath" - "k8s.io/helm/pkg/plugin" -) - -// Get gathers the getter constructors for the downloaders. -// Currently the build-in http getter and the discovered -// plugins with downloader notations are collected. -func Get(settings environment.EnvSettings) []getter.Prop { - result := []getter.Prop{ - { - Schemes: getter.Schemes{"http", "https"}, - Constructor: httpgetter.New, - }, - } - pluginDownloaders, _ := collectPlugins(settings) - result = append(result, pluginDownloaders...) - return result -} - -func collectPlugins(settings environment.EnvSettings) ([]getter.Prop, error) { - plugdirs := os.Getenv(environment.PluginEnvVar) - if plugdirs == "" { - home := helmpath.Home(os.Getenv(environment.HomeEnvVar)) - plugdirs = home.Plugins() - } - - plugins, err := plugin.FindPlugins(plugdirs) - if err != nil { - return nil, err - } - var result []getter.Prop - for _, plugin := range plugins { - for _, downloader := range plugin.Metadata.Downloaders { - result = append(result, getter.Prop{ - Schemes: downloader.Protocols, - Constructor: plugingetter.ConstructNew( - downloader.Command, - settings, - plugin.Metadata.Name, - plugin.Dir, - ), - }) - } - } - return result, nil -} diff --git a/pkg/getter/doc.go b/pkg/getter/doc.go new file mode 100644 index 000000000..fe51e4967 --- /dev/null +++ b/pkg/getter/doc.go @@ -0,0 +1,21 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/*Package getter provides a generalize tool for fetching data by scheme. + +This provides a method by which the plugin system can load arbitrary protocol +handlers based upon a URL scheme. +*/ +package getter diff --git a/pkg/getter/getter.go b/pkg/getter/getter.go index c8b131f31..ca018884a 100644 --- a/pkg/getter/getter.go +++ b/pkg/getter/getter.go @@ -19,6 +19,8 @@ package getter import ( "bytes" "fmt" + + "k8s.io/helm/pkg/helm/environment" ) // Getter is an interface to support GET to the specified URL. @@ -27,27 +29,70 @@ type Getter interface { Get(url string) (*bytes.Buffer, error) } -//Schemes is the list to represent a specific Getter's protocol capabilities -type Schemes []string - -//Constructor is the function for every getter which creates a specific instance -//according to the configuration +// Constructor is the function for every getter which creates a specific instance +// according to the configuration type Constructor func(URL, CertFile, KeyFile, CAFile string) (Getter, error) -//Prop represents any getter and its capability -type Prop struct { - Schemes Schemes - Constructor Constructor +// Provider represents any getter and the schemes that it supports. +// +// For example, an HTTP provider may provide one getter that handles both +// 'http' and 'https' schemes. +type Provider struct { + Schemes []string + New Constructor +} + +// Provides returns true if the given scheme is supported by this Provider. +func (p Provider) Provides(scheme string) bool { + for _, i := range p.Schemes { + if i == scheme { + return true + } + } + return false +} + +// Providers is a collection of Provider objects. +type Providers []Provider + +// ByScheme returns a Provider that handles the given scheme. +// +// If no provider handles this scheme, this will return an error. +func (p Providers) ByScheme(scheme string) (Constructor, error) { + for _, pp := range p { + if pp.Provides(scheme) { + return pp.New, nil + } + } + return nil, fmt.Errorf("scheme %q not supported", scheme) +} + +// All finds all of the registered getters as a list of Provider instances. +// Currently the build-in http/https getter and the discovered +// plugins with downloader notations are collected. +func All(settings environment.EnvSettings) Providers { + result := Providers{ + { + Schemes: []string{"http", "https"}, + New: newHTTPGetter, + }, + } + pluginDownloaders, _ := collectPlugins(settings) + result = append(result, pluginDownloaders...) + return result } -//ConstructorByScheme returns a contstructor based on the required scheme -func ConstructorByScheme(props []Prop, requiredScheme string) (Constructor, error) { - for _, item := range props { - for _, itemScheme := range item.Schemes { - if itemScheme == requiredScheme { - return item.Constructor, nil - } +// ByScheme returns a getter for the given scheme. +// +// If the scheme is not supported, this will return an error. +func ByScheme(scheme string, settings environment.EnvSettings) (Provider, error) { + // Q: What do you call a scheme string who's the boss? + // A: Bruce Schemestring, of course. + a := All(settings) + for _, p := range a { + if p.Provides(scheme) { + return p, nil } } - return nil, fmt.Errorf("Getter not found") + return Provider{}, fmt.Errorf("scheme %q not supported", scheme) } diff --git a/pkg/getter/getter_test.go b/pkg/getter/getter_test.go new file mode 100644 index 000000000..6d38a0d28 --- /dev/null +++ b/pkg/getter/getter_test.go @@ -0,0 +1,81 @@ +/* +Copyright 2017 The Kubernetes Authors All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package getter + +import ( + "os" + "testing" +) + +func TestProvider(t *testing.T) { + p := Provider{ + []string{"one", "three"}, + func(h, e, l, m string) (Getter, error) { return nil, nil }, + } + + if !p.Provides("three") { + t.Error("Expected provider to provide three") + } +} + +func TestProviders(t *testing.T) { + ps := Providers{ + {[]string{"one", "three"}, func(h, e, l, m string) (Getter, error) { return nil, nil }}, + {[]string{"two", "four"}, func(h, e, l, m string) (Getter, error) { return nil, nil }}, + } + + if _, err := ps.ByScheme("one"); err != nil { + t.Error(err) + } + if _, err := ps.ByScheme("four"); err != nil { + t.Error(err) + } + + if _, err := ps.ByScheme("five"); err == nil { + t.Error("Did not expect handler for five") + } +} + +func TestAll(t *testing.T) { + oldhh := os.Getenv("HELM_HOME") + defer os.Setenv("HELM_HOME", oldhh) + os.Setenv("HELM_HOME", "") + + env := hh(false) + + all := All(env) + if len(all) != 3 { + t.Errorf("expected 3 providers (default plus two plugins), got %d", len(all)) + } + + if _, err := all.ByScheme("test2"); err != nil { + t.Error(err) + } +} + +func TestByScheme(t *testing.T) { + oldhh := os.Getenv("HELM_HOME") + defer os.Setenv("HELM_HOME", oldhh) + os.Setenv("HELM_HOME", "") + + env := hh(false) + if _, err := ByScheme("test", env); err != nil { + t.Error(err) + } + if _, err := ByScheme("https", env); err != nil { + t.Error(err) + } +} diff --git a/pkg/getter/http/http_getter.go b/pkg/getter/httpgetter.go similarity index 80% rename from pkg/getter/http/http_getter.go rename to pkg/getter/httpgetter.go index 57f6c742f..1dfffb6d4 100644 --- a/pkg/getter/http/http_getter.go +++ b/pkg/getter/httpgetter.go @@ -1,11 +1,10 @@ /* Copyright 2016 The Kubernetes Authors All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 +http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -14,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package httpgetter +package getter import ( "bytes" @@ -22,18 +21,17 @@ import ( "io" "net/http" - "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/tlsutil" "k8s.io/helm/pkg/urlutil" ) -//HTTPGetter is the efault HTTP(/S) backend handler -type HTTPGetter struct { +//httpGetter is the efault HTTP(/S) backend handler +type httpGetter struct { client *http.Client } //Get performs a Get from repo.Getter and returns the body. -func (g *HTTPGetter) Get(href string) (*bytes.Buffer, error) { +func (g *httpGetter) Get(href string) (*bytes.Buffer, error) { buf := bytes.NewBuffer(nil) resp, err := g.client.Get(href) @@ -49,9 +47,9 @@ func (g *HTTPGetter) Get(href string) (*bytes.Buffer, error) { return buf, err } -//New constructs a valid http/https client as Getter -func New(URL, CertFile, KeyFile, CAFile string) (getter.Getter, error) { - var client HTTPGetter +// newHTTPGetter constructs a valid http/https client as Getter +func newHTTPGetter(URL, CertFile, KeyFile, CAFile string) (Getter, error) { + var client httpGetter if CertFile != "" && KeyFile != "" && CAFile != "" { tlsConf, err := tlsutil.NewClientTLS(CertFile, KeyFile, CAFile) if err != nil { diff --git a/pkg/getter/httpgetter_test.go b/pkg/getter/httpgetter_test.go new file mode 100644 index 000000000..477e0bc4f --- /dev/null +++ b/pkg/getter/httpgetter_test.go @@ -0,0 +1,48 @@ +/* +Copyright 2017 The Kubernetes Authors All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package getter + +import ( + "net/http" + "path/filepath" + "testing" +) + +func TestHTTPGetter(t *testing.T) { + g, err := newHTTPGetter("http://example.com", "", "", "") + if err != nil { + t.Fatal(err) + } + + if hg, ok := g.(*httpGetter); !ok { + t.Fatal("Expected newHTTPGetter to produce an httpGetter") + } else if hg.client != http.DefaultClient { + t.Fatal("Expected newHTTPGetter to return a default HTTP client.") + } + + // Test with SSL: + cd := "../../testdata" + join := filepath.Join + ca, pub, priv := join(cd, "ca.pem"), join(cd, "crt.pem"), join(cd, "key.pem") + g, err = newHTTPGetter("http://example.com/", pub, priv, ca) + if err != nil { + t.Fatal(err) + } + + if _, ok := g.(*httpGetter); !ok { + t.Fatal("Expected newHTTPGetter to produce an httpGetter") + } +} diff --git a/pkg/getter/plugin/plugin_getter.go b/pkg/getter/plugingetter.go similarity index 61% rename from pkg/getter/plugin/plugin_getter.go rename to pkg/getter/plugingetter.go index 3ae600591..ff893421e 100644 --- a/pkg/getter/plugin/plugin_getter.go +++ b/pkg/getter/plugingetter.go @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package plugingetter +package getter import ( "bytes" @@ -22,14 +22,37 @@ import ( "os/exec" "path/filepath" - "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/helm/environment" "k8s.io/helm/pkg/plugin" ) -// PluginGetter is a generic type to invoke custom downloaders, +// collectPlugins scans for getter plugins. +// This will load plugins according to the environment. +func collectPlugins(settings environment.EnvSettings) (Providers, error) { + plugins, err := plugin.FindPlugins(settings.PlugDirs) + if err != nil { + return nil, err + } + var result Providers + for _, plugin := range plugins { + for _, downloader := range plugin.Metadata.Downloaders { + result = append(result, Provider{ + Schemes: downloader.Protocols, + New: newPluginGetter( + downloader.Command, + settings, + plugin.Metadata.Name, + plugin.Dir, + ), + }) + } + } + return result, nil +} + +// pluginGetter is a generic type to invoke custom downloaders, // implemented in plugins. -type PluginGetter struct { +type pluginGetter struct { command string certFile, keyFile, cAFile string settings environment.EnvSettings @@ -38,7 +61,7 @@ type PluginGetter struct { } // Get runs downloader plugin command -func (p *PluginGetter) Get(href string) (*bytes.Buffer, error) { +func (p *pluginGetter) Get(href string) (*bytes.Buffer, error) { argv := []string{p.certFile, p.keyFile, p.cAFile, href} prog := exec.Command(filepath.Join(p.base, p.command), argv...) plugin.SetupPluginEnv(p.settings, p.name, p.base) @@ -56,13 +79,10 @@ func (p *PluginGetter) Get(href string) (*bytes.Buffer, error) { return buf, nil } -// ConstructNew constructs a valid plugin getter -func ConstructNew(command string, - settings environment.EnvSettings, - name string, - base string) getter.Constructor { - return func(URL, CertFile, KeyFile, CAFile string) (getter.Getter, error) { - result := &PluginGetter{ +// newPluginGetter constructs a valid plugin getter +func newPluginGetter(command string, settings environment.EnvSettings, name, base string) Constructor { + return func(URL, CertFile, KeyFile, CAFile string) (Getter, error) { + result := &pluginGetter{ command: command, certFile: CertFile, keyFile: KeyFile, diff --git a/pkg/getter/plugingetter_test.go b/pkg/getter/plugingetter_test.go new file mode 100644 index 000000000..27079351a --- /dev/null +++ b/pkg/getter/plugingetter_test.go @@ -0,0 +1,92 @@ +/* +Copyright 2017 The Kubernetes Authors All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package getter + +import ( + "os" + "path/filepath" + "strings" + "testing" + + "k8s.io/helm/pkg/helm/environment" + "k8s.io/helm/pkg/helm/helmpath" +) + +func hh(debug bool) environment.EnvSettings { + apath, err := filepath.Abs("./testdata") + if err != nil { + panic(err) + } + hp := helmpath.Home(apath) + return environment.EnvSettings{ + Home: hp, + PlugDirs: hp.Plugins(), + Debug: debug, + } +} + +func TestCollectPlugins(t *testing.T) { + // Reset HELM HOME to testdata. + oldhh := os.Getenv("HELM_HOME") + defer os.Setenv("HELM_HOME", oldhh) + os.Setenv("HELM_HOME", "") + + env := hh(false) + p, err := collectPlugins(env) + if err != nil { + t.Fatal(err) + } + + if len(p) != 2 { + t.Errorf("Expected 2 plugins, got %d: %v", len(p), p) + } + + if _, err := p.ByScheme("test2"); err != nil { + t.Error(err) + } + + if _, err := p.ByScheme("test"); err != nil { + t.Error(err) + } + + if _, err := p.ByScheme("nosuchthing"); err == nil { + t.Fatal("did not expect protocol handler for nosuchthing") + } +} + +func TestPluginGetter(t *testing.T) { + oldhh := os.Getenv("HELM_HOME") + defer os.Setenv("HELM_HOME", oldhh) + os.Setenv("HELM_HOME", "") + + env := hh(false) + pg := newPluginGetter("echo", env, "test", ".") + g, err := pg("test://foo/bar", "", "", "") + if err != nil { + t.Fatal(err) + } + + data, err := g.Get("test://foo/bar") + if err != nil { + t.Fatal(err) + } + + expect := "test://foo/bar" + got := strings.TrimSpace(data.String()) + if got != expect { + t.Errorf("Expected %q, got %q", expect, got) + } +} diff --git a/pkg/getter/testdata/plugins/testgetter/get.sh b/pkg/getter/testdata/plugins/testgetter/get.sh new file mode 100755 index 000000000..cdd992369 --- /dev/null +++ b/pkg/getter/testdata/plugins/testgetter/get.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +echo ENVIRONMENT +env + +echo "" +echo ARGUMENTS +echo $@ diff --git a/pkg/getter/testdata/plugins/testgetter/plugin.yaml b/pkg/getter/testdata/plugins/testgetter/plugin.yaml new file mode 100644 index 000000000..d1b929e3f --- /dev/null +++ b/pkg/getter/testdata/plugins/testgetter/plugin.yaml @@ -0,0 +1,15 @@ +name: "testgetter" +version: "0.1.0" +usage: "Fetch a package from a test:// source" +description: |- + Print the environment that the plugin was given, then exit. + + This registers the test:// protocol. + +command: "$HELM_PLUGIN_DIR/get.sh" +ignoreFlags: true +downloaders: +#- command: "$HELM_PLUGIN_DIR/get.sh" +- command: "echo" + protocols: + - "test" diff --git a/pkg/getter/testdata/plugins/testgetter2/get.sh b/pkg/getter/testdata/plugins/testgetter2/get.sh new file mode 100755 index 000000000..cdd992369 --- /dev/null +++ b/pkg/getter/testdata/plugins/testgetter2/get.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +echo ENVIRONMENT +env + +echo "" +echo ARGUMENTS +echo $@ diff --git a/pkg/getter/testdata/plugins/testgetter2/plugin.yaml b/pkg/getter/testdata/plugins/testgetter2/plugin.yaml new file mode 100644 index 000000000..f1a527ef9 --- /dev/null +++ b/pkg/getter/testdata/plugins/testgetter2/plugin.yaml @@ -0,0 +1,10 @@ +name: "testgetter2" +version: "0.1.0" +usage: "Fetch a different package from a test2:// source" +description: "Handle test2 scheme" +command: "$HELM_PLUGIN_DIR/get.sh" +ignoreFlags: true +downloaders: +- command: "echo" + protocols: + - "test2" diff --git a/pkg/getter/testdata/repository/cache/local-index.yaml b/pkg/getter/testdata/repository/cache/local-index.yaml new file mode 120000 index 000000000..ed068e99e --- /dev/null +++ b/pkg/getter/testdata/repository/cache/local-index.yaml @@ -0,0 +1 @@ +repository/local/index.yaml \ No newline at end of file diff --git a/pkg/getter/testdata/repository/cache/stable-index.yaml b/pkg/getter/testdata/repository/cache/stable-index.yaml new file mode 100644 index 000000000..bf187e3df --- /dev/null +++ b/pkg/getter/testdata/repository/cache/stable-index.yaml @@ -0,0 +1,7852 @@ +apiVersion: v1 +entries: + aws-cluster-autoscaler: + - apiVersion: v1 + created: 2017-04-28T00:18:30.071110236Z + description: Scales worker nodes within autoscaling groups. + digest: 291eaabbf54913e71cda39d42a6e9c4c493a3672a5b0b5183ea1991a76d6c317 + engine: gotpl + icon: https://github.com/kubernetes/kubernetes/blob/master/logo/logo.png + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: aws-cluster-autoscaler + sources: + - https://github.com/kubernetes/contrib/tree/master/cluster-autoscaler/cloudprovider/aws + urls: + - https://kubernetes-charts.storage.googleapis.com/aws-cluster-autoscaler-0.2.1.tgz + version: 0.2.1 + - apiVersion: v1 + created: 2017-03-02T18:48:30.418071154Z + description: Scales worker nodes within autoscaling groups. + digest: 52ee58b51619f641d0f6df4c778bcd068242379a1a040a269f0fc93867b79b13 + engine: gotpl + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: aws-cluster-autoscaler + sources: + - https://github.com/kubernetes/contrib/tree/master/cluster-autoscaler/cloudprovider/aws + urls: + - https://kubernetes-charts.storage.googleapis.com/aws-cluster-autoscaler-0.2.0.tgz + version: 0.2.0 + chaoskube: + - created: 2017-04-28T00:18:30.071358212Z + description: Chaoskube periodically kills random pods in your Kubernetes cluster. + digest: c90ff57a6205c725520dc600b439fc8eda120c3d8d4d4b7c9feee60bf62629cb + engine: gotpl + home: https://github.com/linki/chaoskube + maintainers: + - email: linki+kubernetes.io@posteo.de + name: Martin Linkhorst + name: chaoskube + sources: + - https://github.com/linki/chaoskube + urls: + - https://kubernetes-charts.storage.googleapis.com/chaoskube-0.5.0.tgz + version: 0.5.0 + - created: 2017-03-14T23:48:31.878196764Z + description: Chaoskube periodically kills random pods in your Kubernetes cluster. + digest: cc211be37255f2fdf7cc74022f51473c2c4af98c06b0871ab8c9b8341ee9d349 + engine: gotpl + home: https://github.com/linki/chaoskube + maintainers: + - email: linki+kubernetes.io@posteo.de + name: Martin Linkhorst + name: chaoskube + sources: + - https://github.com/linki/chaoskube + urls: + - https://kubernetes-charts.storage.googleapis.com/chaoskube-0.4.0.tgz + version: 0.4.0 + - created: 2017-02-13T04:18:31.525717582Z + description: A Helm chart for chaoskube + digest: 6e6466b2a7294853fbad6a1dc5526e7fd6eb75bafd035748259511ccf49f9c47 + engine: gotpl + home: https://github.com/linki/chaoskube + maintainers: + - email: linki+helm.sh@posteo.de + name: Martin Linkhorst + name: chaoskube + sources: + - https://github.com/linki/chaoskube + urls: + - https://kubernetes-charts.storage.googleapis.com/chaoskube-0.3.1.tgz + version: 0.3.1 + - created: 2017-02-13T21:18:28.251529085Z + description: Chaoskube periodically kills random pods in your Kubernetes cluster. + digest: 6439a906666fc62e7aeb28186ce2f4a730216941163edd799176cc30616e713a + engine: gotpl + home: https://github.com/linki/chaoskube + maintainers: + - email: linki+kubernetes.io@posteo.de + name: Martin Linkhorst + name: chaoskube + sources: + - https://github.com/linki/chaoskube + urls: + - https://kubernetes-charts.storage.googleapis.com/chaoskube-0.3.1-1.tgz + version: 0.3.1-1 + chronograf: + - created: 2017-04-28T00:18:30.071786276Z + description: Open-source web application written in Go and React.js that provides + the tools to visualize your monitoring data and easily create alerting and automation + rules. + digest: 5f6c0ada37696c624ebdfad1703666b91a84dedea81cbae4335109e7046c9f86 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/chronograf/ + keywords: + - chronograf + - visualizaion + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: chronograf + urls: + - https://kubernetes-charts.storage.googleapis.com/chronograf-0.2.0.tgz + version: 0.2.0 + - created: 2017-03-22T23:03:29.448801697Z + description: Open-source web application written in Go and React.js that provides + the tools to visualize your monitoring data and easily create alerting and automation + rules. + digest: 6bc90a815f7fc513bfa2b4d1a56a03e53444bfd08b742e0d0f1ff9f3b5db52f7 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/chronograf/ + keywords: + - chronograf + - visualizaion + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: chronograf + urls: + - https://kubernetes-charts.storage.googleapis.com/chronograf-0.1.2.tgz + version: 0.1.2 + - created: 2017-02-13T04:18:31.52604543Z + description: Chart for Chronograf + digest: 985fa74feb6ed111220ca7a8c5da529accd42def9d75f56c0c82902631bcf15f + engine: gotpl + home: https://www.influxdata.com/time-series-platform/chronograf/ + keywords: + - chronograf + - visualizaion + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: chronograf + urls: + - https://kubernetes-charts.storage.googleapis.com/chronograf-0.1.1.tgz + version: 0.1.1 + - created: 2017-01-28T00:33:31.060189495Z + description: Chart for Chronograf + digest: ea03695da15a018e84d05e0fd97d581f3fd348d8461aa098cd221b5010176a35 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/chronograf/ + keywords: + - chronograf + - visualizaion + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: chronograf + urls: + - https://kubernetes-charts.storage.googleapis.com/chronograf-0.1.0.tgz + version: 0.1.0 + cockroachdb: + - created: 2017-04-28T00:18:30.07217685Z + description: CockroachDB is a scalable, survivable, strongly-consistent SQL database. + digest: c51bf6c3d07067b80ca8661ff8460b2bb7d25d242f153045668ba95566fc8069 + home: https://www.cockroachlabs.com + icon: https://raw.githubusercontent.com/cockroachdb/cockroach/master/docs/media/cockroach_db.png + maintainers: + - email: alex@cockroachlabs.com + name: Alex Robinson + name: cockroachdb + sources: + - https://github.com/cockroachdb/cockroach + urls: + - https://kubernetes-charts.storage.googleapis.com/cockroachdb-0.2.2.tgz + version: 0.2.2 + - created: 2017-02-13T04:18:31.526409785Z + description: CockroachDB Helm chart for Kubernetes. + digest: 0eec741613e00f7092ec81469f919cd79fec52a22e8685063c0b0d8fd6570c37 + home: https://www.cockroachlabs.com + maintainers: + - email: alex@cockroachlabs.com + name: Alex Robinson + name: cockroachdb + sources: + - https://github.com/cockroachdb/cockroach + urls: + - https://kubernetes-charts.storage.googleapis.com/cockroachdb-0.2.1.tgz + version: 0.2.1 + - created: 2017-01-27T21:48:32.059935168Z + description: CockroachDB Helm chart for Kubernetes. + digest: 7b41add319a997fd3d862d6649b707313f59ac6fa137842db65230342baff619 + home: https://www.cockroachlabs.com + maintainers: + - email: alex@cockroachlabs.com + name: Alex Robinson + name: cockroachdb + sources: + - https://github.com/cockroachdb/cockroach + urls: + - https://kubernetes-charts.storage.googleapis.com/cockroachdb-0.2.0.tgz + version: 0.2.0 + concourse: + - created: 2017-04-28T00:18:30.074578589Z + description: Concourse is a simple and scalable CI system. + digest: b7ea57e289002deba839f52acf6a5919870ab99910f12bcc6edadd4ae5651826 + engine: gotpl + home: https://concourse.ci/ + icon: https://avatars1.githubusercontent.com/u/7809479 + keywords: + - ci + - concourse + - concourse.ci + maintainers: + - email: frodenas@gmail.com + name: Ferran Rodenas + name: concourse + sources: + - https://github.com/concourse/bin + - https://github.com/kubernetes/charts + urls: + - https://kubernetes-charts.storage.googleapis.com/concourse-0.1.3.tgz + version: 0.1.3 + - created: 2017-02-14T19:03:29.77100439Z + description: Concourse is a simple and scalable CI system. + digest: 5f8ed4eb5b0acf8da7b34772714154322405b796553a33fc6ffd779e0a556003 + engine: gotpl + home: https://concourse.ci/ + icon: https://avatars1.githubusercontent.com/u/7809479 + keywords: + - ci + - concourse + - concourse.ci + maintainers: + - email: frodenas@gmail.com + name: Ferran Rodenas + name: concourse + sources: + - https://github.com/concourse/bin + - https://github.com/kubernetes/charts + urls: + - https://kubernetes-charts.storage.googleapis.com/concourse-0.1.2.tgz + version: 0.1.2 + - created: 2017-02-13T21:18:28.254273427Z + description: Concourse is a simple and scalable CI system. + digest: cba53dadd21dbd85b31a1a522a5eaeb49cadfa595ba0762c02dca04905d35f20 + engine: gotpl + home: https://concourse.ci/ + icon: https://avatars1.githubusercontent.com/u/7809479 + keywords: + - ci + - concourse + - concourse.ci + maintainers: + - email: frodenas@gmail.com + name: Ferran Rodenas + name: concourse + sources: + - https://github.com/concourse/bin + - https://github.com/kubernetes/charts + urls: + - https://kubernetes-charts.storage.googleapis.com/concourse-0.1.1.tgz + version: 0.1.1 + - created: 2017-02-10T23:18:26.003782261Z + description: Concourse Helm chart for Kubernetes. + digest: 08e6b4c56357ce15dfd66b0fad8c2df37664877b16b4a0afcbaeb301ddcc7432 + engine: gotpl + home: https://concourse.ci/ + keywords: + - ci + - concourse + - concourse.ci + maintainers: + - email: frodenas@gmail.com + name: Ferran Rodenas + name: concourse + sources: + - https://github.com/concourse/bin + - https://github.com/kubernetes/charts + urls: + - https://kubernetes-charts.storage.googleapis.com/concourse-0.1.0.tgz + version: 0.1.0 + consul: + - created: 2017-04-28T00:18:30.075038045Z + description: Highly available and distributed service discovery and key-value + store designed with support for the modern data center to make distributed systems + and configuration easy. + digest: 7e0093709abc7a2c475e4e8c14e856d9834f88683b4a9e8c6099f4e0ad7e434e + home: https://github.com/hashicorp/consul + icon: https://www.consul.io/assets/images/logo_large-475cebb0.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + name: consul + sources: + - https://github.com/kelseyhightower/consul-on-kubernetes + urls: + - https://kubernetes-charts.storage.googleapis.com/consul-0.2.2.tgz + version: 0.2.2 + - created: 2017-04-26T14:48:28.225526691Z + description: Highly available and distributed service discovery and key-value + store designed with support for the modern data center to make distributed systems + and configuration easy. + digest: 03daa04827bf93627b7087001c1d2424337d268a5875a51d8db4bb4e53bbc7db + home: https://github.com/hashicorp/consul + icon: https://www.consul.io/assets/images/logo_large-475cebb0.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + name: consul + sources: + - https://github.com/kelseyhightower/consul-on-kubernetes + urls: + - https://kubernetes-charts.storage.googleapis.com/consul-0.2.0.tgz + version: 0.2.0 + coredns: + - created: 2017-04-28T00:18:30.075393511Z + description: CoreDNS is a DNS server that chains middleware and provides Kubernetes + DNS Services + digest: adbdc4a8895f7c2e7cca64c2dcf36ddfffeff1115a3ade32011ec82b60be119b + home: https://coredns.io + icon: https://raw.githubusercontent.com/coredns/logo/master/Icon/CoreDNS_Colour_Icon.svg + keywords: + - coredns + - dns + - kubedns + maintainers: + - email: hello@acale.ph + name: Acaleph + - email: shashidhara.huawei@gmail.com + name: Shashidhara TD + name: coredns + sources: + - https://github.com/coredns/coredns + urls: + - https://kubernetes-charts.storage.googleapis.com/coredns-0.1.0.tgz + version: 0.1.0 + datadog: + - created: 2017-04-28T00:18:30.075800677Z + description: DataDog Agent + digest: bc559f013b738704089c4964a268c447b22e82181e9fa9e8219d46d40b388709 + home: https://www.datadoghq.com + icon: https://datadog-live.imgix.net/img/dd_logo_70x75.png + keywords: + - monitoring + - alerting + - metric + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: datadog + sources: + - https://app.datadoghq.com/account/settings#agent/kubernetes + - https://github.com/DataDog/docker-dd-agent + urls: + - https://kubernetes-charts.storage.googleapis.com/datadog-0.3.0.tgz + version: 0.3.0 + - created: 2017-04-06T11:33:26.056402381Z + description: DataDog Agent + digest: b32c28e76004eedf5c160936ccf35adca3a150ae1d0b491df52d017725b5ee90 + home: https://www.datadoghq.com + icon: https://datadog-live.imgix.net/img/dd_logo_70x75.png + keywords: + - monitoring + - alerting + - metric + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: datadog + sources: + - https://app.datadoghq.com/account/settings#agent/kubernetes + - https://github.com/DataDog/docker-dd-agent + urls: + - https://kubernetes-charts.storage.googleapis.com/datadog-0.2.1.tgz + version: 0.2.1 + - created: 2017-02-11T03:18:26.518137684Z + description: DataDog Agent + digest: d534bdcf4644d88ebfa70c58e57aafed41b75da4264042d4975f70d091e2b493 + keywords: + - monitoring + - alerting + - metric + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: datadog + sources: + - https://app.datadoghq.com/account/settings#agent/kubernetes + - https://github.com/DataDog/docker-dd-agent + urls: + - https://kubernetes-charts.storage.googleapis.com/datadog-0.2.0.tgz + version: 0.2.0 + - created: 2017-01-04T00:48:19.731877862Z + description: DataDog Agent + digest: 694c1d036d92c8bb60638f7bd66144a991a807dc879bedacf8a5d32e9d72081a + keywords: + - monitoring + - alerting + - metric + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: datadog + sources: + - https://app.datadoghq.com/account/settings#agent/kubernetes + - https://github.com/DataDog/docker-dd-agent + urls: + - https://kubernetes-charts.storage.googleapis.com/datadog-0.1.0.tgz + version: 0.1.0 + dokuwiki: + - created: 2017-04-28T00:18:30.076184541Z + description: DokuWiki is a standards-compliant, simple to use wiki optimized for + creating documentation. It is targeted at developer teams, workgroups, and small + companies. All data is stored in plain text files, so no database is required. + digest: 5cfff9542341a391abf9029dd9b42e7c44813c520ef0301ce62e9c08586ceca2 + engine: gotpl + home: http://www.dokuwiki.org/ + icon: https://bitnami.com/assets/stacks/dokuwiki/img/dokuwiki-stack-110x117.png + keywords: + - dokuwiki + - wiki + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: dokuwiki + sources: + - https://github.com/bitnami/bitnami-docker-dokuwiki + urls: + - https://kubernetes-charts.storage.googleapis.com/dokuwiki-0.1.4.tgz + version: 0.1.4 + - created: 2017-04-13T05:18:28.897680481Z + description: DokuWiki is a standards-compliant, simple to use wiki optimized for + creating documentation. It is targeted at developer teams, workgroups, and small + companies. All data is stored in plain text files, so no database is required. + digest: 3c46f9d9196bbf975711b2bb7c889fd3df1976cc57c3c120c7374d721da0e240 + engine: gotpl + home: http://www.dokuwiki.org/ + icon: https://bitnami.com/assets/stacks/dokuwiki/img/dokuwiki-stack-110x117.png + keywords: + - dokuwiki + - wiki + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: dokuwiki + sources: + - https://github.com/bitnami/bitnami-docker-dokuwiki + urls: + - https://kubernetes-charts.storage.googleapis.com/dokuwiki-0.1.3.tgz + version: 0.1.3 + - created: 2017-03-02T19:33:28.170205427Z + description: DokuWiki is a standards-compliant, simple to use wiki optimized for + creating documentation. It is targeted at developer teams, workgroups, and small + companies. All data is stored in plain text files, so no database is required. + digest: f533bc20e08179a49cca77b175f897087dc3f2c57e6c89ecbd7264ab5975d66a + engine: gotpl + home: http://www.dokuwiki.org/ + icon: https://bitnami.com/assets/stacks/dokuwiki/img/dokuwiki-stack-110x117.png + keywords: + - dokuwiki + - wiki + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: dokuwiki + sources: + - https://github.com/bitnami/bitnami-docker-dokuwiki + urls: + - https://kubernetes-charts.storage.googleapis.com/dokuwiki-0.1.2.tgz + version: 0.1.2 + - created: 2017-02-01T02:18:29.116555882Z + description: DokuWiki is a standards-compliant, simple to use wiki optimized for + creating documentation. It is targeted at developer teams, workgroups, and small + companies. All data is stored in plain text files, so no database is required. + digest: 34a926398cfafbf426ff468167ef49577252e260ebce5df33380e6e67b79fe59 + engine: gotpl + home: http://www.dokuwiki.org/ + icon: https://bitnami.com/assets/stacks/dokuwiki/img/dokuwiki-stack-110x117.png + keywords: + - dokuwiki + - wiki + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: dokuwiki + sources: + - https://github.com/bitnami/bitnami-docker-dokuwiki + urls: + - https://kubernetes-charts.storage.googleapis.com/dokuwiki-0.1.1.tgz + version: 0.1.1 + - created: 2017-01-28T00:33:31.06436596Z + description: DokuWiki is a standards-compliant, simple to use wiki optimized for + creating documentation. It is targeted at developer teams, workgroups, and small + companies. All data is stored in plain text files, so no database is required. + digest: 6825fbacb709cf05901985561be10ba9473a379488d99b71d1590d33f5a81374 + engine: gotpl + home: http://www.dokuwiki.org/ + icon: https://bitnami.com/assets/stacks/dokuwiki/img/dokuwiki-stack-110x117.png + keywords: + - dokuwiki + - wiki + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: dokuwiki + sources: + - https://github.com/bitnami/bitnami-docker-dokuwiki + urls: + - https://kubernetes-charts.storage.googleapis.com/dokuwiki-0.1.0.tgz + version: 0.1.0 + drupal: + - created: 2017-04-28T00:18:30.076853626Z + description: One of the most versatile open source content management systems. + digest: db95c255b19164c5051eb75a6860f3775a1011399a62b27e474cd9ebee0cb578 + engine: gotpl + home: http://www.drupal.org/ + icon: https://bitnami.com/assets/stacks/drupal/img/drupal-stack-220x234.png + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.5.1.tgz + version: 0.5.1 + - created: 2017-04-24T19:18:29.642780033Z + description: One of the most versatile open source content management systems. + digest: 84c13154a9aeb7215dc0d98e9825207207e69ca870f3d54b273bfc2d34699f61 + engine: gotpl + home: http://www.drupal.org/ + icon: https://bitnami.com/assets/stacks/drupal/img/drupal-stack-220x234.png + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.5.0.tgz + version: 0.5.0 + - created: 2017-04-11T17:18:28.883487907Z + description: One of the most versatile open source content management systems. + digest: 17d0bfdcdf5a1a650941343c76b6b928d76d3332fece127c502e91f9597f419e + engine: gotpl + home: http://www.drupal.org/ + icon: https://bitnami.com/assets/stacks/drupal/img/drupal-stack-220x234.png + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.4.6.tgz + version: 0.4.6 + - created: 2017-03-23T01:48:29.309045867Z + description: One of the most versatile open source content management systems. + digest: 317674c89762e0b54156b734203ee93638dd7a25df35120c5cab45546814d89b + engine: gotpl + home: http://www.drupal.org/ + icon: https://bitnami.com/assets/stacks/drupal/img/drupal-stack-220x234.png + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.4.5.tgz + version: 0.4.5 + - created: 2017-03-16T13:33:30.828606332Z + description: One of the most versatile open source content management systems. + digest: 24c4f187b50c0e961cc2cacf6e6b2ce6d6b225c73637c578e001bebd9b3f5d48 + engine: gotpl + home: http://www.drupal.org/ + icon: https://bitnami.com/assets/stacks/drupal/img/drupal-stack-220x234.png + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.4.4.tgz + version: 0.4.4 + - created: 2017-03-02T19:33:28.170963773Z + description: One of the most versatile open source content management systems. + digest: 7fcea4684a3d520454aeaa10beb9f9b1789c09c097680fc484954084f283feb3 + engine: gotpl + home: http://www.drupal.org/ + icon: https://bitnami.com/assets/stacks/drupal/img/drupal-stack-220x234.png + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.4.3.tgz + version: 0.4.3 + - created: 2017-02-27T17:03:27.765392204Z + description: One of the most versatile open source content management systems. + digest: adb23bc71125b9691b407a47dadf4298de3516805218813b56067967e39db7d8 + engine: gotpl + home: http://www.drupal.org/ + icon: https://bitnami.com/assets/stacks/drupal/img/drupal-stack-220x234.png + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.4.2.tgz + version: 0.4.2 + - created: 2017-02-11T00:18:52.26723498Z + description: One of the most versatile open source content management systems. + digest: 5de529e25767e8a37b8d6f413daa0fe99f5c304e48ddcfa8adb4d8c7a0496aa7 + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.4.1.tgz + version: 0.4.1 + - created: 2017-01-28T00:33:31.065139372Z + description: One of the most versatile open source content management systems. + digest: a35dbf9d470972cc2461de3e0a8fcf2fec8d0adc04f5a0f1e924505f22c714d7 + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.4.0.tgz + version: 0.4.0 + - created: 2017-01-04T00:48:19.73297256Z + description: One of the most versatile open source content management systems. + digest: a62d686d6bd47643dfa489e395dda89286954f785123a43a88db7ef34f3ea48d + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.3.10.tgz + version: 0.3.10 + - created: 2016-12-15T00:48:24.005322531Z + description: One of the most versatile open source content management systems. + digest: 2c189424bda94eeebb7e6370e96884f09bdfa81498cb93ac4723d24c92a3938e + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.3.9.tgz + version: 0.3.9 + - created: 2016-12-09T18:48:20.182097412Z + description: One of the most versatile open source content management systems. + digest: 3596f47c5dcaa7a975d1c4cb7bf7ef6790c9ad8dda41a5a329e30c1ea8a40d11 + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.3.8.tgz + version: 0.3.8 + - created: 2016-11-21T19:48:21.904806991Z + description: One of the most versatile open source content management systems. + digest: 78b2bb3717be63dccb02ea06b711ca7cf7869848b296b880099c6264e86d86d3 + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.3.7.tgz + version: 0.3.7 + - created: 2016-11-08T15:03:20.739400722Z + description: One of the most versatile open source content management systems. + digest: 5508b29e20a5d609f76319869774f008dcc4bed13bbbc7ed40546bc9af8c7cd7 + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.3.6.tgz + version: 0.3.6 + - created: 2016-11-03T19:33:29.11780736Z + description: One of the most versatile open source content management systems. + digest: 023a282c93f8411fb81bb4fff7820c1337aad0586ccf7dae55bdbed515ad8b05 + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.3.5.tgz + version: 0.3.5 + - created: 2016-10-21T19:18:18.619010562Z + description: One of the most versatile open source content management systems. + digest: 9bdaa53f7a9e82c9b32c7ac9b34b84fd142671732a54423a2dcdc893c4162801 + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.3.4.tgz + version: 0.3.4 + - created: 2016-10-19T00:03:14.027652488Z + description: One of the most versatile open source content management systems. + digest: 25650526abc1036398dbb314d77a0062cbb644b2c5791a258fb863fdaad5093d + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.3.3.tgz + version: 0.3.3 + - created: 2016-10-19T00:03:14.027073479Z + description: One of the most versatile open source content management systems. + digest: 13d5d32d316c08359221d230004dd2adc0152362e87abcc0d61ea191241fa69f + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.3.2.tgz + version: 0.3.2 + - created: 2016-10-19T00:03:14.025451665Z + description: One of the most versatile open source content management systems. + digest: b3f09ecd191f8c06275c96d9af4d77a97c94355525864201e9baf151b17bd5a7 + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.3.1.tgz + version: 0.3.1 + - created: 2016-10-19T00:03:14.024557743Z + description: One of the most versatile open source content management systems. + digest: c56fc55b93b0dead65af7b81bbd54befd5115860698ca475baa5acb178a12e5a + engine: gotpl + home: http://www.drupal.org/ + keywords: + - drupal + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: drupal + sources: + - https://github.com/bitnami/bitnami-docker-drupal + urls: + - https://kubernetes-charts.storage.googleapis.com/drupal-0.3.0.tgz + version: 0.3.0 + etcd-operator: + - apiVersion: v1 + created: 2017-04-28T00:18:30.077181321Z + description: CoreOS etcd-operator Helm chart for Kubernetes + digest: 1eb39b2f0ca26762eb13fc8cb577be741f7bb9d3162ab9c4547bb5176383bc2b + home: https://github.com/coreos/etcd-operator + icon: https://raw.githubusercontent.com/coreos/etcd/master/logos/etcd-horizontal-color.png + maintainers: + - email: chance.zibolski@coreos.com + name: Chance Zibolski + - email: lachlan@deis.com + name: Lachlan Evenson + name: etcd-operator + sources: + - https://github.com/coreos/etcd-operator + urls: + - https://kubernetes-charts.storage.googleapis.com/etcd-operator-0.2.0.tgz + version: 0.2.0 + - apiVersion: v1 + created: 2017-03-08T19:18:29.84391993Z + description: CoreOS etcd-operator Helm chart for Kubernetes + digest: 4a65fe6c61e731b373395e524f160eb4ced32a22cbfb3ff5d406b1c8bc3ae3c7 + home: https://github.com/coreos/etcd-operator + icon: https://raw.githubusercontent.com/coreos/etcd/master/logos/etcd-horizontal-color.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + name: etcd-operator + sources: + - https://github.com/coreos/etcd-operator + urls: + - https://kubernetes-charts.storage.googleapis.com/etcd-operator-0.1.1.tgz + version: 0.1.1 + - apiVersion: v1 + created: 2017-02-11T03:18:26.519796919Z + description: CoreOS etcd-operator Helm chart for Kubernetes + digest: 9bf72369082c4bad154171b3b68ad435331d6d07ae6d00e79e859f2a1599017b + icon: https://github.com/coreos/etcd/blob/master/logos/etcd-horizontal-color.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + name: etcd-operator + sources: + - https://github.com/coreos/etcd-operator + urls: + - https://kubernetes-charts.storage.googleapis.com/etcd-operator-0.1.0.tgz + version: 0.1.0 + factorio: + - created: 2017-04-28T00:18:30.077542134Z + description: Factorio dedicated server. + digest: cdc44bc00d42020a7a4df154cdc5cc7ae148aa8d2a3f97b1e18ac1fc42853dc1 + home: https://www.factorio.com/ + icon: https://us1.factorio.com/assets/img/factorio-logo.png + keywords: + - game + - server + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: factorio + sources: + - https://github.com/games-on-k8s/docker-factorio + urls: + - https://kubernetes-charts.storage.googleapis.com/factorio-0.2.0.tgz + version: 0.2.0 + - created: 2017-03-15T11:48:36.74226142Z + description: Factorio dedicated server. + digest: 5a60defdd8ac6f2276950662ba75f65d20c9e37edc85149012a2c84146eb6cff + home: https://www.factorio.com/ + icon: https://us1.factorio.com/assets/img/factorio-logo.png + keywords: + - game + - server + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: factorio + sources: + - https://github.com/games-on-k8s/docker-factorio + urls: + - https://kubernetes-charts.storage.googleapis.com/factorio-0.1.4.tgz + version: 0.1.4 + - created: 2017-02-13T04:18:31.530714209Z + description: Factorio dedicated server. + digest: 26244a5e1b5f992cdbef73ef9c7ffcaa52af538912fa299210f72275f2c756c9 + keywords: + - game + - server + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: factorio + sources: + - https://github.com/games-on-k8s/docker-factorio + urls: + - https://kubernetes-charts.storage.googleapis.com/factorio-0.1.3.tgz + version: 0.1.3 + - created: 2017-01-28T00:33:31.066072163Z + description: Factorio dedicated server. + digest: d6f4e42b82713c2da69e1ddcfce4a04fad31d4af915629d8e83e54b90a822f9a + keywords: + - game + - server + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: factorio + sources: + - https://github.com/games-on-k8s/docker-factorio + urls: + - https://kubernetes-charts.storage.googleapis.com/factorio-0.1.2.tgz + version: 0.1.2 + - created: 2016-12-02T09:03:20.175832035Z + description: Factorio dedicated server. + digest: 3cc1f83669fd1d97eb96e76ba4821e8664350a4c310d3a14e62be18cc09e59b7 + keywords: + - game + - server + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: factorio + sources: + - https://github.com/games-on-k8s/docker-factorio + urls: + - https://kubernetes-charts.storage.googleapis.com/factorio-0.1.1.tgz + version: 0.1.1 + - created: 2016-11-07T18:33:21.243890443Z + description: Factorio dedicated server. + digest: 8edc1340cd99225a769b5843a677896c0d54a079133f9759211a1839bc7bb3eb + keywords: + - game + - server + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: factorio + sources: + - https://github.com/games-on-k8s/docker-factorio + urls: + - https://kubernetes-charts.storage.googleapis.com/factorio-0.1.0.tgz + version: 0.1.0 + gcloud-endpoints: + - created: 2017-04-28T00:18:30.077956448Z + description: Develop, deploy, protect and monitor your APIs with Google Cloud + Endpoints. + digest: 172b56d0343c560f06e18858038e2096c910b37075a90f4303f77a79342b56fd + engine: gotpl + home: https://cloud.google.com/endpoints/ + keywords: + - google + - endpoints + - nginx + - gcloud + - proxy + - authentication + - monitoring + - api + - swagger + - open api + maintainers: + - email: mtucker@deis.com + name: Matt Tucker + name: gcloud-endpoints + urls: + - https://kubernetes-charts.storage.googleapis.com/gcloud-endpoints-0.1.0.tgz + version: 0.1.0 + gcloud-sqlproxy: + - created: 2017-04-28T00:18:30.078355277Z + description: Google Cloud SQL Proxy + digest: 1115afe0958f1ed01e568ec4c35b48ac0094704165b8808634ea5331c0d6da7d + engine: gotpl + home: https://cloud.google.com/sql/docs/postgres/sql-proxy + keywords: + - google + - cloud + - postgresql + - mysql + - sql + - sqlproxy + maintainers: + - email: rmocius@gmail.com + name: Rimas Mocevicius + name: gcloud-sqlproxy + sources: + - https://github.com/rimusz/charts + urls: + - https://kubernetes-charts.storage.googleapis.com/gcloud-sqlproxy-0.1.0.tgz + version: 0.1.0 + ghost: + - created: 2017-04-28T00:18:30.079159648Z + description: A simple, powerful publishing platform that allows you to share your + stories with the world + digest: 91d195c99e00b2801eafef5c23fcf9ced218bb29c7097f08139e2bdc80e38a0f + engine: gotpl + home: http://www.ghost.org/ + icon: https://bitnami.com/assets/stacks/ghost/img/ghost-stack-220x234.png + keywords: + - ghost + - blog + - http + - web + - application + - nodejs + - javascript + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: ghost + sources: + - https://github.com/bitnami/bitnami-docker-ghost + urls: + - https://kubernetes-charts.storage.googleapis.com/ghost-0.4.7.tgz + version: 0.4.7 + - created: 2017-04-06T10:48:26.261677382Z + description: A simple, powerful publishing platform that allows you to share your + stories with the world + digest: 6342a95aeef40690430c2e80b167fbb116a632746cdca49cfac4cbd535eadb22 + engine: gotpl + home: http://www.ghost.org/ + icon: https://bitnami.com/assets/stacks/ghost/img/ghost-stack-220x234.png + keywords: + - ghost + - blog + - http + - web + - application + - nodejs + - javascript + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: ghost + sources: + - https://github.com/bitnami/bitnami-docker-ghost + urls: + - https://kubernetes-charts.storage.googleapis.com/ghost-0.4.6.tgz + version: 0.4.6 + - created: 2017-03-08T19:03:31.719494672Z + description: A simple, powerful publishing platform that allows you to share your + stories with the world + digest: 8998a9a4e75e777edb6f06c05b45d461daebba09021161af3bef523efd193b15 + engine: gotpl + home: http://www.ghost.org/ + icon: https://bitnami.com/assets/stacks/ghost/img/ghost-stack-220x234.png + keywords: + - ghost + - blog + - http + - web + - application + - nodejs + - javascript + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: ghost + sources: + - https://github.com/bitnami/bitnami-docker-ghost + urls: + - https://kubernetes-charts.storage.googleapis.com/ghost-0.4.5.tgz + version: 0.4.5 + - created: 2017-02-27T17:03:27.767416735Z + description: A simple, powerful publishing platform that allows you to share your + stories with the world + digest: e44c9a53355086ded1832f769dca515b863337ad118ba618ef97f37b3ef84030 + engine: gotpl + home: http://www.ghost.org/ + icon: https://bitnami.com/assets/stacks/ghost/img/ghost-stack-220x234.png + keywords: + - ghost + - blog + - http + - web + - application + - nodejs + - javascript + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: ghost + sources: + - https://github.com/bitnami/bitnami-docker-ghost + urls: + - https://kubernetes-charts.storage.googleapis.com/ghost-0.4.4.tgz + version: 0.4.4 + - created: 2017-02-11T00:18:52.2688126Z + description: A simple, powerful publishing platform that allows you to share your + stories with the world + digest: b0c94a93c88fde68bb4fc78e92691d46cd2eb4d32cbac011e034565fbd35d46b + engine: gotpl + home: http://www.ghost.org/ + keywords: + - ghost + - blog + - http + - web + - application + - nodejs + - javascript + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: ghost + sources: + - https://github.com/bitnami/bitnami-docker-ghost + urls: + - https://kubernetes-charts.storage.googleapis.com/ghost-0.4.3.tgz + version: 0.4.3 + - created: 2017-01-29T22:48:35.944809746Z + description: A simple, powerful publishing platform that allows you to share your + stories with the world + digest: 791ccb42b62d56d50c72b37db3282eb3f2af75d667a25542d76c7991004eb822 + engine: gotpl + home: http://www.ghost.org/ + keywords: + - ghost + - blog + - http + - web + - application + - nodejs + - javascript + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: ghost + sources: + - https://github.com/bitnami/bitnami-docker-ghost + urls: + - https://kubernetes-charts.storage.googleapis.com/ghost-0.4.2.tgz + version: 0.4.2 + - created: 2017-01-21T00:18:31.342008382Z + description: A simple, powerful publishing platform that allows you to share your + stories with the world + digest: 331a2b145bfdb39b626313cda7dc539f32dbda5149893957589c5406317fca53 + engine: gotpl + home: http://www.ghost.org/ + keywords: + - ghost + - blog + - http + - web + - application + - nodejs + - javascript + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: ghost + sources: + - https://github.com/bitnami/bitnami-docker-ghost + urls: + - https://kubernetes-charts.storage.googleapis.com/ghost-0.4.1.tgz + version: 0.4.1 + - created: 2016-12-09T18:48:20.183434341Z + description: A simple, powerful publishing platform that allows you to share your + stories with the world + digest: 804227af037082a0f5c3c579feb9e24eb3682449e78876971c93a109bc716f40 + engine: gotpl + home: http://www.ghost.org/ + keywords: + - ghost + - blog + - http + - web + - application + - nodejs + - javascript + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: ghost + sources: + - https://github.com/bitnami/bitnami-docker-ghost + urls: + - https://kubernetes-charts.storage.googleapis.com/ghost-0.4.0.tgz + version: 0.4.0 + gitlab-ce: + - created: 2017-04-28T00:18:30.080184798Z + description: GitLab Community Edition + digest: df5e36c64bf1b8e2b77609c1cd9c717df47c290777a005ebf0edbe42d1f0ac70 + home: https://about.gitlab.com + icon: https://gitlab.com/uploads/group/avatar/6543/gitlab-logo-square.png + keywords: + - git + - ci + - deploy + - issue tracker + - code review + - wiki + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: gitlab-ce + sources: + - https://hub.docker.com/r/gitlab/gitlab-ce/ + - https://docs.gitlab.com/omnibus/ + urls: + - https://kubernetes-charts.storage.googleapis.com/gitlab-ce-0.1.7.tgz + version: 0.1.7 + - created: 2017-04-11T16:33:29.173232912Z + description: GitLab Community Edition + digest: 80094520d1bee55c7e25ad740bbfe3740814f389e6221b2fa536f77aabba9b37 + home: https://about.gitlab.com + icon: https://gitlab.com/uploads/group/avatar/6543/gitlab-logo-square.png + keywords: + - git + - ci + - deploy + - issue tracker + - code review + - wiki + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: gitlab-ce + sources: + - https://hub.docker.com/r/gitlab/gitlab-ce/ + - https://docs.gitlab.com/omnibus/ + urls: + - https://kubernetes-charts.storage.googleapis.com/gitlab-ce-0.1.6.tgz + version: 0.1.6 + - created: 2017-03-23T20:48:32.107763732Z + description: GitLab Community Edition + digest: 20c0895dd3c5c1edbc0e3be4687f0d0874599cd0c53e49560f9f0a91506957ce + home: https://about.gitlab.com + icon: https://gitlab.com/uploads/group/avatar/6543/gitlab-logo-square.png + keywords: + - git + - ci + - deploy + - issue tracker + - code review + - wiki + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: gitlab-ce + sources: + - https://hub.docker.com/r/gitlab/gitlab-ce/ + - https://docs.gitlab.com/omnibus/ + urls: + - https://kubernetes-charts.storage.googleapis.com/gitlab-ce-0.1.5.tgz + version: 0.1.5 + - created: 2017-02-14T02:48:28.88667289Z + description: GitLab Community Edition + digest: e05d4de559597760d59ca684fab107abcc0968b3260a77b16099d31e0b00cd74 + keywords: + - git + - ci + - deploy + - issue tracker + - code review + - wiki + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: gitlab-ce + sources: + - https://hub.docker.com/r/gitlab/gitlab-ce/ + - https://docs.gitlab.com/omnibus/ + urls: + - https://kubernetes-charts.storage.googleapis.com/gitlab-ce-0.1.4.tgz + version: 0.1.4 + - created: 2017-02-13T20:18:28.097071087Z + description: GitLab Community Edition + digest: a2fef3fd8d3187f8a4242d66435488bce4193ae3f2db8d3ec14da1c4373c2519 + keywords: + - git + - ci + - deploy + - issue tracker + - code review + - wiki + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: gitlab-ce + sources: + - https://hub.docker.com/r/gitlab/gitlab-ce/ + - https://docs.gitlab.com/omnibus/ + urls: + - https://kubernetes-charts.storage.googleapis.com/gitlab-ce-0.1.3.tgz + version: 0.1.3 + - created: 2017-01-26T03:18:35.336711333Z + description: GitLab Community Edition + digest: 3ca821c4e3bec2fe7541b95f94503875c508517e2f1200368268511e254df360 + keywords: + - git + - ci + - deploy + - issue tracker + - code review + - wiki + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: gitlab-ce + sources: + - https://hub.docker.com/r/gitlab/gitlab-ce/ + - https://docs.gitlab.com/omnibus/ + urls: + - https://kubernetes-charts.storage.googleapis.com/gitlab-ce-0.1.2.tgz + version: 0.1.2 + - created: 2017-01-13T20:48:31.520266166Z + description: GitLab Community Edition + digest: d78cfc8cc2e262c49e1aee3af046509b92b022a5cd4b522778e846ddcd808d9b + keywords: + - git + - ci + - deploy + - issue tracker + - code review + - wiki + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: gitlab-ce + sources: + - https://hub.docker.com/r/gitlab/gitlab-ce/ + - https://docs.gitlab.com/omnibus/ + urls: + - https://kubernetes-charts.storage.googleapis.com/gitlab-ce-0.1.1.tgz + version: 0.1.1 + - created: 2016-12-15T21:18:24.667256782Z + description: GitLab Community Edition + digest: 2c84a056e3f6d66a6aed763b2f4a26c1f4275eb3f6ca64798962a070809c6272 + keywords: + - git + - ci + - deploy + - issue tracker + - code review + - wiki + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: gitlab-ce + sources: + - https://hub.docker.com/r/gitlab/gitlab-ce/ + - https://docs.gitlab.com/omnibus/ + urls: + - https://kubernetes-charts.storage.googleapis.com/gitlab-ce-0.1.0.tgz + version: 0.1.0 + gitlab-ee: + - created: 2017-04-28T00:18:30.081242553Z + description: GitLab Enterprise Edition + digest: 3fa791ba74b0e43c05178b6eb16fb21eede5bb046e9870b854db38654768de09 + home: https://about.gitlab.com + icon: https://gitlab.com/uploads/group/avatar/6543/gitlab-logo-square.png + keywords: + - git + - ci + - deploy + - issue tracker + - code review + - wiki + maintainers: + - email: contact@quent.in + name: Quentin Rousseau + name: gitlab-ee + sources: + - https://hub.docker.com/r/gitlab/gitlab-ee/ + - https://docs.gitlab.com/omnibus/ + urls: + - https://kubernetes-charts.storage.googleapis.com/gitlab-ee-0.1.6.tgz + version: 0.1.6 + grafana: + - created: 2017-04-28T00:18:30.082782593Z + description: The leading tool for querying and visualizing time series and metrics. + digest: 721c85c6407ef534dc0d2366af3092f63229d51158abb124496efbe1a224907b + engine: gotpl + home: https://grafana.net + icon: https://raw.githubusercontent.com/grafana/grafana/master/public/img/logo_transparent_400x.png + maintainers: + - email: zanhsieh@gmail.com + name: Ming Hsieh + name: grafana + sources: + - https://github.com/grafana/grafana + urls: + - https://kubernetes-charts.storage.googleapis.com/grafana-0.3.1.tgz + version: 0.3.1 + - created: 2017-04-14T01:18:27.369088748Z + description: The leading tool for querying and visualizing time series and metrics. + digest: 8f1db00e769d13c2435841b9b89b2045653039ca377c4547f46b33ec566f60ef + engine: gotpl + home: https://grafana.net + icon: https://raw.githubusercontent.com/grafana/grafana/master/public/img/logo_transparent_400x.png + maintainers: + - email: zanhsieh@gmail.com + name: Ming Hsieh + name: grafana + sources: + - https://github.com/grafana/grafana + urls: + - https://kubernetes-charts.storage.googleapis.com/grafana-0.3.0.tgz + version: 0.3.0 + - created: 2017-04-05T18:03:30.376700685Z + description: The leading tool for querying and visualizing time series and metrics. + digest: e428e33b249f2261882632cc658c36d50df81460c091fd29404a3b3d16886416 + engine: gotpl + home: https://grafana.net + icon: https://raw.githubusercontent.com/grafana/grafana/master/public/img/logo_transparent_400x.png + maintainers: + - email: zanhsieh@gmail.com + name: Ming Hsieh + name: grafana + sources: + - https://github.com/grafana/grafana + urls: + - https://kubernetes-charts.storage.googleapis.com/grafana-0.2.5.tgz + version: 0.2.5 + - created: 2017-03-16T23:33:31.578792832Z + description: The leading tool for querying and visualizing time series and metrics. + digest: 2fefc51028c411641e5bf85b799fc8e608c7646c7054cfaa2149d4e83610d60a + engine: gotpl + home: https://grafana.net + icon: https://raw.githubusercontent.com/grafana/grafana/master/public/img/logo_transparent_400x.png + maintainers: + - email: zanhsieh@gmail.com + name: Ming Hsieh + name: grafana + sources: + - https://github.com/grafana/grafana + urls: + - https://kubernetes-charts.storage.googleapis.com/grafana-0.2.4.tgz + version: 0.2.4 + - created: 2017-03-14T23:48:31.886602615Z + description: The leading tool for querying and visualizing time series and metrics. + digest: 7fac33dcd25d8ac60071e56968db133ecfa4f796732f92044d1f7714495840fd + engine: gotpl + home: https://grafana.net + icon: https://raw.githubusercontent.com/grafana/grafana/master/public/img/logo_transparent_400x.png + maintainers: + - email: zanhsieh@gmail.com + name: Ming Hsieh + name: grafana + sources: + - https://github.com/grafana/grafana + urls: + - https://kubernetes-charts.storage.googleapis.com/grafana-0.2.3.tgz + version: 0.2.3 + - created: 2017-02-13T22:33:28.777518221Z + description: The leading tool for querying and visualizing time series and metrics. + digest: 037158b80733838ab2ad84928c999997ab76b5383cbeb4cce6c174fe5bc5ae8d + engine: gotpl + home: https://grafana.net + icon: https://raw.githubusercontent.com/grafana/grafana/master/public/img/logo_transparent_400x.png + maintainers: + - email: zanhsieh@gmail.com + name: Ming Hsieh + name: grafana + sources: + - https://github.com/grafana/grafana + urls: + - https://kubernetes-charts.storage.googleapis.com/grafana-0.2.2.tgz + version: 0.2.2 + - created: 2017-02-13T04:18:31.532928133Z + description: A Helm chart for Kubernetes + digest: e49f08bd26843eb0449304c72fd9be3e65de0d8647457f39807f9aa296ba9b6a + engine: gotpl + home: https://grafana.net + maintainers: + - email: zanhsieh@gmail.com + name: Ming Hsieh + name: grafana + sources: + - https://github.com/grafana/grafana + urls: + - https://kubernetes-charts.storage.googleapis.com/grafana-0.2.1.tgz + version: 0.2.1 + - created: 2017-01-29T23:03:26.897254812Z + description: A Helm chart for Kubernetes + digest: 283be1abb811d005b3759f65761e4465e79f2031be8a47b3d87256e88888f047 + engine: gotpl + home: https://grafana.net + maintainers: + - email: zanhsieh@gmail.com + name: Ming Hsieh + name: grafana + sources: + - https://github.com/grafana/grafana + urls: + - https://kubernetes-charts.storage.googleapis.com/grafana-0.2.0.tgz + version: 0.2.0 + influxdb: + - created: 2017-04-28T00:18:30.083302575Z + description: Scalable datastore for metrics, events, and real-time analytics. + digest: c34d6d57a1c4f5cdf1d1eb869231b27d2c080c7d219ab330f43fd9fd795b8d40 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/influxdb/ + keywords: + - influxdb + - database + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: influxdb + sources: + - https://github.com/influxdata/influxdb + urls: + - https://kubernetes-charts.storage.googleapis.com/influxdb-0.4.0.tgz + version: 0.4.0 + - created: 2017-03-23T01:19:01.442621577Z + description: Scalable datastore for metrics, events, and real-time analytics. + digest: 76522d9156e4939669344cc72a9674ce16ccc7049b06c03eaa0822ed4ce59254 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/influxdb/ + keywords: + - influxdb + - database + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: influxdb + sources: + - https://github.com/influxdata/influxdb + urls: + - https://kubernetes-charts.storage.googleapis.com/influxdb-0.3.0.tgz + version: 0.3.0 + - created: 2017-03-17T05:33:29.077307939Z + description: Scalable datastore for metrics, events, and real-time analytics. + digest: 499e87e9a0cfb2452107eaabc5e81bb5382554731b12e20dac791d81d492044e + engine: gotpl + home: https://www.influxdata.com/time-series-platform/influxdb/ + keywords: + - influxdb + - database + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: influxdb + sources: + - https://github.com/influxdata/influxdb + urls: + - https://kubernetes-charts.storage.googleapis.com/influxdb-0.2.1.tgz + version: 0.2.1 + - created: 2017-02-13T17:03:30.109119817Z + description: Scalable datastore for metrics, events, and real-time analytics. + digest: e78ce7b2aac9538e5f6087fc77e5e30ab41a2a54d9bb1381b02830dd3324f0a9 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/influxdb/ + keywords: + - influxdb + - database + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: influxdb + sources: + - https://github.com/influxdata/influxdb + urls: + - https://kubernetes-charts.storage.googleapis.com/influxdb-0.1.2.tgz + version: 0.1.2 + - created: 2017-02-13T04:33:52.294695041Z + description: Chart for InfluxDB + digest: 3341f3cca2d60540b219390688ac600ec605a331975cd402d6489969a0346aec + engine: gotpl + home: https://www.influxdata.com/time-series-platform/influxdb/ + keywords: + - influxdb + - database + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: influxdb + urls: + - https://kubernetes-charts.storage.googleapis.com/influxdb-0.1.1.tgz + version: 0.1.1 + - created: 2017-01-28T00:48:33.328518706Z + description: Chart for InfluxDB + digest: a64fad23b1d02c8f14955f652f60a36ca2bc9f01fb5f4d80cd88bcf9f96a7300 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/influxdb/ + keywords: + - influxdb + - database + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: influxdb + urls: + - https://kubernetes-charts.storage.googleapis.com/influxdb-0.1.0.tgz + version: 0.1.0 + jasperreports: + - created: 2017-04-28T00:18:30.084006378Z + description: The JasperReports server can be used as a stand-alone or embedded + reporting and BI server that offers web-based reporting, analytic tools and + visualization, and a dashboard feature for compiling multiple custom views + digest: 8a649026f55b2fa1e743c93fd331e127e66b49c4d7f20116a2bb06e5937f4828 + engine: gotpl + home: http://community.jaspersoft.com/project/jasperreports-server + icon: https://bitnami.com/assets/stacks/jasperserver/img/jasperserver-stack-110x117.png + keywords: + - business intelligence + - java + - jasper + - reporting + - analytic + - visualization + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: jasperreports + sources: + - https://github.com/bitnami/bitnami-docker-jasperreports + urls: + - https://kubernetes-charts.storage.googleapis.com/jasperreports-0.1.5.tgz + version: 0.1.5 + - created: 2017-04-06T10:18:27.580953879Z + description: The JasperReports server can be used as a stand-alone or embedded + reporting and BI server that offers web-based reporting, analytic tools and + visualization, and a dashboard feature for compiling multiple custom views + digest: d4a62f7ace55256852e5c650a56ccf671633c4f223180d304cfb03b9cd7993aa + engine: gotpl + home: http://community.jaspersoft.com/project/jasperreports-server + icon: https://bitnami.com/assets/stacks/jasperserver/img/jasperserver-stack-110x117.png + keywords: + - business intelligence + - java + - jasper + - reporting + - analytic + - visualization + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: jasperreports + sources: + - https://github.com/bitnami/bitnami-docker-jasperreports + urls: + - https://kubernetes-charts.storage.googleapis.com/jasperreports-0.1.4.tgz + version: 0.1.4 + - created: 2017-03-08T19:03:31.722665089Z + description: The JasperReports server can be used as a stand-alone or embedded + reporting and BI server that offers web-based reporting, analytic tools and + visualization, and a dashboard feature for compiling multiple custom views + digest: 99af0fca7ef1c475b239f2c8fc2dee6b040ea76b3c30bba1431f358df873aa49 + engine: gotpl + home: http://community.jaspersoft.com/project/jasperreports-server + icon: https://bitnami.com/assets/stacks/jasperserver/img/jasperserver-stack-110x117.png + keywords: + - business intelligence + - java + - jasper + - reporting + - analytic + - visualization + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: jasperreports + sources: + - https://github.com/bitnami/bitnami-docker-jasperreports + urls: + - https://kubernetes-charts.storage.googleapis.com/jasperreports-0.1.3.tgz + version: 0.1.3 + - created: 2017-02-13T21:33:27.741967589Z + description: The JasperReports server can be used as a stand-alone or embedded + reporting and BI server that offers web-based reporting, analytic tools and + visualization, and a dashboard feature for compiling multiple custom views + digest: f01e53d1b89c4fb1fcd9702cd5f4e48d77607aed65f249e1f94b8b21f7eef3f4 + engine: gotpl + home: http://community.jaspersoft.com/project/jasperreports-server + icon: https://bitnami.com/assets/stacks/jasperserver/img/jasperserver-stack-110x117.png + keywords: + - business intelligence + - java + - jasper + - reporting + - analytic + - visualization + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: jasperreports + sources: + - https://github.com/bitnami/bitnami-docker-jasperreports + urls: + - https://kubernetes-charts.storage.googleapis.com/jasperreports-0.1.2.tgz + version: 0.1.2 + - created: 2017-01-28T01:33:32.784491819Z + description: The JasperReports server can be used as a stand-alone or embedded + reporting and BI server that offers web-based reporting, analytic tools and + visualization, and a dashboard feature for compiling multiple custom views + digest: 5cc4af8c88691d7030602c97be2ccbc125ef11129b361da0aa236a127c31b965 + engine: gotpl + home: http://community.jaspersoft.com/project/jasperreports-server + icon: https://bitnami.com/assets/stacks/jasperserver/img/jasperserver-stack-110x117.png + keywords: + - business intelligence + - java + - jasper + - reporting + - analytic + - visualization + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: jasperreports + sources: + - https://github.com/bitnami/bitnami-docker-jasperreports + urls: + - https://kubernetes-charts.storage.googleapis.com/jasperreports-0.1.1.tgz + version: 0.1.1 + jenkins: + - created: 2017-04-28T00:18:30.084552323Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: e8bb6edabe1af4db4f67e2939b88fa45416167612349a3a32bcf786c529a18e7 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.6.0.tgz + version: 0.6.0 + - created: 2017-04-24T21:03:29.315054715Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: 0c962935ead654ed9422c75978195b9ec893b1e1909b38cdbc15e3dc24863f7e + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.5.1.tgz + version: 0.5.1 + - created: 2017-04-19T16:48:30.580850385Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: 338a9265e567f75469c4e227f583de14b7ab38da137b1d4fd5eee24ddea05724 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.5.0.tgz + version: 0.5.0 + - created: 2017-04-13T19:03:30.206806842Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: 66cb4ab56bdac82c98eea4ceaf0fbcd9bb7c5c446f21bb396c3ce4246a76f423 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.4.1.tgz + version: 0.4.1 + - created: 2017-04-13T05:33:26.915479665Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: 109c67f85696136b5629126952d5eb4196ca3cf36524976adf7babd3b8631782 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.4.0.tgz + version: 0.4.0 + - created: 2017-04-13T05:18:28.907645759Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: afa4583548e2e89617e21b91ef014285f060ad4a5355741260d72e27bb8eb4d3 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.3.1.tgz + version: 0.3.1 + - created: 2017-03-30T07:48:56.453711055Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: e9c5280a7cc57b16c51e70af9e4bf8b10f6525daf191c22a3a050a1791e5f7c7 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.3.0.tgz + version: 0.3.0 + - created: 2017-03-22T22:18:33.707478335Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: f5cf5bafd797d65bbbb55ff0b31935123d3f7ac283e703ac0b9df73b016edf59 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.2.0.tgz + version: 0.2.0 + - created: 2017-03-15T09:48:31.97803944Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: f8167252e615a10eb155087d6666985e8eb083781faa0485c0413de8c13deeb8 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.15.tgz + version: 0.1.15 + - created: 2017-03-14T13:33:36.105867963Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: 6c5039f7ab62e7f74bb902f5804814f66733c535908b4ffae1cf759efa3c6f24 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.14.tgz + version: 0.1.14 + - created: 2017-02-13T22:18:28.949796594Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: 90aa0fe9bac319690c871327dff6fee85e7de117e961dfa95ba12abedec4e99b + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.13.tgz + version: 0.1.13 + - created: 2017-02-13T21:48:52.587710548Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: 92224a4dcf96772652e91cee6369a08f21f4ba7d1513ee458b5724720f7045ca + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.12.tgz + version: 0.1.12 + - created: 2017-02-13T21:03:28.21318035Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: c75cadf6bc32c90cfc8a61c1f233884004670c8583edefcfcaa43b5573422923 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.10.tgz + version: 0.1.10 + - created: 2017-02-13T17:03:30.11276321Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: 47f32f975f942607a4b4ca05bd804ece5e2381840508d049251ca692e83080c0 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.9.tgz + version: 0.1.9 + - created: 2017-02-13T04:18:31.534794405Z + description: Open source continuous integration server. It supports multiple SCM + tools including CVS, Subversion and Git. It can execute Apache Ant and Apache + Maven-based projects as well as arbitrary scripts. + digest: 0764541a4165016e68bef6de1f405964b58ebb2b43b4d738f4bbbbad794b5df8 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.8.tgz + version: 0.1.8 + - created: 2017-01-27T21:48:32.069740444Z + description: A Jenkins Helm chart for Kubernetes. + digest: c29819a435e9474277846492930e910c9f7c0605717421c4efe411ce476283ab + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.7.tgz + version: 0.1.7 + - created: 2017-01-04T00:48:19.7378014Z + description: A Jenkins Helm chart for Kubernetes. + digest: 58ddd6442c8534de79a8d5eaca48263c744ca9fa6e9af7ceb28d1fda9b88ddb5 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.6.tgz + version: 0.1.6 + - created: 2016-12-19T22:03:51.103057889Z + description: A Jenkins Helm chart for Kubernetes. + digest: 2c8dff77b7ad736ac54e5335f5d52bfacaf7ea2ad97558da507b7f5bb9f4d549 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.5.tgz + version: 0.1.5 + - created: 2016-12-09T18:48:20.183887307Z + description: A Jenkins Helm chart for Kubernetes. + digest: 0b7016624acec8d66f6d919611e8f1c9853a5475c9801c3da6e50b7ce044ed57 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.4.tgz + version: 0.1.4 + - created: 2016-12-05T18:33:22.028569484Z + description: A Jenkins Helm chart for Kubernetes. + digest: 82b53a4c90ac2cf71bb41d870939ce1e980192e1407ba8825051c0ed98c04906 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.1.tgz + version: 0.1.1 + - created: 2016-10-19T00:03:14.028672648Z + description: A Jenkins Helm chart for Kubernetes. + digest: ea97fbfeaf9b9701d71dbc2b6fa50bff25a33f0565233d81170a6ac225d22ab4 + home: https://jenkins.io/ + icon: https://wiki.jenkins-ci.org/download/attachments/2916393/logo.png + maintainers: + - email: lachlan@deis.com + name: Lachlan Evenson + - email: viglesias@google.com + name: Vic Iglesias + name: jenkins + sources: + - https://github.com/jenkinsci/jenkins + - https://github.com/jenkinsci/docker-jnlp-slave + urls: + - https://kubernetes-charts.storage.googleapis.com/jenkins-0.1.0.tgz + version: 0.1.0 + joomla: + - created: 2017-04-28T00:18:30.085219154Z + description: PHP content management system (CMS) for publishing web content + digest: 6f9934487533f325515f4877b3af1306c87d64bf3ece9d4bd875289cd73b340d + engine: gotpl + home: http://www.joomla.org/ + icon: https://bitnami.com/assets/stacks/joomla/img/joomla-stack-220x234.png + keywords: + - joomla + - cms + - blog + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: joomla + sources: + - https://github.com/bitnami/bitnami-docker-joomla + urls: + - https://kubernetes-charts.storage.googleapis.com/joomla-0.4.6.tgz + version: 0.4.6 + - created: 2017-04-06T11:03:25.397962583Z + description: PHP content management system (CMS) for publishing web content + digest: f9dedab2fc2dbf170cf45b2c230baa6d20aad9a6f8ccfcb09c459602fc5213dc + engine: gotpl + home: http://www.joomla.org/ + icon: https://bitnami.com/assets/stacks/joomla/img/joomla-stack-220x234.png + keywords: + - joomla + - cms + - blog + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: joomla + sources: + - https://github.com/bitnami/bitnami-docker-joomla + urls: + - https://kubernetes-charts.storage.googleapis.com/joomla-0.4.5.tgz + version: 0.4.5 + - created: 2017-03-02T19:33:28.178324258Z + description: PHP content management system (CMS) for publishing web content + digest: 1e067e459873ae832d54ff516a3420f7f0e16ecd8f72f4c4f02be22e47702077 + engine: gotpl + home: http://www.joomla.org/ + icon: https://bitnami.com/assets/stacks/joomla/img/joomla-stack-220x234.png + keywords: + - joomla + - cms + - blog + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: joomla + sources: + - https://github.com/bitnami/bitnami-docker-joomla + urls: + - https://kubernetes-charts.storage.googleapis.com/joomla-0.4.4.tgz + version: 0.4.4 + - created: 2017-02-27T16:48:32.159029074Z + description: PHP content management system (CMS) for publishing web content + digest: 9a99b15e83e18955eb364985cd545659f1176ef203ac730876dfe39499edfb18 + engine: gotpl + home: http://www.joomla.org/ + icon: https://bitnami.com/assets/stacks/joomla/img/joomla-stack-220x234.png + keywords: + - joomla + - cms + - blog + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: joomla + sources: + - https://github.com/bitnami/bitnami-docker-joomla + urls: + - https://kubernetes-charts.storage.googleapis.com/joomla-0.4.3.tgz + version: 0.4.3 + - created: 2017-02-11T00:18:52.272598223Z + description: PHP content management system (CMS) for publishing web content + digest: 07c3a16eb674ffc74fe5b2b16191b8bb24c63bdae9bce9710bda1999920c46fc + engine: gotpl + home: http://www.joomla.org/ + keywords: + - joomla + - cms + - blog + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: joomla + sources: + - https://github.com/bitnami/bitnami-docker-joomla + urls: + - https://kubernetes-charts.storage.googleapis.com/joomla-0.4.2.tgz + version: 0.4.2 + - created: 2017-01-21T00:18:31.345952551Z + description: PHP content management system (CMS) for publishing web content + digest: 95fbe272015941544609eee90b3bffd5172bfdec10be13636510caa8478a879e + engine: gotpl + home: http://www.joomla.org/ + keywords: + - joomla + - cms + - blog + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: joomla + sources: + - https://github.com/bitnami/bitnami-docker-joomla + urls: + - https://kubernetes-charts.storage.googleapis.com/joomla-0.4.1.tgz + version: 0.4.1 + - created: 2016-12-09T18:48:20.18539038Z + description: PHP content management system (CMS) for publishing web content + digest: 0a01ea051ec15274932c8d82076c1a9fd62584b0fb916a81372319bef223c20e + engine: gotpl + home: http://www.joomla.org/ + keywords: + - joomla + - cms + - blog + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: joomla + sources: + - https://github.com/bitnami/bitnami-docker-joomla + urls: + - https://kubernetes-charts.storage.googleapis.com/joomla-0.4.0.tgz + version: 0.4.0 + kapacitor: + - created: 2017-04-28T00:18:30.085544137Z + description: InfluxDB's native data processing engine. It can process both stream + and batch data from InfluxDB. + digest: f484ef5acbc3ad68bb765adb1fd6c74920b9265371d3379e43a47ec266dc8449 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/kapacitor/ + keywords: + - kapacitor + - stream + - etl + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: kapacitor + sources: + - https://github.com/influxdata/kapacitor + urls: + - https://kubernetes-charts.storage.googleapis.com/kapacitor-0.2.2.tgz + version: 0.2.2 + - created: 2017-03-22T21:33:33.841225941Z + description: InfluxDB's native data processing engine. It can process both stream + and batch data from InfluxDB. + digest: c592b3bf2dec92c2273057b984b7289c17032dc578ea0f2ec86aeb5e838a7047 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/kapacitor/ + keywords: + - kapacitor + - stream + - etl + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: kapacitor + sources: + - https://github.com/influxdata/kapacitor + urls: + - https://kubernetes-charts.storage.googleapis.com/kapacitor-0.2.1.tgz + version: 0.2.1 + - created: 2017-02-13T21:48:52.58883187Z + description: InfluxDB's native data processing engine. It can process both stream + and batch data from InfluxDB. + digest: 18971c9c5b3805830f72fdfacd6c1dfc173db4797994f61b3666296b67abe70a + engine: gotpl + home: https://www.influxdata.com/time-series-platform/kapacitor/ + keywords: + - kapacitor + - stream + - etl + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: kapacitor + sources: + - https://github.com/influxdata/kapacitor + urls: + - https://kubernetes-charts.storage.googleapis.com/kapacitor-0.1.2.tgz + version: 0.1.2 + - created: 2017-02-13T21:03:28.215149313Z + description: Chart for Chronograf + digest: e0d29608602df25a9352629afd3fd7615e01a23549e1d1eba8101ee1b725e528 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/kapacitor/ + keywords: + - kapacitor + - stream + - etl + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: kapacitor + urls: + - https://kubernetes-charts.storage.googleapis.com/kapacitor-0.1.1.tgz + version: 0.1.1 + - created: 2017-01-28T01:33:32.786133788Z + description: Chart for Chronograf + digest: efde65696634d3bf1dc4c9caae44e68f7ed8c7599aab809c8cdd0fde7e4f9efc + engine: gotpl + home: https://www.influxdata.com/time-series-platform/kapacitor/ + keywords: + - kapacitor + - stream + - etl + - timeseries + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: kapacitor + urls: + - https://kubernetes-charts.storage.googleapis.com/kapacitor-0.1.0.tgz + version: 0.1.0 + kube-lego: + - apiVersion: v1 + created: 2017-04-28T00:18:30.085897046Z + description: Automatically requests certificates from Let's Encrypt + digest: adc8f0fe1c244e5abda2d918afe9153d47648b2acb779adaf796fa5a7266ea6b + engine: gotpl + keywords: + - kube-lego + - letsencrypt + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + - email: mgoodness@gmail.com + name: Michael Goodness + name: kube-lego + sources: + - https://github.com/jetstack/kube-lego/tree/master/examples/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/kube-lego-0.1.8.tgz + version: 0.1.8 + - apiVersion: v1 + created: 2017-03-20T20:03:37.426644363Z + description: Automatically requests certificates from Let's Encrypt + digest: 0110b8c36f6ad016684ef904b5e514751ffa7a89ba7b88cf4a8376c889e03693 + engine: gotpl + keywords: + - kube-lego + - letsencrypt + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + - email: mgoodness@gmail.com + name: Michael Goodness + name: kube-lego + sources: + - https://github.com/jetstack/kube-lego/tree/master/examples/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/kube-lego-0.1.7.tgz + version: 0.1.7 + - apiVersion: v1 + created: 2017-03-02T19:33:28.179029307Z + description: Automatically requests certificates from Let's Encrypt + digest: 275265fda80ccc62376ebd3a200bbea94b105cbf3481efcc726d6a33d73da8d0 + engine: gotpl + keywords: + - kube-lego + - letsencrypt + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + - email: mgoodness@gmail.com + name: Michael Goodness + name: kube-lego + sources: + - https://github.com/jetstack/kube-lego/tree/master/examples/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/kube-lego-0.1.6.tgz + version: 0.1.6 + - apiVersion: v1 + created: 2017-02-27T17:33:27.264070807Z + description: Automatically requests certificates from Let's Encrypt + digest: 62de296cc21c6b286097de9ac389033e18a4cd3cf414cd97b7a02d4c3be14d6d + engine: gotpl + keywords: + - kube-lego + - letsencrypt + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + - email: mgoodness@gmail.com + name: Michael Goodness + name: kube-lego + sources: + - https://github.com/jetstack/kube-lego/tree/master/examples/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/kube-lego-0.1.5.tgz + version: 0.1.5 + - apiVersion: v1 + created: 2017-02-14T15:48:28.578398517Z + description: Automatically requests certificates from Let's Encrypt + digest: 1bc993b68eb51fb00e4eb18a65df9e2182f895bd46134d6ddfdc0dd3b6432a98 + engine: gotpl + keywords: + - kube-lego + - letsencrypt + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + - email: mgoodness@gmail.com + name: Michael Goodness + name: kube-lego + sources: + - https://github.com/jetstack/kube-lego/tree/master/examples/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/kube-lego-0.1.4.tgz + version: 0.1.4 + - apiVersion: v1 + created: 2017-02-11T00:48:25.354730418Z + description: Automatically requests certificates from Let's Encrypt + digest: d4b3694951c2bb42b356217a8f12870bd3806dac4de3390056279998fd634c34 + engine: gotpl + keywords: + - kube-lego + - letsencrypt + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + - email: mgoodness@gmail.com + name: Michael Goodness + name: kube-lego + sources: + - https://github.com/jetstack/kube-lego/tree/master/examples/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/kube-lego-0.1.3.tgz + version: 0.1.3 + kube-ops-view: + - created: 2017-04-28T00:18:30.086143954Z + description: Kubernetes Operational View - read-only system dashboard for multiple + K8s clusters + digest: 9e7b62f2d781aaacee801e91efe4d6b6ef6df9d511c0d6fb2d6e7977c8d0a06e + home: https://github.com/hjacobs/kube-ops-view + icon: https://raw.githubusercontent.com/hjacobs/kube-ops-view/master/kube-ops-view-logo.png + keywords: + - kubernetes + - dashboard + - operations + maintainers: + - email: henning@jacobs1.de + name: Henning Jacobs + name: kube-ops-view + sources: + - https://github.com/hjacobs/kube-ops-view + urls: + - https://kubernetes-charts.storage.googleapis.com/kube-ops-view-0.2.0.tgz + version: 0.2.0 + kube2iam: + - created: 2017-04-28T00:18:30.086423576Z + description: Provide IAM credentials to pods based on annotations. + digest: 2035d8dfae5733fa475914694cd060e28954b1f5c930b6c4800ee165d23abc46 + engine: gotpl + keywords: + - kube2iam + - aws + - iam + - security + maintainers: + - email: jm.carp@gmail.com + name: Josh Carp + - email: michael.haselton@gmail.com + name: Michael Haselton + - email: mgoodness@gmail.com + name: Michael Goodness + name: kube2iam + sources: + - https://github.com/jtblin/kube2iam + urls: + - https://kubernetes-charts.storage.googleapis.com/kube2iam-0.2.1.tgz + version: 0.2.1 + - created: 2017-03-02T18:48:30.431985789Z + description: Provide IAM credentials to pods based on annotations. + digest: 5d2226fb101b800fc5a6edb5566d329880c604d75f4245da55f47027bcf5546e + engine: gotpl + keywords: + - kube2iam + - aws + - iam + - security + maintainers: + - email: jm.carp@gmail.com + name: Josh Carp + - email: michael.haselton@gmail.com + name: Michael Haselton + - email: mgoodness@gmail.com + name: Michael Goodness + name: kube2iam + sources: + - https://github.com/jtblin/kube2iam + urls: + - https://kubernetes-charts.storage.googleapis.com/kube2iam-0.2.0.tgz + version: 0.2.0 + - created: 2017-02-13T17:03:30.115672844Z + description: Provide IAM credentials to containers running inside a kubernetes + cluster based on annotations. + digest: 63d913fb8f31c287b1f1d45d310517c0b22597ecdaef19d7ad2520bff990969a + engine: gotpl + keywords: + - kube2iam + - aws + - iam + - security + maintainers: + - email: jm.carp@gmail.com + name: Josh Carp + - email: michael.haselton@gmail.com + name: Michael Haselton + name: kube2iam + sources: + - https://github.com/jtblin/kube2iam + urls: + - https://kubernetes-charts.storage.googleapis.com/kube2iam-0.1.1.tgz + version: 0.1.1 + - created: 2017-01-19T00:33:27.789172853Z + description: Provide IAM credentials to containers running inside a kubernetes + cluster based on annotations. + digest: b4de5bddfa0af6737ea91d9b3a9bcfc3a0e5a656045e06038505613b214120fc + engine: gotpl + keywords: + - kube2iam + - aws + - iam + - security + maintainers: + - email: jm.carp@gmail.com + name: Josh Carp + - email: michael.haselton@gmail.com + name: Michael Haselton + name: kube2iam + sources: + - https://github.com/jtblin/kube2iam + urls: + - https://kubernetes-charts.storage.googleapis.com/kube2iam-0.1.0.tgz + version: 0.1.0 + linkerd: + - apiVersion: v1 + created: 2017-04-28T00:18:30.086763621Z + description: Service mesh for cloud native apps + digest: 9341ea67647129999beadb49f1a33131a187569581095907f902daffa73dd73b + home: https://linkerd.io/ + icon: https://pbs.twimg.com/profile_images/690258997237014528/KNgQd9GL_400x400.png + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: linkerd + sources: + - https://github.com/BuoyantIO/linkerd + urls: + - https://kubernetes-charts.storage.googleapis.com/linkerd-0.2.0.tgz + version: 0.2.0 + - apiVersion: v1 + created: 2017-03-27T13:18:34.232799345Z + description: Service mesh for cloud native apps + digest: f9f2287d026c6de3a522bdcffdff061f81a8e64274da4acefdc9d2177b603570 + home: https://linkerd.io/ + icon: https://pbs.twimg.com/profile_images/690258997237014528/KNgQd9GL_400x400.png + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: linkerd + sources: + - https://github.com/BuoyantIO/linkerd + urls: + - https://kubernetes-charts.storage.googleapis.com/linkerd-0.1.1.tgz + version: 0.1.1 + - apiVersion: v1 + created: 2017-02-13T04:33:52.299092507Z + description: Service mesh for cloud native apps + digest: 147759e4982f1dffce894e0d4242fb914d21014700a7d9891e8dc352318633fa + home: https://linkerd.io/ + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: linkerd + sources: + - https://github.com/BuoyantIO/linkerd + urls: + - https://kubernetes-charts.storage.googleapis.com/linkerd-0.1.0.tgz + version: 0.1.0 + locust: + - created: 2017-04-28T00:18:30.087097677Z + description: A modern load testing framework + digest: eb91b0e3c0b618cf5ad0f24d2685fe4086bc6f497685e58ad8a64032c4e82b7a + home: http://locust.io + icon: https://pbs.twimg.com/profile_images/1867636195/locust-logo-orignal.png + maintainers: + - email: vincent.drl@gmail.com + name: Vincent De Smet + name: locust + sources: + - https://github.com/honestbee/distributed-load-testing + urls: + - https://kubernetes-charts.storage.googleapis.com/locust-0.1.2.tgz + version: 0.1.2 + - created: 2017-04-20T16:18:33.345004534Z + description: A chart for locust distributed load testing + digest: 40a353b38823eaa4954dcb70ae92858671a16fb8d00ac9677a36912aab6b629a + name: locust + sources: + - https://github.com/honestbee/distributed-load-testing + urls: + - https://kubernetes-charts.storage.googleapis.com/locust-0.1.1.tgz + version: 0.1.1 + - created: 2017-04-11T16:03:29.689097384Z + description: A chart for locust distributed load testing + digest: 2cd175e8c8d66625ca3608046d5764662b53e3760aa260a934d3d2ee35148c49 + name: locust + sources: + - https://github.com/honestbee/distributed-load-testing + urls: + - https://kubernetes-charts.storage.googleapis.com/locust-0.1.0.tgz + version: 0.1.0 + magento: + - created: 2017-04-28T00:18:30.087794886Z + description: A feature-rich flexible e-commerce solution. It includes transaction + options, multi-store functionality, loyalty programs, product categorization + and shopper filtering, promotion rules, and more. + digest: 2d7ebf934ca0e742e248753da6502f05929b51329a42d0d4b3db4e1824381f11 + engine: gotpl + home: https://magento.com/ + icon: https://bitnami.com/assets/stacks/magento/img/magento-stack-110x117.png + keywords: + - magento + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: magento + sources: + - https://github.com/bitnami/bitnami-docker-magento + urls: + - https://kubernetes-charts.storage.googleapis.com/magento-0.4.6.tgz + version: 0.4.6 + - created: 2017-03-31T19:33:30.42890495Z + description: A feature-rich flexible e-commerce solution. It includes transaction + options, multi-store functionality, loyalty programs, product categorization + and shopper filtering, promotion rules, and more. + digest: a289a051d6d2e8cf833398d7d63fcb1fd953d202f0755800eebe568804fce525 + engine: gotpl + home: https://magento.com/ + icon: https://bitnami.com/assets/stacks/magento/img/magento-stack-110x117.png + keywords: + - magento + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: magento + sources: + - https://github.com/bitnami/bitnami-docker-magento + urls: + - https://kubernetes-charts.storage.googleapis.com/magento-0.4.5.tgz + version: 0.4.5 + - created: 2017-03-09T19:33:31.142591331Z + description: A feature-rich flexible e-commerce solution. It includes transaction + options, multi-store functionality, loyalty programs, product categorization + and shopper filtering, promotion rules, and more. + digest: 311a98182281b981f60fbd446b42f6af4b86e0bac9445bf2248b1b47dfce5933 + engine: gotpl + home: https://magento.com/ + icon: https://bitnami.com/assets/stacks/magento/img/magento-stack-110x117.png + keywords: + - magento + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: magento + sources: + - https://github.com/bitnami/bitnami-docker-magento + urls: + - https://kubernetes-charts.storage.googleapis.com/magento-0.4.4.tgz + version: 0.4.4 + - created: 2017-03-02T19:33:28.180428252Z + description: A feature-rich flexible e-commerce solution. It includes transaction + options, multi-store functionality, loyalty programs, product categorization + and shopper filtering, promotion rules, and more. + digest: fccfa89493a977a2f898a5e6d3c6fa4fda15faf0dc0a9e48772744a32c2b1d24 + engine: gotpl + home: https://magento.com/ + icon: https://bitnami.com/assets/stacks/magento/img/magento-stack-110x117.png + keywords: + - magento + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: magento + sources: + - https://github.com/bitnami/bitnami-docker-magento + urls: + - https://kubernetes-charts.storage.googleapis.com/magento-0.4.3.tgz + version: 0.4.3 + - created: 2017-02-27T16:48:32.161186722Z + description: A feature-rich flexible e-commerce solution. It includes transaction + options, multi-store functionality, loyalty programs, product categorization + and shopper filtering, promotion rules, and more. + digest: fb33cafa4874855419ea3178dc0660a856ed6f8b581b984f38e86701d54e54a6 + engine: gotpl + home: https://magento.com/ + icon: https://bitnami.com/assets/stacks/magento/img/magento-stack-110x117.png + keywords: + - magento + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: magento + sources: + - https://github.com/bitnami/bitnami-docker-magento + urls: + - https://kubernetes-charts.storage.googleapis.com/magento-0.4.2.tgz + version: 0.4.2 + - created: 2017-01-21T00:18:31.349108265Z + description: A feature-rich flexible e-commerce solution. It includes transaction + options, multi-store functionality, loyalty programs, product categorization + and shopper filtering, promotion rules, and more. + digest: c597107a5cf512d616e5e4134e562f8fcc6e79ad1f78241e9a40ded77e77ef62 + engine: gotpl + home: https://magento.com/ + icon: https://bitnami.com/assets/stacks/magento/img/magento-stack-110x117.png + keywords: + - magento + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: magento + sources: + - https://github.com/bitnami/bitnami-docker-magento + urls: + - https://kubernetes-charts.storage.googleapis.com/magento-0.4.1.tgz + version: 0.4.1 + - created: 2017-01-04T00:48:19.74048297Z + description: A feature-rich flexible e-commerce solution. It includes transaction + options, multi-store functionality, loyalty programs, product categorization + and shopper filtering, promotion rules, and more. + digest: 526115583b8ae741f6819c2a0d3e719a6622a63a0a2e9918e56d2ebaa6ad498b + engine: gotpl + home: https://magento.com/ + icon: https://bitnami.com/assets/stacks/magento/img/magento-stack-110x117.png + keywords: + - magento + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: magento + sources: + - https://github.com/bitnami/bitnami-docker-magento + urls: + - https://kubernetes-charts.storage.googleapis.com/magento-0.4.0.tgz + version: 0.4.0 + mariadb: + - created: 2017-04-28T00:18:30.088188975Z + description: Fast, reliable, scalable, and easy to use open-source relational + database system. MariaDB Server is intended for mission-critical, heavy-load + production systems as well as for embedding into mass-deployed software. + digest: bc13b8aa3728de5595bb83ea8a5c21f9234e169352739d8e72f04d1ed2558508 + engine: gotpl + home: https://mariadb.org + icon: https://bitnami.com/assets/stacks/mariadb/img/mariadb-stack-220x234.png + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.6.0.tgz + version: 0.6.0 + - created: 2017-04-03T22:33:26.672780802Z + description: Fast, reliable, scalable, and easy to use open-source relational + database system. MariaDB Server is intended for mission-critical, heavy-load + production systems as well as for embedding into mass-deployed software. + digest: 23b81e8bc8cd8577a47a73578b56f68a2a3c15640e0a0fb0ac7f1646845bc0b0 + engine: gotpl + home: https://mariadb.org + icon: https://bitnami.com/assets/stacks/mariadb/img/mariadb-stack-220x234.png + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.14.tgz + version: 0.5.14 + - created: 2017-03-23T19:18:29.910295788Z + description: Fast, reliable, scalable, and easy to use open-source relational + database system. MariaDB Server is intended for mission-critical, heavy-load + production systems as well as for embedding into mass-deployed software. + digest: a4c8e19714e2a3d29eae03c63a63a7343b3e4f62df2956603acca7eb42ab15de + engine: gotpl + home: https://mariadb.org + icon: https://bitnami.com/assets/stacks/mariadb/img/mariadb-stack-220x234.png + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.13.tgz + version: 0.5.13 + - created: 2017-03-17T22:48:29.250381078Z + description: Fast, reliable, scalable, and easy to use open-source relational + database system. MariaDB Server is intended for mission-critical, heavy-load + production systems as well as for embedding into mass-deployed software. + digest: 8d5cd0e79d675baa79ab4f999da8e10037ae4c2158e434b7b60d4ff345f1d976 + engine: gotpl + home: https://mariadb.org + icon: https://bitnami.com/assets/stacks/mariadb/img/mariadb-stack-220x234.png + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.12.tgz + version: 0.5.12 + - created: 2017-03-16T13:33:30.840089178Z + description: Fast, reliable, scalable, and easy to use open-source relational + database system. MariaDB Server is intended for mission-critical, heavy-load + production systems as well as for embedding into mass-deployed software. + digest: 0841b64dbe2fe499bd3554fa9b2074be0ed6535e9f87d3ea2c13bcfc2616717b + engine: gotpl + home: https://mariadb.org + icon: https://bitnami.com/assets/stacks/mariadb/img/mariadb-stack-220x234.png + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.11.tgz + version: 0.5.11 + - created: 2017-03-15T23:03:34.130536152Z + description: Fast, reliable, scalable, and easy to use open-source relational + database system. MariaDB Server is intended for mission-critical, heavy-load + production systems as well as for embedding into mass-deployed software. + digest: 587d7ef318ee1229d14e3b783c3e825f90f274f56b2eb62f1c7126f69fec6fc2 + engine: gotpl + home: https://mariadb.org + icon: https://bitnami.com/assets/stacks/mariadb/img/mariadb-stack-220x234.png + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.10.tgz + version: 0.5.10 + - created: 2017-03-08T19:03:31.728285865Z + description: Fast, reliable, scalable, and easy to use open-source relational + database system. MariaDB Server is intended for mission-critical, heavy-load + production systems as well as for embedding into mass-deployed software. + digest: cfec18e7be68a616a5e4944c21ed0b65dab1701cf7182d0d1bdea83df6a77ab1 + engine: gotpl + home: https://mariadb.org + icon: https://bitnami.com/assets/stacks/mariadb/img/mariadb-stack-220x234.png + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.9.tgz + version: 0.5.9 + - created: 2017-02-11T00:18:52.27620633Z + description: Chart for MariaDB + digest: 33990fb57b2fafb4396498e02a8083f6a476cf0b465a4a52905a67aab73f3f43 + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.8.tgz + version: 0.5.8 + - created: 2017-01-31T01:03:26.972704179Z + description: Chart for MariaDB + digest: 177a882b4248d6ebb2e72e125a3be775085bf082e4eb8f4359fee9e8640ede50 + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.7.tgz + version: 0.5.7 + - created: 2017-01-27T22:33:30.411626628Z + description: Chart for MariaDB + digest: 730d179ab0d5922494e3c21594ce7b4f118f7fe796071dfcfdbbc2714ada7d15 + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.6.tgz + version: 0.5.6 + - created: 2016-12-15T23:18:25.557355931Z + description: Chart for MariaDB + digest: c7811fad8165eb5d57eb55ad4e58d63e949d2f710c0fbbcd28cca11bb6af6de6 + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.5.tgz + version: 0.5.5 + - created: 2016-12-09T18:48:20.185787408Z + description: Chart for MariaDB + digest: c6b73c5146d085a202f838741526fe5fdc2fae55b8f5f17c0c42fd195c65311f + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.4.tgz + version: 0.5.4 + - created: 2016-11-23T00:33:20.016012859Z + description: Chart for MariaDB + digest: 38786f4f6fe4fb7a2dcbc38aa0bfea72e40e4d9766e1679942af60e25b5ba9bd + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.3.tgz + version: 0.5.3 + - created: 2016-11-03T19:33:29.120356141Z + description: Chart for MariaDB + digest: 8eb24c65fbdb75711a8ffd8f8f6ed206951cdc3a24d74a355121bc11c6c02f3b + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.2.tgz + version: 0.5.2 + - created: 2016-10-19T00:03:14.031007257Z + description: Chart for MariaDB + digest: 6544dbf62586f570762a3a469f0086fe595379454fb46a53d001206a0e282268 + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.1.tgz + version: 0.5.1 + - created: 2016-10-19T00:03:14.030598543Z + description: Chart for MariaDB + digest: c9f67f8140b3e7243d479f819d4ec8b2e992ee462b8fa579b920e86066955312 + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.5.0.tgz + version: 0.5.0 + - created: 2016-10-19T00:03:14.03012509Z + description: Chart for MariaDB + digest: fe8adb0730567ad8cd63501ac18b178ec2a9a590d43dd7ad91fd2d5fcf6114be + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.4.0.tgz + version: 0.4.0 + - created: 2016-10-19T00:03:14.029775557Z + description: Chart for MariaDB + digest: 47fe08909187da025e7e86e9534a736df11e2629c5c123178113fe776992e9e7 + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.3.1.tgz + version: 0.3.1 + - created: 2016-10-19T00:03:14.02942396Z + description: Chart for MariaDB + digest: 7354d2672b3983e98fe5c31d96d2c3d9c73edefe642eb5e1981484804315c4bc + engine: gotpl + home: https://mariadb.org + keywords: + - mariadb + - mysql + - database + - sql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mariadb + sources: + - https://github.com/bitnami/bitnami-docker-mariadb + urls: + - https://kubernetes-charts.storage.googleapis.com/mariadb-0.3.0.tgz + version: 0.3.0 + mediawiki: + - created: 2017-04-28T00:18:30.088860566Z + description: Extremely powerful, scalable software and a feature-rich wiki implementation + that uses PHP to process and display data stored in a database. + digest: 0e51822c5547895109a5b41ce426c77f62d0434b40f3021afee8471ab976a6f5 + engine: gotpl + home: http://www.mediawiki.org/ + icon: https://bitnami.com/assets/stacks/mediawiki/img/mediawiki-stack-220x234.png + keywords: + - mediawiki + - wiki + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mediawiki + sources: + - https://github.com/bitnami/bitnami-docker-mediawiki + urls: + - https://kubernetes-charts.storage.googleapis.com/mediawiki-0.4.6.tgz + version: 0.4.6 + - created: 2017-04-06T10:18:27.586263816Z + description: Extremely powerful, scalable software and a feature-rich wiki implementation + that uses PHP to process and display data stored in a database. + digest: 0e419c2c5d87997f94a32da6597af3f3b52120dc1ec682dcbb6b238fb4825e06 + engine: gotpl + home: http://www.mediawiki.org/ + icon: https://bitnami.com/assets/stacks/mediawiki/img/mediawiki-stack-220x234.png + keywords: + - mediawiki + - wiki + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mediawiki + sources: + - https://github.com/bitnami/bitnami-docker-mediawiki + urls: + - https://kubernetes-charts.storage.googleapis.com/mediawiki-0.4.5.tgz + version: 0.4.5 + - created: 2017-03-08T19:03:31.729226516Z + description: Extremely powerful, scalable software and a feature-rich wiki implementation + that uses PHP to process and display data stored in a database. + digest: 6f4dde26737f7f1aa63ffda6c259ce388e3a3509225f90f334bfc3f0f7617bc1 + engine: gotpl + home: http://www.mediawiki.org/ + icon: https://bitnami.com/assets/stacks/mediawiki/img/mediawiki-stack-220x234.png + keywords: + - mediawiki + - wiki + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mediawiki + sources: + - https://github.com/bitnami/bitnami-docker-mediawiki + urls: + - https://kubernetes-charts.storage.googleapis.com/mediawiki-0.4.4.tgz + version: 0.4.4 + - created: 2017-02-13T04:18:31.539427547Z + description: Extremely powerful, scalable software and a feature-rich wiki implementation + that uses PHP to process and display data stored in a database. + digest: 0ba52b8c4c9e0bee3eb76fe625d2dc88729a1cdf41ace9d13cd4abc5b477cfb8 + engine: gotpl + home: http://www.mediawiki.org/ + keywords: + - mediawiki + - wiki + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mediawiki + sources: + - https://github.com/bitnami/bitnami-docker-mediawiki + urls: + - https://kubernetes-charts.storage.googleapis.com/mediawiki-0.4.3.tgz + version: 0.4.3 + - created: 2017-01-21T00:18:31.350311075Z + description: Extremely powerful, scalable software and a feature-rich wiki implementation + that uses PHP to process and display data stored in a database. + digest: f49df3e17f97b238743aad0376eb9db7e4a9bca3829a3a65d7bbb349344a73be + engine: gotpl + home: http://www.mediawiki.org/ + keywords: + - mediawiki + - wiki + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mediawiki + sources: + - https://github.com/bitnami/bitnami-docker-mediawiki + urls: + - https://kubernetes-charts.storage.googleapis.com/mediawiki-0.4.2.tgz + version: 0.4.2 + - created: 2016-12-15T21:18:24.670966268Z + description: Extremely powerful, scalable software and a feature-rich wiki implementation + that uses PHP to process and display data stored in a database. + digest: 339a90050d5cf4216140409349a356aa7cd8dc95e2cbdca06e4fdd11e87aa963 + engine: gotpl + home: http://www.mediawiki.org/ + keywords: + - mediawiki + - wiki + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mediawiki + sources: + - https://github.com/bitnami/bitnami-docker-mediawiki + urls: + - https://kubernetes-charts.storage.googleapis.com/mediawiki-0.4.1.tgz + version: 0.4.1 + - created: 2016-12-09T18:48:20.186416136Z + description: Extremely powerful, scalable software and a feature-rich wiki implementation + that uses PHP to process and display data stored in a database. + digest: 9617f13f51f5bb016a072f2a026c627420721a1c5b7cd22f32d6cd0c90f34eda + engine: gotpl + home: http://www.mediawiki.org/ + keywords: + - mediawiki + - wiki + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mediawiki + sources: + - https://github.com/bitnami/bitnami-docker-mediawiki + urls: + - https://kubernetes-charts.storage.googleapis.com/mediawiki-0.4.0.tgz + version: 0.4.0 + memcached: + - created: 2017-04-28T00:18:30.090586195Z + description: Free & open source, high-performance, distributed memory object caching + system. + digest: 36ceb2767094598171b2851ecda54bd43d862b9b81aa4b294f3d8c8d59ddd79c + engine: gotpl + home: http://memcached.org/ + icon: https://upload.wikimedia.org/wikipedia/en/thumb/2/27/Memcached.svg/1024px-Memcached.svg.png + keywords: + - memcached + - cache + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: memcached + sources: + - https://github.com/docker-library/memcached + urls: + - https://kubernetes-charts.storage.googleapis.com/memcached-0.4.1.tgz + version: 0.4.1 + - created: 2017-02-13T04:18:31.539713999Z + description: Chart for Memcached + digest: 2b918dd8129a9d706e58b3de459004e3367c05a162d3e3cdb031cb6818d5f820 + engine: gotpl + home: http://memcached.org/ + keywords: + - memcached + - cache + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: memcached + sources: + - https://github.com/docker-library/memcached + urls: + - https://kubernetes-charts.storage.googleapis.com/memcached-0.4.0.tgz + version: 0.4.0 + minecraft: + - created: 2017-04-28T00:18:30.09103508Z + description: Minecraft server + digest: bc18a8356092c19f39ce94ff34b2160650a7bebca5723fd2e2f4e350c38793c0 + keywords: + - game + - server + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: minecraft + sources: + - https://hub.docker.com/r/itzg/minecraft-server/~/dockerfile/ + - https://github.com/itzg/dockerfiles + urls: + - https://kubernetes-charts.storage.googleapis.com/minecraft-0.1.3.tgz + version: 0.1.3 + - created: 2017-03-16T23:33:31.588714127Z + description: Minecraft server + digest: 5a42451d7c2f69b7b77c40e91ef60ca284798bcab8aa5b97b1f3f2559612d443 + keywords: + - game + - server + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: minecraft + sources: + - https://hub.docker.com/r/itzg/minecraft-server/~/dockerfile/ + - https://github.com/itzg/dockerfiles + urls: + - https://kubernetes-charts.storage.googleapis.com/minecraft-0.1.2.tgz + version: 0.1.2 + - created: 2017-01-30T23:33:28.437640114Z + description: Minecraft server + digest: 87c2ef91c8feaee680bb26ba16362c6b366429e0f54119c40dbf7a5ce3f22553 + keywords: + - game + - server + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: minecraft + sources: + - https://hub.docker.com/r/itzg/minecraft-server/~/dockerfile/ + - https://github.com/itzg/dockerfiles + urls: + - https://kubernetes-charts.storage.googleapis.com/minecraft-0.1.1.tgz + version: 0.1.1 + - created: 2016-12-05T21:03:20.22190695Z + description: Minecraft server + digest: 2cd423a28eb8a0186fba171cc17dcbe6f5a53d1a99e4078f9713afed3b61cce6 + keywords: + - game + - server + maintainers: + - email: gtaylor@gc-taylor.com + name: Greg Taylor + name: minecraft + sources: + - https://hub.docker.com/r/itzg/minecraft-server/~/dockerfile/ + - https://github.com/itzg/dockerfiles + urls: + - https://kubernetes-charts.storage.googleapis.com/minecraft-0.1.0.tgz + version: 0.1.0 + minio: + - apiVersion: v1 + created: 2017-04-28T00:18:30.091526674Z + description: Distributed object storage server built for cloud applications and + devops. + digest: 12eb77d0d25971c86a4df25297eea8d579b4b5dc6599d16f340f553977c53914 + home: https://minio.io + icon: https://www.minio.io/logo/img/logo-dark.svg + keywords: + - storage + - object-storage + - S3 + maintainers: + - email: hello@acale.ph + name: Acaleph + - email: hello@minio.io + name: Minio + name: minio + sources: + - https://github.com/minio/minio + urls: + - https://kubernetes-charts.storage.googleapis.com/minio-0.1.0.tgz + version: 0.1.0 + - apiVersion: v1 + created: 2017-03-16T23:48:28.876000842Z + description: Distributed object storage server built for cloud applications and + devops. + digest: d19b721fcb5f0566cce4a259e296b957ba982e87343947e1cbdbe979c770378d + home: https://minio.io + icon: https://www.minio.io/logo/img/logo-dark.svg + keywords: + - storage + - object-storage + - S3 + maintainers: + - email: hello@acale.ph + name: Acaleph + - email: hello@minio.io + name: Minio + name: minio + sources: + - https://github.com/minio/minio + urls: + - https://kubernetes-charts.storage.googleapis.com/minio-0.0.4.tgz + version: 0.0.4 + - apiVersion: v1 + created: 2017-02-13T04:33:52.302413618Z + description: A Minio Helm chart for Kubernetes + digest: cd58148df0776329fe5f518c542759565cab29dbefbc43f6b0ffdac86c9b31a9 + home: https://minio.io + keywords: + - storage + - object-storage + - S3 + maintainers: + - email: hello@acale.ph + name: Acaleph + - email: hello@minio.io + name: Minio + name: minio + sources: + - https://github.com/minio/minio + urls: + - https://kubernetes-charts.storage.googleapis.com/minio-0.0.3.tgz + version: 0.0.3 + - apiVersion: v1 + created: 2017-02-03T20:18:29.15659791Z + description: A Minio Helm chart for Kubernetes + digest: 699003bf2ef4cbb570580887da980412c1b9d6d173636de5def6053c7ba29a2a + home: https://minio.io + keywords: + - storage + - object-storage + - S3 + maintainers: + - email: hello@acale.ph + name: Acaleph + - email: hello@minio.io + name: Minio + name: minio + sources: + - https://github.com/minio/minio + urls: + - https://kubernetes-charts.storage.googleapis.com/minio-0.0.2.tgz + version: 0.0.2 + - apiVersion: v1 + created: 2017-01-12T02:36:05.500400572Z + description: A Minio Helm chart for Kubernetes + digest: aed17de3622988f8366126e158c740535c8d3bc55a0a85a3dcfabf07ac1395e9 + home: https://minio.io + keywords: + - storage + - object-storage + - S3 + maintainers: + - email: hello@acale.ph + name: Acaleph + name: minio + sources: + - https://github.com/minio/minio + urls: + - https://kubernetes-charts.storage.googleapis.com/minio-0.0.1.tgz + version: 0.0.1 + mongodb: + - created: 2017-04-28T00:18:30.091865909Z + description: NoSQL document-oriented database that stores JSON-like documents + with dynamic schemas, simplifying the integration of data in content-driven + applications. + digest: 979d36b208be9b266c70860d4fe1f9e5130d9d60b3bcbd893132452648dfe27f + engine: gotpl + home: https://mongodb.org + icon: https://bitnami.com/assets/stacks/mongodb/img/mongodb-stack-220x234.png + keywords: + - mongodb + - database + - nosql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mongodb + sources: + - https://github.com/bitnami/bitnami-docker-mongodb + urls: + - https://kubernetes-charts.storage.googleapis.com/mongodb-0.4.9.tgz + version: 0.4.9 + - created: 2017-04-06T10:33:26.324740815Z + description: NoSQL document-oriented database that stores JSON-like documents + with dynamic schemas, simplifying the integration of data in content-driven + applications. + digest: cdc9fc28ff9139fcc6be015177e481f9d3765d6af284dce1999fc334cd7ef3a4 + engine: gotpl + home: https://mongodb.org + icon: https://bitnami.com/assets/stacks/mongodb/img/mongodb-stack-220x234.png + keywords: + - mongodb + - database + - nosql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mongodb + sources: + - https://github.com/bitnami/bitnami-docker-mongodb + urls: + - https://kubernetes-charts.storage.googleapis.com/mongodb-0.4.8.tgz + version: 0.4.8 + - created: 2017-03-08T19:03:31.731176002Z + description: NoSQL document-oriented database that stores JSON-like documents + with dynamic schemas, simplifying the integration of data in content-driven + applications. + digest: 7d334e12acf9327f58f9a890e884a61ad760da2b1081d4a79b5680bee055cdbd + engine: gotpl + home: https://mongodb.org + icon: https://bitnami.com/assets/stacks/mongodb/img/mongodb-stack-220x234.png + keywords: + - mongodb + - database + - nosql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mongodb + sources: + - https://github.com/bitnami/bitnami-docker-mongodb + urls: + - https://kubernetes-charts.storage.googleapis.com/mongodb-0.4.7.tgz + version: 0.4.7 + - created: 2017-02-14T03:48:27.566728756Z + description: NoSQL document-oriented database that stores JSON-like documents + with dynamic schemas, simplifying the integration of data in content-driven + applications. + digest: 27f9071cb81e9d3745776861f453db80b6ab6bf4507809f2e5c59e8a34d44939 + engine: gotpl + home: https://mongodb.org + icon: https://bitnami.com/assets/stacks/mongodb/img/mongodb-stack-220x234.png + keywords: + - mongodb + - database + - nosql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mongodb + sources: + - https://github.com/bitnami/bitnami-docker-mongodb + urls: + - https://kubernetes-charts.storage.googleapis.com/mongodb-0.4.6.tgz + version: 0.4.6 + - created: 2017-02-10T23:18:26.017406698Z + description: Chart for MongoDB + digest: 27a78b0c6300f4567975af18a3ca145940a716a53de42ed89c75872788d2848b + engine: gotpl + home: https://mongodb.org + keywords: + - mongodb + - database + - nosql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mongodb + sources: + - https://github.com/bitnami/bitnami-docker-mongodb + urls: + - https://kubernetes-charts.storage.googleapis.com/mongodb-0.4.5.tgz + version: 0.4.5 + - created: 2017-01-30T23:33:28.438574863Z + description: Chart for MongoDB + digest: 9bcc0e2aa1d7d8f8c2ce43ef9284af39e5794214d185577ed1baff07c1a019f4 + engine: gotpl + home: https://mongodb.org + keywords: + - mongodb + - database + - nosql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mongodb + sources: + - https://github.com/bitnami/bitnami-docker-mongodb + urls: + - https://kubernetes-charts.storage.googleapis.com/mongodb-0.4.4.tgz + version: 0.4.4 + - created: 2017-01-13T20:48:31.52900213Z + description: Chart for MongoDB + digest: be548ec183b8c44f031504864b85b7a0d48d745fa450bf733f89646c9cbbda44 + engine: gotpl + home: https://mongodb.org + keywords: + - mongodb + - database + - nosql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mongodb + sources: + - https://github.com/bitnami/bitnami-docker-mongodb + urls: + - https://kubernetes-charts.storage.googleapis.com/mongodb-0.4.3.tgz + version: 0.4.3 + - created: 2017-01-03T17:48:20.740456601Z + description: Chart for MongoDB + digest: 027dd50ff545309506daa0636a62d633071379040f8be080a403cb6d67399b0d + engine: gotpl + home: https://mongodb.org + keywords: + - mongodb + - database + - nosql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mongodb + sources: + - https://github.com/bitnami/bitnami-docker-mongodb + urls: + - https://kubernetes-charts.storage.googleapis.com/mongodb-0.4.2.tgz + version: 0.4.2 + - created: 2016-12-15T00:48:24.012807516Z + description: Chart for MongoDB + digest: 42e8e56c715ea3bd2b8f9c188f5a9aec48a87654fb5215c35728ddf6c33c7437 + engine: gotpl + home: https://mongodb.org + keywords: + - mongodb + - database + - nosql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mongodb + sources: + - https://github.com/bitnami/bitnami-docker-mongodb + urls: + - https://kubernetes-charts.storage.googleapis.com/mongodb-0.4.1.tgz + version: 0.4.1 + - created: 2016-12-09T18:48:20.187403991Z + description: Chart for MongoDB + digest: d5eabbe99b03b4f7f71c461580564e3d965c2602bfd1be4dd09f1c54c8e7e9db + engine: gotpl + home: https://mongodb.org + keywords: + - mongodb + - database + - nosql + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: mongodb + sources: + - https://github.com/bitnami/bitnami-docker-mongodb + urls: + - https://kubernetes-charts.storage.googleapis.com/mongodb-0.4.0.tgz + version: 0.4.0 + mongodb-replicaset: + - created: 2017-04-28T00:18:30.092344824Z + description: NoSQL document-oriented database that stores JSON-like documents + with dynamic schemas, simplifying the integration of data in content-driven + applications. + digest: 98592fbb471eb98d3c59deb83ed9bd2a808e8df972b21ff183d04fa4659e9a39 + home: https://github.com/mongodb/mongo + icon: https://webassets.mongodb.com/_com_assets/cms/mongodb-logo-rgb-j6w271g1xn.jpg + maintainers: + - email: ramanathana@google.com + name: Anirudh Ramanathan + name: mongodb-replicaset + sources: + - https://github.com/mongodb/mongo + urls: + - https://kubernetes-charts.storage.googleapis.com/mongodb-replicaset-1.0.0.tgz + version: 1.0.0 + moodle: + - created: 2017-04-28T00:18:30.093014917Z + description: Moodle is a learning platform designed to provide educators, administrators + and learners with a single robust, secure and integrated system to create personalised + learning environments + digest: 386bff8ce61cf61961daf8ed6d68a76cd3a360560a08c1fca80bcbd897f11270 + engine: gotpl + home: http://www.moodle.org/ + icon: https://bitnami.com/assets/stacks/moodle/img/moodle-stack-110x117.png + keywords: + - moodle + - learning + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: moodle + sources: + - https://github.com/bitnami/bitnami-docker-moodle + urls: + - https://kubernetes-charts.storage.googleapis.com/moodle-0.1.4.tgz + version: 0.1.4 + - created: 2017-03-31T19:33:30.433327839Z + description: Moodle is a learning platform designed to provide educators, administrators + and learners with a single robust, secure and integrated system to create personalised + learning environments + digest: bd85420a7cefd82e9d96088591601f832ecc60016d6389dbcde51a2050327a66 + engine: gotpl + home: http://www.moodle.org/ + icon: https://bitnami.com/assets/stacks/moodle/img/moodle-stack-110x117.png + keywords: + - moodle + - learning + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: moodle + sources: + - https://github.com/bitnami/bitnami-docker-moodle + urls: + - https://kubernetes-charts.storage.googleapis.com/moodle-0.1.3.tgz + version: 0.1.3 + - created: 2017-03-26T18:03:33.791615833Z + description: Moodle is a learning platform designed to provide educators, administrators + and learners with a single robust, secure and integrated system to create personalised + learning environments + digest: 8656c544a71fa8cc4ac23380e999e072740ec8e481a22aff86517d8362e70121 + engine: gotpl + home: http://www.moodle.org/ + icon: https://bitnami.com/assets/stacks/moodle/img/moodle-stack-110x117.png + keywords: + - moodle + - learning + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: moodle + sources: + - https://github.com/bitnami/bitnami-docker-moodle + urls: + - https://kubernetes-charts.storage.googleapis.com/moodle-0.1.2.tgz + version: 0.1.2 + mysql: + - created: 2017-04-28T00:18:30.093353908Z + description: Fast, reliable, scalable, and easy to use open-source relational + database system. + digest: 2de7736158326da89faed2e5af952b4c7288f61bd96377ef345a99b4b271a3e7 + engine: gotpl + home: https://www.mysql.com/ + icon: https://www.mysql.com/common/logos/logo-mysql-170x115.png + keywords: + - mysql + - database + - sql + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: mysql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/mysql-0.2.6.tgz + version: 0.2.6 + - created: 2017-04-13T05:18:28.91694371Z + description: Fast, reliable, scalable, and easy to use open-source relational + database system. + digest: 66b9a6787a36c72095c24499a45f2d3bfc700e31420a8926d09c029604ac4c98 + engine: gotpl + home: https://www.mysql.com/ + icon: https://www.mysql.com/common/logos/logo-mysql-170x115.png + keywords: + - mysql + - database + - sql + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: mysql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/mysql-0.2.5.tgz + version: 0.2.5 + - created: 2017-02-13T04:18:31.541320579Z + description: Chart for MySQL + digest: 3653a2d111ca60287ffbf10cbbb3c268dcb8666422bf5518d37adb9b2f131f7c + engine: gotpl + home: https://www.mysql.com/ + keywords: + - mysql + - database + - sql + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: mysql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/mysql-0.2.4.tgz + version: 0.2.4 + - created: 2017-01-27T22:33:30.41494884Z + description: Chart for MySQL + digest: 1244814f3490d23172a923e52339ad8b126f3037483db462591405863884e7ce + engine: gotpl + home: https://www.mysql.com/ + keywords: + - mysql + - database + - sql + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: mysql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/mysql-0.2.3.tgz + version: 0.2.3 + - created: 2016-12-21T19:33:19.335178436Z + description: Chart for MySQL + digest: 5dfdd6301aa5c7424c5ecc649ac3038ea72afd0e25d4c350c79e8ba84fe15faf + engine: gotpl + home: https://www.mysql.com/ + keywords: + - mysql + - database + - sql + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: mysql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/mysql-0.2.2.tgz + version: 0.2.2 + - created: 2016-12-09T18:48:20.187750412Z + description: Chart for MySQL + digest: 3dd20c2ed2faf64b9f940e813b18d7fa1c18c1b86101de453c7c836940e05680 + engine: gotpl + home: https://www.mysql.com/ + keywords: + - mysql + - database + - sql + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: mysql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/mysql-0.2.1.tgz + version: 0.2.1 + - created: 2016-11-04T14:18:20.013918541Z + description: Chart for MySQL + digest: 9723417e4d71713ed87b701eff52a1a74abea64c3cf852833b1e9bb96ff6fd55 + engine: gotpl + home: https://www.mysql.com/ + keywords: + - mysql + - database + - sql + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: mysql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/mysql-0.2.0.tgz + version: 0.2.0 + - created: 2016-11-03T03:18:19.715713217Z + description: Chart for MySQL + digest: fef93423760265f8bb3aedf9a922ed0169e018071ea467f22c17527006ae6a60 + engine: gotpl + home: https://www.mysql.com/ + keywords: + - mysql + - database + - sql + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: mysql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/mysql-0.1.2.tgz + version: 0.1.2 + - created: 2016-10-19T18:33:14.866729383Z + description: Chart for MySQL + digest: 3cb4495336e12d4fea28a1f7e3f02bbb18249582227866088cf6ac89587a2527 + engine: gotpl + home: https://www.mysql.com/ + keywords: + - mysql + - database + - sql + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: mysql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/mysql-0.1.1.tgz + version: 0.1.1 + - created: 2016-10-19T00:03:14.031801762Z + description: Chart for MySQL + digest: cba3eff1710520dbfbbeca2b0f9a754e0ddc172eb83ce51211606387955a6572 + engine: gotpl + home: https://www.mysql.com/ + keywords: + - mysql + - database + - sql + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: mysql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/mysql-0.1.0.tgz + version: 0.1.0 + namerd: + - apiVersion: v1 + created: 2017-04-28T00:18:30.093626863Z + description: Service that manages routing for multiple linkerd instances + digest: 52164352b00a196135a608198d12748d063965cfde016dc8a4fdc9021587bbeb + home: https://linkerd.io/in-depth/namerd/ + icon: https://pbs.twimg.com/profile_images/690258997237014528/KNgQd9GL_400x400.png + maintainers: + - email: knoxville@gmail.com + name: Sean Knox + name: namerd + sources: + - https://github.com/linkerd/linkerd + urls: + - https://kubernetes-charts.storage.googleapis.com/namerd-0.1.0.tgz + version: 0.1.0 + nginx-ingress: + - created: 2017-04-28T00:18:30.094151336Z + description: An nginx Ingress controller that uses ConfigMap to store the nginx + configuration. + digest: 2d6183d368b3993b4fdfd7108531067b928083b3db6dc30eab3f9c3a8212df9b + engine: gotpl + icon: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/500px-Nginx_logo.svg.png + keywords: + - ingress + - nginx + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + - email: mgoodness@gmail.com + name: Michael Goodness + - email: chance.zibolski@coreos.com + name: Chance Zibolski + name: nginx-ingress + sources: + - https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/nginx-ingress-0.3.2.tgz + version: 0.3.2 + - created: 2017-04-03T22:33:26.678796256Z + description: An nginx Ingress controller that uses ConfigMap to store the nginx + configuration. + digest: 4e4632273eb5db95e525a8899b9f6f1697db241c2ff1ccb7456e0fc916bb75c2 + engine: gotpl + icon: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/500px-Nginx_logo.svg.png + keywords: + - ingress + - nginx + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + - email: mgoodness@gmail.com + name: Michael Goodness + - email: chance.zibolski@coreos.com + name: Chance Zibolski + name: nginx-ingress + sources: + - https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/nginx-ingress-0.3.1.tgz + version: 0.3.1 + - created: 2017-03-10T17:03:37.208481141Z + description: An nginx Ingress controller that uses ConfigMap to store the nginx + configuration. + digest: 731823c88a849f945f405c192d92daf27afad37af76befb1eb92251240de29d7 + engine: gotpl + icon: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/500px-Nginx_logo.svg.png + keywords: + - ingress + - nginx + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + - email: mgoodness@gmail.com + name: Michael Goodness + name: nginx-ingress + sources: + - https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/nginx-ingress-0.3.0.tgz + version: 0.3.0 + nginx-lego: + - created: 2017-04-28T00:18:30.094506147Z + description: Chart for nginx-ingress-controller and kube-lego + digest: da173cc1a9313ea0b11f5fb7aa67a20a2ac797b2f129a079c06284e8a9765f21 + engine: gotpl + keywords: + - kube-lego + - nginx-ingress-controller + - nginx + - letsencrypt + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + name: nginx-lego + sources: + - https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx + - https://github.com/jetstack/kube-lego/tree/master/examples/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/nginx-lego-0.2.1.tgz + version: 0.2.1 + - created: 2017-03-02T18:48:30.43738595Z + description: Chart for nginx-ingress-controller and kube-lego + digest: 9a8ea81371900d2c7931b0143f991ef0fde41038d26a968628008aef14ec08ef + engine: gotpl + keywords: + - kube-lego + - nginx-ingress-controller + - nginx + - letsencrypt + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + name: nginx-lego + sources: + - https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx + - https://github.com/jetstack/kube-lego/tree/master/examples/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/nginx-lego-0.2.0.tgz + version: 0.2.0 + - created: 2017-01-12T02:52:37.835917781Z + description: Chart for nginx-ingress-controller and kube-lego + digest: 2dee942e546940beb8301a94a1a51e22c7a38b4c5592701528149dfaa83e1bb6 + engine: gotpl + keywords: + - kube-lego + - nginx-ingress-controller + - nginx + - letsencrypt + maintainers: + - email: jack.zampolin@gmail.com + name: Jack Zampolin + name: nginx-lego + sources: + - https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx + - https://github.com/jetstack/kube-lego/tree/master/examples/nginx + urls: + - https://kubernetes-charts.storage.googleapis.com/nginx-lego-0.1.0.tgz + version: 0.1.0 + odoo: + - created: 2017-04-28T00:18:30.095144247Z + description: A suite of web based open source business apps. + digest: 439b9160c3226a0cf6b848a5ac921307e5100ffa36e03e3697619a6c968eec3b + engine: gotpl + home: https://www.odoo.com/ + icon: https://bitnami.com/assets/stacks/odoo/img/odoo-stack-110x117.png + keywords: + - odoo + - crm + - www + - http + - web + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: odoo + sources: + - https://github.com/bitnami/bitnami-docker-odoo + urls: + - https://kubernetes-charts.storage.googleapis.com/odoo-0.5.0.tgz + version: 0.5.0 + - created: 2017-04-20T11:48:30.777572861Z + description: A suite of web based open source business apps. + digest: 4aeba5cf600c9552d3a0ace00b4880aa27d8b2c2aec1b7dc9ebad04f2152d165 + engine: gotpl + home: https://www.odoo.com/ + icon: https://bitnami.com/assets/stacks/odoo/img/odoo-stack-110x117.png + keywords: + - odoo + - crm + - www + - http + - web + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: odoo + sources: + - https://github.com/bitnami/bitnami-docker-odoo + urls: + - https://kubernetes-charts.storage.googleapis.com/odoo-0.4.5.tgz + version: 0.4.5 + - created: 2017-04-19T19:48:30.479799003Z + description: A suite of web based open source business apps. + digest: 74dff526f84c50445e0cc0fb602679c68941e9b93d9410ce66a6f3713a71f39d + engine: gotpl + home: https://www.odoo.com/ + icon: https://bitnami.com/assets/stacks/odoo/img/odoo-stack-110x117.png + keywords: + - odoo + - crm + - www + - http + - web + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: odoo + sources: + - https://github.com/bitnami/bitnami-docker-odoo + urls: + - https://kubernetes-charts.storage.googleapis.com/odoo-0.4.4.tgz + version: 0.4.4 + - created: 2017-03-23T21:18:31.859026332Z + description: A suite of web based open source business apps. + digest: 6bdd86f83c41f079218105162f1e86cf572d005174c0688a2201c59d20cf1e55 + engine: gotpl + home: https://www.odoo.com/ + icon: https://bitnami.com/assets/stacks/odoo/img/odoo-stack-110x117.png + keywords: + - odoo + - crm + - www + - http + - web + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: odoo + sources: + - https://github.com/bitnami/bitnami-docker-odoo + urls: + - https://kubernetes-charts.storage.googleapis.com/odoo-0.4.3.tgz + version: 0.4.3 + - created: 2017-03-23T00:18:30.533565303Z + description: A suite of web based open source business apps. + digest: 9a7723d94d17ff18347074d5a1d6b42530466a8a4882981178f4856138f44072 + engine: gotpl + home: https://www.odoo.com/ + icon: https://bitnami.com/assets/stacks/odoo/img/odoo-stack-110x117.png + keywords: + - odoo + - crm + - www + - http + - web + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: odoo + sources: + - https://github.com/bitnami/bitnami-docker-odoo + urls: + - https://kubernetes-charts.storage.googleapis.com/odoo-0.4.2.tgz + version: 0.4.2 + - created: 2017-03-17T22:48:29.256461745Z + description: A suite of web based open source business apps. + digest: 1339b6efbc6b4df849c460ddbcade9f81ede3a6a800e9566f54acc1c52dccb4b + engine: gotpl + home: https://www.odoo.com/ + icon: https://bitnami.com/assets/stacks/odoo/img/odoo-stack-110x117.png + keywords: + - odoo + - crm + - www + - http + - web + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: odoo + sources: + - https://github.com/bitnami/bitnami-docker-odoo + urls: + - https://kubernetes-charts.storage.googleapis.com/odoo-0.4.1.tgz + version: 0.4.1 + - created: 2017-03-08T19:03:31.734764598Z + description: A suite of web based open source business apps. + digest: 15b1d5339086427990fb3d0ee8f65e768b398195f2db63b0356e6c79f4d4b981 + engine: gotpl + home: https://www.odoo.com/ + icon: https://bitnami.com/assets/stacks/odoo/img/odoo-stack-110x117.png + keywords: + - odoo + - crm + - www + - http + - web + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: odoo + sources: + - https://github.com/bitnami/bitnami-docker-odoo + urls: + - https://kubernetes-charts.storage.googleapis.com/odoo-0.4.0.tgz + version: 0.4.0 + opencart: + - created: 2017-04-28T00:18:30.095906073Z + description: A free and open source e-commerce platform for online merchants. + It provides a professional and reliable foundation for a successful online store. + digest: a22a7ee46a419b2bc4dd0ba66c3fa294e15f86722944a7bc3cc56cb24f3fa737 + engine: gotpl + home: https://opencart.com/ + icon: https://bitnami.com/assets/stacks/opencart/img/opencart-stack-110x117.png + keywords: + - opencart + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: opencart + sources: + - https://github.com/bitnami/bitnami-docker-opencart + urls: + - https://kubernetes-charts.storage.googleapis.com/opencart-0.4.5.tgz + version: 0.4.5 + - created: 2017-04-06T11:18:27.44256999Z + description: A free and open source e-commerce platform for online merchants. + It provides a professional and reliable foundation for a successful online store. + digest: 0abb5c30e0eef2a06b36b83b0c11f4bcf3df14ea416c5e49cb821c78e6783bce + engine: gotpl + home: https://opencart.com/ + icon: https://bitnami.com/assets/stacks/opencart/img/opencart-stack-110x117.png + keywords: + - opencart + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: opencart + sources: + - https://github.com/bitnami/bitnami-docker-opencart + urls: + - https://kubernetes-charts.storage.googleapis.com/opencart-0.4.4.tgz + version: 0.4.4 + - created: 2017-03-02T19:33:28.187180475Z + description: A free and open source e-commerce platform for online merchants. + It provides a professional and reliable foundation for a successful online store. + digest: 1a80dfcec98c190b8710d7db47c22c3882a05a046b3d767c84094cef983a1556 + engine: gotpl + home: https://opencart.com/ + icon: https://bitnami.com/assets/stacks/opencart/img/opencart-stack-110x117.png + keywords: + - opencart + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: opencart + sources: + - https://github.com/bitnami/bitnami-docker-opencart + urls: + - https://kubernetes-charts.storage.googleapis.com/opencart-0.4.3.tgz + version: 0.4.3 + - created: 2017-02-23T02:33:30.963491381Z + description: A free and open source e-commerce platform for online merchants. + It provides a professional and reliable foundation for a successful online store. + digest: d3092c4ed82db569937e435d3dc6bcddce420540bf340dd54a554a57b62c6aaa + engine: gotpl + home: https://opencart.com/ + icon: https://bitnami.com/assets/stacks/opencart/img/opencart-stack-110x117.png + keywords: + - opencart + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: opencart + sources: + - https://github.com/bitnami/bitnami-docker-opencart + urls: + - https://kubernetes-charts.storage.googleapis.com/opencart-0.4.2.tgz + version: 0.4.2 + - created: 2017-01-21T00:18:31.354317974Z + description: A free and open source e-commerce platform for online merchants. + It provides a professional and reliable foundation for a successful online store. + digest: afbaa2517e811990bc4b31495a4634b6399615493cf344215a5658de2f33575b + engine: gotpl + home: https://opencart.com/ + icon: https://bitnami.com/assets/stacks/opencart/img/opencart-stack-110x117.png + keywords: + - opencart + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: opencart + sources: + - https://github.com/bitnami/bitnami-docker-opencart + urls: + - https://kubernetes-charts.storage.googleapis.com/opencart-0.4.1.tgz + version: 0.4.1 + - created: 2017-01-04T00:48:19.745672724Z + description: A free and open source e-commerce platform for online merchants. + It provides a professional and reliable foundation for a successful online store. + digest: f0e46cf67f8594c6d92f02fad4a23fdf7aa94bdb145bfde39436e17f0a8930f5 + engine: gotpl + home: https://opencart.com/ + icon: https://bitnami.com/assets/stacks/opencart/img/opencart-stack-110x117.png + keywords: + - opencart + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: opencart + sources: + - https://github.com/bitnami/bitnami-docker-opencart + urls: + - https://kubernetes-charts.storage.googleapis.com/opencart-0.4.0.tgz + version: 0.4.0 + openvpn: + - apiVersion: v1 + created: 2017-04-28T00:18:30.096266269Z + description: A Helm chart to install an openvpn server inside a kubernetes cluster. Certificate + generation is also part of the deployment, and this chart will generate client + keys as needed. + digest: 403a80ed3f204442afe4236e275035bf39f9e1f6af8d48153d6698f51efeb16d + home: https://openvpn.net/index.php/open-source.html + icon: https://forums.openvpn.net/styles/openvpn/theme/images/ovpnlogo.png + keywords: + - openvpn + - vpn + - tunnel + - network + - service + - connectivity + - encryption + maintainers: + - email: john.felten@gmail.com + name: John Felten + name: openvpn + urls: + - https://kubernetes-charts.storage.googleapis.com/openvpn-1.0.2.tgz + version: 1.0.2 + - apiVersion: v1 + created: 2017-04-06T10:18:27.592699587Z + description: A Helm chart to install an openvpn server inside a kubernetes cluster. Certificate + generation is also part of the deployment, and this chart will generate client + keys as needed. + digest: c92674b7c6391e412864a3aa73af1a2d89f3b4e768bb459118b8e75b9750fc10 + home: https://openvpn.net/index.php/open-source.html + icon: https://forums.openvpn.net/styles/openvpn/theme/images/ovpnlogo.png + keywords: + - openvpn + - vpn + - tunnel + - network + - service + - connectivity + - encryption + maintainers: + - email: john.felten@gmail.com + name: John Felten + name: openvpn + urls: + - https://kubernetes-charts.storage.googleapis.com/openvpn-1.0.1.tgz + version: 1.0.1 + - apiVersion: v1 + created: 2017-01-27T21:48:32.078827588Z + description: A Helm chart to install an openvpn server inside a kubernetes cluster. Certificate + generation is also part of the deployment, and this chart will generate client + keys as needed. + digest: a12cfddce900c8a4ef6cea0cef5426d5fb23c657cdab433f9307f6d048273f6b + home: https://openvpn.net/index.php/open-source.html + icon: https://forums.openvpn.net/styles/openvpn/theme/images/ovpnlogo.png + keywords: + - openvpn + - vpn + - tunnel + - network + - service + - connectivity + - encryption + maintainers: + - email: john.felten@gmail.com + name: John Felten + name: openvpn + urls: + - https://kubernetes-charts.storage.googleapis.com/openvpn-1.0.0.tgz + version: 1.0.0 + orangehrm: + - created: 2017-04-28T00:18:30.097427186Z + description: OrangeHRM is a free HR management system that offers a wealth of + modules to suit the needs of your business. + digest: d796649de3610a41a9f92b0ee3f5ce327a250d1b86d7a4c76fd46a31144c59e5 + engine: gotpl + home: https://www.orangehrm.com + icon: https://bitnami.com/assets/stacks/orangehrm/img/orangehrm-stack-110x117.png + keywords: + - orangehrm + - http + - https + - web + - application + - php + - human resources + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: orangehrm + sources: + - https://github.com/bitnami/bitnami-docker-orangehrm + urls: + - https://kubernetes-charts.storage.googleapis.com/orangehrm-0.4.5.tgz + version: 0.4.5 + - created: 2017-04-12T21:03:28.668395677Z + description: OrangeHRM is a free HR management system that offers a wealth of + modules to suit the needs of your business. + digest: 9c954806dfd415ee07cbcc6ee5e82eeeebeb765ecfe173ba80c0003b1d0be504 + engine: gotpl + home: https://www.orangehrm.com + icon: https://bitnami.com/assets/stacks/orangehrm/img/orangehrm-stack-110x117.png + keywords: + - orangehrm + - http + - https + - web + - application + - php + - human resources + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: orangehrm + sources: + - https://github.com/bitnami/bitnami-docker-orangehrm + urls: + - https://kubernetes-charts.storage.googleapis.com/orangehrm-0.4.4.tgz + version: 0.4.4 + - created: 2017-03-18T18:33:36.171180792Z + description: OrangeHRM is a free HR management system that offers a wealth of + modules to suit the needs of your business. + digest: 87483fe0c39f63c61549a85103b9423b30ac4bfe2b19a7af083eaf7dd3491ce2 + engine: gotpl + home: https://www.orangehrm.com + icon: https://bitnami.com/assets/stacks/orangehrm/img/orangehrm-stack-110x117.png + keywords: + - orangehrm + - http + - https + - web + - application + - php + - human resources + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: orangehrm + sources: + - https://github.com/bitnami/bitnami-docker-orangehrm + urls: + - https://kubernetes-charts.storage.googleapis.com/orangehrm-0.4.3.tgz + version: 0.4.3 + - created: 2017-03-02T19:33:28.188778055Z + description: OrangeHRM is a free HR management system that offers a wealth of + modules to suit the needs of your business. + digest: d03e9f261dd50212f6c2c0ecc3a84cbabda89493d8bfc28ad95c6c9a6a195af9 + engine: gotpl + home: https://www.orangehrm.com + icon: https://bitnami.com/assets/stacks/orangehrm/img/orangehrm-stack-110x117.png + keywords: + - orangehrm + - http + - https + - web + - application + - php + - human resources + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: orangehrm + sources: + - https://github.com/bitnami/bitnami-docker-orangehrm + urls: + - https://kubernetes-charts.storage.googleapis.com/orangehrm-0.4.2.tgz + version: 0.4.2 + - created: 2017-02-23T02:33:30.964778113Z + description: OrangeHRM is a free HR management system that offers a wealth of + modules to suit the needs of your business. + digest: b5e5ed301b5321a99a7147173ec6fa7cb471879a585b9af0e8ac2741f0409e48 + engine: gotpl + home: https://www.orangehrm.com + icon: https://bitnami.com/assets/stacks/orangehrm/img/orangehrm-stack-110x117.png + keywords: + - orangehrm + - http + - https + - web + - application + - php + - human resources + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: orangehrm + sources: + - https://github.com/bitnami/bitnami-docker-orangehrm + urls: + - https://kubernetes-charts.storage.googleapis.com/orangehrm-0.4.1.tgz + version: 0.4.1 + - created: 2017-02-01T00:48:29.581953712Z + description: OrangeHRM is a free HR management system that offers a wealth of + modules to suit the needs of your business. + digest: 4ca6ccafc5bc408cb9e61139b8914468e0d8eeed7bffb62eea51c6e40697e8dd + engine: gotpl + home: https://www.orangehrm.com + icon: https://bitnami.com/assets/stacks/orangehrm/img/orangehrm-stack-110x117.png + keywords: + - orangehrm + - http + - https + - web + - application + - php + - human resources + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: orangehrm + sources: + - https://github.com/bitnami/bitnami-docker-orangehrm + urls: + - https://kubernetes-charts.storage.googleapis.com/orangehrm-0.4.0.tgz + version: 0.4.0 + osclass: + - created: 2017-04-28T00:18:30.098620601Z + description: Osclass is a php script that allows you to quickly create and manage + your own free classifieds site. + digest: 23472bb37c094dad3122a96f6fd6a3967f1d41547121ecf2622b557f2fc5da8b + engine: gotpl + home: https://osclass.org/ + icon: https://bitnami.com/assets/stacks/osclass/img/osclass-stack-110x117.png + keywords: + - osclass + - classifieds + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: osclass + sources: + - https://github.com/bitnami/bitnami-docker-osclass + urls: + - https://kubernetes-charts.storage.googleapis.com/osclass-0.4.1.tgz + version: 0.4.1 + - created: 2017-02-23T02:33:30.965596248Z + description: Osclass is a php script that allows you to quickly create and manage + your own free classifieds site. + digest: 7c21cef0b281e3da5b3c9b60940c1b010c34fe866c95615b7d0afd10c480178c + engine: gotpl + home: https://osclass.org/ + icon: https://bitnami.com/assets/stacks/osclass/img/osclass-stack-110x117.png + keywords: + - osclass + - classifieds + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: osclass + sources: + - https://github.com/bitnami/bitnami-docker-osclass + urls: + - https://kubernetes-charts.storage.googleapis.com/osclass-0.4.0.tgz + version: 0.4.0 + owncloud: + - created: 2017-04-28T00:18:30.099329236Z + description: A file sharing server that puts the control and security of your + own data back into your hands. + digest: 9beee22ffa4b4eae5e6f8da5734e08a9455a063299b33d4350dea91050ae9a25 + engine: gotpl + home: https://owncloud.org/ + icon: https://bitnami.com/assets/stacks/owncloud/img/owncloud-stack-220x234.png + keywords: + - owncloud + - storage + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: owncloud + sources: + - https://github.com/bitnami/bitnami-docker-owncloud + urls: + - https://kubernetes-charts.storage.googleapis.com/owncloud-0.4.7.tgz + version: 0.4.7 + - created: 2017-04-20T16:18:33.358391215Z + description: A file sharing server that puts the control and security of your + own data back into your hands. + digest: 97b3574369c1d690ce8787588668070451c559ac06b6b69942e9905cb6ec94ad + engine: gotpl + home: https://owncloud.org/ + icon: https://bitnami.com/assets/stacks/owncloud/img/owncloud-stack-220x234.png + keywords: + - owncloud + - storage + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: owncloud + sources: + - https://github.com/bitnami/bitnami-docker-owncloud + urls: + - https://kubernetes-charts.storage.googleapis.com/owncloud-0.4.6.tgz + version: 0.4.6 + - created: 2017-03-23T21:18:31.86258413Z + description: A file sharing server that puts the control and security of your + own data back into your hands. + digest: fb78c2ea47996c6781ddfe2dca6aea87cbb8b895e1fc5fea404aa28735d4a2ec + engine: gotpl + home: https://owncloud.org/ + icon: https://bitnami.com/assets/stacks/owncloud/img/owncloud-stack-220x234.png + keywords: + - owncloud + - storage + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: owncloud + sources: + - https://github.com/bitnami/bitnami-docker-owncloud + urls: + - https://kubernetes-charts.storage.googleapis.com/owncloud-0.4.5.tgz + version: 0.4.5 + - created: 2017-03-08T19:03:31.738784117Z + description: A file sharing server that puts the control and security of your + own data back into your hands. + digest: 07e18bccf9dc0a8fcff42e97c422520530c2c5057c2a9c14767842609bcaa7ac + engine: gotpl + home: https://owncloud.org/ + icon: https://bitnami.com/assets/stacks/owncloud/img/owncloud-stack-220x234.png + keywords: + - owncloud + - storage + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: owncloud + sources: + - https://github.com/bitnami/bitnami-docker-owncloud + urls: + - https://kubernetes-charts.storage.googleapis.com/owncloud-0.4.4.tgz + version: 0.4.4 + - created: 2017-02-11T03:18:26.536480213Z + description: A file sharing server that puts the control and security of your + own data back into your hands. + digest: 4e534bdc4be184c59fbcbcff4641f2bfa341cd7f4ed3668912cd47c1336f5dea + engine: gotpl + home: https://owncloud.org/ + keywords: + - owncloud + - storage + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: owncloud + sources: + - https://github.com/bitnami/bitnami-docker-owncloud + urls: + - https://kubernetes-charts.storage.googleapis.com/owncloud-0.4.3.tgz + version: 0.4.3 + - created: 2017-01-30T23:48:29.172608299Z + description: A file sharing server that puts the control and security of your + own data back into your hands. + digest: b41eb1fc1eea6311f3ad15b459f99b77e96b944b81ea50ebccc941191d496141 + engine: gotpl + home: https://owncloud.org/ + keywords: + - owncloud + - storage + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: owncloud + sources: + - https://github.com/bitnami/bitnami-docker-owncloud + urls: + - https://kubernetes-charts.storage.googleapis.com/owncloud-0.4.2.tgz + version: 0.4.2 + - created: 2017-01-21T00:18:31.35624854Z + description: A file sharing server that puts the control and security of your + own data back into your hands. + digest: 89901fc256d6a4f878d77b51bf23eb77358dedb040052b34a09cbe9ca607487f + engine: gotpl + home: https://owncloud.org/ + keywords: + - owncloud + - storage + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: owncloud + sources: + - https://github.com/bitnami/bitnami-docker-owncloud + urls: + - https://kubernetes-charts.storage.googleapis.com/owncloud-0.4.1.tgz + version: 0.4.1 + - created: 2016-12-21T18:33:20.278724682Z + description: A file sharing server that puts the control and security of your + own data back into your hands. + digest: 7ec2dfe27bf42e8ee2e0672964decc2fbec94ec4fb60af2f3e9e91e13fdae08a + engine: gotpl + home: https://owncloud.org/ + keywords: + - owncloud + - storage + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: owncloud + sources: + - https://github.com/bitnami/bitnami-docker-owncloud + urls: + - https://kubernetes-charts.storage.googleapis.com/owncloud-0.4.0.tgz + version: 0.4.0 + percona: + - created: 2017-04-28T00:18:30.099763589Z + description: free, fully compatible, enhanced, open source drop-in replacement + for MySQL + digest: b10837a3de2492c2826aaf9ab740314ffa3f8c6110568b0a88e142791abb0e96 + engine: gotpl + home: https://www.percona.com/ + icon: https://www.percona.com/sites/all/themes/percona2015/logo.png + keywords: + - mysql + - percona + - database + - sql + maintainers: + - email: patg@patg.net + name: Patrick Galbraith + name: percona + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/percona + urls: + - https://kubernetes-charts.storage.googleapis.com/percona-0.1.0.tgz + version: 0.1.0 + phabricator: + - created: 2017-04-28T00:18:30.100508372Z + description: Collection of open source web applications that help software companies + build better software. + digest: 6c53fef9ac9c246983a26d2e8b9e8f032b87706c09667edb9f9bb62dfa822e88 + engine: gotpl + home: https://www.phacility.com/phabricator/ + icon: https://bitnami.com/assets/stacks/phabricator/img/phabricator-stack-110x117.png + keywords: + - phabricator + - http + - https + - web + - application + - collaboration + - project management + - bug tracking + - code review + - wiki + - git + - mercurial + - subversion + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phabricator + sources: + - https://github.com/bitnami/bitnami-docker-phabricator + urls: + - https://kubernetes-charts.storage.googleapis.com/phabricator-0.4.5.tgz + version: 0.4.5 + - created: 2017-04-06T10:33:26.333625406Z + description: Collection of open source web applications that help software companies + build better software. + digest: ef626563185a4b41ff7da03a9bd5548903061c6140d2d65300e4b1c1d39a2f28 + engine: gotpl + home: https://www.phacility.com/phabricator/ + icon: https://bitnami.com/assets/stacks/phabricator/img/phabricator-stack-110x117.png + keywords: + - phabricator + - http + - https + - web + - application + - collaboration + - project management + - bug tracking + - code review + - wiki + - git + - mercurial + - subversion + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phabricator + sources: + - https://github.com/bitnami/bitnami-docker-phabricator + urls: + - https://kubernetes-charts.storage.googleapis.com/phabricator-0.4.4.tgz + version: 0.4.4 + - created: 2017-03-02T19:33:28.191377992Z + description: Collection of open source web applications that help software companies + build better software. + digest: 544373e984918da349351f05fdb7a8cf0c695726890bcd4cc348e786e1c55d57 + engine: gotpl + home: https://www.phacility.com/phabricator/ + icon: https://bitnami.com/assets/stacks/phabricator/img/phabricator-stack-110x117.png + keywords: + - phabricator + - http + - https + - web + - application + - collaboration + - project management + - bug tracking + - code review + - wiki + - git + - mercurial + - subversion + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phabricator + sources: + - https://github.com/bitnami/bitnami-docker-phabricator + urls: + - https://kubernetes-charts.storage.googleapis.com/phabricator-0.4.3.tgz + version: 0.4.3 + - created: 2017-02-23T02:33:30.967143259Z + description: Collection of open source web applications that help software companies + build better software. + digest: 657b118031c1513b95268915ef4f68f5453f2b21ca5a919e9a370facb439dfe5 + engine: gotpl + home: https://www.phacility.com/phabricator/ + icon: https://bitnami.com/assets/stacks/phabricator/img/phabricator-stack-110x117.png + keywords: + - phabricator + - http + - https + - web + - application + - collaboration + - project management + - bug tracking + - code review + - wiki + - git + - mercurial + - subversion + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phabricator + sources: + - https://github.com/bitnami/bitnami-docker-phabricator + urls: + - https://kubernetes-charts.storage.googleapis.com/phabricator-0.4.2.tgz + version: 0.4.2 + - created: 2017-01-21T00:18:31.358403062Z + description: Collection of open source web applications that help software companies + build better software. + digest: 77603dd383c0674e829fa4aa2ca0d33ce61884df6a3ce68f9e165e7802e7eacc + engine: gotpl + home: https://www.phacility.com/phabricator/ + icon: https://bitnami.com/assets/stacks/phabricator/img/phabricator-stack-110x117.png + keywords: + - phabricator + - http + - https + - web + - application + - collaboration + - project management + - bug tracking + - code review + - wiki + - git + - mercurial + - subversion + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phabricator + sources: + - https://github.com/bitnami/bitnami-docker-phabricator + urls: + - https://kubernetes-charts.storage.googleapis.com/phabricator-0.4.1.tgz + version: 0.4.1 + - created: 2017-01-04T00:48:19.747640048Z + description: Collection of open source web applications that help software companies + build better software. + digest: e4f0f5322bac2a2bed822eb8065eec6e29716310af1623975f1ad0ef2b448c66 + engine: gotpl + home: https://www.phacility.com/phabricator/ + icon: https://bitnami.com/assets/stacks/phabricator/img/phabricator-stack-110x117.png + keywords: + - phabricator + - http + - https + - web + - application + - collaboration + - project management + - bug tracking + - code review + - wiki + - git + - mercurial + - subversion + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phabricator + sources: + - https://github.com/bitnami/bitnami-docker-phabricator + urls: + - https://kubernetes-charts.storage.googleapis.com/phabricator-0.4.0.tgz + version: 0.4.0 + phpbb: + - created: 2017-04-28T00:18:30.10119319Z + description: Community forum that supports the notion of users and groups, file + attachments, full-text search, notifications and more. + digest: d4e97de68d28acd69cb655c7fa44cb8829367ce3a7b20ecbf151f1bb2b10d1cb + engine: gotpl + home: https://www.phpbb.com/ + icon: https://bitnami.com/assets/stacks/phpbb/img/phpbb-stack-220x234.png + keywords: + - phpbb + - forum + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phpbb + sources: + - https://github.com/bitnami/bitnami-docker-phpbb + urls: + - https://kubernetes-charts.storage.googleapis.com/phpbb-0.4.7.tgz + version: 0.4.7 + - created: 2017-04-13T05:18:28.926003844Z + description: Community forum that supports the notion of users and groups, file + attachments, full-text search, notifications and more. + digest: 30732d5c200ef312a50f5a89a222a959c99b0a08af87f0c312c3699bb2c56082 + engine: gotpl + home: https://www.phpbb.com/ + icon: https://bitnami.com/assets/stacks/phpbb/img/phpbb-stack-220x234.png + keywords: + - phpbb + - forum + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phpbb + sources: + - https://github.com/bitnami/bitnami-docker-phpbb + urls: + - https://kubernetes-charts.storage.googleapis.com/phpbb-0.4.6.tgz + version: 0.4.6 + - created: 2017-03-02T19:33:28.19218227Z + description: Community forum that supports the notion of users and groups, file + attachments, full-text search, notifications and more. + digest: ed994a70f454f325cf677bdcc0a09aa66b01c7343a624a3304b88148eafa0dd4 + engine: gotpl + home: https://www.phpbb.com/ + icon: https://bitnami.com/assets/stacks/phpbb/img/phpbb-stack-220x234.png + keywords: + - phpbb + - forum + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phpbb + sources: + - https://github.com/bitnami/bitnami-docker-phpbb + urls: + - https://kubernetes-charts.storage.googleapis.com/phpbb-0.4.5.tgz + version: 0.4.5 + - created: 2017-02-23T02:33:30.967854461Z + description: Community forum that supports the notion of users and groups, file + attachments, full-text search, notifications and more. + digest: f50e4b1eb4bf8b2e6815b664e3cfff4bfd7979b650bf1efa709b79c92a8e5dd0 + engine: gotpl + home: https://www.phpbb.com/ + icon: https://bitnami.com/assets/stacks/phpbb/img/phpbb-stack-220x234.png + keywords: + - phpbb + - forum + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phpbb + sources: + - https://github.com/bitnami/bitnami-docker-phpbb + urls: + - https://kubernetes-charts.storage.googleapis.com/phpbb-0.4.4.tgz + version: 0.4.4 + - created: 2017-02-13T17:03:30.134235119Z + description: Community forum that supports the notion of users and groups, file + attachments, full-text search, notifications and more. + digest: c41705e34490d1941adda128b166ef1a327cceb7a447113d2633652f3c85363a + engine: gotpl + home: https://www.phpbb.com/ + icon: https://bitnami.com/assets/stacks/phpbb/img/phpbb-stack-220x234.png + keywords: + - phpbb + - forum + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phpbb + sources: + - https://github.com/bitnami/bitnami-docker-phpbb + urls: + - https://kubernetes-charts.storage.googleapis.com/phpbb-0.4.3.tgz + version: 0.4.3 + - created: 2017-02-13T04:18:31.547850917Z + description: Community forum that supports the notion of users and groups, file + attachments, full-text search, notifications and more. + digest: 77f6dfa8f277b003ba0b8e2ca6d046f6b6526ee7db05e304cbb9924c9fd7d194 + engine: gotpl + home: https://www.phpbb.com/ + keywords: + - phpbb + - forum + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phpbb + sources: + - https://github.com/bitnami/bitnami-docker-phpbb + urls: + - https://kubernetes-charts.storage.googleapis.com/phpbb-0.4.2.tgz + version: 0.4.2 + - created: 2017-01-31T00:03:26.18262303Z + description: Community forum that supports the notion of users and groups, file + attachments, full-text search, notifications and more. + digest: cd6dde525898d91f5f39541ee205e79ba5b8eb7a5b99585141cc88c3a63f5aed + engine: gotpl + home: https://www.phpbb.com/ + keywords: + - phpbb + - forum + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phpbb + sources: + - https://github.com/bitnami/bitnami-docker-phpbb + urls: + - https://kubernetes-charts.storage.googleapis.com/phpbb-0.4.1.tgz + version: 0.4.1 + - created: 2016-12-09T18:48:20.188802837Z + description: Community forum that supports the notion of users and groups, file + attachments, full-text search, notifications and more. + digest: 7e5e8828fdbba9ebc83c95baac4937e569e881d8b68bc79974a0f5d8a2883e13 + engine: gotpl + home: https://www.phpbb.com/ + keywords: + - phpbb + - forum + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: phpbb + sources: + - https://github.com/bitnami/bitnami-docker-phpbb + urls: + - https://kubernetes-charts.storage.googleapis.com/phpbb-0.4.0.tgz + version: 0.4.0 + postgresql: + - created: 2017-04-28T00:18:30.101575321Z + description: Object-relational database management system (ORDBMS) with an emphasis + on extensibility and on standards-compliance. + digest: 60224116f1e803bbf744cb2b3c2d621cfadef709ef0a8c6ed08cbed0f5415915 + engine: gotpl + home: https://www.postgresql.org/ + icon: https://www.postgresql.org/media/img/about/press/elephant.png + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + - name: databus23 + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.6.0.tgz + version: 0.6.0 + - created: 2017-03-16T23:33:31.598678756Z + description: Object-relational database management system (ORDBMS) with an emphasis + on extensibility and on standards-compliance. + digest: abfc2c516cce613f9042eb5d202b01f6766240f54bb3632df9378be033711b30 + engine: gotpl + home: https://www.postgresql.org/ + icon: https://www.postgresql.org/media/img/about/press/elephant.png + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + - name: databus23 + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.5.1.tgz + version: 0.5.1 + - created: 2017-03-15T11:18:31.676836517Z + description: Object-relational database management system (ORDBMS) with an emphasis + on extensibility and on standards-compliance. + digest: 29a90e1b52577e04a42da3ac7464b1b1cf9572b359d7825a375aad122659db55 + engine: gotpl + home: https://www.postgresql.org/ + icon: https://www.postgresql.org/media/img/about/press/elephant.png + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + - name: databus23 + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.5.0.tgz + version: 0.5.0 + - created: 2017-03-15T09:48:31.994004661Z + description: Object-relational database management system (ORDBMS) with an emphasis + on extensibility and on standards-compliance. + digest: 0ca09fbfd539d5258026fcaf7b640f88295271f88773acfa540dcd55cfaf6036 + engine: gotpl + home: https://www.postgresql.org/ + icon: https://www.postgresql.org/media/img/about/press/elephant.png + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + - name: databus23 + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.4.0.tgz + version: 0.4.0 + - created: 2017-02-13T21:33:27.762374795Z + description: Object-relational database management system (ORDBMS) with an emphasis + on extensibility and on standards-compliance. + digest: b07b7c12f13731ebc3019c11601351863030ad3933f72fb7925f3c0de39e23f4 + engine: gotpl + home: https://www.postgresql.org/ + icon: https://www.postgresql.org/media/img/about/press/elephant.png + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + - name: databus23 + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.3.4.tgz + version: 0.3.4 + - created: 2017-02-13T04:18:31.548242286Z + description: Chart for PostgreSQL + digest: 80685774a539b9efa27ea82337e9dd9fccd436688a84e2609d59a68a336d8f18 + engine: gotpl + home: https://www.postgresql.org/ + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + - name: databus23 + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.3.3.tgz + version: 0.3.3 + - created: 2017-02-06T17:48:28.059659169Z + description: Chart for PostgreSQL + digest: d8306a710181a440672795d0b5850e6851ae28b3ecb4cf5f92126c9f533700d5 + engine: gotpl + home: https://www.postgresql.org/ + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + - name: databus23 + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.3.2.tgz + version: 0.3.2 + - created: 2017-01-28T00:18:32.756495622Z + description: Chart for PostgreSQL + digest: 7b4e2b838ccb2e96c26f0b18d75b2cba224a634925abacaeee1b053a3db40f72 + engine: gotpl + home: https://www.postgresql.org/ + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + - name: databus23 + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.3.1.tgz + version: 0.3.1 + - created: 2017-01-26T17:18:33.808053693Z + description: Chart for PostgreSQL + digest: b8e412ddd2f2648efbaa84f85c924e5b94cba0393fb93ea607fdcab3132b7d2e + engine: gotpl + home: https://www.postgresql.org/ + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + - name: databus23 + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.3.0.tgz + version: 0.3.0 + - created: 2016-12-21T18:33:20.280731983Z + description: Chart for PostgreSQL + digest: a0516b4e5b83d9dd4af936859582878683183c6f72e9dddb73c9ff0fd280b972 + engine: gotpl + home: https://www.postgresql.org/ + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.2.2.tgz + version: 0.2.2 + - created: 2016-12-19T22:48:20.03810957Z + description: Chart for PostgreSQL + digest: 8d79ed44bb8477cdbbf8a3eb5a08eef787a147334b30d35a81f8ee43d07eb9ee + engine: gotpl + home: https://www.postgresql.org/ + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.2.1.tgz + version: 0.2.1 + - created: 2016-12-05T20:48:21.242600076Z + description: Chart for PostgreSQL + digest: 713d7ee250af7f914188d889ba3cb3065b4c36565b6f68ca8f55cd5340bda213 + engine: gotpl + home: https://www.postgresql.org/ + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.2.0.tgz + version: 0.2.0 + - created: 2016-11-08T15:03:20.745475633Z + description: Chart for PostgreSQL + digest: c79411d63ad872d0f6d034de9818cef565dbde3ac5f018ee8349305f286031a8 + engine: gotpl + home: https://www.postgresql.org/ + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.1.1.tgz + version: 0.1.1 + - created: 2016-11-04T14:18:20.014925806Z + description: Chart for PostgreSQL + digest: c984e3efb97da1b841c6a07b1e8fd32638b59de42e5b062690b8c9956be58959 + engine: gotpl + home: https://www.postgresql.org/ + keywords: + - postgresql + - postgres + - database + - sql + maintainers: + - name: swordbeta + name: postgresql + sources: + - https://github.com/kubernetes/charts + - https://github.com/docker-library/postgres + urls: + - https://kubernetes-charts.storage.googleapis.com/postgresql-0.1.0.tgz + version: 0.1.0 + prestashop: + - created: 2017-04-28T00:18:30.102289986Z + description: A popular open source ecommerce solution. Professional tools are + easily accessible to increase online sales including instant guest checkout, + abandoned cart reminders and automated Email marketing. + digest: fd575ef671455aa2c85ed91643419219bad86f8766b5775c1e869837cfbef6e5 + engine: gotpl + home: https://prestashop.com/ + icon: https://bitnami.com/assets/stacks/prestashop/img/prestashop-stack-110x117.png + keywords: + - prestashop + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: prestashop + sources: + - https://github.com/bitnami/bitnami-docker-prestashop + urls: + - https://kubernetes-charts.storage.googleapis.com/prestashop-0.4.6.tgz + version: 0.4.6 + - created: 2017-04-06T11:03:25.414976585Z + description: A popular open source ecommerce solution. Professional tools are + easily accessible to increase online sales including instant guest checkout, + abandoned cart reminders and automated Email marketing. + digest: 17eb689a1b04c31c1c78fa1b411f938eaad74bbd1ae78e4eecd0755770156043 + engine: gotpl + home: https://prestashop.com/ + icon: https://bitnami.com/assets/stacks/prestashop/img/prestashop-stack-110x117.png + keywords: + - prestashop + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: prestashop + sources: + - https://github.com/bitnami/bitnami-docker-prestashop + urls: + - https://kubernetes-charts.storage.googleapis.com/prestashop-0.4.5.tgz + version: 0.4.5 + - created: 2017-03-23T01:19:01.462007867Z + description: A popular open source ecommerce solution. Professional tools are + easily accessible to increase online sales including instant guest checkout, + abandoned cart reminders and automated Email marketing. + digest: ff84426385c8abb40d0f4f7e2cfc7fec70b0ae38ca32de832ccbb2b26f74787b + engine: gotpl + home: https://prestashop.com/ + icon: https://bitnami.com/assets/stacks/prestashop/img/prestashop-stack-110x117.png + keywords: + - prestashop + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: prestashop + sources: + - https://github.com/bitnami/bitnami-docker-prestashop + urls: + - https://kubernetes-charts.storage.googleapis.com/prestashop-0.4.4.tgz + version: 0.4.4 + - created: 2017-03-08T19:03:31.741573757Z + description: A popular open source ecommerce solution. Professional tools are + easily accessible to increase online sales including instant guest checkout, + abandoned cart reminders and automated Email marketing. + digest: 4beeb9d17c713b8065f9167d11672862fe2d1eeb5fded4d4ecd395a379825bbc + engine: gotpl + home: https://prestashop.com/ + icon: https://bitnami.com/assets/stacks/prestashop/img/prestashop-stack-110x117.png + keywords: + - prestashop + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: prestashop + sources: + - https://github.com/bitnami/bitnami-docker-prestashop + urls: + - https://kubernetes-charts.storage.googleapis.com/prestashop-0.4.3.tgz + version: 0.4.3 + - created: 2017-02-13T17:03:30.136404798Z + description: A popular open source ecommerce solution. Professional tools are + easily accessible to increase online sales including instant guest checkout, + abandoned cart reminders and automated Email marketing. + digest: fd8c2be6fd9348d2c5bda428ac61f0745974ebd7a4b58ad5d975d8d21888f1c4 + engine: gotpl + home: https://prestashop.com/ + icon: https://bitnami.com/assets/stacks/prestashop/img/prestashop-stack-110x117.png + keywords: + - prestashop + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: prestashop + sources: + - https://github.com/bitnami/bitnami-docker-prestashop + urls: + - https://kubernetes-charts.storage.googleapis.com/prestashop-0.4.2.tgz + version: 0.4.2 + - created: 2017-01-21T00:18:31.360326923Z + description: A popular open source ecommerce solution. Professional tools are + easily accessible to increase online sales including instant guest checkout, + abandoned cart reminders and automated Email marketing. + digest: eba227b32cb9f503c4fd41609d705019372f7936c69febaf2c4200735910e333 + engine: gotpl + home: https://prestashop.com/ + icon: https://bitnami.com/assets/stacks/prestashop/img/prestashop-stack-110x117.png + keywords: + - prestashop + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: prestashop + sources: + - https://github.com/bitnami/bitnami-docker-prestashop + urls: + - https://kubernetes-charts.storage.googleapis.com/prestashop-0.4.1.tgz + version: 0.4.1 + - created: 2017-01-04T00:48:19.749415831Z + description: A popular open source ecommerce solution. Professional tools are + easily accessible to increase online sales including instant guest checkout, + abandoned cart reminders and automated Email marketing. + digest: dd80da4612c962f5d02e2f52f7e0facf42a661d6d6f5eec36d7a3980e2a685d3 + engine: gotpl + home: https://prestashop.com/ + icon: https://bitnami.com/assets/stacks/prestashop/img/prestashop-stack-110x117.png + keywords: + - prestashop + - e-commerce + - http + - web + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: prestashop + sources: + - https://github.com/bitnami/bitnami-docker-prestashop + urls: + - https://kubernetes-charts.storage.googleapis.com/prestashop-0.4.0.tgz + version: 0.4.0 + prometheus: + - created: 2017-04-28T00:18:30.103009703Z + description: Prometheus is a monitoring system and time series database. + digest: 54cd97a780b0af5cd86d84455a29ec2f30765cfbf5c56f9eedf0c30539e325ec + engine: gotpl + home: https://prometheus.io/ + icon: https://raw.githubusercontent.com/prometheus/prometheus.github.io/master/assets/prometheus_logo-cb55bb5c346.png + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: prometheus + sources: + - https://github.com/prometheus/alertmanager + - https://github.com/prometheus/prometheus + - https://github.com/kubernetes/kube-state-metrics + urls: + - https://kubernetes-charts.storage.googleapis.com/prometheus-3.0.2.tgz + version: 3.0.2 + - created: 2017-04-14T01:18:27.389282119Z + description: Prometheus is a monitoring system and time series database. + digest: 8240b1319bb4b1382f69e3ae753fce599185a7f21a399c7ed15108138cb6e793 + engine: gotpl + home: https://prometheus.io/ + icon: https://raw.githubusercontent.com/prometheus/prometheus.github.io/master/assets/prometheus_logo-cb55bb5c346.png + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: prometheus + sources: + - https://github.com/prometheus/alertmanager + - https://github.com/prometheus/prometheus + - https://github.com/kubernetes/kube-state-metrics + urls: + - https://kubernetes-charts.storage.googleapis.com/prometheus-3.0.1.tgz + version: 3.0.1 + - created: 2017-03-23T19:03:32.048982259Z + description: Prometheus is a monitoring system and time series database. + digest: a6a49f3aaf7768dd84acfec96f95cab74a4ed1b68f95f23a9248d6926e8a2ba7 + engine: gotpl + home: https://prometheus.io/ + icon: https://raw.githubusercontent.com/prometheus/prometheus.github.io/master/assets/prometheus_logo-cb55bb5c346.png + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: prometheus + sources: + - https://github.com/prometheus/alertmanager + - https://github.com/prometheus/prometheus + - https://github.com/kubernetes/kube-state-metrics + urls: + - https://kubernetes-charts.storage.googleapis.com/prometheus-3.0.0.tgz + version: 3.0.0 + - created: 2017-03-20T20:18:33.636286259Z + description: A Prometheus Helm chart for Kubernetes. Prometheus is a monitoring + system and time series database. + digest: 0bbefe8b7732b400320007e4f8898518ffcafd3371114be24ca8ded424fe60b3 + engine: gotpl + home: https://prometheus.io/ + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: prometheus + sources: + - https://github.com/prometheus/alertmanager + - https://github.com/prometheus/prometheus + urls: + - https://kubernetes-charts.storage.googleapis.com/prometheus-2.0.4.tgz + version: 2.0.4 + - created: 2017-02-13T04:18:31.549501389Z + description: A Prometheus Helm chart for Kubernetes. Prometheus is a monitoring + system and time series database. + digest: 0f54774b8b258a8e126f09a66749b15c0691e0a330b65f397d58418b0fa0210c + engine: gotpl + home: https://prometheus.io/ + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: prometheus + sources: + - https://github.com/prometheus/alertmanager + - https://github.com/prometheus/prometheus + urls: + - https://kubernetes-charts.storage.googleapis.com/prometheus-2.0.3.tgz + version: 2.0.3 + - created: 2017-02-03T20:18:29.168136057Z + description: A Prometheus Helm chart for Kubernetes. Prometheus is a monitoring + system and time series database. + digest: f1f457be370a944f3c703ceecc35664aa00f7a243730ca9e110bc18f1ed3ab9a + engine: gotpl + home: https://prometheus.io/ + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: prometheus + sources: + - https://github.com/prometheus/alertmanager + - https://github.com/prometheus/prometheus + urls: + - https://kubernetes-charts.storage.googleapis.com/prometheus-2.0.2.tgz + version: 2.0.2 + - created: 2017-02-01T02:18:29.14318599Z + description: A Prometheus Helm chart for Kubernetes. Prometheus is a monitoring + system and time series database. + digest: eebea40b9e86c6dfb92048b0f63d47b11021ab0df437e2b13bc0fd1fc121e8d6 + engine: gotpl + home: https://prometheus.io/ + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: prometheus + sources: + - https://github.com/prometheus/alertmanager + - https://github.com/prometheus/prometheus + urls: + - https://kubernetes-charts.storage.googleapis.com/prometheus-2.0.1.tgz + version: 2.0.1 + - created: 2017-01-19T19:18:27.372125459Z + description: A Prometheus Helm chart for Kubernetes. Prometheus is a monitoring + system and time series database. + digest: 0ae9e1c2ec6e3a6e2148f01e174bbbdd02a5797b4136e5de784383bca9bff938 + engine: gotpl + home: https://prometheus.io/ + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: prometheus + sources: + - https://github.com/prometheus/alertmanager + - https://github.com/prometheus/prometheus + urls: + - https://kubernetes-charts.storage.googleapis.com/prometheus-2.0.0.tgz + version: 2.0.0 + - created: 2017-01-12T02:52:37.843602967Z + description: A Prometheus Helm chart for Kubernetes. Prometheus is a monitoring + system and time series database. + digest: cd8d763bdfe5d7c3c0e9a38f9741a2ef5de1c7c57a0c43a4407e70e2f6232dc9 + engine: gotpl + home: https://prometheus.io/ + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: prometheus + sources: + - https://github.com/prometheus/alertmanager + - https://github.com/prometheus/prometheus + urls: + - https://kubernetes-charts.storage.googleapis.com/prometheus-1.4.2.tgz + version: 1.4.2 + - created: 2017-01-04T00:48:19.750279814Z + description: A Prometheus Helm chart for Kubernetes. Prometheus is a monitoring + system and time series database. + digest: 7209dafe19488487a8a151129deff24fe174d9734ea2c1629dd52bee183a8ad2 + engine: gotpl + home: https://prometheus.io/ + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: prometheus + sources: + - https://github.com/prometheus/alertmanager + - https://github.com/prometheus/prometheus + urls: + - https://kubernetes-charts.storage.googleapis.com/prometheus-1.4.1.tgz + version: 1.4.1 + - created: 2016-12-09T18:48:20.189907856Z + description: A Prometheus Helm chart for Kubernetes. Prometheus is a monitoring + system and time series database. + digest: f6b4c948e408471b51ff6361e0d0f5afc801ee8141aae5002111ffbc12c68895 + engine: gotpl + home: https://prometheus.io/ + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: prometheus + sources: + - https://github.com/prometheus/alertmanager + - https://github.com/prometheus/prometheus + urls: + - https://kubernetes-charts.storage.googleapis.com/prometheus-1.3.1.tgz + version: 1.3.1 + rabbitmq: + - created: 2017-04-28T00:18:30.103417484Z + description: Open source message broker software that implements the Advanced + Message Queuing Protocol (AMQP) + digest: 1b4339d3f866cdc57072ce60fc3a579a5f4233aa6a4cb81254dcb9ddc0fabc33 + engine: gotpl + home: https://www.rabbitmq.com + icon: https://bitnami.com/assets/stacks/rabbitmq/img/rabbitmq-stack-220x234.png + keywords: + - rabbitmq + - message queue + - AMQP + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: rabbitmq + sources: + - https://github.com/bitnami/bitnami-docker-rabbitmq + urls: + - https://kubernetes-charts.storage.googleapis.com/rabbitmq-0.5.1.tgz + version: 0.5.1 + - created: 2017-04-06T10:33:26.336868116Z + description: Open source message broker software that implements the Advanced + Message Queuing Protocol (AMQP) + digest: 60c103b6cd7c57d5bf25588c0d1fcbbe0790ad50968d1947ce11e4b7ae1b2e6e + engine: gotpl + home: https://www.rabbitmq.com + icon: https://bitnami.com/assets/stacks/rabbitmq/img/rabbitmq-stack-220x234.png + keywords: + - rabbitmq + - message queue + - AMQP + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: rabbitmq + sources: + - https://github.com/bitnami/bitnami-docker-rabbitmq + urls: + - https://kubernetes-charts.storage.googleapis.com/rabbitmq-0.5.0.tgz + version: 0.5.0 + - created: 2017-04-03T22:33:26.690098498Z + description: Open source message broker software that implements the Advanced + Message Queuing Protocol (AMQP) + digest: 2f9b4afaffbe72c99c640de71b33e161e9d11386c287bab9028af19d1548bfa8 + engine: gotpl + home: https://www.rabbitmq.com + icon: https://bitnami.com/assets/stacks/rabbitmq/img/rabbitmq-stack-220x234.png + keywords: + - rabbitmq + - message queue + - AMQP + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: rabbitmq + sources: + - https://github.com/bitnami/bitnami-docker-rabbitmq + urls: + - https://kubernetes-charts.storage.googleapis.com/rabbitmq-0.4.5.tgz + version: 0.4.5 + - created: 2017-03-18T18:33:36.178174406Z + description: Open source message broker software that implements the Advanced + Message Queuing Protocol (AMQP) + digest: 833f7c8b0db5eeee50005fe88db8f1aaa899e5cc7875e18473a77162425756be + engine: gotpl + home: https://www.rabbitmq.com + icon: https://bitnami.com/assets/stacks/rabbitmq/img/rabbitmq-stack-220x234.png + keywords: + - rabbitmq + - message queue + - AMQP + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: rabbitmq + sources: + - https://github.com/bitnami/bitnami-docker-rabbitmq + urls: + - https://kubernetes-charts.storage.googleapis.com/rabbitmq-0.4.4.tgz + version: 0.4.4 + - created: 2017-03-16T13:33:30.85508759Z + description: Open source message broker software that implements the Advanced + Message Queuing Protocol (AMQP) + digest: bcfcbfa446f75dc1ca93f9a7d2ccc36731ef41f1dd5615e251344af0d6a1ba83 + engine: gotpl + home: https://www.rabbitmq.com + icon: https://bitnami.com/assets/stacks/rabbitmq/img/rabbitmq-stack-220x234.png + keywords: + - rabbitmq + - message queue + - AMQP + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: rabbitmq + sources: + - https://github.com/bitnami/bitnami-docker-rabbitmq + urls: + - https://kubernetes-charts.storage.googleapis.com/rabbitmq-0.4.3.tgz + version: 0.4.3 + - created: 2017-03-08T19:03:31.743135112Z + description: Open source message broker software that implements the Advanced + Message Queuing Protocol (AMQP) + digest: 7ad8ba0ff9d1b57778ffe60812be9087ad4fac27e8696fad4c9eba9a2529fdba + engine: gotpl + home: https://www.rabbitmq.com + icon: https://bitnami.com/assets/stacks/rabbitmq/img/rabbitmq-stack-220x234.png + keywords: + - rabbitmq + - message queue + - AMQP + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: rabbitmq + sources: + - https://github.com/bitnami/bitnami-docker-rabbitmq + urls: + - https://kubernetes-charts.storage.googleapis.com/rabbitmq-0.4.2.tgz + version: 0.4.2 + - created: 2017-02-13T04:18:31.549853753Z + description: Open source message broker software that implements the Advanced + Message Queuing Protocol (AMQP) + digest: 323ca950152028ecfa421b78ba0b9282265f39b934b07649b239be4d9f2dc10a + engine: gotpl + home: https://www.rabbitmq.com + keywords: + - rabbitmq + - message queue + - AMQP + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: rabbitmq + sources: + - https://github.com/bitnami/bitnami-docker-rabbitmq + urls: + - https://kubernetes-charts.storage.googleapis.com/rabbitmq-0.4.1.tgz + version: 0.4.1 + - created: 2017-01-31T00:03:26.184733426Z + description: Open source message broker software that implements the Advanced + Message Queuing Protocol (AMQP) + digest: 9bd9655f974dc3b2666c141718b65c7786e91c533ffee1784428a6d48cb458ca + engine: gotpl + home: https://www.rabbitmq.com + keywords: + - rabbitmq + - message queue + - AMQP + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: rabbitmq + sources: + - https://github.com/bitnami/bitnami-docker-rabbitmq + urls: + - https://kubernetes-charts.storage.googleapis.com/rabbitmq-0.4.0.tgz + version: 0.4.0 + redis: + - created: 2017-04-28T00:18:30.103747837Z + description: Open source, advanced key-value store. It is often referred to as + a data structure server since keys can contain strings, hashes, lists, sets + and sorted sets. + digest: 72af23bdc2aee61a6cc75e6b7fe3677d1f08ec98afbf8b6fccb3922c9bde47aa + engine: gotpl + home: http://redis.io/ + icon: https://bitnami.com/assets/stacks/redis/img/redis-stack-220x234.png + keywords: + - redis + - keyvalue + - database + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redis + sources: + - https://github.com/bitnami/bitnami-docker-redis + urls: + - https://kubernetes-charts.storage.googleapis.com/redis-0.5.1.tgz + version: 0.5.1 + - created: 2017-04-03T22:18:27.809077961Z + description: Open source, advanced key-value store. It is often referred to as + a data structure server since keys can contain strings, hashes, lists, sets + and sorted sets. + digest: 84fdd07b6f56e7771696e7a707456808cb925f2a6311bf85e1bd027e5b2d364d + engine: gotpl + home: http://redis.io/ + icon: https://bitnami.com/assets/stacks/redis/img/redis-stack-220x234.png + keywords: + - redis + - keyvalue + - database + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redis + sources: + - https://github.com/bitnami/bitnami-docker-redis + urls: + - https://kubernetes-charts.storage.googleapis.com/redis-0.5.0.tgz + version: 0.5.0 + - created: 2017-03-23T15:48:30.415372004Z + description: Open source, advanced key-value store. It is often referred to as + a data structure server since keys can contain strings, hashes, lists, sets + and sorted sets. + digest: 83ace7583e93e763b781d74c940d0966d7317d2b1665eaed35be9ca73dcace5e + engine: gotpl + home: http://redis.io/ + icon: https://bitnami.com/assets/stacks/redis/img/redis-stack-220x234.png + keywords: + - redis + - keyvalue + - database + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redis + sources: + - https://github.com/bitnami/bitnami-docker-redis + urls: + - https://kubernetes-charts.storage.googleapis.com/redis-0.4.6.tgz + version: 0.4.6 + - created: 2017-03-02T19:33:28.196397881Z + description: Open source, advanced key-value store. It is often referred to as + a data structure server since keys can contain strings, hashes, lists, sets + and sorted sets. + digest: 7891aef2647fd00ca93cd6894720a6307d3fdd275f912eb6a05fcbb6b7009c13 + engine: gotpl + home: http://redis.io/ + icon: https://bitnami.com/assets/stacks/redis/img/redis-stack-220x234.png + keywords: + - redis + - keyvalue + - database + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redis + sources: + - https://github.com/bitnami/bitnami-docker-redis + urls: + - https://kubernetes-charts.storage.googleapis.com/redis-0.4.5.tgz + version: 0.4.5 + - created: 2017-02-13T20:18:28.115940614Z + description: Open source, advanced key-value store. It is often referred to as + a data structure server since keys can contain strings, hashes, lists, sets + and sorted sets. + digest: e8cf2f96a6931397adf372857a6a0da161e7e9eb0cf91f565399d20b26144be1 + engine: gotpl + home: http://redis.io/ + icon: https://bitnami.com/assets/stacks/redis/img/redis-stack-220x234.png + keywords: + - redis + - keyvalue + - database + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redis + sources: + - https://github.com/bitnami/bitnami-docker-redis + urls: + - https://kubernetes-charts.storage.googleapis.com/redis-0.4.4.tgz + version: 0.4.4 + - created: 2017-02-13T04:18:31.550184203Z + description: Chart for Redis + digest: b4cb9b2e0811a83ce269dc06c25a05fe31deb799018eba418232b2c3f4b18b12 + engine: gotpl + home: http://redis.io/ + keywords: + - redis + - keyvalue + - database + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redis + sources: + - https://github.com/bitnami/bitnami-docker-redis + urls: + - https://kubernetes-charts.storage.googleapis.com/redis-0.4.3.tgz + version: 0.4.3 + - created: 2017-01-28T02:03:32.495597111Z + description: Chart for Redis + digest: 160dab504021716867790c3b1ea5c6e4afcaf865d9b8569707e123bc4d1536dc + engine: gotpl + home: http://redis.io/ + keywords: + - redis + - keyvalue + - database + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redis + sources: + - https://github.com/bitnami/bitnami-docker-redis + urls: + - https://kubernetes-charts.storage.googleapis.com/redis-0.4.2.tgz + version: 0.4.2 + - created: 2016-12-09T18:48:20.191261198Z + description: Chart for Redis + digest: 7132d9ddecaf4a890e5177c401228fa031f52e927393063f8d6c5a0881b281a3 + engine: gotpl + home: http://redis.io/ + keywords: + - redis + - keyvalue + - database + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redis + sources: + - https://github.com/bitnami/bitnami-docker-redis + urls: + - https://kubernetes-charts.storage.googleapis.com/redis-0.4.1.tgz + version: 0.4.1 + - created: 2016-10-31T16:33:19.644247028Z + description: Chart for Redis + digest: cef59b98a3607bf0f40560c724fd36a84e5f29498031a36c0f2f80369c35d9c4 + engine: gotpl + home: http://redis.io/ + keywords: + - redis + - keyvalue + - database + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redis + sources: + - https://github.com/bitnami/bitnami-docker-redis + urls: + - https://kubernetes-charts.storage.googleapis.com/redis-0.4.0.tgz + version: 0.4.0 + redmine: + - created: 2017-04-28T00:18:30.104404263Z + description: A flexible project management web application. + digest: 65419e8af0bff73d1c4da279cbb4d2abdaf99a714dabae01b27f67b917d4efc1 + engine: gotpl + home: http://www.redmine.org/ + icon: https://bitnami.com/assets/stacks/redmine/img/redmine-stack-220x234.png + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.4.2.tgz + version: 0.4.2 + - created: 2017-04-13T05:18:28.930142135Z + description: A flexible project management web application. + digest: 3edad0332b7aa4ff2c33729f0e49e7c58c0ad06108d66774d1f1583b8e4ccddf + engine: gotpl + home: http://www.redmine.org/ + icon: https://bitnami.com/assets/stacks/redmine/img/redmine-stack-220x234.png + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.4.1.tgz + version: 0.4.1 + - created: 2017-03-31T19:33:30.446728632Z + description: A flexible project management web application. + digest: facd552d60b39c5f6d37e8cf88f453bcae418a08eee0c401f15d15872e1e3601 + engine: gotpl + home: http://www.redmine.org/ + icon: https://bitnami.com/assets/stacks/redmine/img/redmine-stack-220x234.png + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.4.0.tgz + version: 0.4.0 + - created: 2017-03-14T23:48:31.907843022Z + description: A flexible project management web application. + digest: a21733ee877ad579f8b5be03d5a35008816d64dd56e0ca6482a7c0686fcdfe09 + engine: gotpl + home: http://www.redmine.org/ + icon: https://bitnami.com/assets/stacks/redmine/img/redmine-stack-220x234.png + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.11.tgz + version: 0.3.11 + - created: 2017-03-08T19:03:31.745197966Z + description: A flexible project management web application. + digest: 30253b618b47801a076c6cdd8a9ff93e1e4401e0189e88576553802b224e2775 + engine: gotpl + home: http://www.redmine.org/ + icon: https://bitnami.com/assets/stacks/redmine/img/redmine-stack-220x234.png + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.10.tgz + version: 0.3.10 + - created: 2017-02-13T21:33:27.767502945Z + description: A flexible project management web application. + digest: aa8a3b1be968e99c7a61ad0b7c1d13934562b9c30eeec0b3a3683063b9d38c7b + engine: gotpl + home: http://www.redmine.org/ + icon: https://bitnami.com/assets/stacks/redmine/img/redmine-stack-220x234.png + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.9.tgz + version: 0.3.9 + - created: 2017-02-10T23:18:26.028438027Z + description: A flexible project management web application. + digest: 51f4e834b5d2eb4ab66468e6996419bb20aa4d96ebe35a3663bc8b2c494694e6 + engine: gotpl + home: http://www.redmine.org/ + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.8.tgz + version: 0.3.8 + - created: 2017-01-31T00:18:28.517014253Z + description: A flexible project management web application. + digest: d9e7c4c47c853413107330d4fc0ad44e9bc3be90057ca722d28042b73f244fe5 + engine: gotpl + home: http://www.redmine.org/ + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.7.tgz + version: 0.3.7 + - created: 2016-12-15T21:18:24.678305914Z + description: A flexible project management web application. + digest: 98d9c8c7f241a9418bed6862f7c82295d5d8158cd1702907ced7150e46530768 + engine: gotpl + home: http://www.redmine.org/ + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.6.tgz + version: 0.3.6 + - created: 2016-12-05T21:03:20.228049572Z + description: A flexible project management web application. + digest: ae1c2ced129d05cdae28e1fe9c2bed53ded35cd77d96fc1b26f810d334c601e3 + engine: gotpl + home: http://www.redmine.org/ + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.5.tgz + version: 0.3.5 + - created: 2016-11-03T19:33:29.122956769Z + description: A flexible project management web application. + digest: c591dea135ef93f4af1a05961333125167ae551cf2b666363fe76b5a7ad9f806 + engine: gotpl + home: http://www.redmine.org/ + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.4.tgz + version: 0.3.4 + - created: 2016-10-21T19:18:18.621573514Z + description: A flexible project management web application. + digest: da6a8cb8c355a93ae11d9312be9eca51966d2288eafe96b6724e6154d000b8c3 + engine: gotpl + home: http://www.redmine.org/ + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.3.tgz + version: 0.3.3 + - created: 2016-10-19T00:03:14.035726608Z + description: A flexible project management web application. + digest: 052a0a97ff279db43f06c5ceeabfc5bd26f2e5f4f7ce7c24fdbcf761f97af84e + engine: gotpl + home: http://www.redmine.org/ + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.2.tgz + version: 0.3.2 + - created: 2016-10-19T00:03:14.034750035Z + description: A flexible project management web application. + digest: 88cf358644be274866ec5e88199c257e18a35fc8bbe97417658b9a0ea1e4a260 + engine: gotpl + home: http://www.redmine.org/ + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.1.tgz + version: 0.3.1 + - created: 2016-10-19T00:03:14.033766322Z + description: A flexible project management web application. + digest: f4815d35cbf9f8bb72c051ee528958b9c6f48b1f3bf8b3fdceaadd90d1b88068 + engine: gotpl + home: http://www.redmine.org/ + keywords: + - redmine + - project management + - www + - http + - web + - application + - ruby + - rails + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: redmine + sources: + - https://github.com/bitnami/bitnami-docker-redmine + urls: + - https://kubernetes-charts.storage.googleapis.com/redmine-0.3.0.tgz + version: 0.3.0 + sapho: + - apiVersion: v1 + created: 2017-04-28T00:18:30.105942339Z + description: A micro application development and integration platform that enables + organizations to create and deliver secure micro applications that tie into + existing business systems and track changes to key business data. + digest: 6c499f9875c07b508d23b081ffd991a5737a0acaf1c75def55dbb2dc07bf40ea + engine: gotpl + home: http://www.sapho.com + icon: https://www.sapho.com/wp-content/uploads/2016/04/sapho-logotype.svg + maintainers: + - email: support@sapho.com + name: Sapho + name: sapho + sources: + - https://bitbucket.org/sapho/ops-docker-tomcat/src + - https://hub.docker.com/r/sapho/ops-docker-tomcat + - https://github.com/kubernetes/charts/tree/master/stable/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/sapho-0.1.5.tgz + version: 0.1.5 + - apiVersion: v1 + created: 2017-02-13T04:33:52.314506112Z + description: A micro application development and integration platform that enables + organizations to create and deliver secure micro applications that tie into + existing business systems and track changes to key business data. + digest: abe8e15b8e51369d6d05033177efb524139d3352794e201003d2e3fce3d0669d + engine: gotpl + maintainers: + - email: support@sapho.com + name: Sapho + name: sapho + sources: + - https://bitbucket.org/sapho/ops-docker-tomcat/src + - https://hub.docker.com/r/sapho/ops-docker-tomcat + - https://github.com/kubernetes/charts/tree/master/stable/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/sapho-0.1.4.tgz + version: 0.1.4 + - apiVersion: v1 + created: 2017-01-31T00:18:28.518904Z + description: A micro application development and integration platform that enables + organizations to create and deliver secure micro applications that tie into + existing business systems and track changes to key business data. + digest: d93ff20d61a35de8ab23d5d118c177184a6b8b0578a39ba7d101f818a8742851 + engine: gotpl + maintainers: + - email: support@sapho.com + name: Sapho + name: sapho + sources: + - https://bitbucket.org/sapho/ops-docker-tomcat/src + - https://hub.docker.com/r/sapho/ops-docker-tomcat + - https://github.com/kubernetes/charts/tree/master/stable/mysql + urls: + - https://kubernetes-charts.storage.googleapis.com/sapho-0.1.3.tgz + version: 0.1.3 + selenium: + - created: 2017-04-28T00:18:30.106455441Z + description: Chart for selenium grid + digest: 0e03cf36738e83b3e6ae7384c0ffdeb4ee4b694f0c0a025eb15106acb189b8d2 + engine: gotpl + home: http://www.seleniumhq.org/ + icon: http://docs.seleniumhq.org/images/big-logo.png + keywords: + - qa + maintainers: + - email: techops@adaptly.com + name: Philip Champon (flah00) + name: selenium + sources: + - https://github.com/SeleniumHQ/docker-selenium + urls: + - https://kubernetes-charts.storage.googleapis.com/selenium-0.1.0.tgz + version: 0.1.0 + sensu: + - apiVersion: v1 + created: 2017-04-28T00:18:30.107064065Z + description: Sensu monitoring framework backed by the Redis transport + digest: 56c74a8de76074cfb021057112cf46d11d8b77f9ef5f6ec5d0877698c9931dfa + engine: gotpl + home: https://sensuapp.org/ + icon: https://raw.githubusercontent.com/sensu/sensu/master/sensu-logo.png + keywords: + - sensu + - monitoring + maintainers: + - email: shane.starcher@gmail.com + name: Shane Starcher + name: sensu + sources: + - https://github.com/kubernetes/charts + - https://github.com/sstarcher/docker-sensu + - https://github.com/sensu/sensu + urls: + - https://kubernetes-charts.storage.googleapis.com/sensu-0.1.2.tgz + version: 0.1.2 + - apiVersion: v1 + created: 2017-03-17T05:18:29.12808256Z + description: Sensu monitoring framework backed by the Redis transport + digest: bb8781a9693f3b6df9389b3098a6298658127df2e86ad8156788602f541f33c3 + engine: gotpl + home: https://sensuapp.org/ + icon: https://raw.githubusercontent.com/sensu/sensu/master/sensu-logo.png + keywords: + - sensu + - monitoring + maintainers: + - email: shane.starcher@gmail.com + name: Shane Starcher + name: sensu + sources: + - https://github.com/kubernetes/charts + - https://github.com/sstarcher/docker-sensu + - https://github.com/sensu/sensu + urls: + - https://kubernetes-charts.storage.googleapis.com/sensu-0.1.1.tgz + version: 0.1.1 + - apiVersion: v1 + created: 2016-12-21T23:33:22.277352049Z + description: Sensu monitoring framework backed by the Redis transport + digest: 4592387df52c4110a3a313820dbea81e8bf0252845e8c08ad7c71bce9a92831c + engine: gotpl + home: https://sensuapp.org/ + icon: https://raw.githubusercontent.com/sensu/sensu/master/sensu-logo.png + keywords: + - sensu + - monitoring + maintainers: + - email: shane.starcher@gmail.com + name: Shane Starcher + name: sensu + sources: + - https://github.com/kubernetes/charts + - https://github.com/sstarcher/docker-sensu + - https://github.com/sensu/sensu + urls: + - https://kubernetes-charts.storage.googleapis.com/sensu-0.1.0.tgz + version: 0.1.0 + spark: + - created: 2017-04-28T00:18:30.107369986Z + description: Fast and general-purpose cluster computing system. + digest: d37ec7d7530a5836eeeb5ff54110d594efe188ce8175a7c2e3b50e5d9f5af9bc + home: http://spark.apache.org + icon: http://spark.apache.org/images/spark-logo-trademark.png + maintainers: + - email: lachlan.evenson@gmail.com + name: Lachlan Evenson + name: spark + sources: + - https://github.com/kubernetes/kubernetes/tree/master/examples/spark + - https://github.com/apache/spark + urls: + - https://kubernetes-charts.storage.googleapis.com/spark-0.1.4.tgz + version: 0.1.4 + - created: 2017-03-09T19:03:32.57258203Z + description: Fast and general-purpose cluster computing system. + digest: 1cea71eb812c7ea6d566ad34247ad8d1c7b2a460b908748372618a94f035d974 + home: http://spark.apache.org + icon: http://spark.apache.org/images/spark-logo-trademark.png + maintainers: + - email: lachlan.evenson@gmail.com + name: Lachlan Evenson + name: spark + sources: + - https://github.com/kubernetes/kubernetes/tree/master/examples/spark + - https://github.com/apache/spark + urls: + - https://kubernetes-charts.storage.googleapis.com/spark-0.1.3.tgz + version: 0.1.3 + - created: 2017-02-13T04:33:52.317122021Z + description: A Apache Spark Helm chart for Kubernetes. Apache Spark is a fast + and general-purpose cluster computing system + digest: fd5559299116691e56c85f60be46e3b1d1a647973f4dfd6c0d87d0b0274a349b + home: http://spark.apache.org/ + maintainers: + - email: lachlan.evenson@gmail.com + name: Lachlan Evenson + name: spark + sources: + - https://github.com/kubernetes/kubernetes/tree/master/examples/spark + - https://github.com/apache/spark + urls: + - https://kubernetes-charts.storage.googleapis.com/spark-0.1.2.tgz + version: 0.1.2 + - created: 2017-01-27T21:48:32.088621169Z + description: A Apache Spark Helm chart for Kubernetes. Apache Spark is a fast + and general-purpose cluster computing system + digest: 884cc07e4710011476db63017b48504cc00b00faf461cdfe83aac40f0fd33e49 + home: http://spark.apache.org/ + maintainers: + - email: lachlan.evenson@gmail.com + name: Lachlan Evenson + name: spark + sources: + - https://github.com/kubernetes/kubernetes/tree/master/examples/spark + - https://github.com/apache/spark + urls: + - https://kubernetes-charts.storage.googleapis.com/spark-0.1.1.tgz + version: 0.1.1 + spartakus: + - created: 2017-04-28T00:18:30.107681212Z + description: Collect information about Kubernetes clusters to help improve the + project. + digest: 7db8a6ac7280c8d112b533b2653cfa8ed43d8517a4cf31d28e24d5761d8c6b80 + engine: gotpl + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: spartakus + sources: + - https://github.com/kubernetes-incubator/spartakus + urls: + - https://kubernetes-charts.storage.googleapis.com/spartakus-1.1.1.tgz + version: 1.1.1 + - created: 2017-03-02T18:48:30.451198217Z + description: Collect information about Kubernetes clusters to help improve the + project. + digest: 84720960919addcce5b608717eca0218b7f6cd9edbf77a52ddc0747e51037936 + engine: gotpl + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: spartakus + sources: + - https://github.com/kubernetes-incubator/spartakus + urls: + - https://kubernetes-charts.storage.googleapis.com/spartakus-1.1.0.tgz + version: 1.1.0 + - created: 2017-02-13T17:03:30.144830851Z + description: A Spartakus Helm chart for Kubernetes. Spartakus aims to collect + information about Kubernetes clusters. + digest: 1c202628cd57e01cb324ee6e9457b52d1e1a5fd665f99d4bb25bd17c92c438e9 + engine: gotpl + maintainers: + - email: mgoodness@gmail.com + name: Michael Goodness + name: spartakus + sources: + - https://github.com/kubernetes-incubator/spartakus + urls: + - https://kubernetes-charts.storage.googleapis.com/spartakus-1.0.0.tgz + version: 1.0.0 + spinnaker: + - apiVersion: v1 + created: 2017-04-28T00:18:30.109150773Z + description: Open source, multi-cloud continuous delivery platform for releasing + software changes with high velocity and confidence. + digest: a06ae1d7452e19824110cbb3270c5b7bfc4acf10af23e072e442b81fe26b1dc5 + home: http://spinnaker.io/ + icon: https://pbs.twimg.com/profile_images/669205226994319362/O7OjwPrh_400x400.png + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: spinnaker + sources: + - https://github.com/spinnaker + - https://github.com/viglesiasce/images + urls: + - https://kubernetes-charts.storage.googleapis.com/spinnaker-0.1.1.tgz + version: 0.1.1 + - apiVersion: v1 + created: 2017-02-13T20:48:27.29021219Z + description: A Helm chart for Kubernetes + digest: cc44efeace9d645b2ea824b017986d86b6b3a50fcd94e86199e0e6849eb02731 + home: http://spinnaker.io/ + maintainers: + - email: viglesias@google.com + name: Vic Iglesias + name: spinnaker + sources: + - https://github.com/spinnaker + - https://github.com/viglesiasce/images + urls: + - https://kubernetes-charts.storage.googleapis.com/spinnaker-0.1.0.tgz + version: 0.1.0 + sumokube: + - created: 2017-04-28T00:18:30.109952763Z + description: Sumologic Log Collector + digest: 2f4f5cfc4c1d40cd24085497041fd701f72d4f15cb55241bfb998da82b05c7b9 + keywords: + - monitoring + - logging + maintainers: + - email: jdumars+github@gmail.com + name: Jason DuMars + - email: knoxville+github@gmail.com + name: Sean Knox + name: sumokube + sources: + - https://github.com/SumoLogic/sumologic-collector-docker + urls: + - https://kubernetes-charts.storage.googleapis.com/sumokube-0.1.1.tgz + version: 0.1.1 + - created: 2017-01-27T21:48:32.092039665Z + description: Sumologic Log Collector + digest: 5b173be9b7dc0e1d48a7cd11015b9c405666a40420a290c5fb54e4f8718b4fc0 + keywords: + - monitoring + - logging + maintainers: + - email: jdumars+github@gmail.com + name: Jason DuMars + - email: knoxville+github@gmail.com + name: Sean Knox + name: sumokube + sources: + - https://github.com/SumoLogic/sumologic-collector-docker + urls: + - https://kubernetes-charts.storage.googleapis.com/sumokube-0.1.0.tgz + version: 0.1.0 + telegraf: + - created: 2017-04-28T00:18:30.110460492Z + description: Telegraf is an agent written in Go for collecting, processing, aggregating, + and writing metrics. + digest: 850b4b7543a3dd7f5d33ba65d9098fe4f361981f49452a40ce9774850b4285e3 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/telegraf/ + keywords: + - telegraf + - collector + - timeseries + - influxdata + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: telegraf + urls: + - https://kubernetes-charts.storage.googleapis.com/telegraf-0.2.0.tgz + version: 0.2.0 + - created: 2017-02-13T21:48:52.617397285Z + description: Telegraf is an agent written in Go for collecting, processing, aggregating, + and writing metrics. + digest: 1f74106455808d45d16742f6d7d02164eb328a40dd9699dfa4511b33efaf14e9 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/telegraf/ + keywords: + - telegraf + - collector + - timeseries + - influxdata + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: telegraf + urls: + - https://kubernetes-charts.storage.googleapis.com/telegraf-0.1.1.tgz + version: 0.1.1 + - created: 2017-02-11T03:18:26.54678474Z + description: Chart for Telegraf Kubernetes deployments + digest: 52fa68fd948ee675a5d1a5ffff22d98e293ee37569a8fa56a4022f51e9507184 + engine: gotpl + home: https://www.influxdata.com/time-series-platform/telegraf/ + keywords: + - telegraf + - collector + - timeseries + - influxdata + maintainers: + - email: jack@influxdb.com + name: Jack Zampolin + name: telegraf + urls: + - https://kubernetes-charts.storage.googleapis.com/telegraf-0.1.0.tgz + version: 0.1.0 + testlink: + - created: 2017-04-28T00:18:30.111130012Z + description: Web-based test management system that facilitates software quality + assurance. + digest: 8cffc761a9e6618bc015cec3721964192e909dfaae92a9bb79c4471424c74128 + engine: gotpl + home: http://www.testlink.org/ + icon: https://bitnami.com/assets/stacks/testlink/img/testlink-stack-220x234.png + keywords: + - testlink + - testing + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: testlink + sources: + - https://github.com/bitnami/bitnami-docker-testlink + urls: + - https://kubernetes-charts.storage.googleapis.com/testlink-0.4.6.tgz + version: 0.4.6 + - created: 2017-03-23T18:18:30.028234531Z + description: Web-based test management system that facilitates software quality + assurance. + digest: 08f7104671364ff6bd43270659733ea97a4adc06181f8a5c3027ac3d0078e51c + engine: gotpl + home: http://www.testlink.org/ + icon: https://bitnami.com/assets/stacks/testlink/img/testlink-stack-220x234.png + keywords: + - testlink + - testing + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: testlink + sources: + - https://github.com/bitnami/bitnami-docker-testlink + urls: + - https://kubernetes-charts.storage.googleapis.com/testlink-0.4.5.tgz + version: 0.4.5 + - created: 2017-03-08T19:03:31.751542723Z + description: Web-based test management system that facilitates software quality + assurance. + digest: 7861921ff159f1be6834acfc3e5c139382a8c6461b20a45c4b1561985827c865 + engine: gotpl + home: http://www.testlink.org/ + icon: https://bitnami.com/assets/stacks/testlink/img/testlink-stack-220x234.png + keywords: + - testlink + - testing + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: testlink + sources: + - https://github.com/bitnami/bitnami-docker-testlink + urls: + - https://kubernetes-charts.storage.googleapis.com/testlink-0.4.4.tgz + version: 0.4.4 + - created: 2017-02-11T03:18:26.547570032Z + description: Web-based test management system that facilitates software quality + assurance. + digest: 2c7188d5f1a9fb03c71b2e2d693dfbef9a739ae8889d9eb38854900cf066077b + engine: gotpl + home: http://www.testlink.org/ + keywords: + - testlink + - testing + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: testlink + sources: + - https://github.com/bitnami/bitnami-docker-testlink + urls: + - https://kubernetes-charts.storage.googleapis.com/testlink-0.4.3.tgz + version: 0.4.3 + - created: 2017-01-21T00:18:31.369288453Z + description: Web-based test management system that facilitates software quality + assurance. + digest: 78f6a9cfe1843b8ea99489d8b4c801f84271ee25827ad044989ed0df21ac086b + engine: gotpl + home: http://www.testlink.org/ + keywords: + - testlink + - testing + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: testlink + sources: + - https://github.com/bitnami/bitnami-docker-testlink + urls: + - https://kubernetes-charts.storage.googleapis.com/testlink-0.4.2.tgz + version: 0.4.2 + - created: 2016-12-15T21:18:24.679744308Z + description: Web-based test management system that facilitates software quality + assurance. + digest: 9edb2777c6db4794885a2c7531a28436774edc248aad3a26007bca4076058143 + engine: gotpl + home: http://www.testlink.org/ + keywords: + - testlink + - testing + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: testlink + sources: + - https://github.com/bitnami/bitnami-docker-testlink + urls: + - https://kubernetes-charts.storage.googleapis.com/testlink-0.4.1.tgz + version: 0.4.1 + - created: 2016-12-09T18:48:20.193151472Z + description: Web-based test management system that facilitates software quality + assurance. + digest: df216a31082cdf15867ee9a17b107e4006e9e0a20b79425889b695c4c46fb0c1 + engine: gotpl + home: http://www.testlink.org/ + keywords: + - testlink + - testing + - http + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: testlink + sources: + - https://github.com/bitnami/bitnami-docker-testlink + urls: + - https://kubernetes-charts.storage.googleapis.com/testlink-0.4.0.tgz + version: 0.4.0 + traefik: + - apiVersion: v1 + created: 2017-04-28T00:18:30.111646123Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: 4019610a5fb1defcc5bc90532cb19c986999114f7de4aef3f0272e6c7ed1b914 + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.2.1-a.tgz + version: 1.2.1-a + - apiVersion: v1 + created: 2017-03-31T19:33:30.456523182Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: ba0ade25b34f419ad0790b220fb7277a046d48bc76e1c726f66ba535b51d4f63 + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.1.2-h.tgz + version: 1.1.2-h + - apiVersion: v1 + created: 2017-03-16T23:33:31.610346236Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: 9aa401aee6da3b4afc5cc3f8be7ff9f74bf424743ca72a7a7b91a7105d9781b6 + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.1.2-g.tgz + version: 1.1.2-g + - apiVersion: v1 + created: 2017-02-27T17:18:28.185706737Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: 5bb7b98b962098808e3b73f604592bc4c6e6245e0074fa0c99308fc04bf766b8 + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.1.2-f.tgz + version: 1.1.2-f + - apiVersion: v1 + created: 2017-02-13T22:18:28.973464794Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: ae467c4bee7364d17de2583d33031d0eeb2ef55e7962a7db0245d692e65479e1 + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.1.2-e.tgz + version: 1.1.2-e + - apiVersion: v1 + created: 2017-02-13T21:33:27.776086791Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: 399d74bcd8ab26f2de10894d83b59d413752797789b9fe9568e17f7b564f5f75 + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.1.2-d.tgz + version: 1.1.2-d + - apiVersion: v1 + created: 2017-02-03T19:33:30.806247527Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: e225511060509d9cf3e38eaafd93af9ee994f8ed99c40a25500f4a1d06851841 + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.1.2-c.tgz + version: 1.1.2-c + - apiVersion: v1 + created: 2017-02-01T02:18:29.153394653Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: 9cc02b2e43c901c92aa560b4f85e325f04635d052035418f3b27b06bdd571ae9 + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.1.2-b.tgz + version: 1.1.2-b + - apiVersion: v1 + created: 2017-01-28T00:18:32.767314879Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: 9bae960964d5062dd4c412ad7daf6f6f9e8dd070264aa3f44c831c817fc26b7d + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.1.2-a.tgz + version: 1.1.2-a + - apiVersion: v1 + created: 2017-01-03T17:48:20.753425335Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: e8ab4576505091785b27084e4f4e4f02f1ee3f1744d9842ec086457baabe8b85 + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.1.1-a.tgz + version: 1.1.1-a + - apiVersion: v1 + created: 2016-11-23T00:33:20.024479934Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: 6664534aab03a22531602a415ca14a72e932b08fe1feab8866cc55ba18b77dc8 + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.1.0-rc3-a.tgz + version: 1.1.0-rc3-a + - apiVersion: v1 + created: 2016-11-30T22:03:20.721274307Z + description: A Traefik based Kubernetes ingress controller with Let's Encrypt + support + digest: 2828d7284839baee1fb36f823ce4e2574a4b675b7f4f74e921a4685f4cee28c2 + engine: gotpl + home: http://traefik.io/ + icon: http://traefik.io/traefik.logo.png + keywords: + - traefik + - ingress + - acme + - letsencrypt + maintainers: + - email: engineering@deis.com + name: Deis + name: traefik + sources: + - https://github.com/containous/traefik + - https://github.com/krancour/charts/tree/master/traefik + urls: + - https://kubernetes-charts.storage.googleapis.com/traefik-1.1.0-a.tgz + version: 1.1.0-a + uchiwa: + - apiVersion: v1 + created: 2017-04-28T00:18:30.112528335Z + description: Dashboard for the Sensu monitoring framework + digest: b9b7186c2e53d4049c4b0ef9ba9c89ded7de36bf920653b63f6ea725253354d6 + engine: gotpl + home: https://uchiwa.io/ + icon: https://uchiwa.io/img/favicon.png + keywords: + - uchiwa + - sensu + - monitoring + maintainers: + - email: shane.starcher@gmail.com + name: Shane Starcher + name: uchiwa + sources: + - https://github.com/kubernetes/charts + - https://github.com/sstarcher/docker-uchiwa + - https://github.com/sensu/uchiwa + urls: + - https://kubernetes-charts.storage.googleapis.com/uchiwa-0.2.1.tgz + version: 0.2.1 + - apiVersion: v1 + created: 2017-03-17T06:03:29.101091523Z + description: Dashboard for the Sensu monitoring framework + digest: 9bee21cd61e56e08f58c1ba130e0a4af1a1d62a8d7921f9408509bd501494403 + engine: gotpl + home: https://uchiwa.io/ + icon: https://uchiwa.io/img/favicon.png + keywords: + - uchiwa + - sensu + - monitoring + maintainers: + - email: shane.starcher@gmail.com + name: Shane Starcher + name: uchiwa + sources: + - https://github.com/kubernetes/charts + - https://github.com/sstarcher/docker-uchiwa + - https://github.com/sensu/uchiwa + urls: + - https://kubernetes-charts.storage.googleapis.com/uchiwa-0.2.0.tgz + version: 0.2.0 + - apiVersion: v1 + created: 2017-01-18T23:03:27.817024829Z + description: Dashboard for the Sensu monitoring framework + digest: 868d7e58adb2fead4ed9e4be17e2017c2d1c55d265b2a579625e787e6f15f4d5 + engine: gotpl + home: https://uchiwa.io/ + icon: https://uchiwa.io/img/favicon.png + keywords: + - uchiwa + - sensu + - monitoring + maintainers: + - email: shane.starcher@gmail.com + name: Shane Starcher + name: uchiwa + sources: + - https://github.com/kubernetes/charts + - https://github.com/sstarcher/docker-uchiwa + - https://github.com/sensu/uchiwa + urls: + - https://kubernetes-charts.storage.googleapis.com/uchiwa-0.1.0.tgz + version: 0.1.0 + wordpress: + - created: 2017-04-28T00:18:30.114169329Z + description: Web publishing platform for building blogs and websites. + digest: 8df4b37c471d43b5b3955ecadcc0da1dad31ba28a93ae0b74be5fc94debf2876 + engine: gotpl + home: http://www.wordpress.com/ + icon: https://bitnami.com/assets/stacks/wordpress/img/wordpress-stack-220x234.png + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.6.0.tgz + version: 0.6.0 + - created: 2017-04-03T22:33:26.700088102Z + description: Web publishing platform for building blogs and websites. + digest: 4413a17258eaca753252174a219ba9081283a406375d8ae49e5c1f3313c6619a + engine: gotpl + home: http://www.wordpress.com/ + icon: https://bitnami.com/assets/stacks/wordpress/img/wordpress-stack-220x234.png + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.5.2.tgz + version: 0.5.2 + - created: 2017-03-23T21:18:31.877594706Z + description: Web publishing platform for building blogs and websites. + digest: 3e408baaa5110edfd730603bd5d49d7a8c222f49c7e9de1bd168b564463d57d9 + engine: gotpl + home: http://www.wordpress.com/ + icon: https://bitnami.com/assets/stacks/wordpress/img/wordpress-stack-220x234.png + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.5.1.tgz + version: 0.5.1 + - created: 2017-03-16T13:33:30.866725941Z + description: Web publishing platform for building blogs and websites. + digest: 40c767b4b2b7d494ea6da7a20a9fe58e76896a0bdad7c6c569f9d8cdab71f2e3 + engine: gotpl + home: http://www.wordpress.com/ + icon: https://bitnami.com/assets/stacks/wordpress/img/wordpress-stack-220x234.png + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.5.0.tgz + version: 0.5.0 + - created: 2017-03-14T23:48:31.917245657Z + description: Web publishing platform for building blogs and websites. + digest: 306220e3c19f1360644eade517a2a8ca422e8f9ec6ea9c65181ce8fc9797772f + engine: gotpl + home: http://www.wordpress.com/ + icon: https://bitnami.com/assets/stacks/wordpress/img/wordpress-stack-220x234.png + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.4.3.tgz + version: 0.4.3 + - created: 2017-03-08T19:03:31.755452536Z + description: Web publishing platform for building blogs and websites. + digest: 0689b452d3c9a9bee6e5c84b48172c68de6eedc253223b96ab6500ad88a5de40 + engine: gotpl + home: http://www.wordpress.com/ + icon: https://bitnami.com/assets/stacks/wordpress/img/wordpress-stack-220x234.png + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.4.2.tgz + version: 0.4.2 + - created: 2017-02-13T04:33:52.323397093Z + description: Web publishing platform for building blogs and websites. + digest: 0fc412dea55069b368183afefb74342001a91a7f3a0e9126a921581d7740d61c + engine: gotpl + home: http://www.wordpress.com/ + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.4.1.tgz + version: 0.4.1 + - created: 2017-01-28T00:18:32.769124587Z + description: Web publishing platform for building blogs and websites. + digest: 2f4a5d65350b36a6481c4c3d619f713835f091821d3f56c38c718061628ff712 + engine: gotpl + home: http://www.wordpress.com/ + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.4.0.tgz + version: 0.4.0 + - created: 2017-01-04T00:48:19.757447587Z + description: Web publishing platform for building blogs and websites. + digest: f62b6f1728a33c5d59dd24dc6fb984f13d2dffac2bc6eec01724501e66ffc6a0 + engine: gotpl + home: http://www.wordpress.com/ + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.3.4.tgz + version: 0.3.4 + - created: 2016-12-15T00:48:24.021239603Z + description: Web publishing platform for building blogs and websites. + digest: 0c86b7cec5877a3c3c55d919b2f02ae52340c953afd9dc541ae0280bc23fe9aa + engine: gotpl + home: http://www.wordpress.com/ + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.3.3.tgz + version: 0.3.3 + - created: 2016-12-09T18:48:20.19465733Z + description: Web publishing platform for building blogs and websites. + digest: 589e49370cb09f6d9ddb3ceba3b21f52697570cd4b40aff891a660c5daaa9bec + engine: gotpl + home: http://www.wordpress.com/ + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.3.2.tgz + version: 0.3.2 + - created: 2016-10-21T19:18:18.622178432Z + description: Web publishing platform for building blogs and websites. + digest: e70a072dcbb7252becc8899f54de8cb5977ceaea47197919c3990a6896adc350 + engine: gotpl + home: http://www.wordpress.com/ + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.3.1.tgz + version: 0.3.1 + - created: 2016-10-19T00:03:14.037631856Z + description: Web publishing platform for building blogs and websites. + digest: 1c44515f02fb34b722dce1d8cf5fed0dfbbd2f8c03d63b335211b7bcb12b6dea + engine: gotpl + home: http://www.wordpress.com/ + keywords: + - wordpress + - cms + - blog + - http + - web + - application + - php + maintainers: + - email: containers@bitnami.com + name: Bitnami + name: wordpress + sources: + - https://github.com/bitnami/bitnami-docker-wordpress + urls: + - https://kubernetes-charts.storage.googleapis.com/wordpress-0.3.0.tgz + version: 0.3.0 +generated: 2017-04-28T00:18:30.070608132Z diff --git a/pkg/getter/testdata/repository/local/index.yaml b/pkg/getter/testdata/repository/local/index.yaml new file mode 100644 index 000000000..efcf30c21 --- /dev/null +++ b/pkg/getter/testdata/repository/local/index.yaml @@ -0,0 +1,3 @@ +apiVersion: v1 +entries: {} +generated: 2017-04-28T12:34:38.900985501-06:00 diff --git a/pkg/getter/testdata/repository/repositories.yaml b/pkg/getter/testdata/repository/repositories.yaml new file mode 100644 index 000000000..1d884a0c7 --- /dev/null +++ b/pkg/getter/testdata/repository/repositories.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +generated: 2017-04-28T12:34:38.551693035-06:00 +repositories: +- caFile: "" + cache: repository/cache/stable-index.yaml + certFile: "" + keyFile: "" + name: stable + url: https://kubernetes-charts.storage.googleapis.com +- caFile: "" + cache: repository/cache/local-index.yaml + certFile: "" + keyFile: "" + name: local + url: http://127.0.0.1:8879/charts diff --git a/pkg/repo/chartrepo.go b/pkg/repo/chartrepo.go index d7a4267f8..6e483d48b 100644 --- a/pkg/repo/chartrepo.go +++ b/pkg/repo/chartrepo.go @@ -50,13 +50,13 @@ type ChartRepository struct { } // NewChartRepository constructs ChartRepository -func NewChartRepository(cfg *Entry, getters []getter.Prop) (*ChartRepository, error) { +func NewChartRepository(cfg *Entry, getters getter.Providers) (*ChartRepository, error) { u, err := url.Parse(cfg.URL) if err != nil { return nil, fmt.Errorf("invalid chart URL format: %s", cfg.URL) } - getterConstructor, err := getter.ConstructorByScheme(getters, u.Scheme) + getterConstructor, err := getters.ByScheme(u.Scheme) if err != nil { return nil, fmt.Errorf("Could not find protocol handler for: %s", u.Scheme) } diff --git a/pkg/repo/chartrepo_test.go b/pkg/repo/chartrepo_test.go index bab5019d8..d28ba605d 100644 --- a/pkg/repo/chartrepo_test.go +++ b/pkg/repo/chartrepo_test.go @@ -23,7 +23,7 @@ import ( "testing" "time" - "k8s.io/helm/pkg/getter/defaultgetters" + "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/helm/environment" "k8s.io/helm/pkg/proto/hapi/chart" ) @@ -37,7 +37,7 @@ func TestLoadChartRepository(t *testing.T) { r, err := NewChartRepository(&Entry{ Name: testRepository, URL: testURL, - }, defaultgetters.Get(environment.EnvSettings{})) + }, getter.All(environment.EnvSettings{})) if err != nil { t.Errorf("Problem creating chart repository from %s: %v", testRepository, err) } @@ -69,7 +69,7 @@ func TestIndex(t *testing.T) { r, err := NewChartRepository(&Entry{ Name: testRepository, URL: testURL, - }, defaultgetters.Get(environment.EnvSettings{})) + }, getter.All(environment.EnvSettings{})) if err != nil { t.Errorf("Problem creating chart repository from %s: %v", testRepository, err) } diff --git a/pkg/repo/index_test.go b/pkg/repo/index_test.go index c82e0e727..0072caf3b 100644 --- a/pkg/repo/index_test.go +++ b/pkg/repo/index_test.go @@ -24,7 +24,7 @@ import ( "path/filepath" "testing" - "k8s.io/helm/pkg/getter/defaultgetters" + "k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/helm/environment" "k8s.io/helm/pkg/proto/hapi/chart" ) @@ -152,7 +152,7 @@ func TestDownloadIndexFile(t *testing.T) { Name: testRepo, URL: srv.URL, Cache: indexFilePath, - }, defaultgetters.Get(environment.EnvSettings{})) + }, getter.All(environment.EnvSettings{})) if err != nil { t.Errorf("Problem creating chart repository from %s: %v", testRepo, err) } diff --git a/pkg/urlutil/urlutil.go b/pkg/urlutil/urlutil.go index 3a6570470..fb67708ae 100644 --- a/pkg/urlutil/urlutil.go +++ b/pkg/urlutil/urlutil.go @@ -17,10 +17,10 @@ limitations under the License. package urlutil import ( - "net" "net/url" "path" "path/filepath" + "strings" ) // URLJoin joins a base URL to one or more path components. @@ -70,10 +70,18 @@ func ExtractHostname(addr string) (string, error) { if err != nil { return "", err } + return stripPort(u.Host), nil +} - host, _, err := net.SplitHostPort(u.Host) - if err != nil { - return "", err +// Backported from Go 1.8 because Circle is still on 1.7 +func stripPort(hostport string) string { + colon := strings.IndexByte(hostport, ':') + if colon == -1 { + return hostport } - return host, nil + if i := strings.IndexByte(hostport, ']'); i != -1 { + return strings.TrimPrefix(hostport[:i], "[") + } + return hostport[:colon] + } diff --git a/pkg/urlutil/urlutil_test.go b/pkg/urlutil/urlutil_test.go index 5944df1ae..f0c82c0a9 100644 --- a/pkg/urlutil/urlutil_test.go +++ b/pkg/urlutil/urlutil_test.go @@ -62,3 +62,16 @@ func TestEqual(t *testing.T) { } } } + +func TestExtractHostname(t *testing.T) { + tests := map[string]string{ + "http://example.com": "example.com", + "https://example.com/foo": "example.com", + "https://example.com:31337/not/with/a/bang/but/a/whimper": "example.com", + } + for start, expect := range tests { + if got, _ := ExtractHostname(start); got != expect { + t.Errorf("Got %q, expected %q", got, expect) + } + } +} From 9ae84c730f6b1b3e77f013138c1b6420a585c494 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Mon, 1 May 2017 20:47:35 -0700 Subject: [PATCH 17/28] fix(tiller): make new version check backwards compatible --- pkg/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/version/version.go b/pkg/version/version.go index a2e3e8ecd..ced50097a 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -26,7 +26,7 @@ var ( // Increment major number for new feature additions and behavioral changes. // Increment minor number for bug fixes and performance enhancements. // Increment patch number for critical fixes to existing releases. - Version = "v2.3.x" + Version = "v2.3" // BuildMetadata is extra build time data BuildMetadata = "unreleased" From 46cad979502c44724241a9542f49f6805d4723bf Mon Sep 17 00:00:00 2001 From: Kiichiro Okano Date: Tue, 2 May 2017 17:43:36 +0100 Subject: [PATCH 18/28] Return as not ready if it new RS is nil --- pkg/kube/wait.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/kube/wait.go b/pkg/kube/wait.go index bef366b4f..e10f4997f 100644 --- a/pkg/kube/wait.go +++ b/pkg/kube/wait.go @@ -92,7 +92,7 @@ func (c *Client) waitForResources(timeout time.Duration, created Result) error { } // Find RS associated with deployment newReplicaSet, err := deploymentutil.FindNewReplicaSet(currentDeployment, replicaSets) - if err != nil { + if err != nil || newReplicaSet == nil { return false, err } newDeployment := deployment{ From d13b134ffb2aa458242f82752f13d785836e061e Mon Sep 17 00:00:00 2001 From: Sushil Kumar Date: Wed, 19 Apr 2017 16:18:24 -0700 Subject: [PATCH 19/28] Implements --repo flag to commands fetch, install, inspect, upgrade --- cmd/helm/fetch.go | 18 +++++++++++ cmd/helm/inspect.go | 38 ++++++++++++++++++++-- cmd/helm/install.go | 24 ++++++++++++-- cmd/helm/upgrade.go | 11 ++++++- docs/helm/helm_fetch.md | 6 +++- docs/helm/helm_inspect.md | 12 ++++--- docs/helm/helm_inspect_chart.md | 12 ++++--- docs/helm/helm_inspect_values.md | 12 ++++--- docs/helm/helm_install.md | 6 +++- docs/helm/helm_upgrade.md | 6 +++- docs/man/man1/helm_fetch.1 | 18 ++++++++++- docs/man/man1/helm_inspect.1 | 18 ++++++++++- docs/man/man1/helm_inspect_chart.1 | 18 ++++++++++- docs/man/man1/helm_inspect_values.1 | 18 ++++++++++- docs/man/man1/helm_install.1 | 18 ++++++++++- docs/man/man1/helm_upgrade.1 | 18 ++++++++++- pkg/repo/chartrepo.go | 49 +++++++++++++++++++++++++++++ scripts/completions.bash | 48 ++++++++++++++++++++++++++++ 18 files changed, 323 insertions(+), 27 deletions(-) diff --git a/cmd/helm/fetch.go b/cmd/helm/fetch.go index 26fab1d99..899fd1e73 100644 --- a/cmd/helm/fetch.go +++ b/cmd/helm/fetch.go @@ -27,6 +27,7 @@ import ( "k8s.io/helm/pkg/chartutil" "k8s.io/helm/pkg/downloader" "k8s.io/helm/pkg/getter" + "k8s.io/helm/pkg/repo" ) const fetchDesc = ` @@ -50,11 +51,16 @@ type fetchCmd struct { chartRef string destdir string version string + repoURL string verify bool verifyLater bool keyring string + certFile string + keyFile string + caFile string + out io.Writer } @@ -87,6 +93,10 @@ func newFetchCmd(out io.Writer) *cobra.Command { f.StringVar(&fch.version, "version", "", "specific version of a chart. Without this, the latest version is fetched") f.StringVar(&fch.keyring, "keyring", defaultKeyring(), "keyring containing public keys") f.StringVarP(&fch.destdir, "destination", "d", ".", "location to write the chart. If this and tardir are specified, tardir is appended to this") + f.StringVar(&fch.repoURL, "repo", "", "chart repository url where to locate the requested chart") + f.StringVar(&fch.certFile, "cert-file", "", "identify HTTPS client using this SSL certificate file") + f.StringVar(&fch.keyFile, "key-file", "", "identify HTTPS client using this SSL key file") + f.StringVar(&fch.caFile, "ca-file", "", "verify certificates of HTTPS-enabled servers using this CA bundle") return cmd } @@ -118,6 +128,14 @@ func (f *fetchCmd) run() error { defer os.RemoveAll(dest) } + if f.repoURL != "" { + chartURL, err := repo.FindChartInRepoURL(f.repoURL, f.chartRef, f.version, f.certFile, f.keyFile, f.caFile, getter.All(settings)) + if err != nil { + return err + } + f.chartRef = chartURL + } + saved, v, err := c.DownloadTo(f.chartRef, f.version, dest) if err != nil { return err diff --git a/cmd/helm/inspect.go b/cmd/helm/inspect.go index c3d539b3a..6369b5ddc 100644 --- a/cmd/helm/inspect.go +++ b/cmd/helm/inspect.go @@ -50,6 +50,11 @@ type inspectCmd struct { keyring string out io.Writer version string + repoURL string + + certFile string + keyFile string + caFile string } const ( @@ -72,7 +77,8 @@ func newInspectCmd(out io.Writer) *cobra.Command { if err := checkArgsLength(len(args), "chart name"); err != nil { return err } - cp, err := locateChartPath(args[0], insp.version, insp.verify, insp.keyring) + cp, err := locateChartPath(insp.repoURL, args[0], insp.version, insp.verify, insp.keyring, + insp.certFile, insp.keyFile, insp.caFile) if err != nil { return err } @@ -90,7 +96,8 @@ func newInspectCmd(out io.Writer) *cobra.Command { if err := checkArgsLength(len(args), "chart name"); err != nil { return err } - cp, err := locateChartPath(args[0], insp.version, insp.verify, insp.keyring) + cp, err := locateChartPath(insp.repoURL, args[0], insp.version, insp.verify, insp.keyring, + insp.certFile, insp.keyFile, insp.caFile) if err != nil { return err } @@ -108,7 +115,8 @@ func newInspectCmd(out io.Writer) *cobra.Command { if err := checkArgsLength(len(args), "chart name"); err != nil { return err } - cp, err := locateChartPath(args[0], insp.version, insp.verify, insp.keyring) + cp, err := locateChartPath(insp.repoURL, args[0], insp.version, insp.verify, insp.keyring, + insp.certFile, insp.keyFile, insp.caFile) if err != nil { return err } @@ -136,6 +144,30 @@ func newInspectCmd(out io.Writer) *cobra.Command { valuesSubCmd.Flags().StringVar(&insp.version, verflag, "", verdesc) chartSubCmd.Flags().StringVar(&insp.version, verflag, "", verdesc) + repoURL := "repo" + repoURLdesc := "chart repository url where to locate the requested chart" + inspectCommand.Flags().StringVar(&insp.repoURL, repoURL, "", repoURLdesc) + valuesSubCmd.Flags().StringVar(&insp.repoURL, repoURL, "", repoURLdesc) + chartSubCmd.Flags().StringVar(&insp.repoURL, repoURL, "", repoURLdesc) + + certFile := "cert-file" + certFiledesc := "verify certificates of HTTPS-enabled servers using this CA bundle" + inspectCommand.Flags().StringVar(&insp.certFile, certFile, "", certFiledesc) + valuesSubCmd.Flags().StringVar(&insp.certFile, certFile, "", certFiledesc) + chartSubCmd.Flags().StringVar(&insp.certFile, certFile, "", certFiledesc) + + keyFile := "key-file" + keyFiledesc := "identify HTTPS client using this SSL key file" + inspectCommand.Flags().StringVar(&insp.keyFile, keyFile, "", keyFiledesc) + valuesSubCmd.Flags().StringVar(&insp.keyFile, keyFile, "", keyFiledesc) + chartSubCmd.Flags().StringVar(&insp.keyFile, keyFile, "", keyFiledesc) + + caFile := "ca-file" + caFiledesc := "chart repository url where to locate the requested chart" + inspectCommand.Flags().StringVar(&insp.caFile, caFile, "", caFiledesc) + valuesSubCmd.Flags().StringVar(&insp.caFile, caFile, "", caFiledesc) + chartSubCmd.Flags().StringVar(&insp.caFile, caFile, "", caFiledesc) + inspectCommand.AddCommand(valuesSubCmd) inspectCommand.AddCommand(chartSubCmd) diff --git a/cmd/helm/install.go b/cmd/helm/install.go index 806674c82..4dcfe0c30 100644 --- a/cmd/helm/install.go +++ b/cmd/helm/install.go @@ -39,6 +39,7 @@ import ( "k8s.io/helm/pkg/kube" "k8s.io/helm/pkg/proto/hapi/chart" "k8s.io/helm/pkg/proto/hapi/release" + "k8s.io/helm/pkg/repo" "k8s.io/helm/pkg/strvals" ) @@ -115,6 +116,11 @@ type installCmd struct { version string timeout int64 wait bool + repoURL string + + certFile string + keyFile string + caFile string } type valueFiles []string @@ -149,7 +155,8 @@ func newInstallCmd(c helm.Interface, out io.Writer) *cobra.Command { if err := checkArgsLength(len(args), "chart name"); err != nil { return err } - cp, err := locateChartPath(args[0], inst.version, inst.verify, inst.keyring) + cp, err := locateChartPath(inst.repoURL, args[0], inst.version, inst.verify, inst.keyring, + inst.certFile, inst.keyFile, inst.caFile) if err != nil { return err } @@ -173,6 +180,10 @@ func newInstallCmd(c helm.Interface, out io.Writer) *cobra.Command { f.StringVar(&inst.version, "version", "", "specify the exact chart version to install. If this is not specified, the latest version is installed") f.Int64Var(&inst.timeout, "timeout", 300, "time in seconds to wait for any individual kubernetes operation (like Jobs for hooks)") f.BoolVar(&inst.wait, "wait", false, "if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout") + f.StringVar(&inst.repoURL, "repo", "", "chart repository url where to locate the requested chart") + f.StringVar(&inst.certFile, "cert-file", "", "identify HTTPS client using this SSL certificate file") + f.StringVar(&inst.keyFile, "key-file", "", "identify HTTPS client using this SSL key file") + f.StringVar(&inst.caFile, "ca-file", "", "verify certificates of HTTPS-enabled servers using this CA bundle") return cmd } @@ -331,7 +342,8 @@ func (i *installCmd) printRelease(rel *release.Release) { // - URL // // If 'verify' is true, this will attempt to also verify the chart. -func locateChartPath(name, version string, verify bool, keyring string) (string, error) { +func locateChartPath(repoURL, name, version string, verify bool, keyring, + certFile, keyFile, caFile string) (string, error) { name = strings.TrimSpace(name) version = strings.TrimSpace(version) if fi, err := os.Stat(name); err == nil { @@ -367,6 +379,14 @@ func locateChartPath(name, version string, verify bool, keyring string) (string, if verify { dl.Verify = downloader.VerifyAlways } + if repoURL != "" { + chartURL, err := repo.FindChartInRepoURL(repoURL, name, version, + certFile, keyFile, caFile, getter.All(settings)) + if err != nil { + return "", err + } + name = chartURL + } filename, _, err := dl.DownloadTo(name, version, ".") if err == nil { diff --git a/cmd/helm/upgrade.go b/cmd/helm/upgrade.go index 433e5a7f6..886589265 100644 --- a/cmd/helm/upgrade.go +++ b/cmd/helm/upgrade.go @@ -74,6 +74,11 @@ type upgradeCmd struct { resetValues bool reuseValues bool wait bool + repoURL string + + certFile string + keyFile string + caFile string } func newUpgradeCmd(client helm.Interface, out io.Writer) *cobra.Command { @@ -117,6 +122,10 @@ func newUpgradeCmd(client helm.Interface, out io.Writer) *cobra.Command { f.BoolVar(&upgrade.resetValues, "reset-values", false, "when upgrading, reset the values to the ones built into the chart") f.BoolVar(&upgrade.reuseValues, "reuse-values", false, "when upgrading, reuse the last release's values, and merge in any new values. If '--reset-values' is specified, this is ignored.") f.BoolVar(&upgrade.wait, "wait", false, "if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout") + f.StringVar(&upgrade.repoURL, "repo", "", "chart repository url where to locate the requested chart") + f.StringVar(&upgrade.certFile, "cert-file", "", "identify HTTPS client using this SSL certificate file") + f.StringVar(&upgrade.keyFile, "key-file", "", "identify HTTPS client using this SSL key file") + f.StringVar(&upgrade.caFile, "ca-file", "", "verify certificates of HTTPS-enabled servers using this CA bundle") f.MarkDeprecated("disable-hooks", "use --no-hooks instead") @@ -124,7 +133,7 @@ func newUpgradeCmd(client helm.Interface, out io.Writer) *cobra.Command { } func (u *upgradeCmd) run() error { - chartPath, err := locateChartPath(u.chart, u.version, u.verify, u.keyring) + chartPath, err := locateChartPath(u.repoURL, u.chart, u.version, u.verify, u.keyring, u.certFile, u.keyFile, u.caFile) if err != nil { return err } diff --git a/docs/helm/helm_fetch.md b/docs/helm/helm_fetch.md index 904e0577e..e49909e78 100644 --- a/docs/helm/helm_fetch.md +++ b/docs/helm/helm_fetch.md @@ -27,9 +27,13 @@ helm fetch [flags] [chart URL | repo/chartname] [...] ### Options ``` + --ca-file string verify certificates of HTTPS-enabled servers using this CA bundle + --cert-file string identify HTTPS client using this SSL certificate file -d, --destination string location to write the chart. If this and tardir are specified, tardir is appended to this (default ".") + --key-file string identify HTTPS client using this SSL key file --keyring string keyring containing public keys (default "~/.gnupg/pubring.gpg") --prov fetch the provenance file, but don't perform verification + --repo string chart repository url where to locate the requested chart --untar if set to true, will untar the chart after downloading it --untardir string if untar is specified, this flag specifies the name of the directory into which the chart is expanded (default ".") --verify verify the package against its signature @@ -49,4 +53,4 @@ helm fetch [flags] [chart URL | repo/chartname] [...] ### SEE ALSO * [helm](helm.md) - The Helm package manager for Kubernetes. -###### Auto generated by spf13/cobra on 16-Apr-2017 +###### Auto generated by spf13/cobra on 24-Apr-2017 diff --git a/docs/helm/helm_inspect.md b/docs/helm/helm_inspect.md index df8b5eb2d..c6ad0dcbd 100644 --- a/docs/helm/helm_inspect.md +++ b/docs/helm/helm_inspect.md @@ -19,9 +19,13 @@ helm inspect [CHART] ### Options ``` - --keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg") - --verify verify the provenance data for this chart - --version string version of the chart. By default, the newest chart is shown + --ca-file string chart repository url where to locate the requested chart + --cert-file string verify certificates of HTTPS-enabled servers using this CA bundle + --key-file string identify HTTPS client using this SSL key file + --keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg") + --repo string chart repository url where to locate the requested chart + --verify verify the provenance data for this chart + --version string version of the chart. By default, the newest chart is shown ``` ### Options inherited from parent commands @@ -39,4 +43,4 @@ helm inspect [CHART] * [helm inspect chart](helm_inspect_chart.md) - shows inspect chart * [helm inspect values](helm_inspect_values.md) - shows inspect values -###### Auto generated by spf13/cobra on 16-Apr-2017 +###### Auto generated by spf13/cobra on 24-Apr-2017 diff --git a/docs/helm/helm_inspect_chart.md b/docs/helm/helm_inspect_chart.md index 9980b5a46..89094d1cd 100644 --- a/docs/helm/helm_inspect_chart.md +++ b/docs/helm/helm_inspect_chart.md @@ -17,9 +17,13 @@ helm inspect chart [CHART] ### Options ``` - --keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg") - --verify verify the provenance data for this chart - --version string version of the chart. By default, the newest chart is shown + --ca-file string chart repository url where to locate the requested chart + --cert-file string verify certificates of HTTPS-enabled servers using this CA bundle + --key-file string identify HTTPS client using this SSL key file + --keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg") + --repo string chart repository url where to locate the requested chart + --verify verify the provenance data for this chart + --version string version of the chart. By default, the newest chart is shown ``` ### Options inherited from parent commands @@ -35,4 +39,4 @@ helm inspect chart [CHART] ### SEE ALSO * [helm inspect](helm_inspect.md) - inspect a chart -###### Auto generated by spf13/cobra on 16-Apr-2017 +###### Auto generated by spf13/cobra on 24-Apr-2017 diff --git a/docs/helm/helm_inspect_values.md b/docs/helm/helm_inspect_values.md index 650a64358..86b2c74c1 100644 --- a/docs/helm/helm_inspect_values.md +++ b/docs/helm/helm_inspect_values.md @@ -17,9 +17,13 @@ helm inspect values [CHART] ### Options ``` - --keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg") - --verify verify the provenance data for this chart - --version string version of the chart. By default, the newest chart is shown + --ca-file string chart repository url where to locate the requested chart + --cert-file string verify certificates of HTTPS-enabled servers using this CA bundle + --key-file string identify HTTPS client using this SSL key file + --keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg") + --repo string chart repository url where to locate the requested chart + --verify verify the provenance data for this chart + --version string version of the chart. By default, the newest chart is shown ``` ### Options inherited from parent commands @@ -35,4 +39,4 @@ helm inspect values [CHART] ### SEE ALSO * [helm inspect](helm_inspect.md) - inspect a chart -###### Auto generated by spf13/cobra on 16-Apr-2017 +###### Auto generated by spf13/cobra on 24-Apr-2017 diff --git a/docs/helm/helm_install.md b/docs/helm/helm_install.md index 0f5736887..edbdcb6a9 100644 --- a/docs/helm/helm_install.md +++ b/docs/helm/helm_install.md @@ -68,13 +68,17 @@ helm install [CHART] ### Options ``` + --ca-file string verify certificates of HTTPS-enabled servers using this CA bundle + --cert-file string identify HTTPS client using this SSL certificate file --dry-run simulate an install + --key-file string identify HTTPS client using this SSL key file --keyring string location of public keys used for verification (default "~/.gnupg/pubring.gpg") -n, --name string release name. If unspecified, it will autogenerate one for you --name-template string specify template used to name the release --namespace string namespace to install the release into --no-hooks prevent hooks from running during install --replace re-use the given name, even if that name is already used. This is unsafe in production + --repo string chart repository url where to locate the requested chart --set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) --timeout int time in seconds to wait for any individual kubernetes operation (like Jobs for hooks) (default 300) --tls enable TLS for request @@ -101,4 +105,4 @@ helm install [CHART] ### SEE ALSO * [helm](helm.md) - The Helm package manager for Kubernetes. -###### Auto generated by spf13/cobra on 16-Apr-2017 +###### Auto generated by spf13/cobra on 24-Apr-2017 diff --git a/docs/helm/helm_upgrade.md b/docs/helm/helm_upgrade.md index 931073937..2ac1fd32a 100644 --- a/docs/helm/helm_upgrade.md +++ b/docs/helm/helm_upgrade.md @@ -36,12 +36,16 @@ helm upgrade [RELEASE] [CHART] ### Options ``` + --ca-file string verify certificates of HTTPS-enabled servers using this CA bundle + --cert-file string identify HTTPS client using this SSL certificate file --dry-run simulate an upgrade -i, --install if a release by this name doesn't already exist, run an install + --key-file string identify HTTPS client using this SSL key file --keyring string path to the keyring that contains public signing keys (default "~/.gnupg/pubring.gpg") --namespace string namespace to install the release into (only used if --install is set) (default "default") --no-hooks disable pre/post upgrade hooks --recreate-pods performs pods restart for the resource if applicable + --repo string chart repository url where to locate the requested chart --reset-values when upgrading, reset the values to the ones built into the chart --reuse-values when upgrading, reuse the last release's values, and merge in any new values. If '--reset-values' is specified, this is ignored. --set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) @@ -70,4 +74,4 @@ helm upgrade [RELEASE] [CHART] ### SEE ALSO * [helm](helm.md) - The Helm package manager for Kubernetes. -###### Auto generated by spf13/cobra on 16-Apr-2017 +###### Auto generated by spf13/cobra on 24-Apr-2017 diff --git a/docs/man/man1/helm_fetch.1 b/docs/man/man1/helm_fetch.1 index 0de710574..336922468 100644 --- a/docs/man/man1/helm_fetch.1 +++ b/docs/man/man1/helm_fetch.1 @@ -33,10 +33,22 @@ result in an error, and the chart will not be saved locally. .SH OPTIONS +.PP +\fB\-\-ca\-file\fP="" + verify certificates of HTTPS\-enabled servers using this CA bundle + +.PP +\fB\-\-cert\-file\fP="" + identify HTTPS client using this SSL certificate file + .PP \fB\-d\fP, \fB\-\-destination\fP="." location to write the chart. If this and tardir are specified, tardir is appended to this +.PP +\fB\-\-key\-file\fP="" + identify HTTPS client using this SSL key file + .PP \fB\-\-keyring\fP="~/.gnupg/pubring.gpg" keyring containing public keys @@ -45,6 +57,10 @@ result in an error, and the chart will not be saved locally. \fB\-\-prov\fP[=false] fetch the provenance file, but don't perform verification +.PP +\fB\-\-repo\fP="" + chart repository url where to locate the requested chart + .PP \fB\-\-untar\fP[=false] if set to true, will untar the chart after downloading it @@ -91,4 +107,4 @@ result in an error, and the chart will not be saved locally. .SH HISTORY .PP -16\-Apr\-2017 Auto generated by spf13/cobra +24\-Apr\-2017 Auto generated by spf13/cobra diff --git a/docs/man/man1/helm_inspect.1 b/docs/man/man1/helm_inspect.1 index bce08dfcd..1f16017ad 100644 --- a/docs/man/man1/helm_inspect.1 +++ b/docs/man/man1/helm_inspect.1 @@ -23,10 +23,26 @@ Inspect prints the contents of the Chart.yaml file and the values.yaml file. .SH OPTIONS +.PP +\fB\-\-ca\-file\fP="" + chart repository url where to locate the requested chart + +.PP +\fB\-\-cert\-file\fP="" + verify certificates of HTTPS\-enabled servers using this CA bundle + +.PP +\fB\-\-key\-file\fP="" + identify HTTPS client using this SSL key file + .PP \fB\-\-keyring\fP="~/.gnupg/pubring.gpg" path to the keyring containing public verification keys +.PP +\fB\-\-repo\fP="" + chart repository url where to locate the requested chart + .PP \fB\-\-verify\fP[=false] verify the provenance data for this chart @@ -65,4 +81,4 @@ Inspect prints the contents of the Chart.yaml file and the values.yaml file. .SH HISTORY .PP -16\-Apr\-2017 Auto generated by spf13/cobra +24\-Apr\-2017 Auto generated by spf13/cobra diff --git a/docs/man/man1/helm_inspect_chart.1 b/docs/man/man1/helm_inspect_chart.1 index 892a5f6d1..04047c102 100644 --- a/docs/man/man1/helm_inspect_chart.1 +++ b/docs/man/man1/helm_inspect_chart.1 @@ -20,10 +20,26 @@ of the Charts.yaml file .SH OPTIONS +.PP +\fB\-\-ca\-file\fP="" + chart repository url where to locate the requested chart + +.PP +\fB\-\-cert\-file\fP="" + verify certificates of HTTPS\-enabled servers using this CA bundle + +.PP +\fB\-\-key\-file\fP="" + identify HTTPS client using this SSL key file + .PP \fB\-\-keyring\fP="~/.gnupg/pubring.gpg" path to the keyring containing public verification keys +.PP +\fB\-\-repo\fP="" + chart repository url where to locate the requested chart + .PP \fB\-\-verify\fP[=false] verify the provenance data for this chart @@ -62,4 +78,4 @@ of the Charts.yaml file .SH HISTORY .PP -16\-Apr\-2017 Auto generated by spf13/cobra +24\-Apr\-2017 Auto generated by spf13/cobra diff --git a/docs/man/man1/helm_inspect_values.1 b/docs/man/man1/helm_inspect_values.1 index ed46871bd..f7fbe6f6f 100644 --- a/docs/man/man1/helm_inspect_values.1 +++ b/docs/man/man1/helm_inspect_values.1 @@ -20,10 +20,26 @@ of the values.yaml file .SH OPTIONS +.PP +\fB\-\-ca\-file\fP="" + chart repository url where to locate the requested chart + +.PP +\fB\-\-cert\-file\fP="" + verify certificates of HTTPS\-enabled servers using this CA bundle + +.PP +\fB\-\-key\-file\fP="" + identify HTTPS client using this SSL key file + .PP \fB\-\-keyring\fP="~/.gnupg/pubring.gpg" path to the keyring containing public verification keys +.PP +\fB\-\-repo\fP="" + chart repository url where to locate the requested chart + .PP \fB\-\-verify\fP[=false] verify the provenance data for this chart @@ -62,4 +78,4 @@ of the values.yaml file .SH HISTORY .PP -16\-Apr\-2017 Auto generated by spf13/cobra +24\-Apr\-2017 Auto generated by spf13/cobra diff --git a/docs/man/man1/helm_install.1 b/docs/man/man1/helm_install.1 index 521680e50..3a6db6769 100644 --- a/docs/man/man1/helm_install.1 +++ b/docs/man/man1/helm_install.1 @@ -114,10 +114,22 @@ charts in a repository, use 'helm search'. .SH OPTIONS +.PP +\fB\-\-ca\-file\fP="" + verify certificates of HTTPS\-enabled servers using this CA bundle + +.PP +\fB\-\-cert\-file\fP="" + identify HTTPS client using this SSL certificate file + .PP \fB\-\-dry\-run\fP[=false] simulate an install +.PP +\fB\-\-key\-file\fP="" + identify HTTPS client using this SSL key file + .PP \fB\-\-keyring\fP="~/.gnupg/pubring.gpg" location of public keys used for verification @@ -142,6 +154,10 @@ charts in a repository, use 'helm search'. \fB\-\-replace\fP[=false] re\-use the given name, even if that name is already used. This is unsafe in production +.PP +\fB\-\-repo\fP="" + chart repository url where to locate the requested chart + .PP \fB\-\-set\fP=[] set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) @@ -216,4 +232,4 @@ charts in a repository, use 'helm search'. .SH HISTORY .PP -16\-Apr\-2017 Auto generated by spf13/cobra +24\-Apr\-2017 Auto generated by spf13/cobra diff --git a/docs/man/man1/helm_upgrade.1 b/docs/man/man1/helm_upgrade.1 index 0190285b6..dce13815b 100644 --- a/docs/man/man1/helm_upgrade.1 +++ b/docs/man/man1/helm_upgrade.1 @@ -57,6 +57,14 @@ $ helm upgrade \-\-set foo=bar \-\-set foo=newbar redis ./redis .SH OPTIONS +.PP +\fB\-\-ca\-file\fP="" + verify certificates of HTTPS\-enabled servers using this CA bundle + +.PP +\fB\-\-cert\-file\fP="" + identify HTTPS client using this SSL certificate file + .PP \fB\-\-dry\-run\fP[=false] simulate an upgrade @@ -65,6 +73,10 @@ $ helm upgrade \-\-set foo=bar \-\-set foo=newbar redis ./redis \fB\-i\fP, \fB\-\-install\fP[=false] if a release by this name doesn't already exist, run an install +.PP +\fB\-\-key\-file\fP="" + identify HTTPS client using this SSL key file + .PP \fB\-\-keyring\fP="~/.gnupg/pubring.gpg" path to the keyring that contains public signing keys @@ -81,6 +93,10 @@ $ helm upgrade \-\-set foo=bar \-\-set foo=newbar redis ./redis \fB\-\-recreate\-pods\fP[=false] performs pods restart for the resource if applicable +.PP +\fB\-\-repo\fP="" + chart repository url where to locate the requested chart + .PP \fB\-\-reset\-values\fP[=false] when upgrading, reset the values to the ones built into the chart @@ -163,4 +179,4 @@ $ helm upgrade \-\-set foo=bar \-\-set foo=newbar redis ./redis .SH HISTORY .PP -16\-Apr\-2017 Auto generated by spf13/cobra +24\-Apr\-2017 Auto generated by spf13/cobra diff --git a/pkg/repo/chartrepo.go b/pkg/repo/chartrepo.go index 6e483d48b..318c55156 100644 --- a/pkg/repo/chartrepo.go +++ b/pkg/repo/chartrepo.go @@ -177,3 +177,52 @@ func (r *ChartRepository) generateIndex() error { r.IndexFile.SortEntries() return nil } + +// FindChartInRepoURL finds chart in chart repository pointed by repoURL +// without adding repo to repostiories +func FindChartInRepoURL(repoURL, chartName, chartVersion, certFile, keyFile, caFile string, getters getter.Providers) (string, error) { + + // Download and write the index file to a temporary location + tempIndexFile, err := ioutil.TempFile("", "tmp-repo-file") + if err != nil { + return "", fmt.Errorf("cannot write index file for repository requested") + } + defer func() { + os.Remove(tempIndexFile.Name()) + }() + + c := Entry{ + URL: repoURL, + CertFile: certFile, + KeyFile: keyFile, + CAFile: caFile, + } + r, err := NewChartRepository(&c, getters) + if err != nil { + return "", err + } + if err := r.DownloadIndexFile(tempIndexFile.Name()); err != nil { + return "", fmt.Errorf("Looks like %q is not a valid chart repository or cannot be reached: %s", repoURL, err) + } + + // Read the index file for the repository to get chart information and return chart URL + repoIndex, err := LoadIndexFile(tempIndexFile.Name()) + if err != nil { + return "", err + } + + errMsg := fmt.Sprintf("chart %q", chartName) + if chartVersion != "" { + errMsg = fmt.Sprintf("%s version %q", errMsg, chartVersion) + } + cv, err := repoIndex.Get(chartName, chartVersion) + if err != nil { + return "", fmt.Errorf("%s not found in %s repository", errMsg, repoURL) + } + + if len(cv.URLs) == 0 { + return "", fmt.Errorf("%s has no downloadable URLs", errMsg) + } + + return cv.URLs[0], nil +} diff --git a/scripts/completions.bash b/scripts/completions.bash index 361e67a62..be9ca298b 100644 --- a/scripts/completions.bash +++ b/scripts/completions.bash @@ -424,13 +424,21 @@ _helm_fetch() flags_with_completion=() flags_completion=() + flags+=("--ca-file=") + local_nonpersistent_flags+=("--ca-file=") + flags+=("--cert-file=") + local_nonpersistent_flags+=("--cert-file=") flags+=("--destination=") two_word_flags+=("-d") local_nonpersistent_flags+=("--destination=") + flags+=("--key-file=") + local_nonpersistent_flags+=("--key-file=") flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=") flags+=("--prov") local_nonpersistent_flags+=("--prov") + flags+=("--repo=") + local_nonpersistent_flags+=("--repo=") flags+=("--untar") local_nonpersistent_flags+=("--untar") flags+=("--untardir=") @@ -683,8 +691,16 @@ _helm_inspect_chart() flags_with_completion=() flags_completion=() + flags+=("--ca-file=") + local_nonpersistent_flags+=("--ca-file=") + flags+=("--cert-file=") + local_nonpersistent_flags+=("--cert-file=") + flags+=("--key-file=") + local_nonpersistent_flags+=("--key-file=") flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=") + flags+=("--repo=") + local_nonpersistent_flags+=("--repo=") flags+=("--verify") local_nonpersistent_flags+=("--verify") flags+=("--version=") @@ -711,8 +727,16 @@ _helm_inspect_values() flags_with_completion=() flags_completion=() + flags+=("--ca-file=") + local_nonpersistent_flags+=("--ca-file=") + flags+=("--cert-file=") + local_nonpersistent_flags+=("--cert-file=") + flags+=("--key-file=") + local_nonpersistent_flags+=("--key-file=") flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=") + flags+=("--repo=") + local_nonpersistent_flags+=("--repo=") flags+=("--verify") local_nonpersistent_flags+=("--verify") flags+=("--version=") @@ -741,8 +765,16 @@ _helm_inspect() flags_with_completion=() flags_completion=() + flags+=("--ca-file=") + local_nonpersistent_flags+=("--ca-file=") + flags+=("--cert-file=") + local_nonpersistent_flags+=("--cert-file=") + flags+=("--key-file=") + local_nonpersistent_flags+=("--key-file=") flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=") + flags+=("--repo=") + local_nonpersistent_flags+=("--repo=") flags+=("--verify") local_nonpersistent_flags+=("--verify") flags+=("--version=") @@ -769,8 +801,14 @@ _helm_install() flags_with_completion=() flags_completion=() + flags+=("--ca-file=") + local_nonpersistent_flags+=("--ca-file=") + flags+=("--cert-file=") + local_nonpersistent_flags+=("--cert-file=") flags+=("--dry-run") local_nonpersistent_flags+=("--dry-run") + flags+=("--key-file=") + local_nonpersistent_flags+=("--key-file=") flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=") flags+=("--name=") @@ -784,6 +822,8 @@ _helm_install() local_nonpersistent_flags+=("--no-hooks") flags+=("--replace") local_nonpersistent_flags+=("--replace") + flags+=("--repo=") + local_nonpersistent_flags+=("--repo=") flags+=("--set=") local_nonpersistent_flags+=("--set=") flags+=("--timeout=") @@ -1396,6 +1436,10 @@ _helm_upgrade() flags_with_completion=() flags_completion=() + flags+=("--ca-file=") + local_nonpersistent_flags+=("--ca-file=") + flags+=("--cert-file=") + local_nonpersistent_flags+=("--cert-file=") flags+=("--disable-hooks") local_nonpersistent_flags+=("--disable-hooks") flags+=("--dry-run") @@ -1403,6 +1447,8 @@ _helm_upgrade() flags+=("--install") flags+=("-i") local_nonpersistent_flags+=("--install") + flags+=("--key-file=") + local_nonpersistent_flags+=("--key-file=") flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=") flags+=("--namespace=") @@ -1411,6 +1457,8 @@ _helm_upgrade() local_nonpersistent_flags+=("--no-hooks") flags+=("--recreate-pods") local_nonpersistent_flags+=("--recreate-pods") + flags+=("--repo=") + local_nonpersistent_flags+=("--repo=") flags+=("--reset-values") local_nonpersistent_flags+=("--reset-values") flags+=("--reuse-values") From f8b2c5eb571e46d99b88dab8498408b35f892f11 Mon Sep 17 00:00:00 2001 From: Adnan Abdulhussein Date: Tue, 2 May 2017 19:15:18 +0100 Subject: [PATCH 20/28] fix(create): incorrect URL in default NOTES.txt --- pkg/chartutil/create.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/chartutil/create.go b/pkg/chartutil/create.go index 9db26ff83..8ab05e896 100644 --- a/pkg/chartutil/create.go +++ b/pkg/chartutil/create.go @@ -195,7 +195,7 @@ const defaultNotes = `1. Get the application URL by running these commands: {{- else if contains "NodePort" .Values.service.type }} export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }}) export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo http://$NODE_IP:$NODE_PORT/login + echo http://$NODE_IP:$NODE_PORT {{- else if contains "LoadBalancer" .Values.service.type }} NOTE: It may take a few minutes for the LoadBalancer IP to be available. You can watch the status of by running 'kubectl get svc -w {{ template "fullname" . }}' From dcfbb2bd35b90cac6a25fa2a9bbd59150ff70abf Mon Sep 17 00:00:00 2001 From: Michelle Noorali Date: Tue, 2 May 2017 12:04:55 -0400 Subject: [PATCH 21/28] fix(releaseutil): remove newline on SplitManifests fixes #2158 --- pkg/releaseutil/manifest.go | 18 +++++++--- pkg/releaseutil/manifest_test.go | 61 ++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 pkg/releaseutil/manifest_test.go diff --git a/pkg/releaseutil/manifest.go b/pkg/releaseutil/manifest.go index aad1641d7..a0449cc55 100644 --- a/pkg/releaseutil/manifest.go +++ b/pkg/releaseutil/manifest.go @@ -19,6 +19,7 @@ package releaseutil import ( "fmt" "regexp" + "strings" ) // SimpleHead defines what the structure of the head of a manifest file @@ -34,16 +35,25 @@ type SimpleHead struct { var sep = regexp.MustCompile("(?:^|\\s*\n)---\\s*") // SplitManifests takes a string of manifest and returns a map contains individual manifests -func SplitManifests(bigfile string) map[string]string { +func SplitManifests(bigFile string) map[string]string { // Basically, we're quickly splitting a stream of YAML documents into an // array of YAML docs. In the current implementation, the file name is just // a place holder, and doesn't have any further meaning. tpl := "manifest-%d" res := map[string]string{} // Making sure that any extra whitespace in YAML stream doesn't interfere in splitting documents correctly. - docs := sep.Split(bigfile, -1) - for i, d := range docs { - res[fmt.Sprintf(tpl, i)] = d + bigFileTmp := strings.TrimSpace(bigFile) + docs := sep.Split(bigFileTmp, -1) + var count int + for _, d := range docs { + + if d == "" { + continue + } + + d = strings.TrimSpace(d) + res[fmt.Sprintf(tpl, count)] = d + count = count + 1 } return res } diff --git a/pkg/releaseutil/manifest_test.go b/pkg/releaseutil/manifest_test.go new file mode 100644 index 000000000..7906279ad --- /dev/null +++ b/pkg/releaseutil/manifest_test.go @@ -0,0 +1,61 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package releaseutil // import "k8s.io/helm/pkg/releaseutil" + +import ( + "reflect" + "testing" +) + +const manifestFile = ` + +--- +apiVersion: v1 +kind: Pod +metadata: + name: finding-nemo, + annotations: + "helm.sh/hook": test-success +spec: + containers: + - name: nemo-test + image: fake-image + cmd: fake-command +` + +const expectedManifest = `apiVersion: v1 +kind: Pod +metadata: + name: finding-nemo, + annotations: + "helm.sh/hook": test-success +spec: + containers: + - name: nemo-test + image: fake-image + cmd: fake-command` + +func TestSplitManifest(t *testing.T) { + manifests := SplitManifests(manifestFile) + if len(manifests) != 1 { + t.Errorf("Expected 1 manifest, got %v", len(manifests)) + } + expected := map[string]string{"manifest-0": expectedManifest} + if !reflect.DeepEqual(manifests, expected) { + t.Errorf("Expected %v, got %v", expected, manifests) + } +} From 4d8f23e0c63aada4d7c57a25b4b384734bc3c930 Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Tue, 2 May 2017 13:20:04 -0600 Subject: [PATCH 22/28] chore(tiller): bump Sprig to 2.11.0 This adds the `merge` function, among other things. --- glide.lock | 8 ++++---- glide.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/glide.lock b/glide.lock index eda65db58..5950c5f2a 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ -hash: 1933241d076be316f3ef64e587e5400c2c884ebaa68565339796c7803619c8a4 -updated: 2017-04-28T15:58:28.450420107-06:00 +hash: 0098f4e67e62df017349dfc51afcb25c4a7927b3cc032c0fb983d6e0c86942b9 +updated: 2017-05-02T12:34:53.4235593-06:00 imports: - name: bitbucket.org/ww/goautoneg version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675 @@ -153,7 +153,7 @@ imports: - name: github.com/howeyc/gopass version: 3ca23474a7c7203e0a0a070fd33508f6efdb9b3d - name: github.com/imdario/mergo - version: 6633656539c1639d9d78127b7d47c622b5d7b6dc + version: 3e95a51e0639b4cf372f2ccf74c86749d747fbdc - name: github.com/inconshreveable/mousetrap version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 - name: github.com/jonboulle/clockwork @@ -169,7 +169,7 @@ imports: - name: github.com/Masterminds/semver version: 3f0ab6d4ab4bed1c61caf056b63a6e62190c7801 - name: github.com/Masterminds/sprig - version: 23597e5f6ad0e4d590e71314bfd0251a4a3cf849 + version: a48f46e0125cf60347eda24fccf1b09f1a0d681f - name: github.com/Masterminds/vcs version: 3084677c2c188840777bff30054f2b553729d329 - name: github.com/mattn/go-runewidth diff --git a/glide.yaml b/glide.yaml index d13703c78..7c9158c54 100644 --- a/glide.yaml +++ b/glide.yaml @@ -11,7 +11,7 @@ import: - package: github.com/Masterminds/vcs version: ~1.11.0 - package: github.com/Masterminds/sprig - version: ^2.10 + version: ^2.11 - package: github.com/ghodss/yaml - package: github.com/Masterminds/semver version: ~1.2.3 From 1ec2c04be8d4d69c15b85df97394bfa2f5919f03 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Tue, 2 May 2017 13:04:36 -0700 Subject: [PATCH 23/28] chore(*): bump to v2.4.0 --- README.md | 7 +++---- pkg/version/version.go | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 08351149e..f5bf4eb5e 100644 --- a/README.md +++ b/README.md @@ -33,9 +33,9 @@ Think of it like apt/yum/homebrew for Kubernetes. Binary downloads of the Helm client can be found at the following links: -- [OSX](https://kubernetes-helm.storage.googleapis.com/helm-v2.3.0-darwin-amd64.tar.gz) -- [Linux](https://kubernetes-helm.storage.googleapis.com/helm-v2.3.0-linux-amd64.tar.gz) -- [Linux 32-bit](https://kubernetes-helm.storage.googleapis.com/helm-v2.3.0-linux-386.tar.gz) +- [OSX](https://kubernetes-helm.storage.googleapis.com/helm-v2.4.0-darwin-amd64.tar.gz) +- [Linux](https://kubernetes-helm.storage.googleapis.com/helm-v2.4.0-linux-amd64.tar.gz) +- [Linux 32-bit](https://kubernetes-helm.storage.googleapis.com/helm-v2.4.0-linux-386.tar.gz) Unpack the `helm` binary and add it to your PATH and you are good to go! macOS/[homebrew](https://brew.sh/) users can also use `brew install kubernetes-helm`. @@ -45,7 +45,6 @@ To rapidly get Helm up and running, start with the [Quick Start Guide](docs/quic See the [installation guide](docs/install.md) for more options, including installing pre-releases. - ## Docs Get started with the [Quick Start guide](docs/quickstart.md) or plunge into the [complete documentation](docs/index.md) diff --git a/pkg/version/version.go b/pkg/version/version.go index ced50097a..c0b54fef7 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -26,7 +26,7 @@ var ( // Increment major number for new feature additions and behavioral changes. // Increment minor number for bug fixes and performance enhancements. // Increment patch number for critical fixes to existing releases. - Version = "v2.3" + Version = "v2.4" // BuildMetadata is extra build time data BuildMetadata = "unreleased" From 2a5ab5989599699f79b67706d7eb33ade075f70a Mon Sep 17 00:00:00 2001 From: Sushil Kumar Date: Tue, 2 May 2017 13:25:13 -0700 Subject: [PATCH 24/28] Updated defer delete call --- pkg/repo/chartrepo.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/repo/chartrepo.go b/pkg/repo/chartrepo.go index 318c55156..9c833654a 100644 --- a/pkg/repo/chartrepo.go +++ b/pkg/repo/chartrepo.go @@ -187,9 +187,7 @@ func FindChartInRepoURL(repoURL, chartName, chartVersion, certFile, keyFile, caF if err != nil { return "", fmt.Errorf("cannot write index file for repository requested") } - defer func() { - os.Remove(tempIndexFile.Name()) - }() + defer os.Remove(tempIndexFile.Name()) c := Entry{ URL: repoURL, From 0d62c3ab56aff538efb367e8efb5741144225b86 Mon Sep 17 00:00:00 2001 From: Rod Cloutier Date: Tue, 2 May 2017 22:34:22 -0400 Subject: [PATCH 25/28] fix(helm): reverted upgrade of imdario/mergo Reverted the version of mergo to a version that was known to work with both kubernetes and sprig. Closes #2376 --- glide.lock | 6 +++--- glide.yaml | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/glide.lock b/glide.lock index 5950c5f2a..624341837 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ -hash: 0098f4e67e62df017349dfc51afcb25c4a7927b3cc032c0fb983d6e0c86942b9 -updated: 2017-05-02T12:34:53.4235593-06:00 +hash: e323e66f9aba77578f7dcc0886e3117ebc373bc391374b2d5ddd293c276c8966 +updated: 2017-05-02T22:27:03.674351365-04:00 imports: - name: bitbucket.org/ww/goautoneg version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675 @@ -153,7 +153,7 @@ imports: - name: github.com/howeyc/gopass version: 3ca23474a7c7203e0a0a070fd33508f6efdb9b3d - name: github.com/imdario/mergo - version: 3e95a51e0639b4cf372f2ccf74c86749d747fbdc + version: 6633656539c1639d9d78127b7d47c622b5d7b6dc - name: github.com/inconshreveable/mousetrap version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 - name: github.com/jonboulle/clockwork diff --git a/glide.yaml b/glide.yaml index 7c9158c54..0e4c3c3d0 100644 --- a/glide.yaml +++ b/glide.yaml @@ -10,6 +10,10 @@ import: version: 9ff6c6923cfffbcd502984b8e0c80539a94968b7 - package: github.com/Masterminds/vcs version: ~1.11.0 + + # Pin version of mergo that is compatible with both sprig and Kubernetes +- package: github.com/imdario/mergo + version: 6633656539c1639d9d78127b7d47c622b5d7b6dc - package: github.com/Masterminds/sprig version: ^2.11 - package: github.com/ghodss/yaml From 267a09193be23a55ada0e76604b0afc03ed4b26c Mon Sep 17 00:00:00 2001 From: Hoat Le Date: Wed, 3 May 2017 23:13:12 +0700 Subject: [PATCH 26/28] fix typo: ' instead of ` --- docs/using_helm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/using_helm.md b/docs/using_helm.md index 00793e8e5..ef7753101 100755 --- a/docs/using_helm.md +++ b/docs/using_helm.md @@ -215,7 +215,7 @@ You can then override any of these settings in a YAML formatted file, and then pass that file during installation. ```console -$ echo 'mariadbUser: user0` > config.yaml +$ echo 'mariadbUser: user0' > config.yaml $ helm install -f config.yaml stable/mariadb ``` From 1cd4bf06f11d9c4816f3d941c940a52b4d7aa04b Mon Sep 17 00:00:00 2001 From: Oli Lalonde Date: Wed, 3 May 2017 18:00:00 -0700 Subject: [PATCH 27/28] Update dl links in README.md from v2.4.0 to v2.4.1 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f5bf4eb5e..27da73961 100644 --- a/README.md +++ b/README.md @@ -33,9 +33,9 @@ Think of it like apt/yum/homebrew for Kubernetes. Binary downloads of the Helm client can be found at the following links: -- [OSX](https://kubernetes-helm.storage.googleapis.com/helm-v2.4.0-darwin-amd64.tar.gz) -- [Linux](https://kubernetes-helm.storage.googleapis.com/helm-v2.4.0-linux-amd64.tar.gz) -- [Linux 32-bit](https://kubernetes-helm.storage.googleapis.com/helm-v2.4.0-linux-386.tar.gz) +- [OSX](https://kubernetes-helm.storage.googleapis.com/helm-v2.4.1-darwin-amd64.tar.gz) +- [Linux](https://kubernetes-helm.storage.googleapis.com/helm-v2.4.1-linux-amd64.tar.gz) +- [Linux 32-bit](https://kubernetes-helm.storage.googleapis.com/helm-v2.4.1-linux-386.tar.gz) Unpack the `helm` binary and add it to your PATH and you are good to go! macOS/[homebrew](https://brew.sh/) users can also use `brew install kubernetes-helm`. From 85da563e4f914372d6a5ad21e8721601021aa33b Mon Sep 17 00:00:00 2001 From: Eduardo Baitello Date: Thu, 4 May 2017 14:19:52 -0300 Subject: [PATCH 28/28] Remove warnings about hook ordering guarantees With hook weights, execution ordering can be built. --- docs/charts_hooks.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/charts_hooks.md b/docs/charts_hooks.md index 1fef8cca3..6ac9bc2b0 100644 --- a/docs/charts_hooks.md +++ b/docs/charts_hooks.md @@ -155,12 +155,10 @@ One resource can implement multiple hooks: Similarly, there is no limit to the number of different resources that may implement a given hook. For example, one could declare both a secret -and a config map as a pre-install hook. It is important to keep in mind, -though, that there are no ordering guarantees about hooks. +and a config map as a pre-install hook. When subcharts declare hooks, those are also evaluated. There is no way -for a top-level chart to disable the hooks declared by subcharts. And -again, there is no guaranteed ordering. +for a top-level chart to disable the hooks declared by subcharts. It is also possible to define a weight for a hook which will help build a deterministic executing order. Weights are defined using the following annotation: