github.com/oam-dev/kubevela@v1.9.11/docs/examples/imagepulljob/README.md (about) 1 This example shows how to use imagePullJob as a workflow step in an application deployment. 2 3 ## Install Definitions 4 5 install openkruise: 6 ``` 7 vela addon enable kruise 8 ``` 9 or install openkruise manully 10 ``` 11 helm install kruise https://github.com/openkruise/kruise/releases/download/v0.9.0/kruise-chart.tgz --set featureGates="PreDownloadImageForInPlaceUpdate=true" 12 kubectl apply -f kubevela/vela-templates/addons/kruise/definitions/imagepulljob-step.yaml 13 ``` 14 15 Pre-download workflow step should be installed successfully at present. Check Component and Workflow definitions: 16 ``` 17 kubectl get workflowstep 18 ``` 19 20 Output: 21 ``` 22 NAME AGE 23 predownloadimage 49s 24 ``` 25 26 Install another workflow step that need to be performed after pre-download image: 27 ``` 28 kubectl apply -f applydemo-definition.yaml 29 ``` 30 31 apply(Nginx) workflow step should be installed successfully at present. Check Component and Workflow definitions: 32 ``` 33 kubectl get workflowstep 34 ``` 35 36 Output: 37 ``` 38 NAME AGE 39 predownloadimage 49s 40 apply 49s 41 ``` 42 43 44 ## Begin The Workflow Demo 45 46 This Demo is to apply pull image for nginx first and that start a nginx application. 47 48 49 1. Apply Application: 50 ``` 51 kubectl apply -f basic_image_pull.yaml 52 ``` 53 54 55 2. Check workflow status in Application: 56 ``` 57 kubectl get application pullimage-sample -o yaml 58 ``` 59 60 Output: 61 ```yaml 62 ... 63 apiVersion: core.oam.dev/v1beta1 64 kind: Application 65 metadata: 66 ... 67 spec: 68 components: 69 - name: nginx 70 properties: 71 image: nginx:1.9.1 72 port: 80 73 type: webservice 74 workflow: 75 steps: 76 - name: pullimage 77 properties: 78 image: nginx:1.9.1 79 kvs: 80 kubernetes.io/os: linux 81 parallel: 3 82 type: predownloadimage 83 - name: deploy-remaining 84 properties: 85 component: nginx 86 type: apply 87 status: 88 ... 89 services: 90 - healthy: true 91 name: nginx 92 workloadDefinition: 93 apiVersion: apps/v1 94 kind: Deployment 95 status: running 96 workflow: 97 appRevision: pullimage-sample-v1 98 contextBackend: 99 kind: ConfigMap 100 name: workflow-pullimage-sample-v1 101 stepIndex: 2 102 steps: 103 - name: pullimage 104 phase: succeeded 105 resourceRef: {} 106 type: predownloadimage 107 - name: deploy-remaining 108 phase: succeeded 109 resourceRef: {} 110 type: apply 111 suspend: false 112 terminated: true 113 ``` 114 In Above "workflow:" fields. you can see that two steps all in phase succeeded, which means these two steps have been performed successfully. 115 116 2. Check Resource in cluster. 117 118 ``` 119 kubectl get imagepulljob 120 kubectl get pods 121 ``` 122 123 Output: 124 125 ``` 126 NAME TOTAL ACTIVE SUCCEED FAILED AGE MESSAGE 127 pull-image-job 3 0 3 0 19s job is running, progress 0.0% 128 ``` 129 130 ``` 131 NAME READY STATUS RESTARTS AGE 132 nginx-868d6c9dc7-kmgvs 1/1 Running 0 55s 133 ``` 134 135 The above step shows how to use workflow step to start a deployment.