Skip to content
This repository has been archived by the owner on Sep 15, 2022. It is now read-only.

Implement templating from secret #14

Merged
merged 4 commits into from
Aug 26, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions internal/addon/provider/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,17 @@ func (d *Client) Cleanup() error {

// GetCompleteAddon returns a addon with his charts as AddonWithCharts instance.
func (d *Client) GetCompleteAddon(entry internal.IndexEntry) (internal.AddonWithCharts, error) {
b, c, err := d.loadAddonAndCharts(entry.Name, entry.Version)
a, c, err := d.loadAddonAndCharts(entry.Name, entry.Version)
if err != nil {
return internal.AddonWithCharts{}, errors.Wrapf(err, "while loading addon %v", entry.Name)
}
b.RepositoryURL, err = d.concreteGetter.AddonDocURL(entry.Name, entry.Version)
a.RepositoryURL, err = d.concreteGetter.AddonDocURL(entry.Name, entry.Version)
if err != nil {
return internal.AddonWithCharts{}, errors.Wrapf(err, "while getting Docs URL for addon %v", entry.Name)
}

return internal.AddonWithCharts{
Addon: b,
Addon: a,
Charts: c,
}, nil
}
Expand Down
4 changes: 0 additions & 4 deletions internal/addon/provider/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,6 @@ func (cli *ClientFactory) NewGetter(rawURL, instPath string) (AddonClient, error
return nil, err
}

if fullRealAddr != rawURL {
cli.log.Infof("[TRACE] go-getter detectors rewrote %q to %q", rawURL, fullRealAddr)
}

// get schema + source address
fullRealAddrURL, err := url.Parse(fullRealAddr)
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions internal/controller/addons_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ type ReconcileAddonsConfiguration struct {
}

// NewReconcileAddonsConfiguration returns a new reconcile.Reconciler
func NewReconcileAddonsConfiguration(mgr manager.Manager, addonGetterFactory addonGetterFactory, chartStorage chartStorage, addonStorage addonStorage, brokerFacade brokerFacade, docsProvider docsProvider, brokerSyncer brokerSyncer, tmpDir string, log logrus.FieldLogger) reconcile.Reconciler {
func NewReconcileAddonsConfiguration(mgr manager.Manager, addonGetterFactory addonGetterFactory, chartStorage chartStorage, addonStorage addonStorage, brokerFacade brokerFacade, docsProvider docsProvider, brokerSyncer brokerSyncer, templateService templateService, tmpDir string, log logrus.FieldLogger) reconcile.Reconciler {
return &ReconcileAddonsConfiguration{
log: log.WithField("controller", "addons"),
Client: mgr.GetClient(),

common: newControllerCommon(mgr.GetClient(), addonGetterFactory, addonStorage, chartStorage, docsProvider, brokerSyncer, brokerFacade, path.Join(tmpDir, "addon-loader-dst"), log),
common: newControllerCommon(mgr.GetClient(), addonGetterFactory, addonStorage, chartStorage, docsProvider, brokerSyncer, brokerFacade, templateService, path.Join(tmpDir, "addon-loader-dst"), log),
}
}

Expand Down
20 changes: 12 additions & 8 deletions internal/controller/addons_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/kubernetes-incubator/service-catalog/pkg/apis/servicecatalog/v1beta1"
"github.com/kyma-project/helm-broker/internal"
"github.com/kyma-project/helm-broker/internal/controller/automock"
"github.com/kyma-project/helm-broker/internal/controller/repository"
"github.com/kyma-project/helm-broker/internal/platform/logger/spy"
"github.com/kyma-project/helm-broker/internal/storage"
"github.com/kyma-project/helm-broker/pkg/apis"
Expand Down Expand Up @@ -60,7 +61,7 @@ func TestReconcileAddonsConfiguration_AddAddonsProcess(t *testing.T) {
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, tmpDir, spy.NewLogDummy())
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, tmpDir, spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Namespace: fixAddonsCfg.Namespace, Name: fixAddonsCfg.Name}})
Expand Down Expand Up @@ -96,7 +97,7 @@ func TestReconcileAddonsConfiguration_AddAddonsProcess_ErrorIfBrokerExist(t *tes
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, tmpDir, spy.NewLogDummy())
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, tmpDir, spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Namespace: fixAddonsCfg.Namespace, Name: fixAddonsCfg.Name}})
Expand Down Expand Up @@ -135,7 +136,7 @@ func TestReconcileAddonsConfiguration_UpdateAddonsProcess(t *testing.T) {
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, tmpDir, spy.NewLogDummy())
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, tmpDir, spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Namespace: fixAddonsCfg.Namespace, Name: fixAddonsCfg.Name}})
Expand Down Expand Up @@ -166,7 +167,7 @@ func TestReconcileAddonsConfiguration_UpdateAddonsProcess_ConflictingAddons(t *t
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, tmpDir, spy.NewLogDummy())
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, tmpDir, spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Namespace: fixAddonsCfg.Namespace, Name: fixAddonsCfg.Name}})
Expand All @@ -190,7 +191,7 @@ func TestReconcileAddonsConfiguration_DeleteAddonsProcess(t *testing.T) {
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, tmpDir, spy.NewLogDummy())
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, tmpDir, spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Namespace: fixAddonsCfg.Namespace, Name: fixAddonsCfg.Name}})
Expand All @@ -214,7 +215,7 @@ func TestReconcileAddonsConfiguration_DeleteAddonsProcess_ReconcileOtherAddons(t
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, tmpDir, spy.NewLogDummy())
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, tmpDir, spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Namespace: fixAddonsCfg.Namespace, Name: fixAddonsCfg.Name}})
Expand Down Expand Up @@ -242,7 +243,7 @@ func TestReconcileAddonsConfiguration_DeleteAddonsProcess_Error(t *testing.T) {
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, tmpDir, spy.NewLogDummy())
reconciler := NewReconcileAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, tmpDir, spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Namespace: fixAddonsCfg.Namespace, Name: fixAddonsCfg.Name}})
Expand Down Expand Up @@ -416,6 +417,7 @@ type testSuite struct {
brokerFacade *automock.BrokerFacade
docsProvider *automock.DocsProvider
brokerSyncer *automock.BrokerSyncer
templateService *repository.Template
addonStorage storage.Addon
chartStorage storage.Chart
}
Expand All @@ -430,14 +432,16 @@ func getTestSuite(t *testing.T, objects ...runtime.Object) *testSuite {
sFact, err := storage.NewFactory(storage.NewConfigListAllMemory())
require.NoError(t, err)

cli := fake.NewFakeClientWithScheme(sch, objects...)
ts := &testSuite{
t: t,
mgr: getFakeManager(t, fake.NewFakeClientWithScheme(sch, objects...), sch),
mgr: getFakeManager(t, cli, sch),
brokerFacade: &automock.BrokerFacade{},
addonGetterFactory: &automock.AddonGetterFactory{},
addonGetter: &automock.AddonGetter{},
brokerSyncer: &automock.BrokerSyncer{},
docsProvider: &automock.DocsProvider{},
templateService: repository.NewTemplate(cli),

addonStorage: sFact.Addon(),
chartStorage: sFact.Chart(),
Expand Down
36 changes: 36 additions & 0 deletions internal/controller/automock/template_service.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions internal/controller/cluster_addons_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ type ReconcileClusterAddonsConfiguration struct {
}

// NewReconcileClusterAddonsConfiguration returns a new reconcile.Reconciler
func NewReconcileClusterAddonsConfiguration(mgr manager.Manager, addonGetterFactory addonGetterFactory, chartStorage chartStorage, addonStorage addonStorage, brokerFacade brokerFacade, docsProvider docsProvider, brokerSyncer brokerSyncer, tmpDir string, log logrus.FieldLogger) reconcile.Reconciler {
func NewReconcileClusterAddonsConfiguration(mgr manager.Manager, addonGetterFactory addonGetterFactory, chartStorage chartStorage, addonStorage addonStorage, brokerFacade brokerFacade, docsProvider docsProvider, brokerSyncer brokerSyncer, templateService templateService, tmpDir string, log logrus.FieldLogger) reconcile.Reconciler {
return &ReconcileClusterAddonsConfiguration{
log: log.WithField("controller", "cluster-addons"),
Client: mgr.GetClient(),

common: newControllerCommon(mgr.GetClient(), addonGetterFactory, addonStorage, chartStorage, docsProvider, brokerSyncer, brokerFacade, path.Join(tmpDir, "cluster-addon-loader-dst"), log),
common: newControllerCommon(mgr.GetClient(), addonGetterFactory, addonStorage, chartStorage, docsProvider, brokerSyncer, brokerFacade, templateService, path.Join(tmpDir, "cluster-addon-loader-dst"), log),
}
}

Expand Down
20 changes: 12 additions & 8 deletions internal/controller/cluster_addons_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (

"github.com/kubernetes-incubator/service-catalog/pkg/apis/servicecatalog/v1beta1"
"github.com/kyma-project/helm-broker/internal/controller/automock"
"github.com/kyma-project/helm-broker/internal/controller/repository"
"github.com/kyma-project/helm-broker/internal/storage"
"github.com/kyma-project/helm-broker/pkg/apis"
"github.com/kyma-project/helm-broker/pkg/apis/addons/v1alpha1"
Expand Down Expand Up @@ -50,7 +51,7 @@ func TestReconcileClusterAddonsConfiguration_AddAddonsProcess(t *testing.T) {
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, os.TempDir(), spy.NewLogDummy())
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, os.TempDir(), spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Name: fixAddonsCfg.Name}})
Expand Down Expand Up @@ -86,7 +87,7 @@ func TestReconcileClusterAddonsConfiguration_AddAddonsProcess_Error(t *testing.T
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, os.TempDir(), spy.NewLogDummy())
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, os.TempDir(), spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Name: fixAddonsCfg.Name}})
Expand Down Expand Up @@ -126,7 +127,7 @@ func TestReconcileClusterAddonsConfiguration_UpdateAddonsProcess(t *testing.T) {
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, os.TempDir(), spy.NewLogDummy())
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, os.TempDir(), spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Name: fixAddonsCfg.Name}})
Expand Down Expand Up @@ -160,7 +161,7 @@ func TestReconcileClusterAddonsConfiguration_UpdateAddonsProcess_ConflictingAddo
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, os.TempDir(), spy.NewLogDummy())
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, os.TempDir(), spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Name: fixAddonsCfg.Name}})
Expand All @@ -183,7 +184,7 @@ func TestReconcileClusterAddonsConfiguration_DeleteAddonsProcess(t *testing.T) {
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, os.TempDir(), spy.NewLogDummy())
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, os.TempDir(), spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Name: fixAddonsCfg.Name}})
Expand All @@ -206,7 +207,7 @@ func TestReconcileClusterAddonsConfiguration_DeleteAddonsProcess_ReconcileOtherA
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, os.TempDir(), spy.NewLogDummy())
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, os.TempDir(), spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Name: fixAddonsCfg.Name}})
Expand All @@ -233,7 +234,7 @@ func TestReconcileClusterAddonsConfiguration_DeleteAddonsProcess_Error(t *testin
defer ts.assertExpectations()

// WHEN
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, os.TempDir(), spy.NewLogDummy())
reconciler := NewReconcileClusterAddonsConfiguration(ts.mgr, ts.addonGetterFactory, ts.chartStorage, ts.addonStorage, ts.brokerFacade, ts.docsProvider, ts.brokerSyncer, ts.templateService, os.TempDir(), spy.NewLogDummy())

