Werf 1.1 рдЬрд╛рд░реА: рдЖрдЬ рдХрд▓реЗрдХреНрдЯрд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛



рд╡реЗрдпрд░рдл рд╣рдорд╛рд░реЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд GitOps рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, v1.0 рдХреА рд░рд┐рд╣рд╛рдИ рдиреЗ рд╡реЗрд░реЗрдл рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдкрд░рд┐рдЪрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ред рдЕрдм рд╣рдо v1.1 рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдХреГрдкрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рд╡рд┐рдХрд╛рд╕ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд▓реЗрдХреНрдЯрд░ рд╡реЗрдпрд░рдл рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдХрджрдо рд╣реИ ред рд╕рдВрд╕реНрдХрд░рдг рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪреИрдирд▓ 1.1 ea рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ ред

рд░рд┐рд▓реАрдЬ рдХрд╛ рдЖрдзрд╛рд░ рдЪрд░рдг рднрдВрдбрд╛рд░рдг рдХреА рдирдИ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рджреЛрдиреЛрдВ рд╕рдВрдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдХрд╛рдо рдХреЗ рдЕрдиреБрдХреВрд▓рди (рд╕реНрдЯреЗрдкрд▓ рдФрд░ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП) рд╣реИред рдирдИ рд╕рдВрдЧреНрд░рд╣рдг рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрдИ рдореЗрдЬрдмрд╛рди рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рд╕реЗ рдПрдХ рд╣реА рдореЗрдЬрдмрд╛рди рдкрд░ рд╡рд┐рддрд░рд┐рдд рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЦреЛрд▓рддреА рд╣реИред

рдХрд╛рд░реНрдп рдХреЗ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдЪрд░рдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рдЪрд░рдг рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЧрдгрдирд╛рдУрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдЪреЗрдХрд╕рдореЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХреЛ рдмрджрд▓рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдЕрдиреБрдХреВрд▓рди рдХрд┐рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдФрд╕рдд рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рд╡реЗрдпрд░рдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдмрдирд╛рддрд╛ рд╣реИ, рдЬрдм рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ -рднрдВрдбрд╛рд░рдг рдХреИрд╢ , рдЕрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреЗрдЬрд╝ рд╣реИрдВред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ 1 рд╕реЗрдХрдВрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рд╣реЛрдЧрд╛! рдпрд╣ рдЯреАрдореЛрдВ рдХреЗ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдЪрд░рдгреЛрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ werf deployрдФрд░ werf runред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдХрдВрдЯреЗрдВрдЯ - рдХрдВрдЯреЗрдВрдЯ рдЖрдзрд╛рд░рд┐рдд рдЯреИрдЧрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЯреИрдЧ рдХрд░рдиреЗ рдХреА рд░рдгрдиреАрддрд┐ рдереА , рдЬреЛ рдЕрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИред

рдЖрдЗрдП, werf v1.1 рдореЗрдВ рдкреНрд░рдореБрдЦ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдФрд░ рд╕рд╛рде рд╣реА рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВред

рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ?


рдирдпрд╛ рдЪрд░рдг рдирд╛рдордХрд░рдг рдкреНрд░рд╛рд░реВрдк рдФрд░ рдХреИрд╢ рдЪрд░рдг рдЪрдпрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо


рдирдпрд╛ рдЪрд░рдг рдирд╛рдо рдкреАрдврд╝реА рдирд┐рдпрдоред рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдЕрд╕реЗрдВрдмрд▓реА рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЪрд░рдг рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 2 рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (рдЬреИрд╕рд╛ рдХрд┐ v1.0 рдореЗрдВ) рдФрд░ рд╕рд╛рде рд╣реА рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЕрд╕реНрдерд╛рдпреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдордВрдЪ рдЫрд╡рд┐ рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

werf-stages-storage/myproject:d2c5ad3d2c9fcd9e57b50edd9cb26c32d156165eb355318cebc3412b-1582656767835

... рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ:

werf-stages-storage/PROJECT:SIGNATURE-TIMESTAMP_MILLISEC

