mirror of
https://github.com/kubevela/kubevela.git
synced 2026-02-14 18:10:21 +00:00
Fix(dryrun): add default name and namespace in dry run (#2150)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user