рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдЕрдкрдиреЗ GitOps рдЯреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдмрд╛рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред
рд╕рд╛рдЗрдЯ рд╕рдВрд░рдЪрдирд╛ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рдЧреМрд░ рдХрд░реЗрдВ: рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ, рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓реЗ рдкреЗрдЬ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдореЗрдиреВ рддреИрдпрд╛рд░ рдХрд░рдирд╛ред - рд╣рдо рдХрднреА рдирд╣реАрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдЗрдП рдбрд╛рдпрдиреЗрдорд┐рдХ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдореБрджреНрджреЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдФрд░ рд╕рд╛рде рдореЗрдВ рдЬреБрдбрд╝реА рд╕реАрдЖрдИ/рд╕реАрдбреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рдереЛрдбрд╝рд╛ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВред
рдкрд░рд┐рдЪрдп: рд╕рд╛рдЗрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реЗрдпрд░рдлрд╝ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЙрд╕рдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рд╡рд┐рдХрд╛рд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐:
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдП рдмрд┐рдирд╛ рдирдП рд╡реЗрдпрд░рдлрд╝ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП рдФрд░, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рд╡реЗрдпрд░рдлрд╝ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ;
- рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдХрд╛рдлреА рдЧрд╣рди рд╡рд┐рдХрд╛рд╕ рд╣реБрдЖ рд╣реИ: рдирдП рд╕рдВрд╕реНрдХрд░рдг рджрд┐рди рдореЗрдВ рдХрдИ рдмрд╛рд░ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ;
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдореИрдиреНрдпреБрдЕрд▓ рд╕рдВрдЪрд╛рд▓рди рдХрдо рд╕реЗ рдХрдо рдХрдард┐рди рд╣реИ;
- рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдЕрд░реНрдердкреВрд░реНрдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдкрдирд╛рддреА рд╣реИ
рд╡рд░реНрдЬрд╝рдирд┐рдВрдЧ , 5 рд╕реНрдерд┐рд░рддрд╛ рдЪреИрдирд▓реЛрдВ рдХреЗ рд╕рд╛рдеред рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд┐рд░рддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдЪреИрдирд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдХреНрд░рдорд┐рдХ рдорд╛рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИ: рдЕрд▓реНрдлрд╛ рд╕реЗ рд░реЙрдХ-рд╕реЙрд▓рд┐рдб рддрдХ; - рд╕рд╛рдЗрдЯ рдореЗрдВ рдПрдХ рд░реВрд╕реА-рднрд╛рд╖рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬреЛ рдореБрдЦреНрдп (рдпрд╛рдиреА, рдЕрдВрдЧреНрд░реЗрдЬреА-рднрд╛рд╖рд╛) рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ "рдЬреАрд╡рд┐рдд рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реИ" (рдпрд╛рдиреА, рдЬрд┐рд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдЕрджреНрдпрддрди рдХреА рдЬрд╛рддреА рд╣реИ)ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдпрд╣ рд╕рдм "рдЖрдВрддрд░рд┐рдХ рд░рд╕реЛрдИ" рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реЗ рдХреБрдЫ рдРрд╕рд╛ рдкреЗрд╢ рдХрд░рдирд╛ рдЬреЛ "рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ", рд╣рдордиреЗ рдХрд┐рдпрд╛ рдЕрд▓рдЧ рд╡реЗрдпрд░рдлрд╝ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдФрд░ рдЕрдкрдбреЗрдЯ рдЯреВрд▓ - рдХреНрдпрд╛
рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдЪрдпрди рдореЗрдиреВ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЪреИрдирд▓ рдореЗрдВ рд╡реЗрдпрд░рдлрд╝ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкрддреЗ рд╕реЗ
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╕рд╛рдЗрдЯ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
- рд░реВрдЯ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЦреБрд▓рддрд╛ рд╣реИ),
- рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдХреНрд░рд┐рдп рдЕрджреНрдпрддрди рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
werf.io/v1.0-рдмреАрдЯрд╛ ).
рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ /docs
рд╡реЗрдпрд░рдлрд╝ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕рдВрдмрдВрдзрд┐рдд рдХрдорд╛рдВрдб (jekyll build
), рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ Git рдЯреИрдЧ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред
рдХреЗрд╡рд▓ рдпрд╣ рдЬреЛрдбрд╝рдирд╛ рдмрд╛рдХреА рд╣реИ:
- рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реНрд╡рдпрдВ (рд╡реЗрд░реНрдлрд╝) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- CI/CD рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ GitLab CI рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ;
- рдФрд░ рдпрд╣ рд╕рдм, рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред
рдХрд╛рд░реНрдп
рдЖрдЗрдП рдЕрдм рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рд╡рд░реНрдгрд┐рдд рд╕рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ:
- рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди рдЪреИрдирд▓ рдкрд░ рд╡реЗрдпрд░рдлрд╝ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╛рдЗрдЯ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП.
- рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрднреА-рдХрднреА рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рд╕рд╛рдЗрдЯ рдХреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВ.
рд╕рдВрдмрдВрдзрд┐рдд Git рдЯреИрдЧ рд╕реЗ рдХрд┐рд╕реА рднреА рдЪреИрдирд▓ рдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╛рдЗрдЯ рдХреЛ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдорд┐рд▓реЗрдВрдЧреА:
- рдЪреВрдВрдХрд┐ рдЪреИрдирд▓реЛрдВ рдкрд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдЙрди рдЪреИрдирд▓реЛрдВ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд╣рд╛рдВ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдЖрдЦрд╝рд┐рд░рдХрд╛рд░, рд╣рд░ рдЪреАрдЬрд╝ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
- рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЪреИрдирд▓реЛрдВ рдХрд╛ рд╕реЗрдЯ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рд╕рдордп, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪреИрдирд▓реЛрдВ рдкрд░ рдЕрд░реНрд▓реА-рдПрдХреНрд╕реЗрд╕ 1.1 рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдХреЛрдИ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдордп рдХреЗ рд╕рд╛рде рд╡реЗ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЕрд╕реЗрдВрдмрд▓реА рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдмрджрд▓рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ.
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЪреБрдирдирд╛
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкреЙрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдерд┐рд░ рд╡реЗрдпрд░рдлрд╝ рд░рд┐рд▓реАрдЬрд╝ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рдмрдврд╝реЗрдЧрд╛ред рдФрд░ рдпрд╣, рдмрджрд▓реЗ рдореЗрдВ, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рдХрд░рддрд╛ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЕрдкрдирд╛ HTTP рд╕рд░реНрд╡рд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рд▓реЛрдб рдХреЗ рд╕рд╛рдеред рдмреЗрд╢рдХ, рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрди рд▓рд╛рдЧрдд рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╣рдордиреЗ рд╡рд╣реА рд░рд╛рд╕реНрддрд╛ рдЕрдкрдирд╛рдпрд╛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рдЫрд╡рд┐ рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдирд╛. рд╕рд╛рдЗрдЯ рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдЖрдБрдХрдбрд╝реЗ рдПрдирдЬреАрдЖрдИрдПрдирдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдПрдирдЬреАрдЖрдИрдПрдирдПрдХреНрд╕ рдЗрдирдЧреНрд░реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрддрд╛ рд╣реИред рдПрдХ рд╕рд░рд▓ рд╕рдВрд░рдЪрдирд╛ - рдПрдХ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди - рдЖрдкрдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рддреИрдирд╛рддреА (рд▓реЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЛ рдЫрд╡рд┐рдпрд╛рдВ рдПрдХрддреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдПрдХ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрдХрд┐рдЯ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░реА рдбреЗрд╡ рд╕рд░реНрдХрд┐рдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдореБрдЦреНрдп рд╕рд░реНрдХрд┐рдЯ рдХреЗ рд╕рд╛рде рдбреЗрд╡ рд╕рд░реНрдХрд┐рдЯ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдореАрдХреНрд╖рд╛ рд╕рдорд┐рддрд┐ рд╕реЗ рд╕рд╛рдЗрдЯ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд░реВрдЯрд┐рдВрдЧ рдЗрдирдЧреНрд░реЗрд╕ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИред
рд╡реЗрдпрд░рдлрд╝ рдмрдирд╛рдо рдЧрд┐рдЯ рдХреНрд▓реЛрди рдФрд░ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдкрдпреБрдХреНрдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЯреИрдЧ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рд╣рд░ рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдХреНрд▓реЛрдирд┐рдВрдЧ рдХрд░рдХреЗ, рд╕реВрдЪреА рд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЯреИрдЧ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рднреА рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдПрдХ рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдСрдкрд░реЗрд╢рди рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдореЗрдВ рдЧреИрд░-рддреБрдЪреНрдЫ рдирд┐рд░реНрджреЗрд╢ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ... рдПрдХ рдФрд░ рдЧрдВрднреАрд░ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред
рдпрд╣рд╛рдВ рд╡реЗрдпрд░рдлрд╝ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реНрд╡рдпрдВ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддреА рд╣реИ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░рддреА рд╣реИ рд╕реНрдорд╛рд░реНрдЯ рдХреИрд╢рд┐рдВрдЧ рдФрд░ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд░рд╣рд╛ рд╣реИ fetch
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рд╣рдо рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ docs
), рдЬреЛ рдЬреЛрдбрд╝реЗ рдЧрдП рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджреЗрдЧрд╛ред
рдЪреВрдБрдХрд┐ рдЬреЗрдХрд┐рд▓ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рд╕реНрдереИрддрд┐рдХ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛
рд╣рдо werf.yaml рд▓рд┐рдЦрддреЗ рд╣реИрдВ
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡реЗрдпрд░рдлрд╝ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд╕рдВрдпреЛрдЬрди рдХреЗ рджреМрд░рд╛рди рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рддрдиреА рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреА, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ (рд╕рдЦреНрддреА рд╕реЗ рдХрд╣реЗрдВ рддреЛ, рд╣рдо рдЕрднреА рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред
рд╡реЗрдпрд░рдлрд╝ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ werf.yaml
), рдФрд░ рдпрд╣ рдЗрд╕реЗ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ рддреБрд░рдВрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП!) рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдореЗрдВ рджреЛ рдЫрд╡рд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ: werf-doc
╨╕ werf-dev
рд╡рд┐рднрд┐рдиреНрди рд╕рд░реНрдХрд┐рдЯреЛрдВ рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред
рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЙрдирдХреА рд░рдЪрдирд╛ рд╣реИ:
-
RELEASES
- рд░рд┐рд▓реАрдЬрд╝ рдХреА рд╕реВрдЪреА рдФрд░ рд╡реЗрдпрд░рдлрд╝ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐, рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реНрдерд╛рди-рдкреГрдердХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ<╨Э╨Ю╨Ь╨Х╨а_╨а╨Х╨Ы╨Ш╨Ч╨Р>%<╨Э╨Ю╨Ь╨Х╨а_╨Т╨Х╨а╨б╨Ш╨Ш>
. рдЙрджрд╛рд╣рд░рдг:1.0%v1.0.4-beta.20
-
CHANNELS
- рдЪреИрдирд▓реЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рд╡реЗрдпрд░рдлрд╝ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐, рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реНрдерд╛рди-рдкреГрдердХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ<╨Ъ╨Р╨Э╨Р╨Ы>%<╨Э╨Ю╨Ь╨Х╨а_╨Т╨Х╨а╨б╨Ш╨Ш>
. рдЙрджрд╛рд╣рд░рдг:1.0-beta%v1.0.4-beta.20 1.0-alpha%v1.0.5-alpha.22
-
ROOT_VERSION
- рд╡реЗрдпрд░рдлрд╝ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рд╛рдЗрдЯ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрдЪреНрдЪрддрдо рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг:v1.0.4-beta.20
-
REVIEW_SHA
- рд╕рдореАрдХреНрд╖рд╛ рд╕рдорд┐рддрд┐ рдХрд╛ рд╣реИрд╢ рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдг рд▓реВрдк рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпреЗ рд╡реЗрд░рд┐рдПрдмрд▓ GitLab CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рднрд░реЗ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рдиреАрдЪреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ werf.yaml
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдкрд░ рдЬрд╛рдПрдВ, рдЙрдиреНрд╣реЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╕реЗ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
{{ $_ := set . "WerfVersions" (cat (env "CHANNELS") (env "RELEASES") | splitList " ") }}
{{ $Root := . }}
{{ $_ := set . "WerfRootVersion" (env "ROOT_VERSION") }}
{{ $_ := set . "WerfReviewCommit" (env "REVIEW_SHA") }}
рд╕рд╛рдЗрдЯ рдХреЗ рд╕реНрдереИрддрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЖрдо рддреМрд░ рдкрд░ рдЙрди рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рд░реВрдЯ рд╕рдВрд╕реНрдХрд░рдг рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдбреЗрд╡ рд╕рд░реНрдХрд┐рдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдмреНрд▓реЙрдХ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВрдЧреЗ define
- рдмрд╛рдж рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП include
. рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ:
-
Version
- рдЙрддреНрдкрдиреНрди рд╕рдВрд╕реНрдХрд░рдг (рдЯреИрдЧ рдирд╛рдо); -
Channel
- рдЕрджреНрдпрддрди рдЪреИрдирд▓ рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ; -
Commit
- рдХрдорд┐рдЯ рд╣реИрд╢, рдпрджрд┐ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рд╕рдореАрдХреНрд╖рд╛ рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; - рдкреНрд░рд╕рдВрдЧред
рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рд╡рд░рдг
{{- define "doc_artifact" -}}
{{- $Root := index . "Root" -}}
artifact: doc-{{ .Channel }}
from: jekyll/builder:3
mount:
- from: build_dir
to: /usr/local/bundle
ansible:
install:
- shell: |
export PATH=/usr/jekyll/bin/:$PATH
- name: "Install Dependencies"
shell: bundle install
args:
executable: /bin/bash
chdir: /app/docs
beforeSetup:
{{- if .Commit }}
- shell: echo "Review SHA - {{ .Commit }}."
{{- end }}
{{- if eq .Channel "root" }}
- name: "releases.yml HASH: {{ $Root.Files.Get "releases.yml" | sha256sum }}"
copy:
content: |
{{ $Root.Files.Get "releases.yml" | indent 8 }}
dest: /app/docs/_data/releases.yml
{{- else }}
- file:
path: /app/docs/_data/releases.yml
state: touch
{{- end }}
- file:
path: "{{`{{ item }}`}}"
state: directory
mode: 0777
with_items:
- /app/main_site/
- /app/ru_site/
- file:
dest: /app/docs/pages_ru/cli
state: link
src: /app/docs/pages/cli
- shell: |
echo -e "werfVersion: {{ .Version }}nwerfChannel: {{ .Channel }}" > /tmp/_config_additional.yml
export PATH=/usr/jekyll/bin/:$PATH
{{- if and (ne .Version "review") (ne .Channel "root") }}
{{- $_ := set . "BaseURL" ( printf "v%s" .Channel ) }}
{{- else if ne .Channel "root" }}
{{- $_ := set . "BaseURL" .Channel }}
{{- end }}
jekyll build -s /app/docs -d /app/_main_site/{{ if .BaseURL }} --baseurl /{{ .BaseURL }}{{ end }} --config /app/docs/_config.yml,/tmp/_config_additional.yml
jekyll build -s /app/docs -d /app/_ru_site/{{ if .BaseURL }} --baseurl /{{ .BaseURL }}{{ end }} --config /app/docs/_config.yml,/app/docs/_config_ru.yml,/tmp/_config_additional.yml
args:
executable: /bin/bash
chdir: /app/docs
git:
- url: https://github.com/flant/werf.git
to: /app/
owner: jekyll
group: jekyll
{{- if .Commit }}
commit: {{ .Commit }}
{{- else }}
tag: {{ .Version }}
{{- end }}
stageDependencies:
install: ['docs/Gemfile','docs/Gemfile.lock']
beforeSetup: '**/*'
includePaths: 'docs'
excludePaths: '**/*.sh'
{{- end }}
рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдХрд╛ рдирд╛рдо рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП. рд╣рдо рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪреИрдирд▓ рдХрд╛ рдирд╛рдо (рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдорд╛рди) рдЬреЛрдбрд╝рдХрд░ .Channel
) рдХрд▓рд╛рдХреГрддрд┐ рдХреЗ рдирд╛рдо рдХреЗ рдкреНрд░рддреНрдпрдп рдХреЗ рд░реВрдк рдореЗрдВ: artifact: doc-{{ .Channel }}
. рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЙрдиреНрд╣реАрдВ рдирд╛рдореЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдХрд┐рд╕реА рдХрд▓рд╛рдХреГрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡реЗрдпрд░рдлрд╝ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: build_dir
рдЖрдкрдХреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд░рди рдХреЗ рдмреАрдЪ рдЬреЗрдХрд┐рд▓ рдХреИрд╢ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдкреБрдирд░реНрд╕рдВрдпреЛрдЬрди рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬреА рдЖрддреА рд╣реИ.
рдЖрдкрдиреЗ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реЛрдЧрд╛ releases.yml
рдПрдХ YAML рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЗрд╕реЗ рд╕рд╢рд░реНрдд рдХрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ if
рдЬрд╛рдУ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдФрд░ рдбрд┐рдЬрд╛рдЗрди {{ $Root.Files.Get "releases.yml" | sha256sum }}
рдордВрдЪ рдкрд░ .Channel
рд╣реИ root
) рдлрд╝рд╛рдЗрд▓ рд╣реИрд╢ releases.yml
рдкреВрд░реЗ рдЪрд░рдг рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ Ansible рдХрд╛рд░реНрдп (рдкреИрд░рд╛рдореАрдЯрд░) рдХреЗ рдирд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ name
). рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдмрджрд▓рддреЗ рд╕рдордп рд╕рд╛рдордЧреНрд░реА рдлрд╝рд╛рдЗрд▓ releases.yml
рд╕рдВрдмрдВрдзрд┐рдд рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреГрдкрдпрд╛ рдмрд╛рд╣рд░реА рднрдВрдбрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВред рд╕реЗ рдПрдХ рдХрд▓рд╛рдХреГрддрд┐ рдХреА рдЫрд╡рд┐ рдореЗрдВ /docs
, рдФрд░ рдкрд╛рд░рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрд╡рд╢реНрдпрдХ рдЯреИрдЧ рдпрд╛ рд╕рдореАрдХреНрд╖рд╛ рд╕рдорд┐рддрд┐ рдХрд╛ рдбреЗрдЯрд╛ рддреБрд░рдВрдд рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЪреИрдирд▓реЛрдВ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░ рдПрдХ рд▓реВрдк рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ .WerfVersions
╨▓ werf.yaml
:
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ dict "Version" $VersionsDict._1 "Channel" $VersionsDict._0 "Root" $Root | include "doc_artifact" }}
---
{{ end -}}
рдХреНрдпреЛрдВрдХрд┐ рд▓реВрдк рдХрдИ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ (рд╣рдореЗрдВ рдРрд╕реА рдЖрд╢рд╛ рд╣реИ), рдЙрдирдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рдЕрдиреБрдХреНрд░рдо ---
(рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ
рдЗрд╕реА рддрд░рд╣, рд▓реЗрдХрд┐рди рд▓реВрдк рдХреЗ рдмрд┐рдирд╛, рд╣рдо "рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ" рдХреЗ рд▓рд┐рдП рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ: рд░реВрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рд╕рдореАрдХреНрд╖рд╛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП:
{{ dict "Version" .WerfRootVersion "Channel" "root" "Root" $Root | include "doc_artifact" }}
---
{{- if .WerfReviewCommit }}
{{ dict "Version" "review" "Channel" "review" "Commit" .WerfReviewCommit "Root" $Root | include "doc_artifact" }}
{{- end }}
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рдореАрдХреНрд╖рд╛ рд╕рдорд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдХреЗрд╡рд▓ рддрднреА рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рд╣реЛ .WerfReviewCommit
.
рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рддреИрдпрд╛рд░ рд╣реИрдВ - рдЖрдпрд╛рдд рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ!
рдЕрдВрддрд┐рдо рдЫрд╡рд┐, рдЬрд┐рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдирд┐рдпрдорд┐рдд рдПрдирдЬреАрдЖрдИрдПрдирдПрдХреНрд╕ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ nginx.conf
рдФрд░ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рд╕реЗ рд╕реНрдерд┐рд░. рд╕рд╛рдЗрдЯ рдХреЗ рд░реВрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░ рд▓реВрдк рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ .WerfVersions
рдЪреИрдирд▓ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП + рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рдирд╛рдордХрд░рдг рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЕрдкрдирд╛рдпрд╛ рдерд╛ред рдЪреВрдБрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рджреЛ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рд╡реЗрдпрд░рдлрд╝-рдбреЙрдХ рдХрд╛ рд╡рд┐рд╡рд░рдг
image: werf-doc
from: nginx:stable-alpine
ansible:
setup:
- name: "Setup /etc/nginx/nginx.conf"
copy:
content: |
{{ .Files.Get ".werf/nginx.conf" | indent 8 }}
dest: /etc/nginx/nginx.conf
- file:
path: "{{`{{ item }}`}}"
state: directory
mode: 0777
with_items:
- /app/main_site/assets
- /app/ru_site/assets
import:
- artifact: doc-root
add: /app/_main_site
to: /app/main_site
before: setup
- artifact: doc-root
add: /app/_ru_site
to: /app/ru_site
before: setup
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ $Channel := $VersionsDict._0 -}}
{{ $Version := $VersionsDict._1 -}}
- artifact: doc-{{ $Channel }}
add: /app/_main_site
to: /app/main_site/v{{ $Channel }}
before: setup
{{ end -}}
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ $Channel := $VersionsDict._0 -}}
{{ $Version := $VersionsDict._1 -}}
- artifact: doc-{{ $Channel }}
add: /app/_ru_site
to: /app/ru_site/v{{ $Channel }}
before: setup
{{ end -}}
рдЕрддрд┐рд░рд┐рдХреНрдд рдЫрд╡рд┐, рдЬреЛ рдореБрдЦреНрдп рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде, рдбреЗрд╡ рд╕рд░реНрдХрд┐рдЯ рдкрд░ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рд╣реИ, рдореЗрдВ рд╕рд╛рдЗрдЯ рдХреЗ рдХреЗрд╡рд▓ рджреЛ рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рд╕рдореАрдХреНрд╖рд╛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╕рд╛рдЗрдЯ рдХрд╛ рд░реВрдЯ рд╕рдВрд╕реНрдХрд░рдг (рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ рд╣реИрдВ рдФрд░, рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ) , рдбреЗрдЯрд╛ рдЬрд╛рд░реА рдХрд░реЗрдВ)ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрддрд┐рд░рд┐рдХреНрдд рдЫрд╡рд┐ рдХреЗрд╡рд▓ рдЖрдпрд╛рдд рдЕрдиреБрднрд╛рдЧ рдореЗрдВ (рдФрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдирд╛рдо рдореЗрдВ) рдореБрдЦреНрдп рдЫрд╡рд┐ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрдЧреА:
image: werf-dev
...
import:
- artifact: doc-root
add: /app/_main_site
to: /app/main_site
before: setup
- artifact: doc-root
add: /app/_ru_site
to: /app/ru_site
before: setup
{{- if .WerfReviewCommit }}
- artifact: doc-review
add: /app/_main_site
to: /app/main_site/review
before: setup
- artifact: doc-review
add: /app/_ru_site
to: /app/ru_site/review
before: setup
{{- end }}
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рдореАрдХреНрд╖рд╛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдХреЗрд╡рд▓ рддрднреА рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд╕реЗрдЯ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ REVIEW_SHA
. рдпрджрд┐ рдХреЛрдИ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдирд╣реАрдВ рд╣реИ рддреЛ рд╡реЗрдпрд░рдлрд╝-рдбреЗрд╡ рдЫрд╡рд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ REVIEW_SHA
, рд▓реЗрдХрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЕрд╕реЗрдВрдмрд▓реА рддреИрдпрд╛рд░ рд╣реИ! рдЖрдЗрдП рд╕реАрдЖрдИ/рд╕реАрдбреА рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
GitLab CI рдореЗрдВ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
рдмрд┐рд▓реНрдб рдЪрд▓рд╛рддреЗ рд╕рдордп рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ werf.yaml
. рдпрд╣ REVIEW_SHA рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо GitHub рд╣реБрдХ рд╕реЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ generate_artifacts
, рдЬреЛ рджреЛ GitLab рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:
- рдлрд╝рд╛рдЗрд▓
releases.yml
рд░рд┐рд▓реАрдЬрд╝ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде, - рдлрд╝рд╛рдЗрд▓
common_envs.sh
, рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА generate_artifacts
рдЖрдк рд╣рдорд╛рд░реЗ рдореЗрдВ рдкрд╛рдПрдВрдЧреЗ common_envs.sh
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ werf рдХрд╛ рдХрд╛рд░реНрдп рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ. рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
export RELEASES='1.0%v1.0.6-4'
export CHANNELS='1.0-alpha%v1.0.7-1 1.0-beta%v1.0.7-1 1.0-ea%v1.0.6-4 1.0-stable%v1.0.6-4 1.0-rock-solid%v1.0.6-4'
export ROOT_VERSION='v1.0.6-4'
рдЖрдк рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ source
.
рдЕрдм рдордЬрд╝реЗ рд╡рд╛рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЖрдпрд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рджреЛрдиреЛрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ werf.yaml
рдпрд╣ рдерд╛ рд╡рд╣реА рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рднреАрддрд░. рдпрджрд┐ рдпрд╣ рд╢рд░реНрдд рдкреВрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди рд╡реЗрдпрд░рдлрд╝ рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░рдгреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдФрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддреИрдирд╛рддреА, рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗред рдЗрд╕рд╕реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐... рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЫрд╡рд┐ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛрдЧреА.
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рд╕рд╛рдЗрдЯ рдЫрд╡рд┐ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рджреМрд░рд╛рди рд░рд┐рд▓реАрдЬрд╝ рдФрд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдорд╛рди рд╣реИ, рдФрд░ рддреИрдирд╛рддреА рдХреЗ рд╕рдордп рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рддреИрдирд╛рддреА рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧреА: рдЖрдЦрд╝рд┐рд░рдХрд╛рд░, рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рдЕрднреА рддрдХ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред
рдпрджрд┐ рдкреАрдврд╝реА werf.yaml
рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИ), рддреЛ рдРрд╕реЗ рдбреЗрдЯрд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рднреАрддрд░ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдпрджрд┐ рдмрд╛рд╣рд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдХреНрд╕рд░ рдмрджрд▓рддреЗ рд░рд╣рддреЗ рд╣реИрдВред
рд╣рдо рдХрд░реЗрдВрдЧреЗ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВ GitLab рдореЗрдВ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ (рдкреВрд░реНрд╡ рдирд┐рд░реНрдорд╛рдг) рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлреЙрд░реНрдо рдореЗрдВ рдЖрдЧреЗ рдкреНрд░реЗрд╖рд┐рдд рдХрд░реЗрдВ GitLab рд╕реАрдЖрдИ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп. рдпрд╣ рдЖрдкрдХреЛ рд╕рдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдиреМрдХрд░рд┐рдпреЛрдВ (рдирд┐рд░реНрдорд╛рдг, рддреИрдирд╛рддреА, рд╕рдлрд╛рдИ) рдХреЛ рдЪрд▓рд╛рдиреЗ рдФрд░ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ werf.yaml
.
рдордВрдЪ рдХреА рд╕рд╛рдордЧреНрд░реА рдкреВрд░реНрд╡ рдирд┐рд░реНрдорд╛рдг рдлрд╝рд╛рдЗрд▓ .gitlab-ci.yml
:
Prebuild:
stage: prebuild
script:
- bash ./generate_artifacts 1> common_envs.sh
- cat ./common_envs.sh
artifacts:
paths:
- releases.yml
- common_envs.sh
expire_in: 2 week
рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдореЗрдВ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдорд╛рдирдХ GitLab CI рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рддреИрдирд╛рддреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдмрд┐рд▓реНрдб рдФрд░ рддреИрдирд╛рддреАред рд╣рдо рд╡реЗрдпрд░рдлрд╝ GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реНрд╡рдпрдВ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛рдиреА, рдЬрдм GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВ)ред рдЙрдирдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ GitLab рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдгреЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╕реАрдЖрдИ/рд╕реАрдбреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ -> рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЯреНрд░рд┐рдЧрд░реНрд╕, рдФрд░ рдлрд┐рд░ GitHub рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрдмрд╣реБрдХ рдмрдирд╛рдПрдВ (рд╕реЗрдЯрд┐рдВрдЧреНрд╕ -> рд╡реЗрдмрд╣реБрдХ).
рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
Build:
stage: build
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- werf build-and-publish --stages-storage :local
except:
refs:
- schedules
dependencies:
- Prebuild
GitLab рд╕реНрдЯреЗрдЬ рд╕реЗ рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдЬ рдореЗрдВ рджреЛ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдЧрд╛ рдкреВрд░реНрд╡ рдирд┐рд░реНрдорд╛рдг, рдЗрд╕рд▓рд┐рдП рд╣рдо рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдпрд╛рд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЪрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ source common_envs.sh
. рд╣рдо рдПрдХ рд╢реЗрдбреНрдпреВрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╢реЗрдбреНрдпреВрд▓ рдХреЗ рдореБрддрд╛рдмрд┐рдХ рд╣рдо рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд▓рд╛рдПрдВрдЧреЗ - рдРрд╕реЗ рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЪрд░рдг рдореЗрдВ, рд╣рдо рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗ - YAML рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрд╛рджрди рдФрд░ рд╡рд┐рдХрд╛рд╕ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ:
.base_deploy: &base_deploy
stage: deploy
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- werf deploy --stages-storage :local
dependencies:
- Prebuild
except:
refs:
- schedules
Deploy to Production:
<<: *base_deploy
variables:
WERF_KUBE_CONTEXT: prod
environment:
name: production
url: werf.io
only:
refs:
- master
except:
variables:
- $REVIEW_SHA
refs:
- schedules
Deploy to Test:
<<: *base_deploy
variables:
WERF_KUBE_CONTEXT: dev
environment:
name: test
url: werf.test.flant.com
except:
refs:
- schedules
only:
variables:
- $REVIEW_SHA
рдХрд╛рд░реНрдп рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрджрд░реНрдн рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╡реЗрдпрд░рдлрд╝ рдХреЛ рддреИрдирд╛рддреА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП (WERF_KUBE_CONTEXT
), рдФрд░ рд▓реВрдк рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдирд╛ (environment.name
╨╕ environment.url
), рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐... рдкреНрд░рд╢реНрдирдЧрдд рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдВ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдореЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдЕрдВрддрд┐рдо рдкрд░рд┐рд╖реНрдХрд░рдг
рдЪреВрдВрдХрд┐ рд╡реЗрдпрд░рдлрд╝ рд╕рдВрд╕реНрдХрд░рдг рдЕрдХреНрд╕рд░ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдирдИ рдЫрд╡рд┐рдпрд╛рдВ рдЕрдХреНрд╕рд░ рдмрдирд╛рдИ рдЬрд╛рдПрдВрдЧреА, рдФрд░ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝реЗрдЧреАред рдЗрд╕рд▓рд┐рдП, рдиреАрддрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЫрд╡рд┐ рд╕рдлрд╛рдИ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред рдпрд╣ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ.
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
- рдЗрд╕рдореЗрдВ рдПрдХ рд╕рдлрд╝рд╛рдИ рдЪрд░рдг рдЬреЛрдбрд╝реЗрдВ
.gitlab-ci.yml
; - рд╕рдлрд╝рд╛рдИ рдХрд╛рд░реНрдп рдХрд╛ рдЖрд╡рдзрд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдЬреЛрдбрд╝реЗрдВ;
- рд░рд╛рдЗрдЯ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рдЗрд╕рдореЗрдВ рдПрдХ рд╕рдлрд╝рд╛рдИ рдЪрд░рдг рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ .gitlab-ci.yml
:
Cleanup:
stage: cleanup
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- docker login -u nobody -p ${WERF_IMAGES_CLEANUP_PASSWORD} ${WERF_IMAGES_REPO}
- werf cleanup --stages-storage :local
only:
refs:
- schedules
рд╣рдордиреЗ рд▓рдЧрднрдЧ рдпрд╣ рд╕рдм рдкрд╣рд▓реЗ рд╣реА рдереЛрдбрд╝рд╛ рдКрдкрд░ рджреЗрдЦ рд▓рд┐рдпрд╛ рд╣реИ - рдХреЗрд╡рд▓ рдЗрд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдПрдХ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ (рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рд░реА GitLab CI рдХрд╛рд░реНрдп рдЯреЛрдХрди рдирд╣реАрдВ рд╣реИ) рдРрд╕реЗ рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВ) рдЯреЛрдХрди рдХреЛ GitLab рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдХрд╛ рдорд╛рди рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП WERF_IMAGES_CLEANUP_PASSWORD
рдкрд░рд┐рдпреЛрдЬрдирд╛ (рд╕реАрдЖрдИ/рд╕реАрдбреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ -> рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕).
рдЖрд╡рд╢реНрдпрдХ рд╢реЗрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рдлрд╛рдИ рдХрд╛рд░реНрдп рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЗрд╕рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╕реАрдЖрдИ/рд╕реАрдбреА ->
рдЕрдиреБрд╕реВрдЪрд┐рдпреЛрдВ.
рдмрд╕ рдЗрддрдирд╛ рд╣реА: рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрдм рд▓рдЧрд╛рддрд╛рд░ рдЕрдкреНрд░рдпреБрдХреНрдд рдЫрд╡рд┐рдпреЛрдВ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рднрд╛рдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рд▓реЗрдЦ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ
рдкрд░рд┐рдгрд╛рдо
- рд╣рдореЗрдВ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЕрд╕реЗрдВрдмрд▓реА рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИ: рдкреНрд░рддрд┐ рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рдХрд▓рд╛рдХреГрддрд┐ред
- рдЕрд╕реЗрдВрдмрд▓реА рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ рдФрд░ рд╡реЗрдпрд░рдлрд╝ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рд╣реЛрдиреЗ рдкрд░ рдореИрдиреНрдпреБрдЕрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ: рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- рджреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдпрд╣ рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдпрдерд╛рд╕рдВрднрд╡ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЬрдм рд╡реЗрдпрд░рдлрд╝ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд╕рдореАрдХреНрд╖рд╛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯрд╣рдм рд╣реБрдХ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзрд┐рдд рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдЕрдкреНрд░рдпреБрдХреНрдд рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рд╡реЗрдпрд░рдлрд╝ рдиреАрддрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдлрд╛рдИ рдХрд░рдиреЗ рд╕реЗ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░рд╣реЗрдЧреАред
рдирд┐рд╖реНрдХрд░реНрд╖
- рд╡реЗрдпрд░рдлрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╕реНрд╡рдпрдВ рдЕрд╕реЗрдВрдмрд▓реА рдХреА рдХреИрд╢рд┐рдВрдЧ рдФрд░ рдмрд╛рд╣рд░реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- рдмрд╛рд╣рд░реА Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рд╣рд░ рдмрд╛рд░ рд╕рдВрдкреВрд░реНрдг рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдпрд╛ рдореБрд╢реНрдХрд┐рд▓ рдЕрдиреБрдХреВрд▓рди рддрд░реНрдХ рдХреЗ рд╕рд╛рде рд╡реНрд╣реАрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рд╡реЗрдпрд░рдлрд╝ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
fetch
рдФрд░ рдХреЗрд╡рд▓ рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛ. - рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЧреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
werf.yaml
рдЖрдкрдХреЛ рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред - рд╡реЗрдпрд░рдлрд╝ рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬреА рдЖрддреА рд╣реИ - рдХреИрд╢ рдХреЗ рдХрд╛рд░рдг, рдЬреЛ рд╕рднреА рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИред
- рд╡реЗрдпрд░рдлрд╝ рдХреНрд▓реАрдирдЕрдк рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдкреБрдирд╢реНрдЪ
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рднреА рдкрдврд╝реЗрдВ:
- ┬л
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рд┐рд▓реАрдЬрд╝ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХрдорд╛рдВрдб рдЪрд▓рд╛рдирд╛ "; - ┬л
рд╡реЗрдпрд░рдлрд╝ рдФрд░ рдЧрд┐рдЯрд▓реИрдм рд╕реАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдмрдирд╛рдПрдВ рдФрд░ рддреИрдирд╛рдд рдХрд░реЗрдВ "; - ┬л
рдЬрдЯрд┐рд▓ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдХреЛ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдпрд░рдлрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ "; - ┬л
рдкреЗрд╢ рд╣реИ рд╡реЗрдпрд░рдлрд╝ 1.0 рд╕реНрдЯреЗрдмрд▓: GitOps рдХрд╛ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ, рд╕реНрдерд┐рддрд┐ рдФрд░ рдпреЛрдЬрдирд╛рдПрдБ '.
рд╕реНрд░реЛрдд: www.habr.com