рддрдкрд╛рдИрдВ рдЕрдм рдирд┐рдпрдорд┐рдд рдбрдХрд░рдлрд╛рдЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ werf рдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ

рдХрд╣рд┐рд▓реНрдпреИ рднрдиреНрджрд╛ рдврд┐рд▓реЛ рд░рд╛рдореНрд░реЛред рд╡рд╛ рдХрд╕рд░реА рд╣рд╛рдореАрд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдЫрд╡рд┐рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдирд┐рдпрдорд┐рдд рдбрдХрд░рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдирдЧрд░реЗрд░ рд▓рдЧрднрдЧ рдЧрдореНрднреАрд░ рдЧрд▓реНрддреА рдЧрд░реНрдпреМрдВред

рддрдкрд╛рдИрдВ рдЕрдм рдирд┐рдпрдорд┐рдд рдбрдХрд░рдлрд╛рдЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ werf рдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ

рд╣рд╛рдореА рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рд╡рд╛рдл - GitOps рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЬреБрди рдХреБрдиреИ рдкрдирд┐ CI/CD рдкреНрд░рдгрд╛рд▓реАрд╕рдБрдЧ рдПрдХреАрдХреГрдд рд╣реБрдиреНрдЫ рд░ рд╕рдореНрдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреАрд╡рдирдЪрдХреНрд░рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:

  • рдЪрд┐рддреНрд░рд╣рд░реВ рд╕рдЩреНрдХрд▓рди рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд,
  • Kubernetes рдорд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рддреИрдирд╛рддреА рдЧрд░реНрдиреБрд╣реЛрд╕реН,
  • рд╡рд┐рд╢реЗрд╖ рдиреАрддрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдкреНрд░рдпреЛрдЧ рдирдЧрд░рд┐рдПрдХрд╛ рдЫрд╡рд┐рд╣рд░реВ рдореЗрдЯрд╛рдЙрдиреБрд╣реЛрд╕реНред


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

рдкреГрд╖реНрдарднреВрдорд┐: рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рдЫрд╡рд┐ рдХрд▓реЗрдХреНрдЯрд░

рдпреЛ werf рдорд╛ рдЫрд╡рд┐ рдХрд▓реЗрдХреНрдЯрд░ рд╕рдВрдЧ рдХреЗ рднрдпреЛ: рд╕рд╛рдорд╛рдиреНрдп Dockerfile рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдерд┐рдПрдиред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдЗрддрд┐рд╣рд╛рд╕рдорд╛ рджреНрд░реБрдд рд░реВрдкрдорд╛ рд╣реЗрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рдпреЛ рд╕рдорд╕реНрдпрд╛ рдкрд╣рд┐рд▓реЗ рдиреИ werf рдХреЛ рдкрд╣рд┐рд▓реЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рджреЗрдЦрд╛ рдкрд░реНтАНрдпреЛ (рддреНрдпрд╕рдкрдЫрд┐ рдЕрдЭреИ рдкрдирд┐ dapp рдХреЛ рд░реВрдкрдорд╛ рдЪрд┐рдирд┐рдиреНрдЫ).

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

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

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

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рджреБрдИ рдкрдЯрдХ рд╕реЛрдЪреЗ рдмрд┐рдирд╛, рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдХреЛ рд╕рд╛рде рд╣рд╛рдореА рдЖрдлреИрд▓рд╛рдИ рд╕рд╢рд╕реНрддреНрд░ рдмрдирд╛рдЙрдБрдЫреМрдВ (рддрд▓ рд╣реЗрд░) рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдмрд╛рдЯреЛ рд╣рд┐рд░реНрдХрд╛рдП рдЖрдлреНрдиреИ DSL! рдЙрджреНрджреЗрд╢реНрдпрд╣рд░реВ рдЕрдиреБрд╕рд╛рд░, рдпреЛ рдЪрд░рдгрд╣рд░реВрдорд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд░реНрдгрди рдЧрд░реНрди рд░ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдпреА рдЪрд░рдгрд╣рд░реВрдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдиреЗ рдЙрджреНрджреЗрд╢реНрдп рдерд┐рдпреЛред рд░ рдкреВрд░рдХ рдмрдирд╛рдпреЛ рдЖрдлреНрдиреИ рдХрд▓реЗрдХреНрдЯрд░, рдЬрд╕рд▓реЗ DSL рд▓рд╛рдИ рдЕрдиреНрддрд┐рдо рдЧреЛрд▓рдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНтАНрдпреЛ - рдПрдХ рдПрдХрддреНрд░рд┐рдд рдЫрд╡рд┐ред рд╕реБрд░реБрдорд╛ DSL рд░реБрдмреАрдорд╛ рдерд┐рдпреЛ, рддрд░ рдЬрд╕реНрддреИ Golang рдорд╛ рд╕рдВрдХреНрд░рдордг - рд╣рд╛рдореНрд░реЛ рдХрд▓реЗрдХреНрдЯрд░рдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди YAML рдлрд╛рдЗрд▓рдорд╛ рд╡рд░реНрдгрди рдЧрд░реНрди рд╕реБрд░реБ рднрдпреЛред