рдпрд╣рд╛рдБ:

  • SIGNATURE - рдпрд╣ рдЪрд░рдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИ, рдЬреЛ рдордВрдЪ рд╕рд╛рдордЧреНрд░реА рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдФрд░ Git рдореЗрдВ рд╕рдВрдкрд╛рджрди рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рддрд╛ рд╣реИ
  • TIMESTAMP_MILLISEC - рдпрд╣ рдЙрд╕ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИ рдЬреЛ рдирдИ рдЫрд╡рд┐ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╕рдордп рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред

рдХреИрд╢ рд╕реЗ рдЪрд░рдгреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо Git рдХреЗ рд╕рдВрдмрдВрдзреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ:

  1. Werf рдХреБрдЫ рдЪрд░рдг рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред
  2. рдореЗрдВ рдЪрд░рдгреЛрдВ рднрдВрдбрд╛рд░рдг , рд╡рд╣рд╛рдБ рдПрдХ рджрд┐рдпрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП рдХрдИ рдЪрд░рдгреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред Werf рдЙрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред
  3. рд╡рд░реНрддрдорд╛рди рдЪрд░рдг Git рд╕реЗ рд╕рдВрдмрджреНрдз рд╣реИ (Git-рд╕рдВрдЧреНрд░рд╣, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрджрдо рдЧ Git-рдкреИрдЪ: install, beforeSetup, setup, рдпрд╛ Git-рдирд╡реАрдирддрдо рдкреИрдЪ), рддреЛ рдЪрдпрди рдХреЗрд╡рд▓ рдЙрди рдХрджрдореЛрдВ рдЬреЛ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬреЛ (рд╡рд░реНрддрдорд╛рди рдХреЗ рдкреВрд░реНрд╡рдЬ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИ рд╕рдВрдмрдВрдзрд┐рдд Werf рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ )
  4. рд╢реЗрд╖ рдЙрдкрдпреБрдХреНрдд рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ, рдПрдХ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдирд┐рд░реНрдорд╛рдг рдХреА рддрд╛рд░реАрдЦ рддрдХ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ред

рд╡рд┐рднрд┐рдиреНрди рдЧрд┐рдЯ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдордВрдЪ рдкрд░ рдПрдХ рд╣реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рд░реНрдЬрд╛рдирд╛ рдЗрди рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╢рд╛рдЦрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдХреИрд╢ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛, рднрд▓реЗ рд╣реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реЛрдВред

тЖТ рдкреНрд░рд▓реЗрдЦрди ред

рдордВрдЪ рднрдВрдбрд╛рд░рдг рдореЗрдВ рдЪрд░рдгреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо


рдпрджрд┐ рдХреИрд╢ рд╕реЗ рдЪрд░рдгреЛрдВ рдХреЗ рдЪрдпрди рдХреЗ рджреМрд░рд╛рди рд╡реЗрдпрд░рдл рдХреЛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдЪрд░рдг рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдирдП рдЪрд░рдг рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХреА рдЬрд╛рддреА рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ (рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрд╕реНрдЯ рдкрд░) рдПрдХ рд╣реА рдЪрд░рдг рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╢реБрд░реВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред Werf рдЪрд░рдгреЛрдВ-рд╕рдВрдЧреНрд░рд╣рдг рдЖрд╢рд╛рд╡рд╛рджреА рд▓реЙрдХрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдПрдХ рддрд╛рдЬрд╝рд╛-рдПрдХрддреНрд░ рдХреА рдЧрдИ рдЫрд╡рд┐ рдЪрд░рдгреЛрдВ-рднрдВрдбрд╛рд░рдг рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИ ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рдирдП рдЪрд░рдг рдХреА рдЕрд╕реЗрдВрдмрд▓реА рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╡реЗрдпрд░рдл рд╕реНрдЯреЗрдЬ-рд╕реНрдЯреЛрд░реЗрдЬ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдПрдХрддреНрд░ рдХреА рдЧрдИ рдЫрд╡рд┐ рдХреЛ рддрднреА рдмрдЪрд╛рддрд╛ рд╣реИ, рдЬрдм рд╡рд╣рд╛рдВ рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рдЫрд╡рд┐ рди рд╣реЛ (рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдФрд░ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП - рдХреИрд╢ рд╕реЗ рдЪрд░рдгреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рджреЗрдЦреЗрдВ) ред

рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдЪреБрдиреА рдЧрдИ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ TIMESTAMP_MILLISEC (рдирдпрд╛ рдЪрд░рдг рдирд╛рдордХрд░рдг рдкреНрд░рд╛рд░реВрдк рджреЗрдЦреЗрдВ) рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИ ред рдпрджрд┐ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдЫрд╡рд┐ рдЪрд░рдгреЛрдВ-рднрдВрдбрд╛рд░рдг рдореЗрдВ рдкрд╛рдИ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╡реЗрдпрд░рдл рддрд╛рдЬрд╛ рдПрдХрддреНрд░ рдХреА рдЧрдИ рдЫрд╡рд┐ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ рдФрд░ рдХреИрд╢ рд╕реЗ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ: рдкрд╣рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреЛ рдЫрд╡рд┐ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЦрддреНрдо рдХрд░рддреА рд╣реИ (рд╕рдмрд╕реЗ рддреЗрдЬрд╝) рдЙрд╕реЗ рдЪрд░рдгреЛрдВ-рднрдВрдбрд╛рд░рдг рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ (рдФрд░ рдлрд┐рд░ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред рдПрдХ рдзреАрдореА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд░реНрддрдорд╛рди рдЪрд░рдг рдХреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рдЕрдЧрд▓реА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдХрднреА рднреА рддреЗрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рдХрд░реЗрдЧреАред

тЖТ рдкреНрд░рд▓реЗрдЦрди ред

Dockerfile рдХрд▓реЗрдХреНрдЯрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░


рдлрд┐рд▓рд╣рд╛рд▓, рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдордВрдЪ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдПрдХ рдЪрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИ - dockerfileред рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп, рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдЪреЗрдХрд╕рдо рдХреЛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ context, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рджреМрд░рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рд╕реБрдзрд╛рд░ рд╕реЗ рдкрд╣рд▓реЗ, werf рдиреЗ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдЪреЗрдХрд╕рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛, рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдФрд░ рдореЛрдб рдХреЛ рд╕рдореЗрдЯрд╛ред V1.1 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рд╡реЗрдпрд░рдлрд┐рдЯ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдЧрдгрдирд╛ рдЪреЗрдХрд╕рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЧрд┐рдЯ ls- рдкреЗрдбрд╝ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ ред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЦрд╛рддреЗ рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ .dockerignoreрдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдЯреНрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрди: рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓рд┐рдпрд╛, рдФрд░ рдЖрдХрд╛рд░ рдкрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдирд┐рд░реНрднрд░рддрд╛ contextрдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рднреА рдЕрдирд┐рдпреЛрдЬрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЪреЗрдХрд╕рдо рдореЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред

рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди


Werf v1.1 рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рд╕реЗ рдлрд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп rsync рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ ред рдкрд╣рд▓реЗ, рд╣реЛрд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдврд╝рддреЗ рд╣реБрдП рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

MacOS рдкрд░ рдЖрдпрд╛рдд рдкреНрд░рджрд░реНрд╢рди рдЕрдм рдбреЙрдХрд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдпрд╛рдд рд▓рд┐рдирдХреНрд╕ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд╕рдорд╛рди рд╕рдордп рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рд╛рдордЧреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдЯреИрдЧрд┐рдВрдЧ


Werf v1.1 рдЫрд╡рд┐ рд╕рд╛рдордЧреНрд░реА - рд╕рд╛рдордЧреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдЯреИрдЧрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рддрдерд╛рдХрдерд┐рдд рдЯреИрдЧрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ред рдбреЙрдХрдЯрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдЯреИрдЧ рдЗрди рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЬрдм рдЖрдк werf publish --tags-by-stages-signatureрдпрд╛ werf ci-env --tagging-strategy=stages-signatureрдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ , рддреЛ рддрдерд╛рдХрдерд┐рдд рдЫрд╡рд┐ рдордВрдЪ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдХреЛ рдЗрд╕ рдЫрд╡рд┐ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЧрдгрдирд╛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рдорд╛рди рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЫрд╡рд┐ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИред

рдЫрд╡рд┐ рдХреЗ рдЪрд░рдгреЛрдВ рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ:

  1. рдЗрд╕ рдЫрд╡рд┐ рдХреА рд╕рд╛рдордЧреНрд░реА;
  2. рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХрд░реЗрдВред

рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣рдореЗрд╢рд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрдореЗрдВрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрдорд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЧрд┐рдЯ рдореЗрдВ рдмрджрд▓реЗрдВ рдЬреЛ рдЫрд╡рд┐ рдореЗрдВ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рд╕рд╛рдордЧреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдЯреИрдЧрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЫрд╡рд┐ рдирд╛рдо рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрд╛рд░рдг рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЙрдбреНрд╕ рдХреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреБрдирд░рд╛рд░рдВрдн рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЫрд╡рд┐ рд╕рд╛рдордЧреНрд░реА рдмрджрд▓ рдирд╣реАрдВ рдЧрдИ рд╣реЛред рд╡реИрд╕реЗ, рдпрд╣ рдПрдХ рдХрд╛рд░рдг рд╣реИ рдЬреЛ рдПрдХ рдЧреАрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрдИ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрд░реНрдХреНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╛рдордЧреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдЯреИрдЧрд┐рдВрдЧ, Git рд╢рд╛рдЦрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЯреИрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЯреИрдЧрд┐рдВрдЧ рд╡рд┐рдзрд┐ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдгрд╛рдореА рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА CI рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдЖрджреЗрд╢ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рдЬреЛ рдПрдХ рд╣реА рд╢рд╛рдЦрд╛ рдХреЗ рдХрдИ рдХрдорд┐рдЯреНрд╕ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреА рд╣реИред

рдЬрд░реВрд░реА: рдЕрдм рд╕реЗ, рдЪрд░рдгреЛрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИ рдХреЗрд╡рд▓ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЯреИрдЧрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреАрдо рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ werf ci-env(рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдЯреИрдЧрд┐рдВрдЧ рдпреЛрдЬрдирд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ)ред

тЖТ рдкреНрд░рд▓реЗрдЦрди ред рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд╢рди рднреА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реЛрдЧрд╛ред рдЕрджреНрдпрддрди (3 рдЕрдкреНрд░реИрд▓): рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред

рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрддрд░


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ, рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕реНрддрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред рдЬреЛрдбрд╝рд╛ рд╡рд┐рдХрд▓реНрдк --log-quiet, --log-verbose, --log-debugред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдиреНрдпреВрдирддрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ:



рд╡рд┐рд╕реНрддреГрдд рдЖрдЙрдЯрдкреБрдЯ ( --log-verbose) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп , рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗрдпрд░рдл рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╡реЗрдпрд░рдл рдХреА рдбреАрдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЕрд▓рд╛рд╡рд╛,



рд╡рд┐рд╕реНрддреГрдд рдЖрдЙрдЯрдкреБрдЯ ( --log-debug) рдореЗрдВ, рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓реЙрдЧ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреИрд╕реЗ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рднреА рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдордп рд╡реНрдпрддреАрдд рд╣реЛрддрд╛ рд╣реИ:



рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛рдПрдВ


рдзреНрдпрд╛рди! рдиреАрдЪреЗ рдЪрд┐рд╣реНрдирд┐рдд v1.1 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреА, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣реЛрдЧреАред рдорд▓реНрдЯреАрд╡рд░реНрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрдкрдбреЗрдЯ рдСрдЯреЛ рдЕрдкрдбреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдПрдЧрд╛ ред рдпреЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ v1.1 рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕реНрдерд┐рд░ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ, рдЙрдирдХреЗ рд╕реНрд╡рд░реВрдк рдХреЛ рдореМрдЬреВрджрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рд╡рд┐рднрд┐рдиреНрди рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдерди (рдирдпрд╛)



рд▓рдХреНрд╖реНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡реЗрд░реЗрдлрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдордирдорд╛рдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдЬ рддрдХ, рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ:

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ (рдкреБрд╕реНрддрдХрд╛рд▓рдп / рд░рдЬрд┐рд╕реНрдЯреНрд░реА) *,
  • AWS рдИрд╕реАрдЖрд░,
  • Azure *,
  • рдбреЙрдХрдЯрд░ рд╣рдм
  • рдЬреАрд╕реАрдЖрд░ *,
  • рдЧреАрдереВрдм рдкреИрдХреЗрдЬ
  • GitLab рд░рдЬрд┐рд╕реНрдЯреНрд░реА *,
  • рдмрдВрджрд░рдЧрд╛рд╣ *,
  • рдХреНрд╡реЗред

рдПрдХ рддрд╛рд░рд╛рдВрдХрди рдЙрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ werf рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ, рд▓реЗрдХрд┐рди рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рдеред

рджреЛ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреИрдЧ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡реЗрдпрд░рдл рдореЗрдВ рд▓рд╛рдЧреВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдлрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдпрд╣ AWS ECR, рдбреЙрдХрдЯрд░ рд╣рдм рдФрд░ GitHub рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИред
  • рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рддрдерд╛рдХрдерд┐рдд рдиреЗрд╕реНрдЯреЗрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (рдбреЙрдХрд░ рд╣рдм, рдЧрд┐рдЯрд╣рдм рдкреИрдХреЗрдЬ рдФрд░ рдХреНрд╡реЗ) рдпрд╛ рд╕рдорд░реНрдерди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпреВрдЖрдИ рдпрд╛ рдПрдкреАрдЖрдИ (рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдИрд╕реАрдЖрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред

рд╣рдо рд╕рдорд╛рдзрд╛рди рдХреЗ рдореВрд▓ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рдФрд░ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рдХрд╛рд░реНрдп рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рд╡реЗрдпрд░рдл рдЪрдХреНрд░ рдХреЛ рдХрд╡рд░ рдХрд░рдирд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╡рд┐рддрд░рд┐рдд рдЫрд╡рд┐ рдЕрд╕реЗрдВрдмрд▓реА (тЖС)



рдлрд┐рд▓рд╣рд╛рд▓, werf v1.0 рдФрд░ v1.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд╣реЛрд╕реНрдЯ рдкрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдФрд░ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡реЗрдпрд░рдл рд╡рд┐рддрд░рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдм рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рддреИрдирд╛рддреА рдХрдИ рдордирдорд╛рдиреЗ рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рд╢реБрд░реВ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдпреЗ рд╣реЛрд╕реНрдЯ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ (рдЕрд╕реНрдерд╛рдпреА рдзрд╛рд╡рдХ) рдХреЗ рдмреАрдЪ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рдмрдирд╛рдП рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реЗрдпрд░рдлрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЬрдм рд╡реЗрдпрд░рдл рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрднреА рднреА рдбреИрдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛, рддреЛ рдРрд╕рд╛ рдЕрд╡рд╕рд░ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдореЗрдВ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ werf рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдзреНрдпрд╛рди рджреЗрдВред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкреЙрдбреНрд╕ рдХреЗ рдЕрдВрджрд░ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рдХрд╛рдо рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдерд╛рдиреАрдп рдбреЙрдХрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ (рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкреЙрдб рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдбреЙрдХрд░ рд╕рд░реНрд╡рд░ рддрдХ рдХреЛрдИ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдпрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓ рд░рд╣реА рд╣реИ, рдФрд░ рд╡реЗрдпрд░рдл рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЙрдХрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛)ред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЕрд▓рдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ GitHub рдХрд╛рд░реНрдп рд╕рдорд░реНрдерди (рдирдпрд╛)



рдЗрд╕рдореЗрдВ werf рдкреНрд░рд▓реЗрдЦрди ( рд╕рдВрджрд░реНрдн рдФрд░ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдЕрдиреБрднрд╛рдЧ ), рд╕рд╛рде рд╣реА werf рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ GitHub рдПрдХреНрд╢рди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдПрдлрдПрдлрд╝ рдХреЛ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдзрд╛рд╡рдХреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

CI рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рдореИрдХреЗрдирд┐рдХреНрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдирд╛рдиреЗ / рд░реЛрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд▓реЗрдмрд▓ рд▓рдЧрд╛рдиреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдВрдЧреЗред

рд╕реНрдерд╛рдиреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╣рд░реНрдл рдХреЗ рд╕рд╛рде рддреИрдирд╛рддреА (loyment)


  • рд╕рдВрд╕реНрдХрд░рдг: v1.1
  • рддрд╛рд░реАрдЦреЗрдВ: рдЬрдирд╡рд░реА-рдлрд░рд╡рд░реА рдЕрдкреНрд░реИрд▓
  • рдореБрджреНрджрд╛

рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рджреЛрдиреЛрдВ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ, рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреАрдХреГрдд рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред

Werf рдХреЛ рдСрдкрд░реЗрд╢рди рдХреЗ рдПрдХ рдореЛрдб рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рддреБрд░рдВрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред

рдирдИ рд╕рдлрд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (рдирдпрд╛)



Werf v1.1 рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, cleanupрд╕рд╛рдордЧреНрд░реА рд╕рд╛рдордЧреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдЯреИрдЧрд┐рдВрдЧ рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рд╕рдлрд╛рдИ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ - рдпреЗ рдЪрд┐рддреНрд░ рдЬрдорд╛ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, werf (v1.0 рдФрд░ v1.1) рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рд╕рдлрд╛рдИ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдЯреИрдЧрд┐рдВрдЧ рдпреЛрдЬрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЧрд┐рдЯ рд╢рд╛рдЦрд╛, рдЧрд┐рдЯ рдЯреИрдЧ, рдпрд╛ рдЬреАрдЖрдИрдЯреА рдкреНрд░рддрд┐рдмрджреНрдзред

рд╕рднреА рдЯреИрдЧрд┐рдВрдЧ рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдПрдХреАрдХреГрдд рдЫрд╡рд┐ рд╕рдлрд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ Git рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

  • рдПрди 2 рд╕реЗ рдЬреБрдбрд╝реА рдПрди 1 рдЫрд╡рд┐рдпреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдЯреЛрд░ рди рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЬреАрдЖрдИрдЯреА рд╣реЗрдб (рд╢рд╛рдЦрд╛рдПрдВ рдФрд░ рдЯреИрдЧ) рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрддрд╛ рд╣реИред
  • рдПрди 2 рд╕реЗ рдЬреБрдбрд╝реЗ рдПрди 1 рдЫрд╡рд┐рдпреЛрдВ-рдЪрд░рдгреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдЯреЛрд░ рди рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЬреАрдЖрдИрдЯреА рд╣реЗрдб (рд╢рд╛рдЦрд╛рдПрдВ рдФрд░ рдЯреИрдЧ) рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдХрдорд┐рдЯ рдХрд░рддрд╛ рд╣реИред
  • , - Kubernetes ( kube- namespace'; ).
  • , , Helm-.
  • , HEAD git (, HEAD ) Kubernetes Helm.

(тЖУ)


  • : v1.1
  • : - *

рд╡реЗрдпрд░рдл рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг werf.yaml, рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ ред рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рдЪрд░рдгреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдирд┐рд╖реНрдХрд░реНрд╖ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред

* рдиреЛрдЯ: рдПрдХ рд╡рд┐рддрд░рд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдмрдврд╝реА рд╣реБрдИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╕рдордп рд╕реАрдорд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛, рд╕рд╛рде рд╣реА рдЧреАрдерд╣рдм рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡реЗрдпрд░рдл рдХрд╛ рдЙрдкрдпреЛрдЧред рд╕рдорд╛рдВрддрд░ рдЕрд╕реЗрдВрдмрд▓реА рдЕрдЧрд▓рд╛ рдЕрдиреБрдХреВрд▓рди рдХрджрдо рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рдПрдХрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рддреЗ рд╕рдордп рд╡рд░реНрдЯрд┐рдХрд▓ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рджреЗрддрд╛ рд╣реИред

рд╣реЗрд▓реНрдо 3 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ (()


  • рд╕рдВрд╕реНрдХрд░рдг: v1.2
  • рджрд┐рдирд╛рдВрдХ: рдлрд░рд╡рд░реА-рдорд╛рд░реНрдЪ *

рдЗрд╕рдореЗрдВ рдирдП рд╣реЗрд▓реНрдо 3 рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдФрд░ рдореМрдЬреВрджрд╛ рдкреНрд░рддрд┐рд╖реНрдард╛рдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд┐рджреНрдз, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

* рдиреЛрдЯ: рд╣реЗрд▓реНрдо 3 рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рд╡рд╕реАрдл рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд╣реАрдВ рдЖрдПрдВрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╣реЗрд▓реНрдо 3 рдХреА рд╕рднреА рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ (3-рд╡реЗ-рдорд░реНрдЬ рдФрд░ рдЯрд┐рд▓рд░ рдХреА рдХрдореА) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдлрдИрдПрдл рдореЗрдВ рд▓рд╛рдЧреВ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, werf рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рднреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП Jsonnet ()


  • рд╕рдВрд╕реНрдХрд░рдг: v1.2
  • рддрд┐рдерд┐рдпрд╛рдБ: рдЬрдирд╡рд░реА-рдлрд░рд╡рд░реА рдЕрдкреНрд░реИрд▓-рдордИ

Werf Jsonnet рдкреНрд░рд╛рд░реВрдк рдореЗрдВ Kubernetes рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рд╡рд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред рдЙрд╕реА рд╕рдордп, рд╣рд░реНрдл рд╣реЗрдо рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд░рд╣реЗрдЧрд╛ рдФрд░ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЧреЛ рднрд╛рд╖рд╛ рдХреЗ рдкреИрдЯрд░реНрди, рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдмрдбрд╝реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реАрдорд╛ рд╣реИ, рдФрд░ рдЗрди рдкреИрдЯрд░реНрди рдХреА рдХреЛрдб рд╕рдордЭрджрд╛рд░реА рднреА рдЧреНрд░рд╕реНрдд рд╣реИред

рдХреБрдмреЗрд░рдиреЗрдЯ рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рд╡рд░рдг рдкреНрд░рдгрд╛рд▓реА (рдЬреИрд╕реЗ рдХрд┐ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ (тЖУ) рдХреЗ рдЕрдВрджрд░ рдХрд╛рдо рдХрд░реЗрдВ


  • рд╕рдВрд╕реНрдХрд░рдг: v1.2
  • рддрд┐рдерд┐рдпрд╛рдБ: рдЕрдкреНрд░реИрд▓-рдордИ рдордИ-рдЬреВрди

рдЙрджреНрджреЗрд╢реНрдп: рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдзрд╛рд╡рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рдЖрд╡реЗрджрди рд╡рд┐рддрд░рдг рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ред рдЙрдиред рдирдИ рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛, рдЙрдирдХрд╛ рдкреНрд░рдХрд╛рд╢рди, рд╕рдлрд╛рдИ рдФрд░ рддреИрдирд╛рддреА рд╕реАрдзреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкреЙрдбреНрд╕ рд╕реЗ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдКрдкрд░ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рджреЗрдЦреЗрдВ) ред

рдЗрд╕реЗ рдбреЙрдХрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмрд┐рдирд╛ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд┐рд▓реНрдб рдореЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдпрд╛рдиреА, рдПрдХ рдХрдиреАрдХреЛ рдЬреИрд╕рд╛ рдирд┐рд░реНрдорд╛рдг рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг)ред

Werf Kubernetes рдХрд╛ рдирд┐рд░реНрдорд╛рдг рди рдХреЗрд╡рд▓ рдбреЙрдХрдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд░реЗрдЧрд╛, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рд╕реНрдЯреЗрдкрд▓ рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдФрд░ Ansible рдХреЗ рд╕рд╛рде рднреА рд╣реЛрдЧрд╛ред

рдУрдкрди рд╕реЛрд░реНрд╕ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХрджрдо


рд╣рдо рдЕрдкрдиреЗ рд╕рдореБрджрд╛рдп ( GitHub , Telegram ) рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧ рд╡реЗрдпрд░рдл рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВ, рд╕рдордЭреЗрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВред

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╣рдорд╛рд░реА рдЯреАрдо рдХреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯрд╣рдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреЛрд░реНрдбреЛрдВ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ ред рдЕрдм рдЖрдк рддрддреНрдХрд╛рд▓ рдпреЛрдЬрдирд╛рдУрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдХрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:


рдореБрджреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  • рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣рдЯрд╛ рджрд┐рдпрд╛ред
  • рдореМрдЬреВрджрд╛ рдПрдХрд▓ рдкреНрд░рд╛рд░реВрдк, рд╡рд┐рд╡рд░рдгреЛрдВ рдФрд░ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреА рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рддрдХ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред
  • рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рдирдП рдореБрджреНрджреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ред

рд╕рдВрд╕реНрдХрд░рдг v1.1 рдХреИрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ


рд╕рдВрд╕реНрдХрд░рдг рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪреИрдирд▓ 1.1 рдИрдИ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ ( рд╕реНрдерд┐рд░ рдФрд░ рд░реЙрдХ-рд╕реЙрд▓рд┐рдб рдЪреИрдирд▓реЛрдВ рдореЗрдВ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рд╕реНрдерд┐рд░ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдИрдПрдПрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд┐рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрд▓реНрдлрд╛ рдФрд░ рдмреАрдЯрд╛ рдЪреИрдирд▓реЛрдВ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ )ред рдпрд╣ рдорд▓реНрдЯреАрд╡рд░реНрдл рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдХреНрд░рд┐рдп рд╣реЛрддрд╛ рд╣реИ :

source $(multiwerf use 1.1 ea)
werf COMMAND ...

рдирд┐рд╖реНрдХрд░реНрд╖


рдирдП рд╕реНрдЯреЗрдЬ рд╕реНрдЯреЛрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдФрд░ рд╕реНрдЯреЗрдкрд▓ рдФрд░ рдбреЙрдХрдлрд╛рдЗрд▓ рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд▓реЗрдХреНрдЯрд░ рдкреНрд░рджрд░реНрд╢рди, рд╡реЗрдпрд░рдл рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВред рдпреЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬрд▓реНрдж рд╣реА рдПрдХ рд╣реА рд░рд┐рд▓реАрдЬрд╝ v1.1 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА рдФрд░ рд╕реНрд╡рддрдГ рдЕрдкрдбреЗрдЯ рддрдВрддреНрд░ ( рдорд▓реНрдЯреАрд╡рд░реНрдлрд╝ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПрдВрдЧреА ред

рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ, рдПрдХ рд╕рд╛рдордЧреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдЯреИрдЧрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рдЬреЛрдбрд╝реА рдЧрдИ , рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рдгрдиреАрддрд┐ рдмрди рдЧрдИред рдПрдХ рд▓реЙрдЧ рднреА рдмреБрдирд┐рдпрд╛рджреА рдЖрдЬреНрдЮрд╛рдУрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛: werf build, werf publish, werf deploy, werf dismiss, werf cleanupред

рдЕрдЧрд▓рд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрджрдо рд╡рд┐рддрд░рд┐рдд рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред V1.0 рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдЕрд╕реЗрдВрдмрд▓рд┐рдпрд╛рдБ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмрди рдЧрдИ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдзрд┐рдХ рд╡реЗрдпрд░рдл рд╡реИрд▓реНрдпреВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ: рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдХреЗ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рд╡рд┐рднрд┐рдиреНрди CI / CD рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдкрд░реНрдЪрд░ рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рд╕рд╛рде рд╣реА GHHub рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЗрд╕рд▓рд┐рдП, рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕рдордп рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рджреЛрдиреЛрдВ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдЬрд▓реНрджреА рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЦрдмрд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ! рдФрд░ рдПрдХ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЧреАрдерд╣рдм рджреНрд╡рд╛рд░рд╛ рдбреНрд░реЙрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ , рдПрдХ рдореМрдЬреВрджрд╛ рдПрдХ рдвреВрдВрдвреЗрдВ рдФрд░ рдПрдХ рдкреНрд▓рд╕ рд▓рдЧрд╛рдПрдВ, рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдПрдВ рдпрд╛ рдмрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рджреЗрдЦреЗрдВред

рдкреБрдирд╢реНрдЪ


рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ:


All Articles