рд╕рд╛рдордЧреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдЯреИрдЧрд┐рдВрдЧ рдореЗрдВ рд╣рд░реНрдл рдХрд▓реЗрдХреНрдЯрд░: рдХреНрдпреЛрдВ рдФрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?



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

рд░реЛрд▓рдмреИрдХ рдПрдХ рдЬреАрдЖрдИрдЯреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ


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

рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рд╣реИрдВ рдЬрдм рд╕реЗрд╡рд╛рдПрдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рдЬреБрдбрд╝реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдВрдЧреЗ рдФрд░ рдЙрдирдХреА рд░рд┐рд╣рд╛рдИ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ CI / CD рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрдЧреАред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдХреНрд╕рд░ рдПрдХ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрдИ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдореЗрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реЛрдирд╛ ... рдПрдХ рд╕реНрдкрд╖реНрдЯ рдУрд╡рд░рдХрд┐рд▓ рд╣реИред рдпрд╣ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЖрдЧреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА: рдХрдИ рдРрд╕реЗ рд╕реВрдХреНрд╖реНрдордЬреАрд╡ рдПрдХрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдЖрдИ / рд╕реАрдбреА рдореЗрдВ рдПрдХрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрддреЗ рд╣реИрдВред

Git рдЯреИрдЧ рдФрд░ Git рдЯреИрдЧрд┐рдВрдЧ


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

рдПрдХ рдирдпрд╛ Git рдЯреИрдЧ рдмрдирд╛рддреЗ рд╕рдордп - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - Docker рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ Docker рдЯреИрдЧ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛:

  • myregistry.org/myproject/frontend:v1.1.10
  • myregistry.org/myproject/myservice1:v1.1.10
  • myregistry.org/myproject/myservice2:v1.1.10
  • myregistry.org/myproject/myservice3:v1.1.10
  • myregistry.org/myproject/myservice4:v1.1.10
  • myregistry.org/myproject/myservice5:v1.1.10
  • myregistry.org/myproject/database:v1.1.10

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

рд╕рдорд╕реНрдпрд╛ : рдРрд╕реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд╣рд╛рдВ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ vykata (Git-tag) рдиреЗ рдЫрд╡рд┐ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрд╕рдХрд╛ Docker-tag рдЬреЛ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рдмрд╛рд░ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдХреБрдЫ рд╕рд░рд▓ рд╕рдВрднрд╡ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕ рдкреБрдирд░рд╛рд░рдВрдн рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдг рдирд╣реАрдВ рдерд╛ред

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

Git рдкреНрд░рддрд┐рдмрджреНрдз рдЯреИрдЧрд┐рдВрдЧ


Werf рдореЗрдВ Git commits рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЯреИрдЧрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рднреА рд╣реИред

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

рд╣рд╛рд▓рд╛рдВрдХрд┐, Git рдХрдорд┐рдЯ рджреНрд╡рд╛рд░рд╛ рдЯреИрдЧ рдХрд░рдиреЗ рдкрд░ Git рд╢рд╛рдЦрд╛рдУрдВ рдпрд╛ Git рдЯреИрдЧреНрд╕ рдХреЗ рд╕рдорд╛рди рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ:

  • , , Docker- .
  • merge-, , Docker- .
  • , Git, , Docker- .

Git-


Git рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЯреИрдЧрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рд╣реИред

рдПрдХ рд╢рд╛рдЦрд╛ рдХреЗ рдирд╛рдо рд╕реЗ рдЯреИрдЧрд┐рдВрдЧ рддрдм рддрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЗрд╕ рд╢рд╛рдЦрд╛ рдХреЗ рдХрдорд╛рдиреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рд░реВрдк рд╕реЗ рдХрд╛рд▓рд╛рдиреБрдХреНрд░рдорд┐рдХ рдХреНрд░рдо рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдХреЗ рдмреАрдЪ рдПрдХ рдЫреЛрдЯреЗ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╢рд╛рдЦрд╛ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ push'ahs рдХреЗ рд╕рд╛рде, рдкреБрд░рд╛рдиреА рдкреНрд░рддрд┐рдмрджреНрдз рдХреЛ рдирдП рд╕реЗ рдмрд╛рдж рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЫрд╡рд┐ рдХрд╛ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдЧрд┐рдЯ рд╢рд╛рдЦрд╛ рдХреЗ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдпрд╛ рдорд┐рдЯрд╛ рджреЗрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕реАрдЖрдИ / рд╕реАрдбреА рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧрд┐рдЯрд▓реИрдм рд╕реАрдЖрдИ рдореЗрдВ, рдмрд╛рдж рдХреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдХрдорд┐рдЯ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рднреА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдРрд╕реА рдореВрд▓рднреВрдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

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


рддреЛ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдЯреИрдЧрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ - рд╕рд╛рдордЧреНрд░реА рджреНрд╡рд╛рд░рд╛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЯреИрдЧ рдХрд░рдирд╛ред