рддрдкрд╛рдИрдВ рдЕрдм рдирд┐рдпрдорд┐рдд рдбрдХрд░рдлрд╛рдЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ werf рдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рд░реБрдмреАрдорд╛ рдбреНрдпрд╛рдкрдХреЛ рд▓рд╛рдЧрд┐ рдкреБрд░рд╛рдиреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди

рддрдкрд╛рдИрдВ рдЕрдм рдирд┐рдпрдорд┐рдд рдбрдХрд░рдлрд╛рдЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ werf рдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
YAML рдорд╛ werf рдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рд▓рдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди

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

NB: рдпрд╕ рд╕рдордпрдорд╛, рд╣рд╛рдореНрд░реЛ рдХрд▓реЗрдХреНрдЯрд░, рдЬрд╕рд▓реЗ рдЖрдлреНрдиреИ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди (YAML рдорд╛) рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрдЫ рд░ рд╕реНрдЯреЗрдкрд▓ рдХрд▓реЗрдХреНрдЯрд░ рднрдирд┐рдиреНрдЫ, рдкрд╣рд┐рд▓реЗ рдиреИ рдПрдХрджрдо рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдгрдорд╛ рд╡рд┐рдХрд╕рд┐рдд рднрдПрдХреЛ рдЫред рдпрд╕рдХреЛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдЫреБрдЯреНрдЯреИ рд▓реЗрдЦрдХреЛ рдпреЛрдЧреНрдп рдЫ, рд░ рдЖрдзрд╛рд░рднреВрдд рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ рдХрд╛рдЧрдЬрд╛рдд.

рд╕рдорд╕реНрдпрд╛рдХреЛ рдЪреЗрддрдирд╛

рддрд░ рд╣рд╛рдореАрд▓реЗ рдорд╣рд╕реБрд╕ рдЧрд░реНрдпреМрдВ, рд░ рддреБрд░реБрдиреНрддреИ рд╣реЛрдЗрди, рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдЧрд▓реНрддреА рдЧрд░реЗрдХрд╛ рдерд┐рдпреМрдВ: рд╣рд╛рдореАрд▓реЗ рдХреНрд╖рдорддрд╛ рдердкреЗрдХрд╛ рдЫреИрдиреМрдВ рдорд╛рдирдХ Dockerfile рдорд╛рд░реНрдлрдд рдЫрд╡рд┐рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдПрдЙрдЯреИ рдЕрдиреНрдд-рджреЗрдЦрд┐-рдЕрдиреНрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рдПрдХреАрдХреГрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдЕрд░реНрдерд╛рдд рдЫрд╡рд┐рд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рд╕рдлрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН)ред Kubernetes рдорд╛ рддреИрдирд╛рддреА рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдЙрди рд░ Dockerfile рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдирдЧрд░реНрдиреЗ рдХрд╕рд░реА рд╕рдореНрднрд╡ рдЫ, рдЕрд░реНрдерд╛рддреНред рдзреЗрд░реИрдЬрд╕реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЫрд╡рд┐рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рдорд╛рдирдХ рддрд░рд┐рдХрд╛? ..

рдпреЛ рдкреНрд░рд╢реНрдирдХреЛ рдЬрд╡рд╛рдл рджрд┐рдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, рд╣рд╛рдореА рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрджрдЫреМрдВред рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рдбрдХрд░рдлрд╛рдЗрд▓ (рд╡рд╛ рдбрдХрд░рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕реЗрдЯ) рдЫ рд░ werf рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рдХреЗ рд╣реБрдиреНрдЫ?

