werf рдордзреАрд▓ рдореЛрдиреЛрд░реЗрдкреЛ рдЖрдгрд┐ рдорд▓реНрдЯреАрд░реЗрдкреЛрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЖрдгрд┐ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдЪрд╛ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдХрд╛рдп рд╕рдВрдмрдВрдз рдЖрд╣реЗ

werf рдордзреАрд▓ рдореЛрдиреЛрд░реЗрдкреЛ рдЖрдгрд┐ рдорд▓реНрдЯреАрд░реЗрдкреЛрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЖрдгрд┐ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдЪрд╛ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдХрд╛рдп рд╕рдВрдмрдВрдз рдЖрд╣реЗ

рдореЛрдиреЛ-рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рд╡рд┐рд╖рдпрд╛рд╡рд░ рдПрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╡реЗрд│рд╛ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рдирд┐рдпрдо рдореНрд╣рдгреВрди, рдЦреВрдк рд╕рдХреНрд░рд┐рдп рд╡рд┐рд╡рд╛рдж рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЛ. рдирд┐рд░реНрдорд╛рдг рдХрд░реВрди werf Git рддреЗ рдбреЙрдХрд░ рдЗрдореЗрдЬреЗрд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдмрдирд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рд╕реБрдзрд╛рд░рдгрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдПрдХ рдореБрдХреНрдд рд╕реНрддреНрд░реЛрдд рд╕рд╛рдзрди рдореНрд╣рдгреВрди (рдЖрдгрд┐ рдирдВрддрд░ рддреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╡рд░ рд╡рд┐рддрд░рд┐рдд рдХрд░рдгреЗ), рдХреЛрдгрддреА рдирд┐рд╡рдб рд╕рд░реНрд╡реЛрддреНрддрдо рдЖрд╣реЗ рдпрд╛рдмрджреНрджрд▓ рдЖрдореНрд╣реА рдЬрд╛рд╕реНрдд рд╡рд┐рдЪрд╛рд░ рдХрд░рдд рдирд╛рд╣реА. рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА, рднрд┐рдиреНрди рдорддрд╛рдВрдЪреНрдпрд╛ рд╕рдорд░реНрдердХрд╛рдВрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреА рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рдкреНрд░рд╛рдердорд┐рдХ рдЖрд╣реЗ (рдЬрд░ рд╣реЗ рдЕрд░реНрдерд╛рддрдЪ рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рдирд╛рдЪрд╛ рд╡рд┐рд░реЛрдз рдХрд░рдд рдирд╕реЗрд▓ рддрд░).

werf рдЪреЗ рдЕрд▓реАрдХрдбреАрд▓ рдореЛрдиреЛ-рд░реЗрдкреЛ рд╕рдкреЛрд░реНрдЯ рд╣реЗ рдпрд╛рдЪреЗ рдЙрддреНрддрдо рдЙрджрд╛рд╣рд░рдг рдЖрд╣реЗ. рдкрд░рдВрддреБ рдкреНрд░рдердо, рд╣реЗ рд╕рдорд░реНрдерди рд╕рд╛рдорд╛рдиреНрдпрддрдГ werf рд╡рд╛рдкрд░рдгреНрдпрд╛рд╢реА рдХрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рдбреЙрдХрд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдЪрд╛ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдХрд╛рдп рд╕рдВрдмрдВрдз рдЖрд╣реЗ рддреЗ рд╢реЛрдзреВрдпрд╛ ...

рдореБрджреНрджреЗ

рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░реВрдпрд╛. рдХрдВрдкрдиреАрдХрдбреЗ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рдХрд▓реНрдкрд╛рдВрд╡рд░ рдХрд╛рдо рдХрд░рдгрд╛рд░реЗ рдЕрдиреЗрдХ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрд╕рдВрдШ рдЖрд╣реЗрдд. рдмрд╣реБрддреЗрдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╡рд░ рдЪрд╛рд▓рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдореБрд│реЗ рдХрдВрдЯреЗрдирд░рд╛рдЗрдЬреНрдб рдЕрд╕рддрд╛рдд. рдХрдВрдЯреЗрдирд░, рдкреНрд░рддрд┐рдорд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдиреЛрдВрджрдгреА (рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реА) рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЕрд╢реА рдиреЛрдВрджрдгреА рдореНрд╣рдгреВрди, рдХрдВрдкрдиреА рдПрдХрд╛рдЪ рдЦрд╛рддреНрдпрд╛рд╕рд╣ рдбреЙрдХрд░ рд╣рдм рд╡рд╛рдкрд░рддреЗ COMPANY. рдмрд╣реБрддреЗрдХ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдорд╛рдгреЗрдЪ, рдбреЙрдХрд░ рд╣рдм рдиреЗрд╕реНрдЯреЗрдб рд░рд┐рдкреЙрдЭрд┐рдЯрд░реА рдкрджрд╛рдиреБрдХреНрд░рдорд╛рд▓рд╛ рдЕрдиреБрдорддреА рджреЗрдд тАЛтАЛрдирд╛рд╣реА, рдЬрд╕реЗ COMPANY/PROJECT/IMAGE. рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрддтАж рддреБрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд▓реНрдкрд╛рд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рдЦрд╛рддреЗ рддрдпрд╛рд░ рди рдХрд░рддрд╛ рдпрд╛ рдорд░реНрдпрд╛рджреЗрд╕рд╣ рдиреЙрди-рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдХрд╕реЗ рд╕реНрдЯреЛрдЕрд░ рдХрд░реВ рд╢рдХрддрд╛?

werf рдордзреАрд▓ рдореЛрдиреЛрд░реЗрдкреЛ рдЖрдгрд┐ рдорд▓реНрдЯреАрд░реЗрдкреЛрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЖрдгрд┐ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдЪрд╛ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдХрд╛рдп рд╕рдВрдмрдВрдз рдЖрд╣реЗ

рдХрджрд╛рдЪрд┐рдд, рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдПрдЦрд╛рджреНрдпрд╛рд╕ рдкрд░рд┐рдЪрд┐рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрдЪрдпрди рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдпрд╛, рдореНрд╣рдгрдЬреЗ. рд╡рд░реАрд▓ рдЙрджрд╛рд╣рд░рдг рдЖрдгрд┐ рдбреЙрдХрд░ рд╣рдмрдЪрд╛ рд╕рдВрджрд░реНрдн рди рдШреЗрддрд╛.

рдЙрдкрд╛рдп

рдЕрд░реНрдЬ рдЕрд╕рд▓реНрдпрд╛рд╕ рдореЛрдиреЛрд▓рд┐рдерд┐рдХ, рдПрдХрд╛ рдкреНрд░рддрд┐рдореЗрдордзреНрдпреЗ рдпреЗрддреЗ, рдирдВрддрд░ рдХреЛрдгрддреЗрд╣реА рдкреНрд░рд╢реНрди рдирд╛рд╣реАрдд рдЖрдгрд┐ рдЖрдореНрд╣реА рдлрдХреНрдд рдкреНрд░рддрд┐рдорд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рдХрдВрдЯреЗрдирд░ рдиреЛрдВрджрдгреАрдордзреНрдпреЗ рдЬрддрди рдХрд░рддреЛ.

рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХрд╛рдзрд┐рдХ рдШрдЯрдХ рдореНрд╣рдгреВрди рд╕рд╛рджрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рд╕реВрдХреНрд╖реНрдо рд╕реЗрд╡рд╛, рдирдВрддрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рджреГрд╖реНрдЯреАрдХреЛрди рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рджреЛрди рдкреНрд░рддрд┐рдорд╛ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдард░рд╛рд╡рд┐рдХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рд╡рд░: frontend ╨╕ backend - рд╕рдВрднрд╛рд╡реНрдп рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд:

  1. рд╡реЗрдЧрд│реНрдпрд╛ рдиреЗрд╕реНрдЯреЗрдб рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬрдордзреНрдпреЗ рдкреНрд░рддрд┐рдорд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рд╛:

    werf рдордзреАрд▓ рдореЛрдиреЛрд░реЗрдкреЛ рдЖрдгрд┐ рдорд▓реНрдЯреАрд░реЗрдкреЛрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЖрдгрд┐ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдЪрд╛ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдХрд╛рдп рд╕рдВрдмрдВрдз рдЖрд╣реЗ

  2. рд╕рд░реНрд╡ рдХрд╛рд╣реА рдПрдХрд╛ рднрд╛рдВрдбрд╛рд░рд╛рдд рд╕рд╛рдард╡рд╛ рдЖрдгрд┐ рдЯреЕрдЧрдордзреАрд▓ рдкреНрд░рддрд┐рдореЗрдЪреЗ рдирд╛рд╡ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреНрдпрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ:

    werf рдордзреАрд▓ рдореЛрдиреЛрд░реЗрдкреЛ рдЖрдгрд┐ рдорд▓реНрдЯреАрд░реЗрдкреЛрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЖрдгрд┐ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдЪрд╛ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдХрд╛рдп рд╕рдВрдмрдВрдз рдЖрд╣реЗ

NB: рд╡рд╛рд╕реНрддрд╡рд┐рдХ, рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд░рд┐рдкреЙрдЭрд┐рдЯрд░реАрдЬрдордзреНрдпреЗ рдмрдЪрдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рджреБрд╕рд░рд╛ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ, PROJECT-frontend ╨╕ PROJECT-backend, рдкрд░рдВрддреБ рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдордзреАрд▓ рд╕рдорд░реНрдерди, рд╕рдВрд╕реНрдерд╛ рдЖрдгрд┐ рдЕрдзрд┐рдХрд╛рд░ рд╡рд┐рддрд░рдгрд╛рдЪреНрдпрд╛ рдЬрдЯрд┐рд▓рддреЗрдореБрд│реЗ рдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА.

werf рд╕рдорд░реНрдерди

рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, werf рд╕реНрд╡рддрдГрд▓рд╛ рдиреЗрд╕реНрдЯреЗрдб рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬрдкреБрд░рддреЗ рдорд░реНрдпрд╛рджрд┐рдд рдареЗрд╡рддреЗ - рд╕реБрджреИрд╡рд╛рдиреЗ, рдмрд╣реБрддреЗрдХ рдиреЛрдВрджрдгреА рдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрддрд╛рдд. рдЖрд╡реГрддреНрддреАрдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрдд рдЖрд╣реЗ v1.0.4-alpha.3, рдЬреНрдпрд╛рдордзреНрдпреЗ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрд╕рд╣ рдХрд╛рд░реНрдп рдЬреЛрдбрд▓реЗ рдШрд░рдЯреА рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА, рдЖрдгрд┐ рдбреЙрдХрд░ рд╣рдм рддреНрдпрд╛рдкреИрдХреА рдПрдХ рдЖрд╣реЗ. рддреЗрд╡реНрд╣рд╛рдкрд╛рд╕реВрди, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдХрдбреЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреНрдпрд╛ рдкреНрд░рддрд┐рдорд╛ рдХрд╢рд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рд╛рдпрдЪреНрдпрд╛ рдпрд╛рдЪреА рдирд┐рд╡рдб рдЖрд╣реЗ.

рдкрд░реНрдпрд╛рдп рдЕрдВрддрд░реНрдЧрдд рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЙрдкрд▓рдмреНрдз --images-repo-mode=multirepo|monorepo (рдбрд┐рдлреЙрд▓реНрдЯ multirepo, рдореНрд╣рдгрдЬреЗ рдиреЗрд╕реНрдЯреЗрдб рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬрдордзреНрдпреЗ рд╕реНрдЯреЛрд░реЗрдЬ). рд╣реЗ рдирдореБрдиреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреНрдпреЗ рдкреНрд░рддрд┐рдорд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рдореВрд▓рднреВрдд рдЖрдЬреНрдЮрд╛ рд╡рд╛рдкрд░рддрд╛рдирд╛ рдЗрдЪреНрдЫрд┐рдд рдореЛрдб рдирд┐рд╡рдбрдгреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЗрддрд░ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╛рд╣реАрд▓.