// THEN
result, err := reconciler.Reconcile(reconcile.Request{NamespacedName: types.NamespacedName{Name: fixAddonsCfg.Name}})
Expand All @@ -255,6 +256,7 @@ type clusterTestSuite struct {
brokerFacade *automock.BrokerFacade
docsProvider *automock.DocsProvider
brokerSyncer *automock.BrokerSyncer
templateService *repository.Template
addonStorage storage.Addon
chartStorage storage.Chart
}
Expand All @@ -269,14 +271,16 @@ func getClusterTestSuite(t *testing.T, objects ...runtime.Object) *clusterTestSu
sFact, err := storage.NewFactory(storage.NewConfigListAllMemory())
require.NoError(t, err)

cli := fake.NewFakeClientWithScheme(sch, objects...)
return &clusterTestSuite{
t: t,
mgr: getFakeManager(t, fake.NewFakeClientWithScheme(sch, objects...), sch),
mgr: getFakeManager(t, cli, sch),
brokerFacade: &automock.BrokerFacade{},
addonGetterFactory: &automock.AddonGetterFactory{},
addonGetter: &automock.AddonGetter{},
brokerSyncer: &automock.BrokerSyncer{},
docsProvider: &automock.DocsProvider{},
templateService: repository.NewTemplate(cli),

addonStorage: sFact.Addon(),
chartStorage: sFact.Chart(),
Expand Down
Loading