Closed ildar-ceo closed 2 years ago
XML:
<?xml version="1.1" encoding="UTF-8" ?>
<template>
<name>WordPress</name>
<marketplace>http://example.com/shop/wordpress</marketplace>
<hub>docker.io/bayrell/alpine_wordpress</marketplace>
<yaml>
<services>
<_var_service_name_>
<image>bayrell/alpine_wordpress:5.7.2-2-amd64</image>
<hostname>{{.Service.Name}}.{{.Task.ID}}.local</hostname>
<environment>
<WWW_UID>1000</WWW_UID>
<WWW_GID>1000</WWW_GID>
</environment>
</_var_service_name_>
</services>
</yaml>
<varibales>
<varibale>
<name>_var_service_name_</name>
<type>string</type>
</varibale>
</varibales>
</template>
Patch
<?xml version="1.1" encoding="UTF-8" ?>
<patch>
<name>Deploy hostname</name>
<operations>
<operation type="add">
<path>/template/yaml/services/_var_service_name_</path>
<value>
<deploy>
<replicas>1</replicas>
<endpoint_mode>dnsrr</endpoint_mode>
<update_config>
<parallelism>1</parallelism>
<failure_action>rollback</failure_action>
<delay>5s</delay>
</update_config>
<restart_policy>
<condition>on-failure</condition>
<delay>10s</delay>
<window>120s</window>
</restart_policy>
<placement>
<constraints>node.hostname == _var_hostname_</constraints>
</placement>
</deploy>
</value>
</operation>
<operation type="add">
<path>/template/varibales</path>
<value>
<varibale>
<name>_var_hostname_</name>
<type>string</type>
</varibale>
</value>
</operation>
</operations>
</patch>
Patch add network:
<?xml version="1.1" encoding="UTF-8" ?>
<patch>
<name>Add cloud network</name>
<operations>
<operation type="add">
<path>/template/yaml/services/_var_service_name_</path>
<value>
<networks>cloud_backend</networks>
</value>
</operation>
<operation type="add">
<path>/template/networks</path>
<value>
<cloud_backend>
<external>true</external>
</cloud_backend>
</value>
</operation>
</operations>
</patch>
journald logging:
<?xml version="1.1" encoding="UTF-8" ?>
<patch>
<name>Add journald logging</name>
<operations>
<operation type="add">
<path>/template/yaml/services/_var_service_name_</path>
<value>
<logging>
<driver>journald</driver>
</logging>
</value>
</operation>
</operations>
</patch>
Например, заранее подготовленные шаблоны для php, apache, nginx, code-server и т.п. Чтобы легко запускать новые приложения. Пользователь выбирает шаблон, и потом его редактирует. Возможно добавить переменные, чтобы не редактировать весь код, а только подставить в шаблон значения