bayrell-os / cloud_os_standard

BAYRELL Cloud OS (Open Source Cloud Platform)
https://cloud.bayrell.org/
Apache License 2.0
6 stars 1 forks source link

Шаблоны для приложений #45

Closed ildar-ceo closed 2 years ago

ildar-ceo commented 3 years ago

Например, заранее подготовленные шаблоны для php, apache, nginx, code-server и т.п. Чтобы легко запускать новые приложения. Пользователь выбирает шаблон, и потом его редактирует. Возможно добавить переменные, чтобы не редактировать весь код, а только подставить в шаблон значения

ildar-ceo commented 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>
ildar-ceo commented 2 years ago

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>
ildar-ceo commented 2 years ago

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>
ildar-ceo commented 2 years ago

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>
ildar-ceo commented 2 years ago

47 https://datatracker.ietf.org/doc/html/rfc5261