рдбреЙрдХрд░ рдЯреИрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, Git рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ рдирд╣реАрдВ (Git рдмреНрд░рд╛рдВрдЪ, Git рдЯреИрдЧ ...) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХрд╕рдо рдЬреБрдбрд╝реЗ:

  • . - . , ;
  • Git. , Git- werf, -.

рдЫрд╡рд┐ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЗ рддрдерд╛рдХрдерд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдРрд╕реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЯреИрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ ред

: рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдХрджрдо рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ from, before-install, git-archive, install, imports-after-install, before-setup, ... git-latest-patchрдЖрджрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ - рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЪрд░рдг (рд╕реНрдЯреЗрдЬ рд╣рд╕реНрддрд╛рдХреНрд╖рд░) ред

рдЕрдВрддрд┐рдо рдЫрд╡рд┐, рдЗрди рдЪрд░рдгреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░, рдЗрди рдЪрд░рдгреЛрдВ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЗ рддрдерд╛рдХрдерд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХреА рдЬрд╛рддреА рд╣реИ - рдЪрд░рдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░ - рдЬреЛ рдЫрд╡рд┐ рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХрд░рддрд╛ рд╣реИред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдореЗрдВ werf.yamlрдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдкрдиреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реЛрдВрдЧреЗ рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдбреЙрдХрд░ рдЯреИрдЧред

рдордВрдЪ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЗрди рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ:

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

рдпрд╣ рдЕрдм рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЯреИрдЧрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рднреА CI рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП werf рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреИрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ werf рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдЯреАрдо рдХреЗ рд▓рд┐рдП рд╕рдВрдЧрдд рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ werf publish: --tag-by-stages-signature=true|false

рд╕реАрдЖрдИ-рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдЯреИрдЧрд┐рдВрдЧ рдХреА рд░рдгрдиреАрддрд┐ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рд╣реИ werf ci-envред рдкрд╣рд▓реЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ werf ci-env --tagging-strategy=tag-or-branchред рдЕрдм, рдпрджрд┐ рдЖрдк werf ci-env --tagging-strategy=stages-signatureрдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╣рд░реНрдл рдЯреИрдЧрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ stages-signatureред рдЖрджреЗрд╢ werf ci-envрд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрдорд╛рдВрдб werf build-and-publish(рдпрд╛ werf publish) рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЭрдВрдбреЗ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ , рдЗрд╕рд▓рд┐рдП, рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб:

werf publish --stages-storage :local --images-repo registry.hello.com/web/core/system --tag-by-stages-signature

... рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

  • registry.hello.com/web/core/system/backend:4ef339f84ca22247f01fb335bb19f46c4434014d8daa3d5d6f0e386d
  • registry.hello.com/web/core/system/frontend:f44206457e0a4c8a54655543f749799d10a9fe945896dab1c16996c6

рдпрд╣рд╛рдБ 4ef339f84ca22247f01fb335bb19f46c4434014d8daa3d5d6f0e386dрдЫрд╡рд┐ рдХреЗ рдЪрд░рдгреЛрдВ рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИ backend, рдФрд░ рдЫрд╡рд┐ f44206457e0a4c8a54655543f749799d10a9fe945896dab1c16996c6рдХреЗ рдЪрд░рдгреЛрдВ рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИ frontendред

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

CI рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕:

type multiwerf && source <(multiwerf use 1.1 beta)
type werf && source <(werf ci-env gitlab)
werf build-and-publish|deploy

рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрд▓рдмреНрдз рд╣реИ:


рд╕рдВрдкреВрд░реНрдг


  • рдирдпрд╛ рд╡рд┐рдХрд▓реНрдк werf publish --tag-by-stages-signature=true|falseред
  • рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдирдпрд╛ рдореВрд▓реНрдп werf ci-env --tagging-strategy=stages-signature|tag-or-branch(рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣реЛрдЧрд╛ stages-signature)ред
  • рдпрджрд┐ рдЧрд┐рдЯ рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рдЯреИрдЧрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реЗ ( WERF_TAG_GIT_COMMITрдпрд╛ рд╡рд┐рдХрд▓реНрдк werf publish --tag-git-commit COMMIT) рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЪрд░рдг-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЯреИрдЧрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ ред
  • рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдПрдХ рдирдИ рдЯреИрдЧрд┐рдВрдЧ рдпреЛрдЬрдирд╛ рдореЗрдВ рддреБрд░рдВрдд рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИрдВред
  • рд╡реЗрдпрд░рдл 1.1 рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╕рдордп, рдкреБрд░рд╛рдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдирдИ рдЯреИрдЧрд┐рдВрдЧ рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреБрд░рд╛рдиреЗ рдЯреИрдЧ-рдпрд╛-рд╢рд╛рдЦрд╛ рдЕрднреА рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред

рд╕рд╛рдордЧреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдЯреИрдЧрд┐рдВрдЧ рдЖрд▓реЗрдЦ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХреА рдЧрдИ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИ:

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

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

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


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


All Articles