From b105f0ad875ed8370b1174eed724af6ca92bf684 Mon Sep 17 00:00:00 2001 From: bryanl <bryanliles@gmail.com> Date: Sun, 1 Apr 2018 16:11:38 -0400 Subject: [PATCH] Rename component namespaces to modules Rename component namespaces to modules to remove the ambiguous bit. Signed-off-by: bryanl <bryanliles@gmail.com> --- actions/actions.go | 6 +- actions/actions_test.go | 4 +- actions/component_list.go | 8 +- actions/component_list_test.go | 24 +++--- actions/component_rm.go | 2 +- actions/env_add.go | 2 +- actions/env_add_test.go | 12 +-- actions/env_set.go | 2 +- actions/env_set_test.go | 24 +++--- actions/env_targets.go | 10 +-- actions/env_targets_test.go | 38 ++++---- actions/import.go | 10 +-- actions/import_test.go | 24 +++--- actions/init.go | 4 +- actions/init_test.go | 2 +- actions/{ns_create.go => module_create.go} | 32 +++---- ...s_create_test.go => module_create_test.go} | 26 +++--- actions/{ns_list.go => module_list.go} | 30 +++---- .../{ns_list_test.go => module_list_test.go} | 8 +- actions/param_list.go | 10 +-- actions/param_list_test.go | 20 ++--- actions/param_set.go | 6 +- actions/param_set_test.go | 8 +- actions/pkg_describe.go | 4 +- actions/pkg_install.go | 4 +- actions/prototype_describe.go | 2 +- actions/prototype_list.go | 2 +- actions/prototype_search.go | 2 +- actions/prototype_use.go | 4 +- actions/registry_add.go | 4 +- actions/registry_describe.go | 2 +- actions/testdata/ns/list/output.txt | 4 +- actions/validate.go | 4 +- actions/validate_test.go | 2 +- cmd/actions.go | 24 +++--- cmd/component_list.go | 10 +-- cmd/component_list_test.go | 6 +- cmd/env_add.go | 12 +-- cmd/env_add_test.go | 12 +-- cmd/env_set.go | 8 +- cmd/env_set_test.go | 8 +- cmd/env_targets.go | 14 +-- cmd/env_targets_test.go | 8 +- cmd/flags.go | 1 + cmd/import.go | 14 +-- cmd/init.go | 2 +- cmd/init_test.go | 2 +- cmd/initname_string.go | 19 +--- cmd/{ns.go => module.go} | 12 +-- cmd/{ns_create.go => module_create.go} | 16 ++-- ...s_create_test.go => module_create_test.go} | 10 +-- cmd/{ns_list.go => module_list.go} | 14 +-- cmd/{ns_list_test.go => module_list_test.go} | 6 +- cmd/param.go | 6 -- cmd/param_diff.go | 8 +- cmd/param_list.go | 6 +- cmd/param_list_test.go | 2 +- cmd/validate.go | 2 +- cmd/validate_test.go | 2 +- component/component.go | 14 +-- component/create.go | 14 +-- component/delete.go | 2 +- component/jsonnet.go | 18 ++-- component/jsonnet_test.go | 2 +- component/manager.go | 50 +++++------ component/manager_test.go | 14 +-- component/mocks/Component.go | 8 +- component/mocks/Manager.go | 84 +++++++++--------- component/mocks/{Namespace.go => Module.go} | 24 +++--- component/{namespace.go => module.go} | 86 +++++++++---------- .../{namespace_test.go => module_test.go} | 12 +-- component/yaml.go | 26 +++--- component/yaml_test.go | 4 +- docs/cli-reference/ks.md | 2 +- docs/cli-reference/ks_component_list.md | 6 +- docs/cli-reference/ks_env_targets.md | 3 +- docs/cli-reference/ks_import.md | 6 +- docs/cli-reference/{ks_ns.md => ks_module.md} | 12 +-- .../{ks_ns_create.md => ks_module_create.md} | 6 +- .../{ks_ns_list.md => ks_module_list.md} | 8 +- docs/cli-reference/ks_param_list.md | 6 +- e2e/component_test.go | 2 +- e2e/env_test.go | 4 +- e2e/{ns_test.go => module_test.go} | 22 ++--- e2e/testdata/output/module/create/invalid.txt | 1 + .../output/{ns => module}/list/invalid.txt | 0 e2e/testdata/output/module/list/output.txt | 3 + e2e/testdata/output/ns/create/invalid.txt | 1 - e2e/testdata/output/ns/list/output.txt | 3 - metadata/component.go | 6 +- metadata/environment.go | 4 +- metadata/interface.go | 2 +- pkg/env/params.go | 4 +- pkg/kubecfg/param_diff.go | 2 +- pkg/pipeline/pipeline.go | 16 ++-- pkg/pipeline/pipeline_test.go | 46 +++++----- testdata/schema-v1.json | 8 +- 97 files changed, 542 insertions(+), 559 deletions(-) rename actions/{ns_create.go => module_create.go} (61%) rename actions/{ns_create_test.go => module_create_test.go} (70%) rename actions/{ns_list.go => module_list.go} (70%) rename actions/{ns_list_test.go => module_list_test.go} (88%) rename cmd/{ns.go => module.go} (81%) rename cmd/{ns_create.go => module_create.go} (74%) rename cmd/{ns_create_test.go => module_create_test.go} (81%) rename cmd/{ns_list.go => module_list.go} (73%) rename cmd/{ns_list_test.go => module_list_test.go} (89%) rename component/mocks/{Namespace.go => Module.go} (80%) rename component/{namespace.go => module.go} (67%) rename component/{namespace_test.go => module_test.go} (88%) rename docs/cli-reference/{ks_ns.md => ks_module.md} (62%) rename docs/cli-reference/{ks_ns_create.md => ks_module_create.md} (72%) rename docs/cli-reference/{ks_ns_list.md => ks_module_list.md} (64%) rename e2e/{ns_test.go => module_test.go} (71%) create mode 100644 e2e/testdata/output/module/create/invalid.txt rename e2e/testdata/output/{ns => module}/list/invalid.txt (100%) create mode 100644 e2e/testdata/output/module/list/output.txt delete mode 100644 e2e/testdata/output/ns/create/invalid.txt delete mode 100644 e2e/testdata/output/ns/list/output.txt diff --git a/actions/actions.go b/actions/actions.go index dc7036fa..2059cccf 100644 --- a/actions/actions.go +++ b/actions/actions.go @@ -54,8 +54,10 @@ const ( OptionLibName = "lib-name" // OptionName is name option. OptionName = "name" - // OptionNamespaceName is namespaceName option. - OptionNamespaceName = "namespace-name" + // OptionModule is component module option. + OptionModule = "module" + // OptionNamespace is a cluster namespace option + OptionNamespace = "namespace" // OptionNewEnvName is newEnvName option. Used for renaming environments. OptionNewEnvName = "new-env-name" // OptionOutput is output option. diff --git a/actions/actions_test.go b/actions/actions_test.go index 526012bf..f643969c 100644 --- a/actions/actions_test.go +++ b/actions/actions_test.go @@ -101,8 +101,8 @@ func stageFile(t *testing.T, fs afero.Fs, src, dest string) { require.NoError(t, err) } -func mockNsWithName(name string) *cmocks.Namespace { - m := &cmocks.Namespace{} +func mockNsWithName(name string) *cmocks.Module { + m := &cmocks.Module{} m.On("Name").Return(name) return m } diff --git a/actions/component_list.go b/actions/component_list.go index e7598a65..305903e9 100644 --- a/actions/component_list.go +++ b/actions/component_list.go @@ -36,10 +36,10 @@ func RunComponentList(m map[string]interface{}) error { return cl.Run() } -// ComponentList create a list of components in a namespace. +// ComponentList create a list of components in a module. type ComponentList struct { app app.App - nsName string + module string output string cm component.Manager out io.Writer @@ -51,7 +51,7 @@ func NewComponentList(m map[string]interface{}) (*ComponentList, error) { cl := &ComponentList{ app: ol.loadApp(), - nsName: ol.loadString(OptionNamespaceName), + module: ol.loadString(OptionModule), output: ol.loadString(OptionOutput), cm: component.DefaultManager, @@ -67,7 +67,7 @@ func NewComponentList(m map[string]interface{}) (*ComponentList, error) { // Run runs the ComponentList action. func (cl *ComponentList) Run() error { - ns, err := cl.cm.Namespace(cl.app, cl.nsName) + ns, err := cl.cm.Module(cl.app, cl.module) if err != nil { return err } diff --git a/actions/component_list_test.go b/actions/component_list_test.go index ff6a1051..60984073 100644 --- a/actions/component_list_test.go +++ b/actions/component_list_test.go @@ -28,7 +28,7 @@ import ( func TestComponentList(t *testing.T) { withApp(t, func(appMock *amocks.App) { - nsName := "" + module := "" output := "" c := &cmocks.Component{} @@ -36,16 +36,16 @@ func TestComponentList(t *testing.T) { cs := []component.Component{c} - ns := &cmocks.Namespace{} + ns := &cmocks.Module{} ns.On("Components").Return(cs, nil) cm := &cmocks.Manager{} - cm.On("Namespace", mock.Anything, "").Return(ns, nil) + cm.On("Module", mock.Anything, "").Return(ns, nil) in := map[string]interface{}{ - OptionApp: appMock, - OptionNamespaceName: nsName, - OptionOutput: output, + OptionApp: appMock, + OptionModule: module, + OptionOutput: output, } a, err := NewComponentList(in) @@ -65,7 +65,7 @@ func TestComponentList(t *testing.T) { func TestComponentList_wide(t *testing.T) { withApp(t, func(appMock *amocks.App) { - nsName := "" + module := "" output := "wide" summary := []component.Summary{ @@ -76,16 +76,16 @@ func TestComponentList_wide(t *testing.T) { cs := []component.Component{c} - ns := &cmocks.Namespace{} + ns := &cmocks.Module{} ns.On("Components").Return(cs, nil) cm := &cmocks.Manager{} - cm.On("Namespace", mock.Anything, "").Return(ns, nil) + cm.On("Module", mock.Anything, "").Return(ns, nil) in := map[string]interface{}{ - OptionApp: appMock, - OptionNamespaceName: nsName, - OptionOutput: output, + OptionApp: appMock, + OptionModule: module, + OptionOutput: output, } a, err := NewComponentList(in) diff --git a/actions/component_rm.go b/actions/component_rm.go index 985ad96f..3ac8e6df 100644 --- a/actions/component_rm.go +++ b/actions/component_rm.go @@ -30,7 +30,7 @@ func RunComponentRm(m map[string]interface{}) error { return cr.Run() } -// ComponentRm create a list of components in a namespace. +// ComponentRm removes a component from a module. type ComponentRm struct { app app.App name string diff --git a/actions/env_add.go b/actions/env_add.go index d5269c9f..26af36d5 100644 --- a/actions/env_add.go +++ b/actions/env_add.go @@ -50,7 +50,7 @@ func NewEnvAdd(m map[string]interface{}) (*EnvAdd, error) { app: ol.loadApp(), envName: ol.loadString(OptionEnvName), server: ol.loadString(OptionServer), - namespace: ol.loadString(OptionNamespaceName), + namespace: ol.loadString(OptionModule), k8sSpecFlag: ol.loadString(OptionSpecFlag), isOverride: ol.loadBool(OptionOverride), diff --git a/actions/env_add_test.go b/actions/env_add_test.go index 48fbb1e8..e5515da0 100644 --- a/actions/env_add_test.go +++ b/actions/env_add_test.go @@ -34,12 +34,12 @@ func TestEnvAdd(t *testing.T) { aIsOverride := false in := map[string]interface{}{ - OptionApp: appMock, - OptionEnvName: aName, - OptionServer: aServer, - OptionNamespaceName: aNamespace, - OptionSpecFlag: aK8sSpecFlag, - OptionOverride: aIsOverride, + OptionApp: appMock, + OptionEnvName: aName, + OptionServer: aServer, + OptionModule: aNamespace, + OptionSpecFlag: aK8sSpecFlag, + OptionOverride: aIsOverride, } a, err := NewEnvAdd(in) diff --git a/actions/env_set.go b/actions/env_set.go index e18e1737..2458b4e5 100644 --- a/actions/env_set.go +++ b/actions/env_set.go @@ -67,7 +67,7 @@ func NewEnvSet(m map[string]interface{}) (*EnvSet, error) { app: ol.loadApp(), envName: ol.loadString(OptionEnvName), newName: ol.loadOptionalString(OptionNewEnvName), - newNsName: ol.loadOptionalString(OptionNamespaceName), + newNsName: ol.loadOptionalString(OptionNamespace), envRenameFn: env.Rename, updateEnvFn: updateEnv, diff --git a/actions/env_set_test.go b/actions/env_set_test.go index 8cff81f8..bac47661 100644 --- a/actions/env_set_test.go +++ b/actions/env_set_test.go @@ -62,12 +62,12 @@ func TestEnvSet_name(t *testing.T) { func TestEnvSet_namespace(t *testing.T) { withApp(t, func(appMock *amocks.App) { envName := "default" - nsName := "ns2" + namespace := "ns2" in := map[string]interface{}{ - OptionApp: appMock, - OptionEnvName: envName, - OptionNamespaceName: nsName, + OptionApp: appMock, + OptionEnvName: envName, + OptionModule: namespace, } a, err := NewEnvSet(in) require.NoError(t, err) @@ -80,7 +80,7 @@ func TestEnvSet_namespace(t *testing.T) { updatedSpec := &app.EnvironmentSpec{ Destination: &app.EnvironmentDestinationSpec{ - Namespace: nsName, + Namespace: namespace, }, } @@ -96,13 +96,13 @@ func TestEnvSet_name_and_namespace(t *testing.T) { withApp(t, func(appMock *amocks.App) { envName := "default" newName := "dev" - nsName := "ns2" + namespace := "ns2" in := map[string]interface{}{ - OptionApp: appMock, - OptionEnvName: envName, - OptionNewEnvName: newName, - OptionNamespaceName: nsName, + OptionApp: appMock, + OptionEnvName: envName, + OptionNewEnvName: newName, + OptionModule: namespace, } a, err := NewEnvSet(in) @@ -118,7 +118,7 @@ func TestEnvSet_name_and_namespace(t *testing.T) { a.updateEnvFn = func(a app.App, name string, spec *app.EnvironmentSpec, override bool) error { assert.Equal(t, envName, name) - assert.Equal(t, nsName, spec.Destination.Namespace) + assert.Equal(t, namespace, spec.Destination.Namespace) assert.False(t, override) return nil @@ -132,7 +132,7 @@ func TestEnvSet_name_and_namespace(t *testing.T) { updatedSpec := &app.EnvironmentSpec{ Destination: &app.EnvironmentDestinationSpec{ - Namespace: nsName, + Namespace: namespace, }, } diff --git a/actions/env_targets.go b/actions/env_targets.go index d7e31867..2e965093 100644 --- a/actions/env_targets.go +++ b/actions/env_targets.go @@ -34,7 +34,7 @@ func RunEnvTargets(m map[string]interface{}) error { type EnvTargets struct { app app.App envName string - nsNames []string + modules []string cm component.Manager } @@ -45,7 +45,7 @@ func NewEnvTargets(m map[string]interface{}) (*EnvTargets, error) { et := &EnvTargets{ app: ol.loadApp(), envName: ol.loadString(OptionEnvName), - nsNames: ol.loadStringSlice(OptionNamespaceName), + modules: ol.loadStringSlice(OptionModule), cm: component.DefaultManager, } @@ -64,12 +64,12 @@ func (et *EnvTargets) Run() error { return err } - for _, nsName := range et.nsNames { - _, err := et.cm.Namespace(et.app, nsName) + for _, module := range et.modules { + _, err := et.cm.Module(et.app, module) if err != nil { return err } } - return et.app.UpdateTargets(et.envName, et.nsNames) + return et.app.UpdateTargets(et.envName, et.modules) } diff --git a/actions/env_targets_test.go b/actions/env_targets_test.go index 7aff7b87..6763e508 100644 --- a/actions/env_targets_test.go +++ b/actions/env_targets_test.go @@ -30,25 +30,25 @@ import ( func TestEnvTargets(t *testing.T) { withApp(t, func(appMock *amocks.App) { envName := "default" - nsNames := []string{"foo"} + modules := []string{"foo"} env := &app.EnvironmentSpec{} appMock.On("Environment", "default").Return(env, nil) - appMock.On("UpdateTargets", envName, nsNames).Return(nil) + appMock.On("UpdateTargets", envName, modules).Return(nil) in := map[string]interface{}{ - OptionApp: appMock, - OptionEnvName: envName, - OptionNamespaceName: nsNames, + OptionApp: appMock, + OptionEnvName: envName, + OptionModule: modules, } a, err := NewEnvTargets(in) require.NoError(t, err) - ns := &cmocks.Namespace{} + ns := &cmocks.Module{} cm := &cmocks.Manager{} - cm.On("Namespace", mock.Anything, "foo").Return(ns, nil) + cm.On("Module", mock.Anything, "foo").Return(ns, nil) a.cm = cm @@ -57,28 +57,28 @@ func TestEnvTargets(t *testing.T) { }) } -func TestEnvTargets_invalid_namespace(t *testing.T) { +func TestEnvTargets_invalid_module(t *testing.T) { withApp(t, func(appMock *amocks.App) { envName := "default" - nsNames := []string{"foo"} + modules := []string{"foo"} env := &app.EnvironmentSpec{} appMock.On("Environment", "default").Return(env, nil) - appMock.On("UpdateTargets", envName, nsNames).Return(nil) + appMock.On("UpdateTargets", envName, modules).Return(nil) in := map[string]interface{}{ - OptionApp: appMock, - OptionEnvName: envName, - OptionNamespaceName: nsNames, + OptionApp: appMock, + OptionEnvName: envName, + OptionModule: modules, } a, err := NewEnvTargets(in) require.NoError(t, err) - ns := &cmocks.Namespace{} + ns := &cmocks.Module{} cm := &cmocks.Manager{} - cm.On("Namespace", mock.Anything, "foo").Return(ns, errors.New("fail")) + cm.On("Module", mock.Anything, "foo").Return(ns, errors.New("fail")) a.cm = cm @@ -90,16 +90,16 @@ func TestEnvTargets_invalid_namespace(t *testing.T) { func TestEnvTargets_invalid_environment(t *testing.T) { withApp(t, func(appMock *amocks.App) { envName := "invalid" - nsNames := []string{"foo"} + modules := []string{"foo"} env := &app.EnvironmentSpec{} envErr := errors.New("environment invalid was not found") appMock.On("Environment", "invalid").Return(env, envErr) in := map[string]interface{}{ - OptionApp: appMock, - OptionEnvName: envName, - OptionNamespaceName: nsNames, + OptionApp: appMock, + OptionEnvName: envName, + OptionModule: modules, } a, err := NewEnvTargets(in) diff --git a/actions/import.go b/actions/import.go index 9d10b89f..98624c8b 100644 --- a/actions/import.go +++ b/actions/import.go @@ -42,19 +42,19 @@ func RunImport(m map[string]interface{}) error { // Import imports files or directories into ksonnet. type Import struct { app app.App - nsName string + module string path string cm component.Manager } -// NewImport creates an instance of Import. `nsName` is the name of the component and +// NewImport creates an instance of Import. `module` is the name of the component and // entity is the file or directory to import. func NewImport(m map[string]interface{}) (*Import, error) { ol := newOptionLoader(m) i := &Import{ app: ol.loadApp(), - nsName: ol.loadString(OptionNamespaceName), + module: ol.loadString(OptionModule), path: ol.loadString(OptionPath), cm: component.DefaultManager, @@ -106,8 +106,8 @@ func (i *Import) Run() error { func (i *Import) importFile(fileName string) error { var name bytes.Buffer - if i.nsName != "" { - name.WriteString(i.nsName + "/") + if i.module != "" { + name.WriteString(i.module + "/") } base := filepath.Base(fileName) diff --git a/actions/import_test.go b/actions/import_test.go index fb19f8d3..f0a89d34 100644 --- a/actions/import_test.go +++ b/actions/import_test.go @@ -29,15 +29,15 @@ import ( func TestImport_file(t *testing.T) { withApp(t, func(appMock *amocks.App) { - nsName := "/" + module := "/" path := "/file.yaml" stageFile(t, appMock.Fs(), "import/file.yaml", path) in := map[string]interface{}{ - OptionApp: appMock, - OptionNamespaceName: nsName, - OptionPath: path, + OptionApp: appMock, + OptionModule: module, + OptionPath: path, } a, err := NewImport(in) @@ -56,15 +56,15 @@ func TestImport_file(t *testing.T) { func TestImport_directory(t *testing.T) { withApp(t, func(appMock *amocks.App) { - nsName := "/" + module := "/" path := "/import" stageFile(t, appMock.Fs(), "import/file.yaml", "/import/file.yaml") in := map[string]interface{}{ - OptionApp: appMock, - OptionNamespaceName: nsName, - OptionPath: path, + OptionApp: appMock, + OptionModule: module, + OptionPath: path, } a, err := NewImport(in) @@ -83,13 +83,13 @@ func TestImport_directory(t *testing.T) { func TestImport_invalid_file(t *testing.T) { withApp(t, func(appMock *amocks.App) { - nsName := "/" + module := "/" path := "/import" in := map[string]interface{}{ - OptionApp: appMock, - OptionNamespaceName: nsName, - OptionPath: path, + OptionApp: appMock, + OptionModule: module, + OptionPath: path, } a, err := NewImport(in) diff --git a/actions/init.go b/actions/init.go index 5ef2f716..8723871b 100644 --- a/actions/init.go +++ b/actions/init.go @@ -27,7 +27,7 @@ const ( defaultIncubatorURI = "github.com/ksonnet/parts/tree/master/" + defaultIncubatorRegName ) -// RunInit creates a namespace. +// RunInit initializes an app. func RunInit(m map[string]interface{}) error { i, err := NewInit(m) if err != nil { @@ -68,7 +68,7 @@ func NewInit(m map[string]interface{}) (*Init, error) { rootPath: ol.loadString(OptionRootPath), k8sSpecFlag: ol.loadString(OptionSpecFlag), serverURI: ol.loadOptionalString(OptionServer), - namespace: ol.loadString(OptionNamespaceName), + namespace: ol.loadString(OptionNamespace), skipDefaultRegistries: ol.loadBool(OptionSkipDefaultRegistries), appInitFn: appinit.Init, diff --git a/actions/init_test.go b/actions/init_test.go index 6a77915e..63598dc3 100644 --- a/actions/init_test.go +++ b/actions/init_test.go @@ -57,7 +57,7 @@ func TestInit(t *testing.T) { OptionRootPath: aRootPath, OptionSpecFlag: aK8sSpecFlag, OptionServer: aServerURI, - OptionNamespaceName: aNamespace, + OptionNamespace: aNamespace, OptionSkipDefaultRegistries: tc.skipRegistries, } diff --git a/actions/ns_create.go b/actions/module_create.go similarity index 61% rename from actions/ns_create.go rename to actions/module_create.go index 221706ff..630f9474 100644 --- a/actions/ns_create.go +++ b/actions/module_create.go @@ -21,43 +21,43 @@ import ( "github.com/pkg/errors" ) -// RunNsCreate creates a namespace. -func RunNsCreate(m map[string]interface{}) error { - nc, err := NewNsCreate(m) +// RunModuleCreate creates a module. +func RunModuleCreate(m map[string]interface{}) error { + mc, err := NewModuleCreate(m) if err != nil { return err } - return nc.Run() + return mc.Run() } -// NsCreate creates a component namespace -type NsCreate struct { +// ModuleCreate creates a component module +type ModuleCreate struct { app app.App - nsName string + module string cm component.Manager } -// NewNsCreate creates an instance of NsCreate. -func NewNsCreate(m map[string]interface{}) (*NsCreate, error) { +// NewModuleCreate creates an instance of ModuleCreate. +func NewModuleCreate(m map[string]interface{}) (*ModuleCreate, error) { ol := newOptionLoader(m) - et := &NsCreate{ + mc := &ModuleCreate{ app: ol.loadApp(), - nsName: ol.loadString(OptionNamespaceName), + module: ol.loadString(OptionModule), cm: component.DefaultManager, } - return et, nil + return mc, nil } // Run runs that ns create action. -func (nc *NsCreate) Run() error { - _, err := nc.cm.Namespace(nc.app, nc.nsName) +func (mc *ModuleCreate) Run() error { + _, err := mc.cm.Module(mc.app, mc.module) if err == nil { - return errors.Errorf("namespace %q already exists", nc.nsName) + return errors.Errorf("module %q already exists", mc.module) } - return nc.cm.CreateNamespace(nc.app, nc.nsName) + return mc.cm.CreateModule(mc.app, mc.module) } diff --git a/actions/ns_create_test.go b/actions/module_create_test.go similarity index 70% rename from actions/ns_create_test.go rename to actions/module_create_test.go index 6e0bf54c..2cd1dadf 100644 --- a/actions/ns_create_test.go +++ b/actions/module_create_test.go @@ -26,21 +26,21 @@ import ( "github.com/stretchr/testify/require" ) -func TestNsCreate(t *testing.T) { +func TestModuleCreate(t *testing.T) { withApp(t, func(appMock *amocks.App) { in := map[string]interface{}{ - OptionApp: appMock, - OptionNamespaceName: "name", + OptionApp: appMock, + OptionModule: "name", } - a, err := NewNsCreate(in) + a, err := NewModuleCreate(in) require.NoError(t, err) - ns := &cmocks.Namespace{} + ns := &cmocks.Module{} cm := &cmocks.Manager{} - cm.On("Namespace", mock.Anything, "name").Return(ns, errors.New("it exists")) - cm.On("CreateNamespace", mock.Anything, "name").Return(nil) + cm.On("Module", mock.Anything, "name").Return(ns, errors.New("it exists")) + cm.On("CreateModule", mock.Anything, "name").Return(nil) a.cm = cm @@ -50,20 +50,20 @@ func TestNsCreate(t *testing.T) { }) } -func TestNsCreate_already_exists(t *testing.T) { +func TestModuleCreate_already_exists(t *testing.T) { withApp(t, func(appMock *amocks.App) { in := map[string]interface{}{ - OptionApp: appMock, - OptionNamespaceName: "name", + OptionApp: appMock, + OptionModule: "name", } - a, err := NewNsCreate(in) + a, err := NewModuleCreate(in) require.NoError(t, err) - ns := &cmocks.Namespace{} + ns := &cmocks.Module{} cm := &cmocks.Manager{} - cm.On("Namespace", mock.Anything, "name").Return(ns, nil) + cm.On("Module", mock.Anything, "name").Return(ns, nil) a.cm = cm diff --git a/actions/ns_list.go b/actions/module_list.go similarity index 70% rename from actions/ns_list.go rename to actions/module_list.go index a7fca49f..c9dd16af 100644 --- a/actions/ns_list.go +++ b/actions/module_list.go @@ -25,9 +25,9 @@ import ( "github.com/ksonnet/ksonnet/pkg/util/table" ) -// RunNsList runs `ns list` -func RunNsList(m map[string]interface{}) error { - nl, err := NewNsList(m) +// RunModuleList runs `module list` +func RunModuleList(m map[string]interface{}) error { + nl, err := NewModuleList(m) if err != nil { return err } @@ -35,19 +35,19 @@ func RunNsList(m map[string]interface{}) error { return nl.Run() } -// NsList lists namespaces. -type NsList struct { +// ModuleList lists modules. +type ModuleList struct { app app.App envName string out io.Writer cm component.Manager } -// NewNsList creates an instance of NsList. -func NewNsList(m map[string]interface{}) (*NsList, error) { +// NewModuleList creates an instance of ModuleList. +func NewModuleList(m map[string]interface{}) (*ModuleList, error) { ol := newOptionLoader(m) - nl := &NsList{ + nl := &ModuleList{ app: ol.loadApp(), envName: ol.loadString(OptionEnvName), @@ -62,19 +62,19 @@ func NewNsList(m map[string]interface{}) (*NsList, error) { return nl, nil } -// Run lists namespaces. -func (nl *NsList) Run() error { - namespaces, err := nl.cm.Namespaces(nl.app, nl.envName) +// Run lists modules. +func (nl *ModuleList) Run() error { + modules, err := nl.cm.Modules(nl.app, nl.envName) if err != nil { return err } t := table.New(nl.out) - t.SetHeader([]string{"namespace"}) + t.SetHeader([]string{"module"}) - names := make([]string, len(namespaces)) - for i := range namespaces { - names[i] = namespaces[i].Name() + names := make([]string, len(modules)) + for i := range modules { + names[i] = modules[i].Name() } sort.Strings(names) diff --git a/actions/ns_list_test.go b/actions/module_list_test.go similarity index 88% rename from actions/ns_list_test.go rename to actions/module_list_test.go index 4689c51a..1ef1e723 100644 --- a/actions/ns_list_test.go +++ b/actions/module_list_test.go @@ -25,22 +25,22 @@ import ( "github.com/stretchr/testify/require" ) -func TestNsList(t *testing.T) { +func TestModuleList(t *testing.T) { withApp(t, func(appMock *amocks.App) { cm := &cmocks.Manager{} - namespaces := []component.Namespace{ + modules := []component.Module{ mockNsWithName("b"), mockNsWithName("a"), } - cm.On("Namespaces", appMock, "").Return(namespaces, nil) + cm.On("Modules", appMock, "").Return(modules, nil) in := map[string]interface{}{ OptionApp: appMock, OptionEnvName: "", } - a, err := NewNsList(in) + a, err := NewModuleList(in) require.NoError(t, err) a.cm = cm diff --git a/actions/param_list.go b/actions/param_list.go index 394877e5..7e6e28a7 100644 --- a/actions/param_list.go +++ b/actions/param_list.go @@ -38,7 +38,7 @@ func RunParamList(m map[string]interface{}) error { // ParamList lists parameters for a component. type ParamList struct { app app.App - nsName string + module string componentName string envName string cm component.Manager @@ -51,7 +51,7 @@ func NewParamList(m map[string]interface{}) (*ParamList, error) { pl := &ParamList{ app: ol.loadApp(), - nsName: ol.loadString(OptionNamespaceName), + module: ol.loadString(OptionModule), componentName: ol.loadString(OptionComponentName), envName: ol.loadString(OptionEnvName), @@ -68,7 +68,7 @@ func NewParamList(m map[string]interface{}) (*ParamList, error) { // Run runs the ParamList action. func (pl *ParamList) Run() error { - ns, err := pl.cm.Namespace(pl.app, pl.nsName) + ns, err := pl.cm.Module(pl.app, pl.module) if err != nil { return errors.Wrap(err, "could not find namespace") } @@ -90,12 +90,12 @@ func (pl *ParamList) Run() error { return nil } -func (pl *ParamList) collectParams(ns component.Namespace) ([]component.NamespaceParameter, error) { +func (pl *ParamList) collectParams(ns component.Module) ([]component.ModuleParameter, error) { if pl.componentName == "" { return ns.Params(pl.envName) } - c, err := pl.cm.Component(pl.app, pl.nsName, pl.componentName) + c, err := pl.cm.Component(pl.app, pl.module, pl.componentName) if err != nil { return nil, err } diff --git a/actions/param_list_test.go b/actions/param_list_test.go index b6fc08c9..13d1bb7d 100644 --- a/actions/param_list_test.go +++ b/actions/param_list_test.go @@ -29,26 +29,26 @@ import ( func TestParamList_with_component_name(t *testing.T) { withApp(t, func(appMock *amocks.App) { componentName := "deployment" - nsName := "ns" + module := "ns" envName := "" - ns := &cmocks.Namespace{} + ns := &cmocks.Module{} c := &cmocks.Component{} - nsParams := []component.NamespaceParameter{ + nsParams := []component.ModuleParameter{ {Component: "deployment", Index: "0", Key: "key", Value: `"value"`}, } c.On("Params", "").Return(nsParams, nil) cm := &cmocks.Manager{} - cm.On("Namespace", mock.Anything, "ns").Return(ns, nil) + cm.On("Module", mock.Anything, "ns").Return(ns, nil) cm.On("Component", mock.Anything, "ns", "deployment").Return(c, nil) in := map[string]interface{}{ OptionApp: appMock, OptionComponentName: componentName, - OptionNamespaceName: nsName, + OptionModule: module, OptionEnvName: envName, } @@ -70,25 +70,25 @@ func TestParamList_with_component_name(t *testing.T) { func TestParamList_without_component_name(t *testing.T) { withApp(t, func(appMock *amocks.App) { componentName := "" - nsName := "ns" + module := "ns" envName := "" - nsParams := []component.NamespaceParameter{ + nsParams := []component.ModuleParameter{ {Component: "deployment", Index: "0", Key: "key1", Value: `"value"`}, {Component: "deployment", Index: "0", Key: "key2", Value: `"value"`}, } - ns := &cmocks.Namespace{} + ns := &cmocks.Module{} ns.On("Params", "").Return(nsParams, nil) cm := &cmocks.Manager{} - cm.On("Namespace", mock.Anything, "ns").Return(ns, nil) + cm.On("Module", mock.Anything, "ns").Return(ns, nil) in := map[string]interface{}{ OptionApp: appMock, OptionComponentName: componentName, - OptionNamespaceName: nsName, + OptionModule: module, OptionEnvName: envName, } diff --git a/actions/param_set.go b/actions/param_set.go index 2db3d16c..78b1fa1c 100644 --- a/actions/param_set.go +++ b/actions/param_set.go @@ -107,12 +107,12 @@ func (ps *ParamSet) Run() error { } func (ps *ParamSet) setGlobal(path []string, value interface{}) error { - ns, err := ps.cm.Namespace(ps.app, ps.name) + module, err := ps.cm.Module(ps.app, ps.name) if err != nil { - return errors.Wrap(err, "retrieve namespace") + return errors.Wrap(err, "retrieve module") } - if err := ns.SetParam(path, value); err != nil { + if err := module.SetParam(path, value); err != nil { return errors.Wrap(err, "set global param") } diff --git a/actions/param_set_test.go b/actions/param_set_test.go index 6d5ce0e0..ae2d36a4 100644 --- a/actions/param_set_test.go +++ b/actions/param_set_test.go @@ -91,20 +91,20 @@ func TestParamSet_index(t *testing.T) { func TestParamSet_global(t *testing.T) { withApp(t, func(appMock *amocks.App) { - nsName := "/" + module := "/" path := "replicas" value := "3" cm := &cmocks.Manager{} - ns := &cmocks.Namespace{} + ns := &cmocks.Module{} ns.On("SetParam", []string{"replicas"}, 3).Return(nil) - cm.On("Namespace", appMock, "/").Return(ns, nil) + cm.On("Module", appMock, "/").Return(ns, nil) in := map[string]interface{}{ OptionApp: appMock, - OptionName: nsName, + OptionName: module, OptionPath: path, OptionValue: value, OptionGlobal: true, diff --git a/actions/pkg_describe.go b/actions/pkg_describe.go index aa96545f..ad2e3d18 100644 --- a/actions/pkg_describe.go +++ b/actions/pkg_describe.go @@ -35,7 +35,7 @@ func RunPkgDescribe(m map[string]interface{}) error { return pd.Run() } -// PkgDescribe lists namespaces. +// PkgDescribe describes a package. type PkgDescribe struct { app app.App pkgName string @@ -64,7 +64,7 @@ func NewPkgDescribe(m map[string]interface{}) (*PkgDescribe, error) { return pd, nil } -// Run lists namespaces. +// Run describes a package. func (pd *PkgDescribe) Run() error { d, err := pkg.ParseName(pd.pkgName) if err != nil { diff --git a/actions/pkg_install.go b/actions/pkg_install.go index e7d7e7b8..bb29a08b 100644 --- a/actions/pkg_install.go +++ b/actions/pkg_install.go @@ -34,7 +34,7 @@ func RunPkgInstall(m map[string]interface{}) error { return pi.Run() } -// PkgInstall lists namespaces. +// PkgInstall installs packages. type PkgInstall struct { app app.App libName string @@ -61,7 +61,7 @@ func NewPkgInstall(m map[string]interface{}) (*PkgInstall, error) { return nl, nil } -// Run lists namespaces. +// Run installs packages. func (pi *PkgInstall) Run() error { d, customName, err := pi.parseDepSpec() if err != nil { diff --git a/actions/prototype_describe.go b/actions/prototype_describe.go index f964be9b..96fe910f 100644 --- a/actions/prototype_describe.go +++ b/actions/prototype_describe.go @@ -37,7 +37,7 @@ func RunPrototypeDescribe(m map[string]interface{}) error { return pd.Run() } -// PrototypeDescribe lists available namespaces +// PrototypeDescribe describes a prototype. type PrototypeDescribe struct { app app.App out io.Writer diff --git a/actions/prototype_list.go b/actions/prototype_list.go index f625403f..98a19e5d 100644 --- a/actions/prototype_list.go +++ b/actions/prototype_list.go @@ -36,7 +36,7 @@ func RunPrototypeList(m map[string]interface{}) error { return pl.Run() } -// PrototypeList lists available namespaces +// PrototypeList lists available prototypes. type PrototypeList struct { app app.App out io.Writer diff --git a/actions/prototype_search.go b/actions/prototype_search.go index 0179d5da..d88670a0 100644 --- a/actions/prototype_search.go +++ b/actions/prototype_search.go @@ -37,7 +37,7 @@ func RunPrototypeSearch(m map[string]interface{}) error { return ps.Run() } -// PrototypeSearch lists available namespaces +// PrototypeSearch searches for prototypes by name. type PrototypeSearch struct { app app.App query string diff --git a/actions/prototype_use.go b/actions/prototype_use.go index baaab1d3..d5b64568 100644 --- a/actions/prototype_use.go +++ b/actions/prototype_use.go @@ -37,7 +37,7 @@ func RunPrototypeUse(m map[string]interface{}) error { return pl.Run() } -// PrototypeUse lists available namespaces +// PrototypeUse generates a component from a prototype. type PrototypeUse struct { app app.App args []string @@ -126,7 +126,7 @@ func (pl *PrototypeUse) Run() error { return err } - _, prototypeName := component.ExtractNamespacedComponent(pl.app, componentName) + _, prototypeName := component.ExtractModuleComponent(pl.app, componentName) text, err := expandPrototype(p, templateType, params, prototypeName) if err != nil { diff --git a/actions/registry_add.go b/actions/registry_add.go index b418266d..57c00ab8 100644 --- a/actions/registry_add.go +++ b/actions/registry_add.go @@ -33,7 +33,7 @@ func RunRegistryAdd(m map[string]interface{}) error { return ra.Run() } -// RegistryAdd lists namespaces. +// RegistryAdd adds a registry. type RegistryAdd struct { app app.App name string @@ -64,7 +64,7 @@ func NewRegistryAdd(m map[string]interface{}) (*RegistryAdd, error) { return ra, nil } -// Run lists namespaces. +// Run adds a registry. func (ra *RegistryAdd) Run() error { uri, protocol := ra.protocol() _, err := ra.registryAddFn(ra.app, ra.name, protocol, uri, ra.version, ra.isOverride) diff --git a/actions/registry_describe.go b/actions/registry_describe.go index 28cbf534..4d7a1caa 100644 --- a/actions/registry_describe.go +++ b/actions/registry_describe.go @@ -36,7 +36,7 @@ func RunRegistryDescribe(m map[string]interface{}) error { return rd.Run() } -// RegistryDescribe lists available namespaces +// RegistryDescribe describes a registry type RegistryDescribe struct { app app.App name string diff --git a/actions/testdata/ns/list/output.txt b/actions/testdata/ns/list/output.txt index c9c57bbb..c45e0ede 100644 --- a/actions/testdata/ns/list/output.txt +++ b/actions/testdata/ns/list/output.txt @@ -1,4 +1,4 @@ -NAMESPACE -========= +MODULE +====== a b diff --git a/actions/validate.go b/actions/validate.go index 1a7ea6a7..a87fc225 100644 --- a/actions/validate.go +++ b/actions/validate.go @@ -52,7 +52,7 @@ type findObjectsFn func(a app.App, envName string, type Validate struct { app app.App envName string - nsName string + module string componentNames []string clientConfig *client.Config out io.Writer @@ -69,7 +69,7 @@ func NewValidate(m map[string]interface{}) (*Validate, error) { v := &Validate{ app: ol.loadApp(), envName: ol.loadString(OptionEnvName), - nsName: ol.loadString(OptionNamespaceName), + module: ol.loadString(OptionModule), componentNames: ol.loadStringSlice(OptionComponentNames), clientConfig: ol.loadClientConfig(), diff --git a/actions/validate_test.go b/actions/validate_test.go index 9e2a7b45..b2fc7201 100644 --- a/actions/validate_test.go +++ b/actions/validate_test.go @@ -47,7 +47,7 @@ func TestValidate(t *testing.T) { in := map[string]interface{}{ OptionApp: appMock, OptionEnvName: aEnvName, - OptionNamespaceName: aModuleName, + OptionModule: aModuleName, OptionComponentNames: aComponentNames, OptionClientConfig: aClientConfig, } diff --git a/cmd/actions.go b/cmd/actions.go index 9b185e76..5527312c 100644 --- a/cmd/actions.go +++ b/cmd/actions.go @@ -36,8 +36,8 @@ const ( actionEnvTargets actionImport actionInit - actionNsCreate - actionNsList + actionModuleCreate + actionModuleList actionParamDiff actionParamList actionParamSet @@ -66,16 +66,16 @@ var ( actionComponentRm: actions.RunComponentRm, // actionDelete // actionDiff - actionEnvAdd: actions.RunEnvAdd, - actionEnvDescribe: actions.RunEnvDescribe, - actionEnvList: actions.RunEnvList, - actionEnvRm: actions.RunEnvRm, - actionEnvSet: actions.RunEnvSet, - actionEnvTargets: actions.RunEnvTargets, - actionImport: actions.RunImport, - actionInit: actions.RunInit, - actionNsCreate: actions.RunNsCreate, - actionNsList: actions.RunNsList, + actionEnvAdd: actions.RunEnvAdd, + actionEnvDescribe: actions.RunEnvDescribe, + actionEnvList: actions.RunEnvList, + actionEnvRm: actions.RunEnvRm, + actionEnvSet: actions.RunEnvSet, + actionEnvTargets: actions.RunEnvTargets, + actionImport: actions.RunImport, + actionInit: actions.RunInit, + actionModuleCreate: actions.RunModuleCreate, + actionModuleList: actions.RunModuleList, // actionParamDiff actionParamList: actions.RunParamList, actionParamSet: actions.RunParamSet, diff --git a/cmd/component_list.go b/cmd/component_list.go index 68c62811..e9ee48e0 100644 --- a/cmd/component_list.go +++ b/cmd/component_list.go @@ -37,9 +37,9 @@ var componentListCmd = &cobra.Command{ } m := map[string]interface{}{ - actions.OptionApp: ka, - actions.OptionNamespaceName: viper.GetString(vComponentListNamespace), - actions.OptionOutput: viper.GetString(vComponentListOutput), + actions.OptionApp: ka, + actions.OptionModule: viper.GetString(vComponentListNamespace), + actions.OptionOutput: viper.GetString(vComponentListOutput), } return runAction(actionComponentList, m) @@ -59,6 +59,6 @@ func init() { componentListCmd.Flags().StringP(flagOutput, shortOutput, "", "Output format. Valid options: wide") viper.BindPFlag(vComponentListOutput, componentListCmd.Flags().Lookup(flagOutput)) - componentListCmd.Flags().String(flagNamespace, "", "Namespace") - viper.BindPFlag(vComponentListNamespace, componentListCmd.Flags().Lookup(flagNamespace)) + componentListCmd.Flags().String(flagModule, "", "Component module") + viper.BindPFlag(vComponentListNamespace, componentListCmd.Flags().Lookup(flagModule)) } diff --git a/cmd/component_list_test.go b/cmd/component_list_test.go index 0b934c1e..c1208240 100644 --- a/cmd/component_list_test.go +++ b/cmd/component_list_test.go @@ -29,9 +29,9 @@ func Test_componentListCmd(t *testing.T) { args: []string{"component", "list"}, action: actionComponentList, expected: map[string]interface{}{ - actions.OptionApp: ka, - actions.OptionNamespaceName: "", - actions.OptionOutput: "", + actions.OptionApp: ka, + actions.OptionModule: "", + actions.OptionOutput: "", }, }, } diff --git a/cmd/env_add.go b/cmd/env_add.go index ce967cf7..f49d9d61 100644 --- a/cmd/env_add.go +++ b/cmd/env_add.go @@ -57,12 +57,12 @@ var envAddCmd = &cobra.Command{ isOverride := viper.GetBool(vEnvAddOverride) m := map[string]interface{}{ - actions.OptionApp: ka, - actions.OptionEnvName: name, - actions.OptionServer: server, - actions.OptionNamespaceName: namespace, - actions.OptionSpecFlag: specFlag, - actions.OptionOverride: isOverride, + actions.OptionApp: ka, + actions.OptionEnvName: name, + actions.OptionServer: server, + actions.OptionModule: namespace, + actions.OptionSpecFlag: specFlag, + actions.OptionOverride: isOverride, } return runAction(actionEnvAdd, m) diff --git a/cmd/env_add_test.go b/cmd/env_add_test.go index 44026a7e..60cdcd0c 100644 --- a/cmd/env_add_test.go +++ b/cmd/env_add_test.go @@ -28,12 +28,12 @@ func Test_envAddCmd(t *testing.T) { args: []string{"env", "add", "prod", "--server", "http://example.com"}, action: actionEnvAdd, expected: map[string]interface{}{ - actions.OptionApp: ka, - actions.OptionEnvName: "prod", - actions.OptionNamespaceName: "default", - actions.OptionOverride: false, - actions.OptionServer: "http://example.com", - actions.OptionSpecFlag: "version:v1.7.0", + actions.OptionApp: ka, + actions.OptionEnvName: "prod", + actions.OptionModule: "default", + actions.OptionOverride: false, + actions.OptionServer: "http://example.com", + actions.OptionSpecFlag: "version:v1.7.0", }, }, } diff --git a/cmd/env_set.go b/cmd/env_set.go index 0d2b5f8b..ed2a6c11 100644 --- a/cmd/env_set.go +++ b/cmd/env_set.go @@ -37,10 +37,10 @@ var envSetCmd = &cobra.Command{ } m := map[string]interface{}{ - actions.OptionApp: ka, - actions.OptionEnvName: args[0], - actions.OptionNewEnvName: viper.GetString(vEnvSetName), - actions.OptionNamespaceName: viper.GetString(vEnvSetNamespace), + actions.OptionApp: ka, + actions.OptionEnvName: args[0], + actions.OptionNewEnvName: viper.GetString(vEnvSetName), + actions.OptionNamespace: viper.GetString(vEnvSetNamespace), } return runAction(actionEnvSet, m) diff --git a/cmd/env_set_test.go b/cmd/env_set_test.go index 9e0589cf..82446f05 100644 --- a/cmd/env_set_test.go +++ b/cmd/env_set_test.go @@ -28,10 +28,10 @@ func Test_envSetCmd(t *testing.T) { args: []string{"env", "set", "default", "--namespace", "new-name"}, action: actionEnvSet, expected: map[string]interface{}{ - actions.OptionApp: ka, - actions.OptionEnvName: "default", - actions.OptionNamespaceName: "new-name", - actions.OptionNewEnvName: "", + actions.OptionApp: ka, + actions.OptionEnvName: "default", + actions.OptionNamespace: "new-name", + actions.OptionNewEnvName: "", }, }, } diff --git a/cmd/env_targets.go b/cmd/env_targets.go index 6072cb4d..4cc087cd 100644 --- a/cmd/env_targets.go +++ b/cmd/env_targets.go @@ -23,7 +23,7 @@ import ( ) const ( - vEnvTargetNamespaces = "env-target-namespaces" + vEnvTargetModules = "env-target-modules" ) // envTargetsCmd represents the env targets command @@ -33,13 +33,13 @@ var envTargetsCmd = &cobra.Command{ Long: `targets`, RunE: func(cmd *cobra.Command, args []string) error { if len(args) != 1 { - return errors.New("env targets <environment> --namespace name") + return errors.New("env targets <environment> <--module name>...") } m := map[string]interface{}{ - actions.OptionApp: ka, - actions.OptionEnvName: args[0], - actions.OptionNamespaceName: viper.GetStringSlice(vEnvTargetNamespaces), + actions.OptionApp: ka, + actions.OptionEnvName: args[0], + actions.OptionModule: viper.GetStringSlice(vEnvTargetModules), } return runAction(actionEnvTargets, m) @@ -49,6 +49,6 @@ var envTargetsCmd = &cobra.Command{ func init() { envCmd.AddCommand(envTargetsCmd) - envTargetsCmd.Flags().StringSlice(flagNamespace, nil, "Components to include") - viper.BindPFlag(vEnvTargetNamespaces, envTargetsCmd.Flags().Lookup(flagNamespace)) + envTargetsCmd.Flags().StringSlice(flagModule, nil, "Component modules to include") + viper.BindPFlag(vEnvTargetModules, envTargetsCmd.Flags().Lookup(flagModule)) } diff --git a/cmd/env_targets_test.go b/cmd/env_targets_test.go index ad36dfad..5306fc62 100644 --- a/cmd/env_targets_test.go +++ b/cmd/env_targets_test.go @@ -25,12 +25,12 @@ func Test_envTargetsCmd(t *testing.T) { cases := []cmdTestCase{ { name: "in general", - args: []string{"env", "targets", "prod", "--namespace", "app1"}, + args: []string{"env", "targets", "prod", "--module", "app1"}, action: actionEnvTargets, expected: map[string]interface{}{ - actions.OptionApp: ka, - actions.OptionEnvName: "prod", - actions.OptionNamespaceName: []string{"app1"}, + actions.OptionApp: ka, + actions.OptionEnvName: "prod", + actions.OptionModule: []string{"app1"}, }, }, } diff --git a/cmd/flags.go b/cmd/flags.go index 64a9d544..b907ba2f 100644 --- a/cmd/flags.go +++ b/cmd/flags.go @@ -30,6 +30,7 @@ const ( flagGcTag = "gc-tag" flagIndex = "index" flagJpath = "jpath" + flagModule = "module" flagNamespace = "namespace" flagResolver = "resolve-images" flagResolvFail = "resolve-images-error" diff --git a/cmd/import.go b/cmd/import.go index 9a1c216d..c4d49fca 100644 --- a/cmd/import.go +++ b/cmd/import.go @@ -23,8 +23,8 @@ import ( ) const ( - vImportFilename = "import-filename" - vImportNamespace = "import-namespace" + vImportFilename = "import-filename" + vImportModule = "import-module" ) // importCmd represents the import command @@ -34,9 +34,9 @@ var importCmd = &cobra.Command{ Long: `Import manifest`, RunE: func(cmd *cobra.Command, args []string) error { m := map[string]interface{}{ - actions.OptionApp: ka, - actions.OptionNamespaceName: viper.GetString(vImportNamespace), - actions.OptionPath: viper.GetString(vImportFilename), + actions.OptionApp: ka, + actions.OptionModule: viper.GetString(vImportModule), + actions.OptionPath: viper.GetString(vImportFilename), } return runAction(actionImport, m) @@ -48,6 +48,6 @@ func init() { importCmd.Flags().StringP(flagFilename, shortFilename, "", "Filename or directory for component to import") viper.BindPFlag(vImportFilename, importCmd.Flags().Lookup(flagFilename)) - importCmd.Flags().String(flagNamespace, "", "Component namespace") - viper.BindPFlag(vImportNamespace, importCmd.Flags().Lookup(flagNamespace)) + importCmd.Flags().String(flagModule, "", "Component module") + viper.BindPFlag(vImportModule, importCmd.Flags().Lookup(flagModule)) } diff --git a/cmd/init.go b/cmd/init.go index f3d5aea4..903be992 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -95,7 +95,7 @@ var initCmd = &cobra.Command{ actions.OptionRootPath: appRoot, actions.OptionSpecFlag: specFlag, actions.OptionServer: server, - actions.OptionNamespaceName: namespace, + actions.OptionNamespace: namespace, actions.OptionSkipDefaultRegistries: viper.GetBool(vInitSkipDefaultRegistries), } diff --git a/cmd/init_test.go b/cmd/init_test.go index 3ca8b4c7..43d933ff 100644 --- a/cmd/init_test.go +++ b/cmd/init_test.go @@ -41,7 +41,7 @@ func Test_initCmd(t *testing.T) { actions.OptionRootPath: root, actions.OptionServer: "http://127.0.0.1", actions.OptionSpecFlag: "version:v1.7.0", - actions.OptionNamespaceName: "new-namespace", + actions.OptionNamespace: "new-namespace", actions.OptionSkipDefaultRegistries: false, }, }, diff --git a/cmd/initname_string.go b/cmd/initname_string.go index b7795d3e..ef85b01d 100644 --- a/cmd/initname_string.go +++ b/cmd/initname_string.go @@ -1,27 +1,12 @@ -// Copyright 2018 The ksonnet authors -// -// -// 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. - // Code generated by "stringer -type=initName"; DO NOT EDIT. package cmd import "strconv" -const _initName_name = "actionApplyactionComponentListactionComponentNameactionDeleteactionDiffactionEnvAddactionEnvDescribeactionEnvListactionEnvRmactionEnvSetactionEnvTargetsactionImportactionInitactionNsCreateactionNsListactionParamDiffactionParamListactionParamSetactionPkgDescribeactionPkgInstallactionPkgListactionPrototypeDescribeactionPrototypeListactionPrototypePreviewactionPrototypeSearchactionPrototypeUseactionRegistryAddactionRegistryDescribeactionRegistryListactionShowactionUpgradeactionValidate" +const _initName_name = "actionApplyactionComponentListactionComponentRmactionDeleteactionDiffactionEnvAddactionEnvDescribeactionEnvListactionEnvRmactionEnvSetactionEnvTargetsactionImportactionInitactionModuleCreateactionModuleListactionParamDiffactionParamListactionParamSetactionPkgDescribeactionPkgInstallactionPkgListactionPrototypeDescribeactionPrototypeListactionPrototypePreviewactionPrototypeSearchactionPrototypeUseactionRegistryAddactionRegistryDescribeactionRegistryListactionShowactionUpgradeactionValidate" -var _initName_index = [...]uint16{0, 11, 30, 49, 61, 71, 83, 100, 113, 124, 136, 152, 164, 174, 188, 200, 215, 230, 244, 261, 277, 290, 313, 332, 354, 375, 393, 410, 432, 450, 460, 473, 487} +var _initName_index = [...]uint16{0, 11, 30, 47, 59, 69, 81, 98, 111, 122, 134, 150, 162, 172, 190, 206, 221, 236, 250, 267, 283, 296, 319, 338, 360, 381, 399, 416, 438, 456, 466, 479, 493} func (i initName) String() string { if i < 0 || i >= initName(len(_initName_index)-1) { diff --git a/cmd/ns.go b/cmd/module.go similarity index 81% rename from cmd/ns.go rename to cmd/module.go index 59f5196c..37d4696f 100644 --- a/cmd/ns.go +++ b/cmd/module.go @@ -17,13 +17,13 @@ package cmd import "github.com/spf13/cobra" -// nsCmd represents the ns command -var nsCmd = &cobra.Command{ - Use: "ns", - Short: "ns", - Long: `ns`, +// moduleCmd represents the module command +var moduleCmd = &cobra.Command{ + Use: "module", + Short: "module", + Long: `module`, } func init() { - RootCmd.AddCommand(nsCmd) + RootCmd.AddCommand(moduleCmd) } diff --git a/cmd/ns_create.go b/cmd/module_create.go similarity index 74% rename from cmd/ns_create.go rename to cmd/module_create.go index 1bf7e6e2..15ed65ca 100644 --- a/cmd/ns_create.go +++ b/cmd/module_create.go @@ -22,29 +22,29 @@ import ( ) const ( - vNsCreateNamespace = "ns-create-namespace" + vModuleCreateNamespace = "module-create-namespace" ) -// nsCreateCmd creates a ns create command. -var nsCreateCmd = &cobra.Command{ +// moduleCreateCmd creates a ns create command. +var moduleCreateCmd = &cobra.Command{ Use: "create <name>", Short: "create", Long: `create`, RunE: func(cmd *cobra.Command, args []string) error { if len(args) != 1 { - return errors.New("ns create <namespace>") + return errors.New("module create <module name>") } m := map[string]interface{}{ - actions.OptionApp: ka, - actions.OptionNamespaceName: args[0], + actions.OptionApp: ka, + actions.OptionModule: args[0], } - return runAction(actionNsCreate, m) + return runAction(actionModuleCreate, m) }, } func init() { - nsCmd.AddCommand(nsCreateCmd) + moduleCmd.AddCommand(moduleCreateCmd) } diff --git a/cmd/ns_create_test.go b/cmd/module_create_test.go similarity index 81% rename from cmd/ns_create_test.go rename to cmd/module_create_test.go index 366e1010..7742be88 100644 --- a/cmd/ns_create_test.go +++ b/cmd/module_create_test.go @@ -21,15 +21,15 @@ import ( "github.com/ksonnet/ksonnet/actions" ) -func Test_nsCreateCmd(t *testing.T) { +func Test_moduleCreateCmd(t *testing.T) { cases := []cmdTestCase{ { name: "in general", - args: []string{"ns", "create", "app1"}, - action: actionNsCreate, + args: []string{"module", "create", "app1"}, + action: actionModuleCreate, expected: map[string]interface{}{ - actions.OptionApp: ka, - actions.OptionNamespaceName: "app1", + actions.OptionApp: ka, + actions.OptionModule: "app1", }, }, } diff --git a/cmd/ns_list.go b/cmd/module_list.go similarity index 73% rename from cmd/ns_list.go rename to cmd/module_list.go index e01e43bc..33b04129 100644 --- a/cmd/ns_list.go +++ b/cmd/module_list.go @@ -22,10 +22,10 @@ import ( ) const ( - vNsListEnv = "ns-list-env" + vModuleListEnv = "module-list-env" ) -// nsListCmd represents the ns list command +// moduleListCmd represents the ns list command var nsListCmd = &cobra.Command{ Use: "list", Short: "list", @@ -33,17 +33,17 @@ var nsListCmd = &cobra.Command{ RunE: func(cmd *cobra.Command, args []string) error { m := map[string]interface{}{ actions.OptionApp: ka, - actions.OptionEnvName: viper.GetString(vNsListEnv), + actions.OptionEnvName: viper.GetString(vModuleListEnv), } - return runAction(actionNsList, m) + return runAction(actionModuleList, m) }, } func init() { - nsCmd.AddCommand(nsListCmd) + moduleCmd.AddCommand(nsListCmd) - nsListCmd.Flags().String(flagEnv, "", "Environment to list namespaces for") - viper.BindPFlag(vNsListEnv, nsListCmd.Flags().Lookup(flagEnv)) + nsListCmd.Flags().String(flagEnv, "", "Environment to list modules for") + viper.BindPFlag(vModuleListEnv, nsListCmd.Flags().Lookup(flagEnv)) } diff --git a/cmd/ns_list_test.go b/cmd/module_list_test.go similarity index 89% rename from cmd/ns_list_test.go rename to cmd/module_list_test.go index 9eda6dec..d5df07b2 100644 --- a/cmd/ns_list_test.go +++ b/cmd/module_list_test.go @@ -21,12 +21,12 @@ import ( "github.com/ksonnet/ksonnet/actions" ) -func Test_nsListCmd(t *testing.T) { +func Test_moduleListCmd(t *testing.T) { cases := []cmdTestCase{ { name: "in general", - args: []string{"ns", "list"}, - action: actionNsList, + args: []string{"module", "list"}, + action: actionModuleList, expected: map[string]interface{}{ actions.OptionApp: ka, actions.OptionEnvName: "", diff --git a/cmd/param.go b/cmd/param.go index 0545f0eb..a771d953 100644 --- a/cmd/param.go +++ b/cmd/param.go @@ -22,12 +22,6 @@ import ( "github.com/spf13/cobra" ) -const ( - flagParamEnv = "env" - flagParamComponent = "component" - flagParamNamespace = "namespace" -) - var paramShortDesc = map[string]string{ "set": "Change component or environment parameters (e.g. replica count, name)", "list": "List known component parameters", diff --git a/cmd/param_diff.go b/cmd/param_diff.go index 11745d1c..d3e9a6b4 100644 --- a/cmd/param_diff.go +++ b/cmd/param_diff.go @@ -40,7 +40,7 @@ var paramDiffCmd = &cobra.Command{ env1 := args[0] env2 := args[1] - component, err := flags.GetString(flagParamComponent) + component, err := flags.GetString(flagComponent) if err != nil { return err } @@ -76,7 +76,7 @@ ks param diff dev prod --component=guestbook`, func init() { paramCmd.AddCommand(paramDiffCmd) - paramListCmd.PersistentFlags().String(flagParamEnv, "", "Specify environment to list parameters for") - paramListCmd.Flags().String(flagParamNamespace, "", "Specify namespace to list parameters for") - paramDiffCmd.PersistentFlags().String(flagParamComponent, "", "Specify the component to diff against") + paramListCmd.PersistentFlags().String(flagEnv, "", "Specify environment to list parameters for") + paramListCmd.Flags().String(flagModule, "", "Specify module to list parameters for") + paramDiffCmd.PersistentFlags().String(flagComponent, "", "Specify the component to diff against") } diff --git a/cmd/param_list.go b/cmd/param_list.go index 14d2aac4..517ff4dd 100644 --- a/cmd/param_list.go +++ b/cmd/param_list.go @@ -36,12 +36,12 @@ var paramListCmd = &cobra.Command{ component = args[0] } - env, err := flags.GetString(flagParamEnv) + env, err := flags.GetString(flagEnv) if err != nil { return err } - nsName, err := flags.GetString(flagParamNamespace) + module, err := flags.GetString(flagModule) if err != nil { return err } @@ -50,7 +50,7 @@ var paramListCmd = &cobra.Command{ actions.OptionApp: ka, actions.OptionComponentName: component, actions.OptionEnvName: env, - actions.OptionNamespaceName: nsName, + actions.OptionModule: module, } return runAction(actionParamList, m) diff --git a/cmd/param_list_test.go b/cmd/param_list_test.go index 7a309b3f..47d86071 100644 --- a/cmd/param_list_test.go +++ b/cmd/param_list_test.go @@ -30,7 +30,7 @@ func Test_paramListCmd(t *testing.T) { expected: map[string]interface{}{ actions.OptionApp: ka, actions.OptionEnvName: "", - actions.OptionNamespaceName: "", + actions.OptionModule: "", actions.OptionComponentName: "", }, }, diff --git a/cmd/validate.go b/cmd/validate.go index aca9451e..6d01b4f1 100644 --- a/cmd/validate.go +++ b/cmd/validate.go @@ -55,7 +55,7 @@ var validateCmd = &cobra.Command{ m := map[string]interface{}{ actions.OptionApp: ka, actions.OptionEnvName: args[0], - actions.OptionNamespaceName: "", + actions.OptionModule: "", actions.OptionComponentNames: viper.GetStringSlice(vValidateComponent), actions.OptionClientConfig: validateClientConfig, } diff --git a/cmd/validate_test.go b/cmd/validate_test.go index 9dc13f71..3e6e8854 100644 --- a/cmd/validate_test.go +++ b/cmd/validate_test.go @@ -30,7 +30,7 @@ func Test_validateCmd(t *testing.T) { expected: map[string]interface{}{ actions.OptionApp: ka, actions.OptionEnvName: "env-name", - actions.OptionNamespaceName: "", + actions.OptionModule: "", actions.OptionComponentNames: make([]string, 0), actions.OptionClientConfig: validateClientConfig, }, diff --git a/component/component.go b/component/component.go index 1dd3796f..96ed2205 100644 --- a/component/component.go +++ b/component/component.go @@ -59,7 +59,7 @@ type Component interface { DeleteParam(path []string, options ParamOptions) error // Params returns a list of all parameters for a component. If envName is a // blank string, it will report the local parameters. - Params(envName string) ([]NamespaceParameter, error) + Params(envName string) ([]ModuleParameter, error) // Summarize returns a summary of the component. Summarize() ([]Summary, error) } @@ -71,11 +71,11 @@ const ( paramsFile = "params.libsonnet" ) -// LocateComponent locates a component given a nsName and a name. -func LocateComponent(ksApp app.App, nsName, name string) (Component, error) { +// LocateComponent locates a component given a module and a name. +func LocateComponent(ksApp app.App, module, name string) (Component, error) { path := make([]string, 0) - if nsName != "" && nsName != "/" { - path = append(path, nsName) + if module != "" && module != "/" { + path = append(path, module) } path = append(path, name) @@ -84,7 +84,7 @@ func LocateComponent(ksApp app.App, nsName, name string) (Component, error) { // Path returns returns the file system path for a component. func Path(a app.App, name string) (string, error) { - ns, localName := ExtractNamespacedComponent(a, name) + ns, localName := ExtractModuleComponent(a, name) fis, err := afero.ReadDir(a.Fs(), ns.Dir()) if err != nil { @@ -119,7 +119,7 @@ func Path(a app.App, name string) (string, error) { // ExtractComponent extracts a component from a path. func ExtractComponent(a app.App, path string) (Component, error) { - ns, componentName := ExtractNamespacedComponent(a, path) + ns, componentName := ExtractModuleComponent(a, path) members, err := ns.Components() if err != nil { return nil, err diff --git a/component/create.go b/component/create.go index 2b40e078..10963416 100644 --- a/component/create.go +++ b/component/create.go @@ -59,9 +59,9 @@ func (cc *componentCreator) Create(name, text string, params param.Params, templ return "", errors.Errorf("Component name '%s' is not valid; must not contain punctuation, spaces, or begin or end with a slash", name) } - nsName, componentName := namespaceComponent(name) + module, componentName := namespaceComponent(name) - componentDir, componentPath, err := cc.location(nsName, componentName, templateType) + componentDir, componentPath, err := cc.location(module, componentName, templateType) if err != nil { return "", errors.Wrap(err, "generate component location") } @@ -103,8 +103,8 @@ func (cc *componentCreator) Create(name, text string, params param.Params, templ } // location returns the dir and full path for the component. -func (cc *componentCreator) location(nsName, name string, templateType prototype.TemplateType) (string, string, error) { - componentDir := filepath.Join(cc.app.Root(), componentsRoot, nsName) +func (cc *componentCreator) location(module, name string, templateType prototype.TemplateType) (string, string, error) { + componentDir := filepath.Join(cc.app.Root(), componentsRoot, module) componentPath := filepath.Join(componentDir, name) switch templateType { case prototype.YAML: @@ -170,7 +170,7 @@ func namespaceComponent(name string) (string, string) { return "", parts[0] } - var nsName []string + var module []string var componentName string for i := range parts { if i == len(parts)-1 { @@ -178,10 +178,10 @@ func namespaceComponent(name string) (string, string) { break } - nsName = append(nsName, parts[i]) + module = append(module, parts[i]) } - return strings.Join(nsName, "/"), componentName + return strings.Join(module, "/"), componentName } // GenParamsContent is the default content for params.libsonnet. diff --git a/component/delete.go b/component/delete.go index d858a715..e0e888fb 100644 --- a/component/delete.go +++ b/component/delete.go @@ -35,7 +35,7 @@ func Delete(a app.App, name string) error { return err } - ns, _ := ExtractNamespacedComponent(a, name) + ns, _ := ExtractModuleComponent(a, name) // Build the new component/params.libsonnet file. componentParamsFile, err := afero.ReadFile(a.Fs(), ns.ParamsPath()) diff --git a/component/jsonnet.go b/component/jsonnet.go index c5ea16b8..a6bee465 100644 --- a/component/jsonnet.go +++ b/component/jsonnet.go @@ -38,7 +38,7 @@ import ( // Jsonnet is a component base on jsonnet. type Jsonnet struct { app app.App - nsName string + module string source string paramsPath string } @@ -46,10 +46,10 @@ type Jsonnet struct { var _ Component = (*Jsonnet)(nil) // NewJsonnet creates an instance of Jsonnet. -func NewJsonnet(a app.App, nsName, source, paramsPath string) *Jsonnet { +func NewJsonnet(a app.App, module, source, paramsPath string) *Jsonnet { return &Jsonnet{ app: a, - nsName: nsName, + module: module, source: source, paramsPath: paramsPath, } @@ -63,11 +63,11 @@ func (j *Jsonnet) Name(wantsNameSpaced bool) string { return name } - if j.nsName == "/" { + if j.module == "/" { return name } - return path.Join(j.nsName, name) + return path.Join(j.module, name) } func (j *Jsonnet) vmImporter(envName string) (*jsonnet.MemoryImporter, error) { @@ -226,7 +226,7 @@ func (j *Jsonnet) DeleteParam(path []string, options ParamOptions) error { } // Params returns params for a component. -func (j *Jsonnet) Params(envName string) ([]NamespaceParameter, error) { +func (j *Jsonnet) Params(envName string) ([]ModuleParameter, error) { paramsData, err := j.readParams(envName) if err != nil { return nil, err @@ -237,13 +237,13 @@ func (j *Jsonnet) Params(envName string) ([]NamespaceParameter, error) { return nil, errors.Wrap(err, "could not find components") } - var params []NamespaceParameter + var params []ModuleParameter for k, v := range props { vStr, err := j.paramValue(v) if err != nil { return nil, err } - np := NamespaceParameter{ + np := ModuleParameter{ Component: j.Name(false), Key: k, Index: "0", @@ -294,7 +294,7 @@ func (j *Jsonnet) readParams(envName string) (string, error) { return j.readNamespaceParams() } - ns, err := GetNamespace(j.app, j.nsName) + ns, err := GetModule(j.app, j.module) if err != nil { return "", err } diff --git a/component/jsonnet_test.go b/component/jsonnet_test.go index a3ab9b53..fcd94383 100644 --- a/component/jsonnet_test.go +++ b/component/jsonnet_test.go @@ -167,7 +167,7 @@ func TestJsonnet_Params(t *testing.T) { params, err := c.Params("") require.NoError(t, err) - expected := []NamespaceParameter{ + expected := []ModuleParameter{ { Component: "guestbook-ui", Index: "0", diff --git a/component/manager.go b/component/manager.go index f000d2a0..723e9241 100644 --- a/component/manager.go +++ b/component/manager.go @@ -34,45 +34,45 @@ var ( // Manager is an interface for interating with components. type Manager interface { - Components(ns Namespace) ([]Component, error) - Component(ksApp app.App, nsName, componentName string) (Component, error) + Components(ns Module) ([]Component, error) + Component(ksApp app.App, module, componentName string) (Component, error) CreateComponent(ksApp app.App, name, text string, params param.Params, templateType prototype.TemplateType) (string, error) - CreateNamespace(ksApp app.App, name string) error - Namespace(ksApp app.App, nsName string) (Namespace, error) - Namespaces(ksApp app.App, envName string) ([]Namespace, error) - NSResolveParams(ns Namespace) (string, error) - ResolvePath(ksApp app.App, path string) (Namespace, Component, error) + CreateModule(ksApp app.App, name string) error + Module(ksApp app.App, module string) (Module, error) + Modules(ksApp app.App, envName string) ([]Module, error) + NSResolveParams(ns Module) (string, error) + ResolvePath(ksApp app.App, path string) (Module, Component, error) } type defaultManager struct{} var _ Manager = (*defaultManager)(nil) -func (dm *defaultManager) Namespaces(ksApp app.App, envName string) ([]Namespace, error) { - return NamespacesFromEnv(ksApp, envName) +func (dm *defaultManager) Modules(ksApp app.App, envName string) ([]Module, error) { + return ModulesFromEnv(ksApp, envName) } -func (dm *defaultManager) Namespace(ksApp app.App, nsName string) (Namespace, error) { - return GetNamespace(ksApp, nsName) +func (dm *defaultManager) Module(ksApp app.App, module string) (Module, error) { + return GetModule(ksApp, module) } -func (dm *defaultManager) NSResolveParams(ns Namespace) (string, error) { +func (dm *defaultManager) NSResolveParams(ns Module) (string, error) { return ns.ResolvedParams() } -func (dm *defaultManager) Components(ns Namespace) ([]Component, error) { +func (dm *defaultManager) Components(ns Module) ([]Component, error) { return ns.Components() } -func (dm *defaultManager) Component(ksApp app.App, nsName, componentName string) (Component, error) { - return LocateComponent(ksApp, nsName, componentName) +func (dm *defaultManager) Component(ksApp app.App, module, componentName string) (Component, error) { + return LocateComponent(ksApp, module, componentName) } func (dm *defaultManager) CreateComponent(ksApp app.App, name, text string, params param.Params, templateType prototype.TemplateType) (string, error) { return Create(ksApp, name, text, params, templateType) } -func (dm *defaultManager) CreateNamespace(ksApp app.App, name string) error { +func (dm *defaultManager) CreateModule(ksApp app.App, name string) error { parts := strings.Split(name, "/") dir := filepath.Join(append([]string{ksApp.Root(), "components"}, parts...)...) @@ -84,14 +84,14 @@ func (dm *defaultManager) CreateNamespace(ksApp app.App, name string) error { return afero.WriteFile(ksApp.Fs(), paramsDir, GenParamsContent(), app.DefaultFilePermissions) } -func (dm *defaultManager) ResolvePath(ksApp app.App, path string) (Namespace, Component, error) { +func (dm *defaultManager) ResolvePath(ksApp app.App, path string) (Module, Component, error) { isDir, err := dm.isComponentDir(ksApp, path) if err != nil { return nil, nil, errors.Wrap(err, "check for namespace directory") } if isDir { - ns, err := dm.Namespace(ksApp, path) + ns, err := dm.Module(ksApp, path) if err != nil { return nil, nil, err } @@ -99,17 +99,17 @@ func (dm *defaultManager) ResolvePath(ksApp app.App, path string) (Namespace, Co return ns, nil, nil } - nsName, cName, err := dm.checkComponent(ksApp, path) + module, cName, err := dm.checkComponent(ksApp, path) if err != nil { return nil, nil, err } - ns, err := dm.Namespace(ksApp, nsName) + ns, err := dm.Module(ksApp, module) if err != nil { return nil, nil, err } - c, err := dm.Component(ksApp, nsName, cName) + c, err := dm.Component(ksApp, module, cName) if err != nil { return nil, nil, err } @@ -139,12 +139,12 @@ func (dm *defaultManager) checkComponent(ksApp app.App, name string) (string, st if exists { dir, file := path.Split(base) - nsName := strings.TrimPrefix(dir, path.Join(ksApp.Root(), componentsRoot)) - if len(nsName) > 0 { - nsName = strings.TrimSuffix(nsName, "/") + module := strings.TrimPrefix(dir, path.Join(ksApp.Root(), componentsRoot)) + if len(module) > 0 { + module = strings.TrimSuffix(module, "/") } - return nsName, file, nil + return module, file, nil } } diff --git a/component/manager_test.go b/component/manager_test.go index 9c42c412..7004fec4 100644 --- a/component/manager_test.go +++ b/component/manager_test.go @@ -52,31 +52,31 @@ func Test_default_manager_ResolvePath(t *testing.T) { cases := []struct { name string cName string - nsName string + module string isErr bool }{ { name: "/", - nsName: "/", + module: "/", }, { name: "deployment", - nsName: "/", + module: "/", cName: "deployment", }, { name: "/deployment", - nsName: "/", + module: "/", cName: "deployment", }, { name: "/nested/deployment", - nsName: "/nested", + module: "/nested", cName: "deployment", }, { name: "nested/deployment", - nsName: "/nested", + module: "/nested", cName: "deployment", }, { @@ -107,7 +107,7 @@ func Test_default_manager_ResolvePath(t *testing.T) { assert.Equal(t, tc.cName, c.Name(false)) } - assert.Equal(t, tc.nsName, ns.Name()) + assert.Equal(t, tc.module, ns.Name()) }) } } diff --git a/component/mocks/Component.go b/component/mocks/Component.go index 52e609e7..a29e15b5 100644 --- a/component/mocks/Component.go +++ b/component/mocks/Component.go @@ -77,15 +77,15 @@ func (_m *Component) Objects(paramsStr string, envName string) ([]*unstructured. } // Params provides a mock function with given fields: envName -func (_m *Component) Params(envName string) ([]component.NamespaceParameter, error) { +func (_m *Component) Params(envName string) ([]component.ModuleParameter, error) { ret := _m.Called(envName) - var r0 []component.NamespaceParameter - if rf, ok := ret.Get(0).(func(string) []component.NamespaceParameter); ok { + var r0 []component.ModuleParameter + if rf, ok := ret.Get(0).(func(string) []component.ModuleParameter); ok { r0 = rf(envName) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]component.NamespaceParameter) + r0 = ret.Get(0).([]component.ModuleParameter) } } diff --git a/component/mocks/Manager.go b/component/mocks/Manager.go index de0c0bc2..a9106672 100644 --- a/component/mocks/Manager.go +++ b/component/mocks/Manager.go @@ -27,13 +27,13 @@ type Manager struct { mock.Mock } -// Component provides a mock function with given fields: ksApp, nsName, componentName -func (_m *Manager) Component(ksApp app.App, nsName string, componentName string) (component.Component, error) { - ret := _m.Called(ksApp, nsName, componentName) +// Component provides a mock function with given fields: ksApp, module, componentName +func (_m *Manager) Component(ksApp app.App, module string, componentName string) (component.Component, error) { + ret := _m.Called(ksApp, module, componentName) var r0 component.Component if rf, ok := ret.Get(0).(func(app.App, string, string) component.Component); ok { - r0 = rf(ksApp, nsName, componentName) + r0 = rf(ksApp, module, componentName) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(component.Component) @@ -42,7 +42,7 @@ func (_m *Manager) Component(ksApp app.App, nsName string, componentName string) var r1 error if rf, ok := ret.Get(1).(func(app.App, string, string) error); ok { - r1 = rf(ksApp, nsName, componentName) + r1 = rf(ksApp, module, componentName) } else { r1 = ret.Error(1) } @@ -51,11 +51,11 @@ func (_m *Manager) Component(ksApp app.App, nsName string, componentName string) } // Components provides a mock function with given fields: ns -func (_m *Manager) Components(ns component.Namespace) ([]component.Component, error) { +func (_m *Manager) Components(ns component.Module) ([]component.Component, error) { ret := _m.Called(ns) var r0 []component.Component - if rf, ok := ret.Get(0).(func(component.Namespace) []component.Component); ok { + if rf, ok := ret.Get(0).(func(component.Module) []component.Component); ok { r0 = rf(ns) } else { if ret.Get(0) != nil { @@ -64,7 +64,7 @@ func (_m *Manager) Components(ns component.Namespace) ([]component.Component, er } var r1 error - if rf, ok := ret.Get(1).(func(component.Namespace) error); ok { + if rf, ok := ret.Get(1).(func(component.Module) error); ok { r1 = rf(ns) } else { r1 = ret.Error(1) @@ -94,8 +94,8 @@ func (_m *Manager) CreateComponent(ksApp app.App, name string, text string, _a3 return r0, r1 } -// CreateNamespace provides a mock function with given fields: ksApp, name -func (_m *Manager) CreateNamespace(ksApp app.App, name string) error { +// CreateModule provides a mock function with given fields: ksApp, name +func (_m *Manager) CreateModule(ksApp app.App, name string) error { ret := _m.Called(ksApp, name) var r0 error @@ -108,20 +108,22 @@ func (_m *Manager) CreateNamespace(ksApp app.App, name string) error { return r0 } -// NSResolveParams provides a mock function with given fields: ns -func (_m *Manager) NSResolveParams(ns component.Namespace) (string, error) { - ret := _m.Called(ns) +// Module provides a mock function with given fields: ksApp, module +func (_m *Manager) Module(ksApp app.App, module string) (component.Module, error) { + ret := _m.Called(ksApp, module) - var r0 string - if rf, ok := ret.Get(0).(func(component.Namespace) string); ok { - r0 = rf(ns) + var r0 component.Module + if rf, ok := ret.Get(0).(func(app.App, string) component.Module); ok { + r0 = rf(ksApp, module) } else { - r0 = ret.Get(0).(string) + if ret.Get(0) != nil { + r0 = ret.Get(0).(component.Module) + } } var r1 error - if rf, ok := ret.Get(1).(func(component.Namespace) error); ok { - r1 = rf(ns) + if rf, ok := ret.Get(1).(func(app.App, string) error); ok { + r1 = rf(ksApp, module) } else { r1 = ret.Error(1) } @@ -129,22 +131,22 @@ func (_m *Manager) NSResolveParams(ns component.Namespace) (string, error) { return r0, r1 } -// Namespace provides a mock function with given fields: ksApp, nsName -func (_m *Manager) Namespace(ksApp app.App, nsName string) (component.Namespace, error) { - ret := _m.Called(ksApp, nsName) +// Modules provides a mock function with given fields: ksApp, envName +func (_m *Manager) Modules(ksApp app.App, envName string) ([]component.Module, error) { + ret := _m.Called(ksApp, envName) - var r0 component.Namespace - if rf, ok := ret.Get(0).(func(app.App, string) component.Namespace); ok { - r0 = rf(ksApp, nsName) + var r0 []component.Module + if rf, ok := ret.Get(0).(func(app.App, string) []component.Module); ok { + r0 = rf(ksApp, envName) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(component.Namespace) + r0 = ret.Get(0).([]component.Module) } } var r1 error if rf, ok := ret.Get(1).(func(app.App, string) error); ok { - r1 = rf(ksApp, nsName) + r1 = rf(ksApp, envName) } else { r1 = ret.Error(1) } @@ -152,22 +154,20 @@ func (_m *Manager) Namespace(ksApp app.App, nsName string) (component.Namespace, return r0, r1 } -// Namespaces provides a mock function with given fields: ksApp, envName -func (_m *Manager) Namespaces(ksApp app.App, envName string) ([]component.Namespace, error) { - ret := _m.Called(ksApp, envName) +// NSResolveParams provides a mock function with given fields: ns +func (_m *Manager) NSResolveParams(ns component.Module) (string, error) { + ret := _m.Called(ns) - var r0 []component.Namespace - if rf, ok := ret.Get(0).(func(app.App, string) []component.Namespace); ok { - r0 = rf(ksApp, envName) + var r0 string + if rf, ok := ret.Get(0).(func(component.Module) string); ok { + r0 = rf(ns) } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]component.Namespace) - } + r0 = ret.Get(0).(string) } var r1 error - if rf, ok := ret.Get(1).(func(app.App, string) error); ok { - r1 = rf(ksApp, envName) + if rf, ok := ret.Get(1).(func(component.Module) error); ok { + r1 = rf(ns) } else { r1 = ret.Error(1) } @@ -176,15 +176,15 @@ func (_m *Manager) Namespaces(ksApp app.App, envName string) ([]component.Namesp } // ResolvePath provides a mock function with given fields: ksApp, path -func (_m *Manager) ResolvePath(ksApp app.App, path string) (component.Namespace, component.Component, error) { +func (_m *Manager) ResolvePath(ksApp app.App, path string) (component.Module, component.Component, error) { ret := _m.Called(ksApp, path) - var r0 component.Namespace - if rf, ok := ret.Get(0).(func(app.App, string) component.Namespace); ok { + var r0 component.Module + if rf, ok := ret.Get(0).(func(app.App, string) component.Module); ok { r0 = rf(ksApp, path) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(component.Namespace) + r0 = ret.Get(0).(component.Module) } } diff --git a/component/mocks/Namespace.go b/component/mocks/Module.go similarity index 80% rename from component/mocks/Namespace.go rename to component/mocks/Module.go index 5fdfc899..ca874f49 100644 --- a/component/mocks/Namespace.go +++ b/component/mocks/Module.go @@ -19,13 +19,13 @@ package mocks import component "github.com/ksonnet/ksonnet/component" import mock "github.com/stretchr/testify/mock" -// Namespace is an autogenerated mock type for the Namespace type -type Namespace struct { +// Module is an autogenerated mock type for the Module type +type Module struct { mock.Mock } // Components provides a mock function with given fields: -func (_m *Namespace) Components() ([]component.Component, error) { +func (_m *Module) Components() ([]component.Component, error) { ret := _m.Called() var r0 []component.Component @@ -48,7 +48,7 @@ func (_m *Namespace) Components() ([]component.Component, error) { } // Dir provides a mock function with given fields: -func (_m *Namespace) Dir() string { +func (_m *Module) Dir() string { ret := _m.Called() var r0 string @@ -62,7 +62,7 @@ func (_m *Namespace) Dir() string { } // Name provides a mock function with given fields: -func (_m *Namespace) Name() string { +func (_m *Module) Name() string { ret := _m.Called() var r0 string @@ -76,15 +76,15 @@ func (_m *Namespace) Name() string { } // Params provides a mock function with given fields: envName -func (_m *Namespace) Params(envName string) ([]component.NamespaceParameter, error) { +func (_m *Module) Params(envName string) ([]component.ModuleParameter, error) { ret := _m.Called(envName) - var r0 []component.NamespaceParameter - if rf, ok := ret.Get(0).(func(string) []component.NamespaceParameter); ok { + var r0 []component.ModuleParameter + if rf, ok := ret.Get(0).(func(string) []component.ModuleParameter); ok { r0 = rf(envName) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]component.NamespaceParameter) + r0 = ret.Get(0).([]component.ModuleParameter) } } @@ -99,7 +99,7 @@ func (_m *Namespace) Params(envName string) ([]component.NamespaceParameter, err } // ParamsPath provides a mock function with given fields: -func (_m *Namespace) ParamsPath() string { +func (_m *Module) ParamsPath() string { ret := _m.Called() var r0 string @@ -113,7 +113,7 @@ func (_m *Namespace) ParamsPath() string { } // ResolvedParams provides a mock function with given fields: -func (_m *Namespace) ResolvedParams() (string, error) { +func (_m *Module) ResolvedParams() (string, error) { ret := _m.Called() var r0 string @@ -134,7 +134,7 @@ func (_m *Namespace) ResolvedParams() (string, error) { } // SetParam provides a mock function with given fields: path, value -func (_m *Namespace) SetParam(path []string, value interface{}) error { +func (_m *Module) SetParam(path []string, value interface{}) error { ret := _m.Called(path, value) var r0 error diff --git a/component/namespace.go b/component/module.go similarity index 67% rename from component/namespace.go rename to component/module.go index e02ce4a4..2ec9bb45 100644 --- a/component/namespace.go +++ b/component/module.go @@ -28,59 +28,59 @@ import ( "github.com/spf13/afero" ) -func nsErrorMsg(format, nsName string) string { - s := fmt.Sprintf("namespace %q", nsName) - if nsName == "" { +func nsErrorMsg(format, module string) string { + s := fmt.Sprintf("namespace %q", module) + if module == "" { s = "root namespace" } return fmt.Sprintf(format, s) } -// Namespace is a component namespace -type Namespace interface { +// Module is a component module +type Module interface { Components() ([]Component, error) // TODO: is this needed? Dir() string Name() string - Params(envName string) ([]NamespaceParameter, error) + Params(envName string) ([]ModuleParameter, error) ParamsPath() string ResolvedParams() (string, error) SetParam(path []string, value interface{}) error } -// FilesystemNamespace is a component namespace that uses a filesystem for storage. -type FilesystemNamespace struct { +// FilesystemModule is a component namespace that uses a filesystem for storage. +type FilesystemModule struct { path string app app.App } -var _ Namespace = (*FilesystemNamespace)(nil) +var _ Module = (*FilesystemModule)(nil) -// NewNamespace creates an instance of Namespace. -func NewNamespace(ksApp app.App, path string) *FilesystemNamespace { - return &FilesystemNamespace{app: ksApp, path: path} +// NewModule creates an instance of . +func NewModule(ksApp app.App, path string) *FilesystemModule { + return &FilesystemModule{app: ksApp, path: path} } -// ExtractNamespacedComponent extracts a namespace and a component from a path. -func ExtractNamespacedComponent(a app.App, path string) (Namespace, string) { +// ExtractModuleComponent extracts a namespace and a component from a path. +func ExtractModuleComponent(a app.App, path string) (Module, string) { nsPath, component := filepath.Split(path) - ns := &FilesystemNamespace{path: nsPath, app: a} + ns := &FilesystemModule{path: nsPath, app: a} return ns, component } // Name returns the namespace name. -func (n *FilesystemNamespace) Name() string { +func (n *FilesystemModule) Name() string { if n.path == "" { return "/" } return n.path } -// GetNamespace gets a namespace by path. -func GetNamespace(a app.App, nsName string) (Namespace, error) { - parts := strings.Split(nsName, "/") +// GetModule gets a namespace by path. +func GetModule(a app.App, module string) (Module, error) { + parts := strings.Split(module, "/") nsDir := filepath.Join(append([]string{a.Root(), componentsRoot}, parts...)...) exists, err := afero.Exists(a.Fs(), nsDir) @@ -89,19 +89,19 @@ func GetNamespace(a app.App, nsName string) (Namespace, error) { } if !exists { - return nil, errors.New(nsErrorMsg("unable to find %s", nsName)) + return nil, errors.New(nsErrorMsg("unable to find %s", module)) } - return &FilesystemNamespace{path: nsName, app: a}, nil + return &FilesystemModule{path: module, app: a}, nil } // ParamsPath generates the path to params.libsonnet for a namespace. -func (n *FilesystemNamespace) ParamsPath() string { +func (n *FilesystemModule) ParamsPath() string { return filepath.Join(n.Dir(), paramsFile) } // SetParam sets params for a namespace. -func (n *FilesystemNamespace) SetParam(path []string, value interface{}) error { +func (n *FilesystemModule) SetParam(path []string, value interface{}) error { paramsData, err := n.readParams() if err != nil { return err @@ -119,12 +119,12 @@ func (n *FilesystemNamespace) SetParam(path []string, value interface{}) error { return nil } -func (n *FilesystemNamespace) writeParams(src string) error { +func (n *FilesystemModule) writeParams(src string) error { return afero.WriteFile(n.app.Fs(), n.ParamsPath(), []byte(src), 0644) } // Dir is the absolute directory for a namespace. -func (n *FilesystemNamespace) Dir() string { +func (n *FilesystemModule) Dir() string { parts := strings.Split(n.path, "/") path := []string{n.app.Root(), componentsRoot} if len(n.path) != 0 { @@ -134,8 +134,8 @@ func (n *FilesystemNamespace) Dir() string { return filepath.Join(path...) } -// NamespaceParameter is a namespaced paramater. -type NamespaceParameter struct { +// ModuleParameter is a namespaced paramater. +type ModuleParameter struct { Component string Index string Key string @@ -144,7 +144,7 @@ type NamespaceParameter struct { // ResolvedParams resolves paramaters for a namespace. It returns a JSON encoded // string of component parameters. -func (n *FilesystemNamespace) ResolvedParams() (string, error) { +func (n *FilesystemModule) ResolvedParams() (string, error) { s, err := n.readParams() if err != nil { return "", err @@ -154,13 +154,13 @@ func (n *FilesystemNamespace) ResolvedParams() (string, error) { } // Params returns the params for a namespace. -func (n *FilesystemNamespace) Params(envName string) ([]NamespaceParameter, error) { +func (n *FilesystemModule) Params(envName string) ([]ModuleParameter, error) { components, err := n.Components() if err != nil { return nil, err } - var nsps []NamespaceParameter + var nsps []ModuleParameter for _, c := range components { params, err := c.Params(envName) if err != nil { @@ -175,7 +175,7 @@ func (n *FilesystemNamespace) Params(envName string) ([]NamespaceParameter, erro return nsps, nil } -func (n *FilesystemNamespace) readParams() (string, error) { +func (n *FilesystemModule) readParams() (string, error) { b, err := afero.ReadFile(n.app.Fs(), n.ParamsPath()) if err != nil { return "", err @@ -184,8 +184,8 @@ func (n *FilesystemNamespace) readParams() (string, error) { return string(b), nil } -// NamespacesFromEnv returns all namespaces given an environment. -func NamespacesFromEnv(a app.App, env string) ([]Namespace, error) { +// ModulesFromEnv returns all namespaces given an environment. +func ModulesFromEnv(a app.App, env string) ([]Module, error) { paths, err := MakePaths(a, env) if err != nil { return nil, err @@ -194,12 +194,12 @@ func NamespacesFromEnv(a app.App, env string) ([]Namespace, error) { prefix := a.Root() + "/components" seen := make(map[string]bool) - var namespaces []Namespace + var namespaces []Module for _, path := range paths { - nsName := strings.TrimPrefix(path, prefix) - if _, ok := seen[nsName]; !ok { - seen[nsName] = true - ns, err := GetNamespace(a, nsName) + module := strings.TrimPrefix(path, prefix) + if _, ok := seen[module]; !ok { + seen[module] = true + ns, err := GetModule(a, module) if err != nil { return nil, err } @@ -211,11 +211,11 @@ func NamespacesFromEnv(a app.App, env string) ([]Namespace, error) { return namespaces, nil } -// Namespaces returns all component namespaces -func Namespaces(a app.App) ([]Namespace, error) { +// Modules returns all component namespaces +func Modules(a app.App) ([]Module, error) { componentRoot := filepath.Join(a.Root(), componentsRoot) - var namespaces []Namespace + var namespaces []Module err := afero.Walk(a.Fs(), componentRoot, func(path string, fi os.FileInfo, err error) error { if err != nil { @@ -231,7 +231,7 @@ func Namespaces(a app.App) ([]Namespace, error) { if ok { nsPath := strings.TrimPrefix(path, componentRoot) nsPath = strings.TrimPrefix(nsPath, string(filepath.Separator)) - ns := &FilesystemNamespace{path: nsPath, app: a} + ns := &FilesystemModule{path: nsPath, app: a} namespaces = append(namespaces, ns) } } @@ -251,7 +251,7 @@ func Namespaces(a app.App) ([]Namespace, error) { } // Components returns the components in a namespace. -func (n *FilesystemNamespace) Components() ([]Component, error) { +func (n *FilesystemModule) Components() ([]Component, error) { parts := strings.Split(n.path, "/") nsDir := filepath.Join(append([]string{n.app.Root(), componentsRoot}, parts...)...) diff --git a/component/namespace_test.go b/component/module_test.go similarity index 88% rename from component/namespace_test.go rename to component/module_test.go index 1640817f..b05aab3a 100644 --- a/component/namespace_test.go +++ b/component/module_test.go @@ -22,7 +22,7 @@ import ( "github.com/stretchr/testify/require" ) -func TestNamespace_Components(t *testing.T) { +func TestModule_Components(t *testing.T) { app, fs := appMock("/app") stageFile(t, fs, "certificate-crd.yaml", "/app/components/ns1/certificate-crd.yaml") @@ -31,16 +31,16 @@ func TestNamespace_Components(t *testing.T) { cases := []struct { name string - nsName string + module string count int }{ { name: "no components", - nsName: "/", + module: "/", }, { name: "with components", - nsName: "ns1", + module: "ns1", count: 1, }, } @@ -48,10 +48,10 @@ func TestNamespace_Components(t *testing.T) { for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { - ns, err := GetNamespace(app, tc.nsName) + ns, err := GetModule(app, tc.module) require.NoError(t, err) - assert.Equal(t, tc.nsName, ns.Name()) + assert.Equal(t, tc.module, ns.Name()) components, err := ns.Components() require.NoError(t, err) diff --git a/component/yaml.go b/component/yaml.go index 1063c48c..e1dbecbe 100644 --- a/component/yaml.go +++ b/component/yaml.go @@ -85,7 +85,7 @@ func ImportYaml(r io.Reader) (*TypeSpec, Properties, error) { // YAML represents a YAML component. Since JSON is a subset of YAML, it can handle JSON as well. type YAML struct { app app.App - nsName string + module string source string paramsPath string } @@ -93,10 +93,10 @@ type YAML struct { var _ Component = (*YAML)(nil) // NewYAML creates an instance of YAML. -func NewYAML(a app.App, nsName, source, paramsPath string) *YAML { +func NewYAML(a app.App, module, source, paramsPath string) *YAML { return &YAML{ app: a, - nsName: nsName, + module: module, source: source, paramsPath: paramsPath, } @@ -110,15 +110,15 @@ func (y *YAML) Name(wantsNameSpaced bool) string { return name } - if y.nsName == "/" { + if y.module == "/" { return name } - return path.Join(y.nsName, name) + return path.Join(y.module, name) } // Params returns params for a component. -func (y *YAML) Params(envName string) ([]NamespaceParameter, error) { +func (y *YAML) Params(envName string) ([]ModuleParameter, error) { libPath, err := y.app.LibPath("default") if err != nil { return nil, err @@ -154,7 +154,7 @@ func (y *YAML) Params(envName string) ([]NamespaceParameter, error) { return nil, err } - var params []NamespaceParameter + var params []ModuleParameter for componentName, componentValue := range props { matches := re.FindAllStringSubmatch(componentName, 1) if len(matches) > 0 { @@ -202,8 +202,8 @@ func isLeaf(path []string, key string, valueMap map[string]Values) (string, bool return "", false } -func (y *YAML) paramValues(componentName, index string, valueMap map[string]Values, m map[string]interface{}, path []string) ([]NamespaceParameter, error) { - var params []NamespaceParameter +func (y *YAML) paramValues(componentName, index string, valueMap map[string]Values, m map[string]interface{}, path []string) ([]ModuleParameter, error) { + var params []ModuleParameter for k, v := range m { var s string @@ -211,7 +211,7 @@ func (y *YAML) paramValues(componentName, index string, valueMap map[string]Valu default: if childPath, exists := isLeaf(path, k, valueMap); exists { s = fmt.Sprintf("%v", v) - p := NamespaceParameter{ + p := ModuleParameter{ Component: componentName, Index: index, Key: childPath, @@ -227,7 +227,7 @@ func (y *YAML) paramValues(componentName, index string, valueMap map[string]Valu return nil, err } s = string(b) - p := NamespaceParameter{ + p := ModuleParameter{ Component: componentName, Index: index, Key: childPath, @@ -250,7 +250,7 @@ func (y *YAML) paramValues(componentName, index string, valueMap map[string]Valu return nil, err } s = string(b) - p := NamespaceParameter{ + p := ModuleParameter{ Component: componentName, Index: index, Key: childPath, @@ -331,7 +331,7 @@ func (y *YAML) readParams(envName string) (string, error) { return y.readNamespaceParams() } - ns, err := GetNamespace(y.app, y.nsName) + ns, err := GetModule(y.app, y.module) if err != nil { return "", err } diff --git a/component/yaml_test.go b/component/yaml_test.go index 5828e985..f9dec01d 100644 --- a/component/yaml_test.go +++ b/component/yaml_test.go @@ -73,7 +73,7 @@ func TestYAML_Params(t *testing.T) { require.Len(t, params, 1) param := params[0] - expected := NamespaceParameter{ + expected := ModuleParameter{ Component: "deployment", Index: "0", Key: "metadata.labels", @@ -96,7 +96,7 @@ func TestYAML_Params_literal(t *testing.T) { require.Len(t, params, 1) param := params[0] - expected := NamespaceParameter{ + expected := ModuleParameter{ Component: "rbac", Index: "1", Key: "metadata.name", diff --git a/docs/cli-reference/ks.md b/docs/cli-reference/ks.md index fd92abd7..397fc15e 100644 --- a/docs/cli-reference/ks.md +++ b/docs/cli-reference/ks.md @@ -32,7 +32,7 @@ ks [flags] * [ks generate](ks_generate.md) - Use the specified prototype to generate a component manifest * [ks import](ks_import.md) - Import manifest * [ks init](ks_init.md) - Initialize a ksonnet application -* [ks ns](ks_ns.md) - ns +* [ks module](ks_module.md) - module * [ks param](ks_param.md) - Manage ksonnet parameters for components and environments * [ks pkg](ks_pkg.md) - Manage packages and dependencies for the current ksonnet application * [ks prototype](ks_prototype.md) - Instantiate, inspect, and get examples for ksonnet prototypes diff --git a/docs/cli-reference/ks_component_list.md b/docs/cli-reference/ks_component_list.md index e82d82fa..ce5bbf79 100644 --- a/docs/cli-reference/ks_component_list.md +++ b/docs/cli-reference/ks_component_list.md @@ -25,9 +25,9 @@ ks component list ### Options ``` - -h, --help help for list - --namespace string Namespace - -o, --output string Output format. Valid options: wide + -h, --help help for list + --module string Component module + -o, --output string Output format. Valid options: wide ``` ### Options inherited from parent commands diff --git a/docs/cli-reference/ks_env_targets.md b/docs/cli-reference/ks_env_targets.md index b1d072c9..854ac7fa 100644 --- a/docs/cli-reference/ks_env_targets.md +++ b/docs/cli-reference/ks_env_targets.md @@ -13,7 +13,8 @@ ks env targets [flags] ### Options ``` - -h, --help help for targets + -h, --help help for targets + --module stringSlice Component modules to include ``` ### Options inherited from parent commands diff --git a/docs/cli-reference/ks_import.md b/docs/cli-reference/ks_import.md index 0b0699a0..db55343a 100644 --- a/docs/cli-reference/ks_import.md +++ b/docs/cli-reference/ks_import.md @@ -13,9 +13,9 @@ ks import [flags] ### Options ``` - -f, --filename string Filename or directory for component to import - -h, --help help for import - --namespace string Component namespace + -f, --filename string Filename or directory for component to import + -h, --help help for import + --module string Component module ``` ### Options inherited from parent commands diff --git a/docs/cli-reference/ks_ns.md b/docs/cli-reference/ks_module.md similarity index 62% rename from docs/cli-reference/ks_ns.md rename to docs/cli-reference/ks_module.md index 5ccfe111..6f0ab3d2 100644 --- a/docs/cli-reference/ks_ns.md +++ b/docs/cli-reference/ks_module.md @@ -1,15 +1,15 @@ -## ks ns +## ks module -ns +module ### Synopsis -ns +module ### Options ``` - -h, --help help for ns + -h, --help help for module ``` ### Options inherited from parent commands @@ -21,6 +21,6 @@ ns ### SEE ALSO * [ks](ks.md) - Configure your application to deploy to a Kubernetes cluster -* [ks ns create](ks_ns_create.md) - create -* [ks ns list](ks_ns_list.md) - list +* [ks module create](ks_module_create.md) - create +* [ks module list](ks_module_list.md) - list diff --git a/docs/cli-reference/ks_ns_create.md b/docs/cli-reference/ks_module_create.md similarity index 72% rename from docs/cli-reference/ks_ns_create.md rename to docs/cli-reference/ks_module_create.md index 3239b291..9fe6fd73 100644 --- a/docs/cli-reference/ks_ns_create.md +++ b/docs/cli-reference/ks_module_create.md @@ -1,4 +1,4 @@ -## ks ns create +## ks module create create @@ -7,7 +7,7 @@ create create ``` -ks ns create <name> [flags] +ks module create <name> [flags] ``` ### Options @@ -24,5 +24,5 @@ ks ns create <name> [flags] ### SEE ALSO -* [ks ns](ks_ns.md) - ns +* [ks module](ks_module.md) - module diff --git a/docs/cli-reference/ks_ns_list.md b/docs/cli-reference/ks_module_list.md similarity index 64% rename from docs/cli-reference/ks_ns_list.md rename to docs/cli-reference/ks_module_list.md index 0929c200..c2aaacc1 100644 --- a/docs/cli-reference/ks_ns_list.md +++ b/docs/cli-reference/ks_module_list.md @@ -1,4 +1,4 @@ -## ks ns list +## ks module list list @@ -7,13 +7,13 @@ list list ``` -ks ns list [flags] +ks module list [flags] ``` ### Options ``` - --env string Environment to list namespaces for + --env string Environment to list modules for -h, --help help for list ``` @@ -25,5 +25,5 @@ ks ns list [flags] ### SEE ALSO -* [ks ns](ks_ns.md) - ns +* [ks module](ks_module.md) - module diff --git a/docs/cli-reference/ks_param_list.md b/docs/cli-reference/ks_param_list.md index 390980ed..7ef1dffc 100644 --- a/docs/cli-reference/ks_param_list.md +++ b/docs/cli-reference/ks_param_list.md @@ -42,9 +42,9 @@ ks param list guestbook --env=dev ### Options ``` - --env string Specify environment to list parameters for - -h, --help help for list - --namespace string Specify namespace to list parameters for + --env string Specify environment to list parameters for + -h, --help help for list + --module string Specify module to list parameters for ``` ### Options inherited from parent commands diff --git a/e2e/component_test.go b/e2e/component_test.go index 0281b33e..1a577890 100644 --- a/e2e/component_test.go +++ b/e2e/component_test.go @@ -46,7 +46,7 @@ var _ = Describe("ks component", func() { Context("with a namespace", func() { It("lists the components for a namespace in wide format", func() { - o := a.runKs("component", "list", "--namespace", "/") + o := a.runKs("component", "list", "--module", "/") assertExitStatus(o, 0) assertOutput("component/list/output.txt", o.stdout) }) diff --git a/e2e/env_test.go b/e2e/env_test.go index 6f79ffe7..6b3bc5ef 100644 --- a/e2e/env_test.go +++ b/e2e/env_test.go @@ -165,7 +165,7 @@ var _ = Describe("ks env", func() { Context("updating the targets", func() { It("updates the name of an environment", func() { o := a.runKs("env", "targets", "default", - "--namespace", "/") + "--module", "/") assertExitStatus(o, 0) o = a.envDescribe("default") @@ -182,7 +182,7 @@ var _ = Describe("ks env", func() { Context("target namespace does not exist", func() { It("return an error", func() { o := a.runKs("env", "targets", "default", - "--namespace", "bad") + "--module", "bad") assertExitStatus(o, 1) assertOutput("env/targets/invalid-target.txt", o.stderr) }) diff --git a/e2e/ns_test.go b/e2e/module_test.go similarity index 71% rename from e2e/ns_test.go rename to e2e/module_test.go index 9eb71e85..bf5e08dc 100644 --- a/e2e/ns_test.go +++ b/e2e/module_test.go @@ -21,7 +21,7 @@ import ( . "github.com/onsi/ginkgo" ) -var _ = Describe("ks ns", func() { +var _ = Describe("ks module", func() { var a app BeforeEach(func() { @@ -32,39 +32,39 @@ var _ = Describe("ks ns", func() { Describe("create", func() { Context("it does not exist", func() { It("creates the namespace", func() { - o := a.runKs("ns", "create", "new-ns") + o := a.runKs("module", "create", "new-module") assertExitStatus(o, 0) }) }) Context("it exists", func() { It("returns an error", func() { - o := a.runKs("ns", "create", "/") + o := a.runKs("module", "create", "/") assertExitStatus(o, 1) - assertOutput("ns/create/invalid.txt", o.stderr) + assertOutput("module/create/invalid.txt", o.stderr) }) }) }) Describe("list", func() { - It("shows a list of namespaces", func() { - o := a.runKs("ns", "list") + It("shows a list of modules", func() { + o := a.runKs("module", "list") assertExitStatus(o, 0) - assertOutput("ns/list/output.txt", o.stdout) + assertOutput("module/list/output.txt", o.stdout) }) Context("with a valid environment", func() { It("shows a list of namespaces", func() { - o := a.runKs("ns", "list", "--env", "default") + o := a.runKs("module", "list", "--env", "default") assertExitStatus(o, 0) - assertOutput("ns/list/output.txt", o.stdout) + assertOutput("module/list/output.txt", o.stdout) }) }) Context("with an invalid environment", func() { It("returns an error", func() { - o := a.runKs("ns", "list", "--env", "invalid") + o := a.runKs("module", "list", "--env", "invalid") assertExitStatus(o, 1) - assertOutput("ns/list/invalid.txt", o.stderr) + assertOutput("module/list/invalid.txt", o.stderr) }) }) }) diff --git a/e2e/testdata/output/module/create/invalid.txt b/e2e/testdata/output/module/create/invalid.txt new file mode 100644 index 00000000..47d43d11 --- /dev/null +++ b/e2e/testdata/output/module/create/invalid.txt @@ -0,0 +1 @@ +module "/" already exists diff --git a/e2e/testdata/output/ns/list/invalid.txt b/e2e/testdata/output/module/list/invalid.txt similarity index 100% rename from e2e/testdata/output/ns/list/invalid.txt rename to e2e/testdata/output/module/list/invalid.txt diff --git a/e2e/testdata/output/module/list/output.txt b/e2e/testdata/output/module/list/output.txt new file mode 100644 index 00000000..43acadd5 --- /dev/null +++ b/e2e/testdata/output/module/list/output.txt @@ -0,0 +1,3 @@ +MODULE +====== +/ diff --git a/e2e/testdata/output/ns/create/invalid.txt b/e2e/testdata/output/ns/create/invalid.txt deleted file mode 100644 index 8ae68547..00000000 --- a/e2e/testdata/output/ns/create/invalid.txt +++ /dev/null @@ -1 +0,0 @@ -namespace "/" already exists diff --git a/e2e/testdata/output/ns/list/output.txt b/e2e/testdata/output/ns/list/output.txt deleted file mode 100644 index 14ca3bcf..00000000 --- a/e2e/testdata/output/ns/list/output.txt +++ /dev/null @@ -1,3 +0,0 @@ -NAMESPACE -========= -/ diff --git a/metadata/component.go b/metadata/component.go index a9ce6c55..84dd7e5c 100644 --- a/metadata/component.go +++ b/metadata/component.go @@ -52,7 +52,7 @@ func (m *manager) GetAllComponents() ([]component.Component, error) { if err != nil { return nil, err } - namespaces, err := component.Namespaces(ksApp) + namespaces, err := component.Modules(ksApp) if err != nil { return nil, err } @@ -100,7 +100,7 @@ func (m *manager) GetAllComponentParams(root string) (map[string]param.Params, e return nil, err } - namespaces, err := component.Namespaces(ksApp) + namespaces, err := component.Modules(ksApp) if err != nil { return nil, errors.Wrap(err, "find component namespaces") } @@ -137,7 +137,7 @@ func (m *manager) SetComponentParams(path string, params param.Params) error { return err } - ns, componentName := component.ExtractNamespacedComponent(ksApp, path) + ns, componentName := component.ExtractModuleComponent(ksApp, path) paramsPath := ns.ParamsPath() text, err := afero.ReadFile(m.appFS, paramsPath) diff --git a/metadata/environment.go b/metadata/environment.go index df366d55..6f533fb0 100644 --- a/metadata/environment.go +++ b/metadata/environment.go @@ -34,7 +34,7 @@ var ( envCreate = env.Create ) -func (m *manager) GetEnvironmentParams(name, nsName string) (map[string]param.Params, error) { +func (m *manager) GetEnvironmentParams(name, module string) (map[string]param.Params, error) { a, err := m.App() if err != nil { return nil, err @@ -44,7 +44,7 @@ func (m *manager) GetEnvironmentParams(name, nsName string) (map[string]param.Pa App: a, } - return env.GetParams(name, nsName, config) + return env.GetParams(name, module, config) } func (m *manager) SetEnvironmentParams(envName, component string, params param.Params) error { diff --git a/metadata/interface.go b/metadata/interface.go index c31324fc..05d8f3c9 100644 --- a/metadata/interface.go +++ b/metadata/interface.go @@ -48,7 +48,7 @@ type Manager interface { // mapping of parameters of the form: // componentName => {param key => param val} // i.e.: "nginx" => {"replicas" => 1, "name": "nginx"} - GetEnvironmentParams(name, nsName string) (map[string]param.Params, error) + GetEnvironmentParams(name, module string) (map[string]param.Params, error) SetEnvironmentParams(env, component string, params param.Params) error } diff --git a/pkg/env/params.go b/pkg/env/params.go index d435b894..8903ee6c 100644 --- a/pkg/env/params.go +++ b/pkg/env/params.go @@ -66,7 +66,7 @@ type GetParamsConfig struct { } // GetParams gets all parameters for an environment. -func GetParams(envName, nsName string, config GetParamsConfig) (map[string]param.Params, error) { +func GetParams(envName, module string, config GetParamsConfig) (map[string]param.Params, error) { exists, err := envExists(config.App, envName) if err != nil { return nil, err @@ -87,7 +87,7 @@ func GetParams(envName, nsName string, config GetParamsConfig) (map[string]param } // figure out what component we need - ns := component.NewNamespace(config.App, nsName) + ns := component.NewModule(config.App, module) componentParamsFile, err := afero.ReadFile(config.App.Fs(), ns.ParamsPath()) if err != nil { return nil, err diff --git a/pkg/kubecfg/param_diff.go b/pkg/kubecfg/param_diff.go index f3024671..1dcfb3a4 100644 --- a/pkg/kubecfg/param_diff.go +++ b/pkg/kubecfg/param_diff.go @@ -75,7 +75,7 @@ func (c *ParamDiffCmd) Run(out io.Writer) error { return err } - ns, componentName := component.ExtractNamespacedComponent(ksApp, c.component) + ns, componentName := component.ExtractModuleComponent(ksApp, c.component) params1, err := manager.GetEnvironmentParams(c.env1, ns.Name()) if err != nil { diff --git a/pkg/pipeline/pipeline.go b/pkg/pipeline/pipeline.go index 8715a754..eeabd4ae 100644 --- a/pkg/pipeline/pipeline.go +++ b/pkg/pipeline/pipeline.go @@ -63,20 +63,20 @@ func New(ksApp app.App, envName string, opts ...Opt) *Pipeline { } // Namespaces returns the namespaces that belong to this pipeline. -func (p *Pipeline) Namespaces() ([]component.Namespace, error) { - return p.cm.Namespaces(p.app, p.envName) +func (p *Pipeline) Modules() ([]component.Module, error) { + return p.cm.Modules(p.app, p.envName) } // EnvParameters creates parameters for a namespace given an environment. -func (p *Pipeline) EnvParameters(nsName string) (string, error) { - ns, err := p.cm.Namespace(p.app, nsName) +func (p *Pipeline) EnvParameters(module string) (string, error) { + ns, err := p.cm.Module(p.app, module) if err != nil { - return "", errors.Wrapf(err, "load namespace %s", nsName) + return "", errors.Wrapf(err, "load module %s", module) } paramsStr, err := p.cm.NSResolveParams(ns) if err != nil { - return "", errors.Wrapf(err, "resolve params for %s", nsName) + return "", errors.Wrapf(err, "resolve params for %s", module) } data, err := p.app.EnvironmentParams(p.envName) @@ -93,7 +93,7 @@ func (p *Pipeline) EnvParameters(nsName string) (string, error) { // Components returns the components that belong to this pipeline. func (p *Pipeline) Components(filter []string) ([]component.Component, error) { - namespaces, err := p.Namespaces() + namespaces, err := p.Modules() if err != nil { return nil, err } @@ -114,7 +114,7 @@ func (p *Pipeline) Components(filter []string) ([]component.Component, error) { // Objects converts components into Kubernetes objects. func (p *Pipeline) Objects(filter []string) ([]*unstructured.Unstructured, error) { - namespaces, err := p.Namespaces() + namespaces, err := p.Modules() if err != nil { return nil, errors.Wrap(err, "get namespaces") } diff --git a/pkg/pipeline/pipeline_test.go b/pkg/pipeline/pipeline_test.go index d857dd89..83151f16 100644 --- a/pkg/pipeline/pipeline_test.go +++ b/pkg/pipeline/pipeline_test.go @@ -30,10 +30,10 @@ import ( func TestPipeline_Namespaces(t *testing.T) { withPipeline(t, func(p *Pipeline, m *cmocks.Manager, a *appmocks.App) { - namespaces := []component.Namespace{} - m.On("Namespaces", p.app, "default").Return(namespaces, nil) + namespaces := []component.Module{} + m.On("Modules", p.app, "default").Return(namespaces, nil) - got, err := p.Namespaces() + got, err := p.Modules() require.NoError(t, err) require.Equal(t, namespaces, got) @@ -42,10 +42,10 @@ func TestPipeline_Namespaces(t *testing.T) { func TestPipeline_EnvParameters(t *testing.T) { withPipeline(t, func(p *Pipeline, m *cmocks.Manager, a *appmocks.App) { - ns := component.NewNamespace(p.app, "/") - namespaces := []component.Namespace{ns} - m.On("Namespaces", p.app, "default").Return(namespaces, nil) - m.On("Namespace", p.app, "/").Return(ns, nil) + ns := component.NewModule(p.app, "/") + namespaces := []component.Module{ns} + m.On("Modules", p.app, "default").Return(namespaces, nil) + m.On("Module", p.app, "/").Return(ns, nil) m.On("NSResolveParams", ns).Return("", nil) a.On("EnvironmentParams", "default").Return("{}", nil) @@ -61,10 +61,10 @@ func TestPipeline_Components(t *testing.T) { cpnt := &cmocks.Component{} components := []component.Component{cpnt} - ns := component.NewNamespace(p.app, "/") - namespaces := []component.Namespace{ns} - m.On("Namespaces", p.app, "default").Return(namespaces, nil) - m.On("Namespace", p.app, "/").Return(ns, nil) + ns := component.NewModule(p.app, "/") + namespaces := []component.Module{ns} + m.On("Modules", p.app, "default").Return(namespaces, nil) + m.On("Module", p.app, "/").Return(ns, nil) m.On("NSResolveParams", ns).Return("", nil) a.On("EnvironmentParams", "default").Return("{}", nil) m.On("Components", ns).Return(components, nil) @@ -89,10 +89,10 @@ func TestPipeline_Components_filtered(t *testing.T) { cpnt2 := mockComponent("cpnt2") components := []component.Component{cpnt1, cpnt2} - ns := component.NewNamespace(p.app, "/") - namespaces := []component.Namespace{ns} - m.On("Namespaces", p.app, "default").Return(namespaces, nil) - m.On("Namespace", p.app, "/").Return(ns, nil) + ns := component.NewModule(p.app, "/") + namespaces := []component.Module{ns} + m.On("Modules", p.app, "default").Return(namespaces, nil) + m.On("Module", p.app, "/").Return(ns, nil) m.On("NSResolveParams", ns).Return("", nil) a.On("EnvironmentParams", "default").Return("{}", nil) m.On("Components", ns).Return(components, nil) @@ -117,10 +117,10 @@ func TestPipeline_Objects(t *testing.T) { cpnt.On("Name", true).Return("name") components := []component.Component{cpnt} - ns := component.NewNamespace(p.app, "/") - namespaces := []component.Namespace{ns} - m.On("Namespaces", p.app, "default").Return(namespaces, nil) - m.On("Namespace", p.app, "/").Return(ns, nil) + ns := component.NewModule(p.app, "/") + namespaces := []component.Module{ns} + m.On("Modules", p.app, "default").Return(namespaces, nil) + m.On("Module", p.app, "/").Return(ns, nil) m.On("NSResolveParams", ns).Return("", nil) a.On("EnvironmentParams", "default").Return("{}", nil) m.On("Components", ns).Return(components, nil) @@ -143,10 +143,10 @@ func TestPipeline_YAML(t *testing.T) { cpnt.On("Name", true).Return("name") components := []component.Component{cpnt} - ns := component.NewNamespace(p.app, "/") - namespaces := []component.Namespace{ns} - m.On("Namespaces", p.app, "default").Return(namespaces, nil) - m.On("Namespace", p.app, "/").Return(ns, nil) + ns := component.NewModule(p.app, "/") + namespaces := []component.Module{ns} + m.On("Modules", p.app, "default").Return(namespaces, nil) + m.On("Module", p.app, "/").Return(ns, nil) m.On("NSResolveParams", ns).Return("", nil) a.On("EnvironmentParams", "default").Return("{}", nil) m.On("Components", ns).Return(components, nil) diff --git a/testdata/schema-v1.json b/testdata/schema-v1.json index 0cbeb306..b263c035 100644 --- a/testdata/schema-v1.json +++ b/testdata/schema-v1.json @@ -9976,7 +9976,7 @@ "type": "string", "method": "OPTIONS", "summary": "connect OPTIONS requests to proxy of Pod", - "nickname": "connectOptionsNamespacedPodProxy", + "nickname": "connectOptiomodulespacedPodProxy", "parameters": [ { "type": "string", @@ -10296,7 +10296,7 @@ "type": "string", "method": "OPTIONS", "summary": "connect OPTIONS requests to proxy of Pod", - "nickname": "connectOptionsNamespacedPodProxyWithPath", + "nickname": "connectOptiomodulespacedPodProxyWithPath", "parameters": [ { "type": "string", @@ -16771,7 +16771,7 @@ "type": "string", "method": "OPTIONS", "summary": "connect OPTIONS requests to proxy of Service", - "nickname": "connectOptionsNamespacedServiceProxy", + "nickname": "connectOptiomodulespacedServiceProxy", "parameters": [ { "type": "string", @@ -17091,7 +17091,7 @@ "type": "string", "method": "OPTIONS", "summary": "connect OPTIONS requests to proxy of Service", - "nickname": "connectOptionsNamespacedServiceProxyWithPath", + "nickname": "connectOptiomodulespacedServiceProxyWithPath", "parameters": [ { "type": "string", -- GitLab