Files
kubevela/docs/examples/workflow/definition.yaml
2021-09-18 14:40:08 +08:00

95 lines
2.2 KiB
YAML

apiVersion: core.oam.dev/v1beta1
kind: WorkflowStepDefinition
metadata:
name: apply-with-ip
spec:
schematic:
cue:
template: |
import ("vela/op")
parameter: {
component: string
prefixIP: string
}
// load component from application
load: op.#Load
// apply workload to kubernetes cluster
apply: op.#ApplyComponent & {
value: load.value[parameter.component] & {
properties: serverIP: parameter.prefixIP
}
}
// wait until workload.status equal "Running"
wait: op.#ConditionalWait & {
continue: apply.output.status.phase =="Running"
}
---
apiVersion: core.oam.dev/v1beta1
kind: WorkflowStepDefinition
metadata:
name: custom-apply-component
spec:
schematic:
cue:
template: |
import ("vela/op")
parameter: {
component: string
}
// load component from application
load: op.#Load
// apply workload to kubernetes cluster
apply: op.#ApplyComponent & {
value: load.value[parameter.component]
}
// wait until workload.status equal "Running"
wait: op.#ConditionalWait & {
continue: apply.output.status.phase =="Running"
}
// export podIP
myIP: apply.output.status.podIP
---
apiVersion: core.oam.dev/v1beta1
kind: ComponentDefinition
metadata:
name: singleton-server
annotations:
definition.oam.dev/description: "singleton-server is Pod"
spec:
workload:
definition:
apiVersion: v1
kind: Pod
schematic:
cue:
template: |
parameter: {
version: *"1.14.2" | string
serverIP?: string
}
output: {
apiVersion: "v1"
kind: "Pod"
metadata: {
labels: app: "nginx"
name: context.name
}
spec:{
containers:[{
name: "nginx"
image: "nginx:"+parameter.version
ports: [{containerPort: 80}]
if parameter.serverIP!=_|_{
env: [{name: "PrefixIP",value: parameter.serverIP}]
}
}]
}
}