github.com/oam-dev/kubevela@v1.9.11/docs/examples/workflow/Li-Auto-Inc/common-definitions.yaml (about) 1 apiVersion: core.oam.dev/v1beta1 2 kind: ComponentDefinition 3 metadata: 4 name: base-service 5 spec: 6 workload: 7 definition: 8 apiVersion: apps/v1 9 kind: Deployment 10 schematic: 11 kube: 12 template: 13 apiVersion: apps/v1 14 kind: Deployment 15 metadata: 16 labels: 17 appId: BASE-SERVICE 18 appName: base-service 19 version: 0.0.1 20 name: base-service 21 spec: 22 replicas: 2 23 revisionHistoryLimit: 5 24 selector: 25 matchLabels: 26 app: base-service 27 template: 28 metadata: 29 labels: 30 antiAffinity: none 31 app: base-service 32 appId: BASE-SERVICE 33 version: 0.0.1 34 spec: 35 affinity: 36 podAntiAffinity: 37 preferredDuringSchedulingIgnoredDuringExecution: 38 - podAffinityTerm: 39 labelSelector: 40 matchExpressions: 41 - key: app 42 operator: In 43 values: 44 - base-service 45 - key: antiAffinity 46 operator: In 47 values: 48 - none 49 topologyKey: kubernetes.io/hostname 50 weight: 100 51 containers: 52 - env: 53 - name: NODE_IP 54 valueFrom: 55 fieldRef: 56 fieldPath: status.hostIP 57 - name: POD_IP 58 valueFrom: 59 fieldRef: 60 fieldPath: status.podIP 61 - name: POD_NAME 62 valueFrom: 63 fieldRef: 64 fieldPath: metadata.name 65 - name: POD_NAMESPACE 66 valueFrom: 67 fieldRef: 68 fieldPath: metadata.namespace 69 - name: APP_NAME 70 value: base-service 71 - name: LOG_BASE 72 value: /data/log 73 - name: RUNTIME_CLUSTER 74 value: default 75 image: base-service 76 imagePullPolicy: Always 77 name: base-service 78 ports: 79 - containerPort: 11223 80 protocol: TCP 81 - containerPort: 11224 82 protocol: TCP 83 volumeMounts: 84 - mountPath: /tmp/data/log/base-service 85 name: log-volume 86 - mountPath: /data 87 name: sidecar-sre 88 - mountPath: /app/skywalking 89 name: skywalking 90 initContainers: 91 - args: 92 - 'echo "do something" ' 93 command: 94 - /bin/sh 95 - -c 96 env: 97 - name: NODE_IP 98 valueFrom: 99 fieldRef: 100 fieldPath: status.hostIP 101 - name: POD_IP 102 valueFrom: 103 fieldRef: 104 fieldPath: status.podIP 105 - name: APP_NAME 106 value: base-service 107 image: busybox 108 imagePullPolicy: Always 109 name: sidecar-sre 110 resources: 111 limits: 112 cpu: 100m 113 memory: 100Mi 114 volumeMounts: 115 - mountPath: /tmp/data/log/base-service 116 name: log-volume 117 - mountPath: /scratch 118 name: sidecar-sre 119 terminationGracePeriodSeconds: 120 120 volumes: 121 - hostPath: 122 path: /logs/dev/base-service 123 type: DirectoryOrCreate 124 name: log-volume 125 - emptyDir: {} 126 name: sidecar-sre 127 - emptyDir: {} 128 name: skywalking 129 parameters: 130 - name: image 131 required: true 132 type: string 133 fieldPaths: 134 - "spec.template.spec.containers[0].image" 135 - name: cluster 136 required: true 137 type: string 138 fieldPaths: 139 - "spec.template.spec.containers[0].env[6].value" 140 - "spec.template.metadata.labels.cluster" 141 --- 142 apiVersion: core.oam.dev/v1beta1 143 kind: ComponentDefinition 144 metadata: 145 name: proxy-service 146 spec: 147 workload: 148 definition: 149 apiVersion: argoproj.io/v1alpha1 150 kind: Rollout 151 schematic: 152 kube: 153 template: 154 apiVersion: argoproj.io/v1alpha1 155 kind: Rollout 156 metadata: 157 labels: 158 appId: PROXY-SERVICE 159 appName: proxy-service 160 version: 0.0.0 161 name: proxy-service 162 spec: 163 replicas: 1 164 revisionHistoryLimit: 1 165 selector: 166 matchLabels: 167 app: proxy-service 168 strategy: 169 canary: 170 steps: 171 - setWeight: 50 172 - pause: {} 173 template: 174 metadata: 175 labels: 176 app: proxy-service 177 appId: PROXY-SERVICE 178 cluster: default 179 version: 0.0.1 180 spec: 181 affinity: 182 podAntiAffinity: 183 preferredDuringSchedulingIgnoredDuringExecution: 184 - podAffinityTerm: 185 labelSelector: 186 matchExpressions: 187 - key: app 188 operator: In 189 values: 190 - proxy-service 191 topologyKey: kubernetes.io/hostname 192 weight: 100 193 containers: 194 - env: 195 - name: NODE_IP 196 valueFrom: 197 fieldRef: 198 fieldPath: status.hostIP 199 - name: POD_IP 200 valueFrom: 201 fieldRef: 202 fieldPath: status.podIP 203 - name: POD_NAME 204 valueFrom: 205 fieldRef: 206 fieldPath: metadata.name 207 - name: POD_NAMESPACE 208 valueFrom: 209 fieldRef: 210 fieldPath: metadata.namespace 211 - name: APP_NAME 212 value: proxy-service 213 - name: LOG_BASE 214 value: /app/data/log 215 - name: RUNTIME_CLUSTER 216 value: default 217 image: proxy-service:0.1 218 imagePullPolicy: Always 219 name: proxy-service 220 ports: 221 - containerPort: 11024 222 protocol: TCP 223 - containerPort: 11025 224 protocol: TCP 225 volumeMounts: 226 - mountPath: /tmp/data/log/proxy-service 227 name: log-volume 228 - mountPath: /app/data 229 name: sidecar-sre 230 - mountPath: /app/skywalking 231 name: skywalking 232 initContainers: 233 - args: 234 - 'echo "do something" ' 235 command: 236 - /bin/sh 237 - -c 238 env: 239 - name: NODE_IP 240 valueFrom: 241 fieldRef: 242 fieldPath: status.hostIP 243 - name: POD_IP 244 valueFrom: 245 fieldRef: 246 fieldPath: status.podIP 247 - name: APP_NAME 248 value: proxy-service 249 image: busybox 250 imagePullPolicy: Always 251 name: sidecar-sre 252 resources: 253 limits: 254 cpu: 100m 255 memory: 100Mi 256 volumeMounts: 257 - mountPath: /tmp/data/log/proxy-service 258 name: log-volume 259 - mountPath: /scratch 260 name: sidecar-sre 261 terminationGracePeriodSeconds: 120 262 volumes: 263 - hostPath: 264 path: /app/logs/dev/proxy-service 265 type: DirectoryOrCreate 266 name: log-volume 267 - emptyDir: {} 268 name: sidecar-sre 269 - emptyDir: {} 270 name: skywalking 271 parameters: 272 - name: image 273 required: true 274 type: string 275 fieldPaths: 276 - "spec.template.spec.containers[0].image" 277 - name: cluster 278 required: true 279 type: string 280 fieldPaths: 281 - "spec.template.spec.containers[0].env[5].value" 282 - "spec.template.metadata.labels.cluster" 283 --- 284 apiVersion: core.oam.dev/v1beta1 285 kind: TraitDefinition 286 metadata: 287 name: ingress 288 spec: 289 schematic: 290 cue: 291 template: | 292 parameter: { 293 domain: string 294 http: [string]: int 295 } 296 outputs: { 297 "service": { 298 apiVersion: "v1" 299 kind: "Service" 300 metadata: { 301 name: context.name 302 namespace: context.namespace 303 } 304 spec: { 305 selector: app: context.name 306 ports: [for ph, pt in parameter.http{ 307 protocol: "TCP" 308 port: pt 309 targetPort: pt 310 }] 311 } 312 } 313 "ingress": { 314 apiVersion: "networking.k8s.io/v1" 315 kind: "Ingress" 316 metadata: { 317 name: "\(context.name)-ingress" 318 namespace: context.namespace 319 } 320 spec: rules: [{ 321 host: parameter.domain 322 http: paths: [for ph, pt in parameter.http { 323 path: ph 324 pathType: "Prefix" 325 backend: service: { 326 name: context.name 327 port: number: pt 328 } 329 }] 330 }] 331 } 332 }