github.com/oam-dev/kubevela@v1.9.11/references/docgen/testdata/ingressDef.yaml (about)

     1  apiVersion: core.oam.dev/v1beta1
     2  kind: TraitDefinition
     3  metadata:
     4    name: ingress.test
     5  spec:
     6    appliesToWorkloads:
     7      - deployments.apps
     8    extension:
     9      template: |
    10        parameter: {
    11        	domain: string
    12        	http: [string]: int
    13        }
    14        
    15        // trait template can have multiple outputs in one trait
    16        outputs: service: {
    17        	apiVersion: "v1"
    18        	kind:       "Service"
    19        	metadata:
    20        		name: context.name
    21        	spec: {
    22        		selector:
    23        			"app.oam.dev/component": context.name
    24        		ports: [
    25        			for k, v in parameter.http {
    26        				port:       v
    27        				targetPort: v
    28        			},
    29        		]
    30        	}
    31        }
    32        
    33        outputs: ingress: {
    34        	apiVersion: "networking.k8s.io/v1beta1"
    35        	kind:       "Ingress"
    36        	metadata:
    37        		name: context.name
    38        	spec: {
    39        		rules: [{
    40        			host: parameter.domain
    41        			http: {
    42        				paths: [
    43        					for k, v in parameter.http {
    44        						path: k
    45        						backend: {
    46        							serviceName: context.name
    47        							servicePort: v
    48        						}
    49        					},
    50        				]
    51        			}
    52        		}]
    53        	}
    54        }
    55        
    56