NB: рдЦреИрд░, рддрдкрд╛рдЗрдБ рдХрд┐рди werf рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рд╛рдиреБрд╣реБрдиреНрдЫ? рдореБрдЦреНрдп рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдирд┐рдореНрдирдорд╛ рдЖрдЙрдБрдЫрдиреН:

  • рдЫрд╡рд┐ рд╕рдлрд╛рдИ рд╕рд╣рд┐рдд рдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЪрдХреНрд░;
  • рдПрдХрд▓ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдмрд╛рдЯ рдПрдХреИ рдкрдЯрдХ рдзреЗрд░реИ рдЫрд╡рд┐рд╣рд░реВрдХреЛ рдЕрд╕реЗрдВрдмрд▓реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛;
  • рд╣реЗрд▓реНрдо-рдХрдореНрдкреНрдпрд╛рдЯрд┐рдмрд▓ рдЪрд╛рд░реНрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ред

рддрд┐рдиреАрд╣рд░реВрдХреЛ рдердк рдкреВрд░реНрдг рд╕реВрдЪреАрдорд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреГрд╖реНрда.

рддреНрдпрд╕реЛрднрдП, рдпрджрд┐ рдкрд╣рд┐рд▓реЗ рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдбрдХрд░рдлрд╛рдЗрд▓ рдкреБрди: рд▓реЗрдЦреНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реЗрдХрд╛ рдерд┐рдпреМрдВ рднрдиреЗ, рдЕрдм рд╣рд╛рдореА рдЦреБрд╕реАрд╕рд╛рде рднрдиреНрдиреЗрдЫреМрдВ: "рд╡реЗрд░реНрдлрд▓рд╛рдИ рддрдкрд╛рдИрдВрдХреЛ рдбрдХрд░рдлрд╛рдЗрд▓рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рджрд┐рдиреБрд╣реЛрд╕реН!"

рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ?

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

рдЕрд░реНрдХреЛ рдШреЛрд╖рдгрд╛ рдЧрд░реМрдВ Dockerfile рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореВрд▓ рдорд╛:

FROM ubuntu:18.04
RUN echo Building ...

рд░ рд╣рд╛рдореА рдШреЛрд╖рдгрд╛ рдЧрд░реНрдиреЗрдЫреМрдВ werf.yamlрдЬрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ Dockerfile:

configVersion: 1
project: dockerfile-example
---
image: ~
dockerfile: ./Dockerfile

рд╕рдмреИ! рдмрд╛рдпрд╛рдБ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН werf build:

рддрдкрд╛рдИрдВ рдЕрдм рдирд┐рдпрдорд┐рдд рдбрдХрд░рдлрд╛рдЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ werf рдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ

рдердк рд░реВрдкрдорд╛, рддрдкрд╛рдЗрдБ рдирд┐рдореНрди рдШреЛрд╖рдгрд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ werf.yaml рдПрдХреИрдЪреЛрдЯрд┐ рд╡рд┐рднрд┐рдиреНрди рдбрдХрд░рдлрд╛рдЗрд▓рд╣рд░реВрдмрд╛рдЯ рдзреЗрд░реИ рдЫрд╡рд┐рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди:

configVersion: 1
project: dockerfile-example
---
image: backend
dockerfile: ./dockerfiles/Dockerfile-backend
---
image: frontend
dockerfile: ./dockerfiles/Dockerfile-frontend

рдЕрдиреНрддрдорд╛, рдпрд╕рд▓реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рдг рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкрдирд┐ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдЬрд╕реНрддреИ --build-arg ╨╕ --add-host - werf рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдорд╛рд░реНрдлрддред Dockerfile рдЫрд╡рд┐ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХреЛ рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдорд╛ рдЙрдкрд▓рдмреНрдз рдЫ рдХрд╛рдЧрдЬрд╛рдд рдкреГрд╖реНрда.

рдпрд╕рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ?

рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдХреНрд░рдордорд╛, рдбрдХрд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рд╕реНрдерд╛рдиреАрдп рддрд╣рд╣рд░реВрдХреЛ рдорд╛рдирдХ рдХреНрдпрд╛рд╕ред рдпрджреНрдпрдкрд┐, рдХреЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ рддреНрдпреЛ werf рдкрдирд┐ рд╣реЛ рдбрдХрд░рдлрд╛рдЗрд▓ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд▓рд╛рдИ рдпрд╕рдХреЛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рдПрдХреАрдХреГрдд рдЧрд░реНрджрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдХреЗ рд╣реЛ?

  1. рдбрдХрд░рдлрд╛рдЗрд▓рдмрд╛рдЯ рдмрдиреЗрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐рдорд╛ рдПрдЙрдЯрд╛ рдЪрд░рдг рднрдирд┐рдиреНрдЫ dockerfile (Werf рдорд╛ рдХреБрди рдЪрд░рдгрд╣рд░реВ рдЫрдиреН рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдердк рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╣рд╛рдБ).
  2. рд╕реНрдЯреЗрдЬрдХреЛ рд▓рд╛рдЧрд┐ dockerfile werf рд▓реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЧрдгрдирд╛ рдЧрд░реНрджрдЫ рдЬреБрди рдбрдХрд░рдлрд╛рдЗрд▓ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд╕рд╛рдордЧреНрд░реАрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫред рдЬрдм Dockerfile рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ, рдЪрд░рдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ dockerfile рд░ werf рд▓реЗ рдирдпрд╛рдБ Dockerfile рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд╕рд╛рде рдпрд╕ рдЪрд░рдгрдХреЛ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдкреНрд░рд╛рд░рдореНрдн рдЧрд░реНрджрдЫред рдпрджрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрди рднрдиреЗ, werf рд▓реЗ рдХреНрдпрд╛рд╕рдмрд╛рдЯ рдЫрд╡рд┐ рд▓рд┐рдиреНрдЫ (werf рдорд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдкреНрд░рдпреЛрдЧ рдмрд╛рд░реЗ рдердк рд╡рд┐рд╡рд░рдг рдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ).
  3. рдЕрд░реНрдХреЛ, рд╕рдВрдХрд▓рд┐рдд рдЫрд╡рд┐рд╣рд░реВ рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ werf publish (рд╡рд╛ werf build-and-publish) рд░ Kubernetes рдорд╛ рддреИрдирд╛рддреА рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдбрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЫрд╡рд┐рд╣рд░реВ рдорд╛рдирдХ werf рд╕рдлрд╛рдИ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд╕рдлрд╛ рдЧрд░рд┐рдиреЗрдЫ, рдЕрд░реНрдерд╛рддреНред рдкреБрд░рд╛рдирд╛ рддрд╕реНрдмрд┐рд░рд╣рд░реВ (N рджрд┐рди рднрдиреНрджрд╛ рдкреБрд░рд╛рдиреЛ), рдЕрд╡рд╕реНрдерд┐рдд рдирднрдПрдХрд╛ Git рд╢рд╛рдЦрд╛рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫрд╡рд┐рд╣рд░реВ, рд░ рдЕрдиреНрдп рдиреАрддрд┐рд╣рд░реВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕рдлрд╛ рд╣реБрдиреЗрдЫрдиреНред

рдпрд╣рд╛рдБ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рдмрд┐рдиреНрджреБрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рд╡рд┐рд╡рд░рдг рдХрд╛рдЧрдЬрд╛рддрдорд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ:

рдиреЛрдЯрд╣рд░реВ рд░ рд╕рд╛рд╡рдзрд╛рдиреАрд╣рд░реВ

1. рдмрд╛рд╣реНрдп URL ADD рдорд╛ рд╕рдорд░реНрдерд┐рдд рдЫреИрди

рд╣рд╛рд▓ рдпреЛ рдирд┐рд░реНрджреЗрд╢рдирдорд╛ рдмрд╛рд╣реНрдп URL рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдорд░реНрдерд┐рдд рдЫреИрди ADDред рдирд┐рд░реНрджрд┐рд╖реНрдЯ URL рдорд╛ рд╕реНрд░реЛрдд рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджрд╛ Werf рд▓реЗ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рд╕реБрд░реБ рдЧрд░реНрджреИрдиред рд╣рд╛рдореА рдЪрд╛рдБрдбреИ рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рдердкреНрдиреЗ рдпреЛрдЬрдирд╛ рдЫред

