github.com/oam-dev/kubevela@v1.9.11/pkg/appfile/dryrun/testdata/td-myingress.yaml (about) 1 apiVersion: core.oam.dev/v1beta1 2 kind: TraitDefinition 3 metadata: 4 name: myingress 5 spec: 6 appliesToWorkloads: 7 - "*" 8 podDisruptive: false 9 schematic: 10 cue: 11 template: | 12 parameter: { 13 domain: string 14 http: [string]: int 15 } 16 17 outputs: { 18 service: { 19 apiVersion: "v1" 20 kind: "Service" 21 } 22 ingress: { 23 apiVersion: "networking.k8s.io/v1beta1" 24 kind: "Ingress" 25 } 26 } 27 28 // trait template can have multiple outputs in one trait 29 outputs: service: { 30 metadata: 31 name: context.name 32 spec: { 33 selector: 34 "app.oam.dev/component": context.name 35 ports: [ 36 for k, v in parameter.http { 37 port: v 38 targetPort: v 39 }, 40 ] 41 } 42 } 43 44 outputs: ingress: { 45 metadata: 46 name: context.name 47 spec: { 48 rules: [{ 49 host: parameter.domain 50 http: { 51 paths: [ 52 for k, v in parameter.http { 53 path: k 54 backend: { 55 serviceName: context.name 56 servicePort: v 57 } 58 }, 59 ] 60 } 61 }] 62 } 63 }