-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathapp.yaml
185 lines (152 loc) · 4.04 KB
/
app.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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
tasks: $tasks
init:
drlmctlTarget:
URL: ssh://${docker-name}-drlmctl
credentials: drlm
drlmCoreTarget:
URL: scp://${docker-name}-drlm-core/home/drlm
credentials: drlm-user
defaults:
target: $drlmctlTarget
pipeline:
drlmctl-build:
set-sdk:
action: sdk:set
sdk: ${sdk}
build:
action: exec:run
directory: /src/drlmctl
commands:
- make build
- mkdir -p /tmp/build/${app}
- mv drlmctl /tmp/build/${app}
drlmctl-generate-cfg:
action: exec:run
commands:
- echo '[core]
cert_path = "/tls/core/core.crt"' >> /tmp/build/${app}/drlmctl.toml
drlmctl-generate-ssh:
action: exec:run
commands:
- echo -e "\n" | ssh-keygen -t rsa -N ""
drlm-core-add:
action: exec:run
directory: /tmp/build/${app}
commands:
- ./drlmctl core add --host=${docker-name}-drlm-core --user=root --password=${pass}
drlm-core-install:
action: exec:run
directory: /tmp/build/${app}
commands:
- ./drlmctl core install
- sleep 2
drlm-core-add-target:
action: exec:run
target:
URL: scp://${docker-name}-drlm-core/home/drlm
credentials: drlm
commands:
- su - drlm
- echo "${env.SSH_PUBKEY}" >> /home/drlm/.ssh/authorized_keys
drlm-core-generate-cfg:
action: exec:run
target: $drlmCoreTarget
commands:
- echo '[security]
tokens_secret = "secretsecretsecretsecretsecretsecret"
[grpc]
cert_path = "/tls/core/core.crt"
key_path = "/tls/core/core.key"
[db]
host = "${docker-name}-db"
username = "root"
password = "${pass}"
[minio]
host = "${docker-name}-minio"
cert_path = "/tls/minio/public.crt"
[log]
file = "./drlm-core.log"' >> core.toml
drlm-core-create-db:
action: exec:extract
target: $drlmCoreTarget
directory: /home/drlm
comment: This will fail since the admin user hasn't been created yet
commands:
- command: ./.bin/drlm-core
terminators:
- Please, set the admin password
timeoutMs: 10000
- command: ${pass-core}
terminators:
- Please, repeat admin password
timeoutMs: 10000
- command: ${pass-core}
terminators:
- DRLM Core listenning at port
drlm-core-start:
action: process:start
target: $drlmCoreTarget
directory: /home/drlm
command: ./.bin/drlm-core
immuneToHangups: true
user:
add:
action: exec:extract
commands:
- echo ${docker-name}
- command: ./drlmctl user add -u nefix -p ${pass-core}
terminators:
- Enter username
timeoutMs: 10000
- command: admin
terminators:
- Enter password
timeoutMs: 10000
- command: ${pass-core}
list:
cmd:
action: exec:run
commands:
- ./drlmctl user list
assert-admin:
action: validator:assert
actual: $cmd.Output
expect: /admin/
assert-nefix:
action: validator:assert
actual: $cmd.Output
expect: /nefix/
delete:
cmd:
action: exec:run
commands:
- ./drlmctl user delete -u nefix
assert-cmd:
action: exec:run
commands:
- ./drlmctl user list
assert:
action: validator:assert
actual: $assert-cmd.Output
expect: "!/nefix/"
agent:
add:
acion: exec:run
directory: /tmp/build/${app}
commands:
- ./drlmctl agent add --host=${docker-name}-drlm-agent --user=root --password=${pass}
install:
acion: exec:run
directory: /tmp/build/${app}
commands:
- ./drlmctl agent install --host=${docker-name}-drlm-agent
list:
cmd:
acion: exec:run
directory: /tmp/build/${app}
commands:
- ./drlmctl agent list
assert:
action: validator:assert
actual: $cmd.Output
expect: /${docker-name}-drlm-agent/