рдХрд╛рд░рдг рдмрд╣реБрддреЗрдХ werf рдкрд░реНрдпрд╛рдп рд╕реЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рдЪрд▓, CI / CD рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ, рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдХрд▓реНрдкрд╛рд╕рд╛рдареА рд╕реНрдЯреЛрд░реЗрдЬ рдореЛрдб рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдЬрд╛рдЧрддрд┐рдХ рд╕реНрддрд░рд╛рд╡рд░ рд╕реЗрдЯ рдХрд░рдгреЗ рд╕реЛрдкреЗ рдЕрд╕рддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, GitLab рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдкреНрд░рдХрд▓реНрдк рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдордзреНрдпреЗ рдлрдХреНрдд рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╛: рд╕реЗрдЯрд┐рдВрдЧреНрдЬ -> CI / CD -> рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕: WERF_IMAGES_REPO_MODE: multirepo|monorepo.

рдЬрд░ рдЖрдореНрд╣реА рдкреНрд░рддрд┐рдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдгреНрдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓рд▓реЛ рддрд░ (рддреБрдореНрд╣реА рдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдмрджреНрджрд▓ рд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рд▓реЗрдЦрд╛рдВрдордзреНрдпреЗ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╡рд╛рдЪреВ рд╢рдХрддрд╛: рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рд╛ ╨╕ рдЙрдкрдпреЛрдЬрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛), рдирдВрддрд░ рдореЛрдб рдХреЗрд╡рд│ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдЖрдкрдг рдкреНрд░рддрд┐рдореЗрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХрддрд╛.

рд╕реИрддрд╛рди рддрдкрд╢реАрд▓рд╛рдд рдЖрд╣реЗ

рдирд╡реАрди рд╕реНрдЯреЛрд░реЗрдЬ рдкрджреНрдзрдд рдЬреЛрдбрддрд╛рдирд╛ рдлрд░рдХ рдЖрдгрд┐ рдореБрдЦреНрдп рдЕрдбрдЪрдг рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реА рд╕рд╛рдл рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдЖрд╣реЗ (werf рджреНрд╡рд╛рд░реЗ рд╕рдорд░реНрдерд┐рдд рд╢реБрджреНрдз рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╕рд╛рдареА, рдкрд╣рд╛ рд╕рд╛рдлрд╕рдлрд╛рдИрдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛).

рд╕рд╛рдлрд╕рдлрд╛рдИ рдХрд░рддрд╛рдирд╛, werf Kubernetes рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддрд┐рдорд╛ рддрд╕реЗрдЪ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдзреЛрд░рдгрд╛рдВрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ. рдзреЛрд░рдгреЗ рдЯреЕрдЧреНрдЬрдЪреНрдпрд╛ рд░рдгрдиреАрддреАрдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрдгреАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд╕рддрд╛рдд. рд╕рдзреНрдпрд╛ рд╕рдорд░реНрдерд┐рдд рдзреЛрд░рдгреЗ:

  1. рдЯреЕрдЧ, рдмреНрд░рдБрдЪ рдЖрдгрд┐ рдХрдорд┐рдЯ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ Git рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡реНрд╣рджреНрд╡рд╛рд░реЗ рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ 3 рдзреЛрд░рдгреЗ;
  2. рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рд╛рдиреБрдХреВрд▓ рдЯреЕрдЧрд╕рд╛рдареА 1 рдзреЛрд░рдг.

рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдореЗрдЪреНрдпрд╛ рд▓реЗрдмрд▓рдордзреНрдпреЗ рдкреНрд░рддрд┐рдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛рдирд╛ рдЖрдореНрд╣реА рдЯреЕрдЧ рдзреЛрд░рдгрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдЬрддрди рдХрд░рддреЛ. рдЕрд░реНрде рд╕реНрд╡рддрдГ рддрдерд╛рдХрдерд┐рдд рдЖрд╣реЗ рдореЗрдЯрд╛ рдЯреЕрдЧ - рдХрд╛рд╣реА рдкреЙрд▓рд┐рд╕реА рд▓рд╛рдЧреВ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЧрд┐рдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреВрди рд╢рд╛рдЦрд╛ рдХрд┐рдВрд╡рд╛ рдЯреЕрдЧ рд╣рдЯрд╡рддрд╛рдирд╛, рд╕рдВрдмрдВрдзрд┐рдд рд╣рдЯрд╡рдгреЗ рддрд░реНрдХрд╕рдВрдЧрдд рдЖрд╣реЗ рди рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреАрд▓ рдкреНрд░рддрд┐рдорд╛, рдЬреНрдпрд╛ рдЖрдордЪреНрдпрд╛ рдзреЛрд░рдгрд╛рдВрдЪреНрдпрд╛ рднрд╛рдЧрд╛рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд.

рдПрдХрд╛ рднрд╛рдВрдбрд╛рд░рд╛рдд рдЬрддрди рдХреЗрд▓реНрдпрд╛рд╡рд░ (monorepo), рдЗрдореЗрдЬ рдЯреЕрдЧрдордзреНрдпреЗ, рдореЗрдЯрд╛ рдЯреЕрдЧ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЗрдореЗрдЬрдЪреЗ рдирд╛рд╡ рджреЗрдЦреАрд▓ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ: PROJECT:frontend-META-TAG. рддреНрдпрд╛рдВрдирд╛ рд╡реЗрдЧрд│реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдХреЛрдгрддрд╛рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рднрд╛рдЬрдХ рд╕рд╛рджрд░ рдХреЗрд▓рд╛ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдкреНрд░рдХрд╛рд╢рди рдХрд░рддрд╛рдирд╛ рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдореЗрдЪреНрдпрд╛ рд▓реЗрдмрд▓рдордзреНрдпреЗ рдЖрд╡рд╢реНрдпрдХ рдореВрд▓реНрдп рдЬреЛрдбрд▓реЗ.

NB: рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ werf рд╕реЛрд░реНрд╕ рдХреЛрдбрдордзреНрдпреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреА рдкрд╛рд╣рдгреНрдпрд╛рдд рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕реЗрд▓, рддрд░ рд╕реБрд░реБрд╡рд╛рддреАрдЪрд╛ рдмрд┐рдВрджреВ рдЕрд╕реВ рд╢рдХрддреЛ рдЬрдирд╕рдВрдкрд░реНрдХ 1684.

рдпрд╛ рд▓реЗрдЦрд╛рдд, рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдЖрдгрд┐ рдФрдЪрд┐рддреНрдп рдпрд╛рд╡рд░ рдЕрдзрд┐рдХ рд▓рдХреНрд╖ рджреЗрдгрд╛рд░ рдирд╛рд╣реА: рд░рдгрдиреАрддреА рдЯреЕрдЧ рдХрд░рдгреЗ, рд▓реЗрдмрд▓реНрд╕рдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рд╕рдВрдкреВрд░реНрдгрдкрдгреЗ рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ - рдпрд╛ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреАрдВрдЪреЗ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╡рд░реНрдгрди рджрд┐рдорд┐рддреНрд░реА рд╕реНрдЯреЛрд▓рд┐рдпрд╛рд░реЛрд╡реНрд╣рдЪреНрдпрд╛ рдЕрд▓реАрдХрдбреАрд▓ рдЕрд╣рд╡рд╛рд▓рд╛рдд рдХреЗрд▓реЗ рдЖрд╣реЗ: тАЬwerf рд╣реЗ Kubernetes рдордзреАрд▓ CI/CD рд╕рд╛рдареА рдЖрдордЪреЗ рд╕рд╛рдзрди рдЖрд╣реЗ┬╗.

