Выполнение других событий в среде происходит только после успешного завершения события onInstall. Событие onAfterAddNode будет выполняться при следующем добавлении узла. Здесь вы можете увидеть последовательность событий. Если вам просто нужно вызвать действие во время установки, то вам нужно сделать это в onInstall:
Пример:
jpsVersion: 1.3
jpsType: update
application:
id: test
name: Test
version: 0.0
onInstall:
- addNodes:
- nodeType: docker
count: 1
fixedCloudlets: 1
cloudlets: 16
dockerName: gitlab/gitlab-runner
- installDocker
actions:
installDocker:
- cmd:
- myDockerInstallScript.sh
Если необходимо, чтобы определенное действие также выполнялось каждый раз узел добавляется в топологию среды, тогда вы можете сделать это следующим образом:
jpsVersion: 1.3
jpsType: update
application:
id: test
name: Test
version: 0.0
onInstall:
- addNodes:
- nodeType: docker
count: 1
nodeGroup: runner
fixedCloudlets: 1
cloudlets: 16
dockerName: gitlab/gitlab-runner
- installDocker
onAfterAddNode [runner]:
- installDocker
actions:
installDocker:
- cmd [runner]:
- myDockerInstallScript.sh
Если вы хотите, чтобы заданное действие c было выполнено после масштабирования всего слоя, тогда вы можете сделать это так:
jpsVersion: 1.3
jpsType: update
application:
id: test
name: Test
version: 0.0
onInstall:
- addNodes:
- nodeType: docker
count: 1
nodeGroup: runner
fixedCloudlets: 1
cloudlets: 16
dockerName: gitlab/gitlab-runner
- installDocker
onAfterScaleOut [runner]:
forEach(event.response.nodes):
installDocker: ${@i.id}
actions:
installDocker:
- cmd [${this}]:
- myDockerInstallScript.sh