github.com/oam-dev/kubevela@v1.9.11/docs/examples/workflow/Li-Auto-Inc/workflow-step-definitions.yaml (about) 1 apiVersion: core.oam.dev/v1beta1 2 kind: WorkflowStepDefinition 3 metadata: 4 name: apply-base 5 namespace: vela-system 6 spec: 7 schematic: 8 cue: 9 template: |- 10 import ("vela/op") 11 parameter: { 12 component: string 13 } 14 load: op.#Load 15 16 apply: op.#ApplyComponent & { 17 value: load.value[parameter.component] 18 } 19 20 workload: apply.output 21 // wait until deployment ready 22 wait: op.#ConditionalWait & { 23 continue: workload.status.readyReplicas == workload.status.replicas && workload.status.observedGeneration == workload.metadata.generation 24 } 25 26 // export service ClusterIP 27 clusterIP: apply.outputs["service"].value.spec.clusterIP 28 --- 29 apiVersion: core.oam.dev/v1beta1 30 kind: WorkflowStepDefinition 31 metadata: 32 name: apply-helm 33 namespace: vela-system 34 spec: 35 schematic: 36 cue: 37 template: |- 38 import ("vela/op") 39 parameter: { 40 component: string 41 } 42 load: op.#Load 43 44 apply: op.#ApplyComponent & { 45 value: load.value[parameter.component] 46 } 47 48 // wait redis ready 49 wait: op.#ConditionalWait & { 50 // todo 51 continue: true 52 } 53 --- 54 apiVersion: core.oam.dev/v1beta1 55 kind: WorkflowStepDefinition 56 metadata: 57 name: apply-proxy 58 namespace: vela-system 59 spec: 60 schematic: 61 cue: 62 template: |- 63 import ( 64 "vela/op" 65 "encoding/json" 66 ) 67 parameter: { 68 component: string 69 backendIP: string 70 } 71 72 // 往三方配置中心apollo读取配置 73 // config: op.#HTTPGet 74 75 load: op.#Load 76 77 apply: op.#ApplyComponent & { 78 value: load.value[parameter.component] 79 // 给环境变量中注入BackendIP 80 patch: workload: spec: template: spec: { 81 containers: [{ 82 // patchKey=name 83 env: [{name: "BackendIP",value: parameter.backendIP}] 84 },...] 85 } 86 } 87 88 workload: apply.output 89 // wait until argo.rollout ready 90 wait: op.#ConditionalWait & { 91 continue: workload.status.readyReplicas == workload.status.replicas && workload.status.observedGeneration == workload.metadata.generation 92 } 93 94 message: {...} 95 // 往三方配置中心apollo写配置 96 notify: op.#HTTPPost & { 97 url: "appolo-address" 98 request: body: json.Marshal(message) 99 }