# Code generated by KubeVela templates. DO NOT EDIT. Please edit the original cue file.
# Definition source cue file: vela-templates/definitions/internal/apply-deployment.cue
apiVersion: core.oam.dev/v1beta1
kind: WorkflowStepDefinition
metadata:
  annotations:
    definition.oam.dev/alias: ""
    definition.oam.dev/description: Apply deployment with specified image and cmd.
  name: apply-deployment
  namespace: {{ include "systemDefinitionNamespace" . }}
spec:
  schematic:
    cue:
      template: |
        import (
        	"strconv"
        	"strings"
        	"vela/op"
        )

        output: op.#Apply & {
        	value: {
        		apiVersion: "apps/v1"
        		kind:       "Deployment"
        		metadata: {
        			name:      context.stepName
        			namespace: context.namespace
        		}
        		spec: {
        			selector: matchLabels: "workflow.oam.dev/step-name": "\(context.name)-\(context.stepName)"
        			template: {
        				metadata: labels: "workflow.oam.dev/step-name": "\(context.name)-\(context.stepName)"
        				spec: containers: [{
        					name:  context.stepName
        					image: parameter.image
        					if parameter["cmd"] != _|_ {
        						command: parameter.cmd
        					}
        				}]
        			}
        		}
        	}
        }
        wait: op.#ConditionalWait & {
        	continue: output.value.status.readyReplicas == 1
        }
        parameter: {
        	image: string
        	cmd?: [...string]
        }