2. рддрдкрд╛рдИрдВрд▓реЗ рдЫрд╡рд┐рдорд╛ .git рдердкреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдердкреНрджреИ .git рдЫрд╡рд┐рдорд╛ - рдПрдХ рдЦрд░рд╛рдм рдЦрд░рд╛рдм рдЕрднреНрдпрд╛рд╕ рд░ рдпрд╣рд╛рдБ рдХрд┐рди рдЫ:

  1. рдпрджрд┐ .git рдЕрдиреНрддрд┐рдо рдЫрд╡рд┐рдорд╛ рд░рд╣рдиреНрдЫ, рдпрд╕рд▓реЗ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдЙрд▓реНрд▓рдЩреНрдШрди рдЧрд░реНрджрдЫ 12 рдХрд╛рд░рдХ рдПрдк: рдЕрдиреНрддрд┐рдо рдЫрд╡рд┐ рдПрдХрд▓ рдХрдорд┐рдЯрдорд╛ рд▓рд┐рдЩреНрдХ рдЧрд░рд┐рдПрдХреЛ рд╣реБрдирд╛рд▓реЗ, рдпреЛ рдЧрд░реНрди рд╕рдореНрднрд╡ рд╣реБрдБрджреИрди git checkout рдордирдорд╛рдиреА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ред
  2. .git рдЫрд╡рд┐рдХреЛ рдЖрдХрд╛рд░ рдмрдврд╛рдЙрдБрдЫ (рднрдгреНрдбрд╛рд░ рдареВрд▓реЛ рд╣реБрди рд╕рдХреНрдЫ рдХрд┐рдирднрдиреЗ рдареВрд▓рд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдпрд╕рдорд╛ рдердкрд┐рдПрдХреЛ рдерд┐рдпреЛ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдореЗрдЯрд╛рдЗрдпреЛ)ред рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдХрд╛рд░реНрдп-рд░реБрдЦрдХреЛ рдЖрдХрд╛рд░ Git рдорд╛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдЗрддрд┐рд╣рд╛рд╕рдорд╛ рдирд┐рд░реНрднрд░ рд╣реБрдБрджреИрдиред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдердк рд░ рдкрдЫрд┐ рд╣рдЯрд╛рдЙрдиреЗ .git рдЕрдиреНрддрд┐рдо рдЫрд╡рд┐рдмрд╛рдЯ рдХрд╛рдо рдЧрд░реНрджреИрди: рдЫрд╡рд┐рд▓реЗ рдЕрдЭреИ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╣ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫ - рдпрд╕рд░реА рдбрдХрд░рд▓реЗ рдХрд╛рдо рдЧрд░реНрджрдЫред
  3. рдбрдХрд░рд▓реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдкреНрд░рд╛рд░рдореНрдн рдЧрд░реНрди рд╕рдХреНрдЫ, рдЙрд╣реА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдирд┐рд░реНрдорд╛рдг рднрдЗрд░рд╣реЗрдХреЛ рднрдП рдкрдирд┐, рддрд░ рдлрд░рдХ рдХрд╛рд░реНрдп-рд░реБрдЦрд╣рд░реВрдмрд╛рдЯред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, GitLab рдорд╛ рдЕрд▓рдЧ рдХреНрд▓реЛрди рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реБ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ /home/gitlab-runner/builds/HASH/[0-N]/yourproject рдЬрдм рд╕рдорд╛рдирд╛рдиреНрддрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдХреНрд╖рдо рдЫред рдЕрддрд┐рд░рд┐рдХреНрдд reassembly рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рддрдереНрдп рдХреЛ рдХрд╛рд░рдг рд╣реБрдиреЗрдЫ .git рдПрдЙрдЯреИ рдХрдорд┐рдЯ рдирд┐рд░реНрдорд╛рдг рднрдП рддрд╛рдкрдирд┐ рдПрдЙрдЯреИ рднрдгреНрдбрд╛рд░рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдХреНрд▓реЛрди рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рдлрд░рдХ рдЫред

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

рд╕рд╛рдзрд╛рд░рдгрддрдпрд╛ рдХреЗрд╡рд▓ рдХреЗрд╣рд┐ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓рд╣рд░реВ рдердкреНрджреИ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдорд╛рд░реНрдлрдд ADD рдХреБрдиреИ рдкрдирд┐ рдЕрд╡рд╕реНрдерд╛рдорд╛ рд▓рд┐рдЦрд┐рдд рдХреЛ рджрдХреНрд╖рддрд╛ рд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдмрдвреНрдЫ Dockerfile, рд░ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдЩреНрдХрд▓рди рдХреНрдпрд╛рд╕ рдХреЛ рд╕реНрдерд┐рд░рддрд╛ рдкрдирд┐ рд╕реБрдзрд╛рд░ рдЧрд░реНрджрдЫ Dockerfile, Git рдорд╛ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВред

рдкрд░рд┐рдгрд╛рдо

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

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

рддреНрдпрд╕реЛрднрдП, рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдЕрдЪрд╛рдирдХ рдХреЗрд╣реА рдбрдХрд░рдлрд╛рдЗрд▓рд╣рд░реВ рд╡рд░рд┐рдкрд░рд┐ рдЫрдиреН ... рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╡рд╛рдл!

PS рд╡рд┐рд╖рдп рдорд╛ рдХрд╛рдЧрдЬрд╛рдд рдХреЛ рд╕реВрдЪреА

рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН: "werf - Kubernetes рдорд╛ CI / CD рдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореНрд░реЛ рдЙрдкрдХрд░рдг (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ)"ред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди