forked from kubevirt/kubevirt-tekton-tasks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver-deployer-pipeline.yaml
142 lines (142 loc) · 4.45 KB
/
server-deployer-pipeline.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
---
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: server-deployer
spec:
tasks:
- name: modify-data-object
params:
- name: manifest
value: |
apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
generateName: flasker-server-
spec:
pvc:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
volumeMode: Filesystem
source:
http:
url: https://download.fedoraproject.org/pub/fedora/linux/releases/33/Cloud/x86_64/images/Fedora-Cloud-Base-33-1.2.x86_64.raw.xz
- name: waitForSuccess
value: 'true'
taskRef:
kind: Task
name: modify-data-object
- name: generate-ssh-keys
params:
- name: privateKeyConnectionOptions
value:
- 'user:fedora'
- 'disable-strict-host-key-checking:true'
taskRef:
kind: Task
name: generate-ssh-keys
- name: disk-virt-customize
params:
- name: pvc
value: "$(tasks.modify-data-object.results.name)"
- name: customizeCommands
value: |
install git,vim,pip
run-command pip install flask
taskRef:
kind: Task
name: disk-virt-customize
runAfter:
- modify-data-object
- name: create-vm-from-manifest
params:
- name: manifest
value: |
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachine
metadata:
generateName: flasker-vm-
annotation:
description: Fedora VM generated by server-deployer pipeline
labels:
app: flasker-vm
spec:
running: true
template:
metadata:
labels:
kubevirt.io/domain: flasker-vm
spec:
accessCredentials:
- sshPublicKey:
source:
secret:
secretName: $(tasks.generate-ssh-keys.results.publicKeySecretName)
propagationMethod:
configDrive: {}
domain:
cpu:
cores: 2
sockets: 1
threads: 1
devices:
disks:
- name: rootdisk
bootOrder: 1
disk:
bus: virtio
- name: cloudinitdrive
disk:
bus: virtio
interfaces:
- bridge: {}
name: default
networkInterfaceMultiqueue: true
rng: {}
resources:
requests:
memory: 2Gi
hostname: flasker-vm
networks:
- name: default
pod: {}
volumes:
- name: rootdisk
- name: cloudinitdrive
cloudInitConfigDrive:
userData: |
#cloud-config
password: fedora
chpasswd: { expire: False }
- name: ownDataVolumes
value:
- "rootdisk:$(tasks.modify-data-object.results.name)"
runAfter:
- disk-virt-customize
- generate-ssh-keys
taskRef:
kind: Task
name: create-vm-from-manifest
- name: execute-in-vm
params:
- name: vmName
value: $(tasks.create-vm-from-manifest.results.name)
- name: secretName
value: $(tasks.generate-ssh-keys.results.privateKeySecretName)
- name: script
value: |
git clone https://github.com/pallets/flask.git
echo deploying flaskr...
pushd flask/examples/tutorial
export FLASK_APP=flaskr
flask init-db
nohup flask run --host=0.0.0.0 > /tmp/server.out 2>&1 &
echo deployed
runAfter:
- create-vm-from-manifest
taskRef:
kind: Task
name: execute-in-vm