mirror of
https://github.com/kubevela/kubevela.git
synced 2026-04-19 00:57:08 +00:00
95 lines
2.2 KiB
YAML
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}]
|
|
}
|
|
}]
|
|
}
|
|
}
|