рд╕рд╛рд░рд╛рдВрд╢ рдХрд░рдгреЗ

рдЕрдирдиреЗрд╕реНтАНрдЯ рд░рдЬрд┐рд╕реНтАНрдЯреНрд░реАрдЬрдЪреНтАНрдпрд╛ рд╕рдорд░реНрдердирд╛рдЪрд╛ рдЕрднрд╛рд╡ рд╣рд╛ рдЖрдореНтАНрд╣рд╛рд▓рд╛ рдХрд┐рдВрд╡рд╛ рдЖрдореНтАНрд╣рд╛рд▓рд╛ рдЬреНрдЮрд╛рдд рдЕрд╕рд▓реЗрд▓реНтАНрдпрд╛ werf рд╡рд╛рдкрд░рдХрд░реНрддреНтАНрдпрд╛рдВрд╕рд╛рдареА рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рдгрд╛рд░рд╛ рдШрдЯрдХ рдирд╡реНрд╣рддрд╛ - рд╢реЗрд╡рдЯреА, рддреБрдореНрд╣реА рдиреЗрд╣рдореА рдПрдХ рд╡реЗрдЧрд│реА рдЗрдореЗрдЬ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реА рд╡рд╛рдврд╡реВ рд╢рдХрддрд╛ (рдХрд┐рдВрд╡рд╛ Google Cloud рдордзреАрд▓ рдХрдВрдбрд┐рд╢рдирд▓ рдХрдВрдЯреЗрдирд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реА рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░реВ рд╢рдХрддрд╛)... рддрдерд╛рдкрд┐, рд╡рд┐рд╕реНрддреАрд░реНрдг DevOps рд╕рдореБрджрд╛рдпрд╛рд╕рд╛рдареА рд╕рд╛рдзрди рдЕрдзрд┐рдХ рд╕реЛрдпреАрд╕реНрдХрд░ рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА рдЕрд╕реЗ рдирд┐рд░реНрдмрдВрдз рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ рддрд░реНрдХрд╕рдВрдЧрдд рд╡рд╛рдЯрд▓реЗ. рддреНрдпрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рддрд╛рдирд╛, рдЖрдореНрд╣рд╛рд▓рд╛ рдХрдВрдЯреЗрдирд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реА рдХреНрд▓реАрдирдЕрдк рдпрдВрддреНрд░рдгрд╛ рдкреБрдиреНрд╣рд╛ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдд рдореБрдЦреНрдп рдЕрдбрдЪрдг рдЖрд▓реА. рдЖрддрд╛ рд╕рд░реНрд╡ рдХрд╛рд╣реА рддрдпрд╛рд░ рдЭрд╛рд▓реЗ рдЖрд╣реЗ, рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ рдХреА рд╣реЗ рдПрдЦрд╛рджреНрдпрд╛рд╕рд╛рдареА рд╕реЛрдкреЗ рдЭрд╛рд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЖрдореНрд╣рд╛рд▓рд╛ (рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдореБрдЦреНрдп рд╡рд┐рдХрд╛рд╕рдХ рдореНрд╣рдгреВрди) рдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рдгреНрдпрд╛рдд рдХреЛрдгрддреНрдпрд╛рд╣реА рд▓рдХреНрд╖рдгреАрдп рдЕрдбрдЪрдгреА рдпреЗрдгрд╛рд░ рдирд╛рд╣реАрдд.

рдЖрдордЪреНрдпрд╛рд╕реЛрдмрдд рд░рд╣рд╛ рдЖрдгрд┐ рд▓рд╡рдХрд░рдЪ рдЖрдореНрд╣реА рддреБрдореНрд╣рд╛рд▓рд╛ рдЗрддрд░ рдирд╡рдХрд▓реНрдкрдирд╛рдВрдмрджреНрджрд▓ рд╕рд╛рдВрдЧреВ werf!

PS

рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