diff --git a/docs/examples/dry-run/README.md b/docs/examples/dry-run/README.md index 6462f1ce8..efcf2435a 100644 --- a/docs/examples/dry-run/README.md +++ b/docs/examples/dry-run/README.md @@ -3,7 +3,7 @@ ```shell $ vela system dry-run -f docs/examples/dry-run/app.yaml -d docs/examples/dry-run/definitions --- -# App application-sample -- Comopnent myweb +# App application-sample -- Component myweb --- apiVersion: apps/v1 diff --git a/e2e/plugin/plugin_test.go b/e2e/plugin/plugin_test.go index e7644047e..10fc6beea 100644 --- a/e2e/plugin/plugin_test.go +++ b/e2e/plugin/plugin_test.go @@ -690,7 +690,7 @@ spec: ` var dryRunResult = `--- -# Application(test-vela-app) -- Comopnent(express-server) +# Application(test-vela-app) -- Component(express-server) --- apiVersion: apps/v1 @@ -701,6 +701,8 @@ metadata: app.oam.dev/component: express-server app.oam.dev/name: test-vela-app workload.oam.dev/type: test-webservice + name: express-server + namespace: default spec: selector: matchLabels: @@ -727,6 +729,7 @@ metadata: trait.oam.dev/resource: service trait.oam.dev/type: test-ingress name: express-server + namespace: default spec: ports: - port: 80 @@ -745,6 +748,7 @@ metadata: trait.oam.dev/resource: ingress trait.oam.dev/type: test-ingress name: express-server + namespace: default spec: rules: - host: testsvc.example.com @@ -876,6 +880,8 @@ var livediffResult = `--- + app.oam.dev/component: new-express-server + app.oam.dev/name: test-vela-app + workload.oam.dev/type: test-webservice ++ name: new-express-server ++ namespace: default + spec: + selector: + matchLabels: @@ -909,6 +915,7 @@ var livediffResult = `--- + trait.oam.dev/resource: service + trait.oam.dev/type: test-ingress + name: new-express-server ++ namespace: default + spec: + ports: + - port: 8080 @@ -929,6 +936,7 @@ var livediffResult = `--- + trait.oam.dev/resource: ingress + trait.oam.dev/type: test-ingress + name: new-express-server ++ namespace: default + spec: + rules: + - host: new-testsvc.example.com diff --git a/references/appfile/dryrun/dryrun.go b/references/appfile/dryrun/dryrun.go index 7802a76b7..5efe1f991 100644 --- a/references/appfile/dryrun/dryrun.go +++ b/references/appfile/dryrun/dryrun.go @@ -20,6 +20,7 @@ import ( "context" "github.com/pkg/errors" + corev1 "k8s.io/api/core/v1" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/oam-dev/kubevela/apis/core.oam.dev/v1beta1" @@ -63,9 +64,34 @@ func (d *Option) ExecuteDryRun(ctx context.Context, app *v1beta1.Application) ([ if err != nil { return nil, errors.WithMessage(err, "cannot generate appFile from application") } + if appFile.Namespace == "" { + appFile.Namespace = corev1.NamespaceDefault + } comps, err := appFile.GenerateComponentManifests() if err != nil { return nil, errors.WithMessage(err, "cannot generate AppConfig and Components") } + + for _, comp := range comps { + if comp.StandardWorkload != nil { + if comp.StandardWorkload.GetName() == "" { + comp.StandardWorkload.SetName(comp.Name) + } + if comp.StandardWorkload.GetNamespace() == "" { + comp.StandardWorkload.SetNamespace(appFile.Namespace) + } + } + + for _, trait := range comp.Traits { + if trait.GetName() == "" { + traitType := trait.GetLabels()[oam.TraitTypeLabel] + traitName := oamutil.GenTraitNameCompatible(comp.Name, trait, traitType) + trait.SetName(traitName) + } + if trait.GetNamespace() == "" { + trait.SetNamespace(appFile.Namespace) + } + } + } return comps, nil } diff --git a/references/appfile/dryrun/testdata/diff-apprevision.yaml b/references/appfile/dryrun/testdata/diff-apprevision.yaml index 79dfa0fe7..f95e5f7f4 100644 --- a/references/appfile/dryrun/testdata/diff-apprevision.yaml +++ b/references/appfile/dryrun/testdata/diff-apprevision.yaml @@ -71,6 +71,7 @@ spec: trait.oam.dev/resource: service trait.oam.dev/type: myingress name: myweb-1 + namespace: default spec: ports: - port: 80 @@ -88,6 +89,7 @@ spec: trait.oam.dev/resource: ingress trait.oam.dev/type: myingress name: myweb-1 + namespace: default spec: rules: - host: www.example.com @@ -107,6 +109,8 @@ spec: app.oam.dev/name: livediff-demo trait.oam.dev/resource: scaler trait.oam.dev/type: myscaler + name: myweb-1-myscaler-5547bdc57f + namespace: default spec: replicaCount: 2 - componentName: myweb-2 @@ -155,6 +159,8 @@ spec: app.oam.dev/component: myweb-1 app.oam.dev/name: livediff-demo workload.oam.dev/type: myworker + name: myweb-1 + namespace: default spec: selector: matchLabels: @@ -189,6 +195,8 @@ spec: app.oam.dev/component: myweb-2 app.oam.dev/name: livediff-demo workload.oam.dev/type: myworker + name: myweb-2 + namespace: default spec: selector: matchLabels: diff --git a/references/appfile/dryrun/testdata/dryrun-exp-comp.yaml b/references/appfile/dryrun/testdata/dryrun-exp-comp.yaml index 31f035978..7396e248f 100644 --- a/references/appfile/dryrun/testdata/dryrun-exp-comp.yaml +++ b/references/appfile/dryrun/testdata/dryrun-exp-comp.yaml @@ -16,6 +16,8 @@ StandardWorkload: app.oam.dev/component: myweb app.oam.dev/name: app-dryrun workload.oam.dev/type: myworker + name: myweb + namespace: default spec: selector: matchLabels: @@ -42,6 +44,7 @@ Traits: trait.oam.dev/resource: service trait.oam.dev/type: myingress name: myweb + namespace: default spec: ports: - port: 80 @@ -58,6 +61,7 @@ Traits: trait.oam.dev/resource: ingress trait.oam.dev/type: myingress name: myweb + namespace: default spec: rules: - host: www.example.com diff --git a/references/cli/dryrun.go b/references/cli/dryrun.go index 0f8d35f94..798fed003 100644 --- a/references/cli/dryrun.go +++ b/references/cli/dryrun.go @@ -120,7 +120,7 @@ func DryRunApplication(cmdOption *DryRunCmdOptions, c common.Args, namespace str components[comp.Name] = comp.StandardWorkload } for _, c := range comps { - buff.Write([]byte(fmt.Sprintf("---\n# Application(%s) -- Comopnent(%s) \n---\n\n", app.Name, c.Name))) + buff.Write([]byte(fmt.Sprintf("---\n# Application(%s) -- Component(%s) \n---\n\n", app.Name, c.Name))) result, err := yaml.Marshal(components[c.Name]) if err != nil { return buff, errors.WithMessage(err, "marshal result for component "+c.Name+" object in yaml format")