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

рдбреЗрд▓реАрдореЛрд╢рди рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди

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

рдЗрд╕рдХреА рд╢реБрд░реБрдЖрдд рдХрд╣рд╛рдВ рд╕реЗ рд╣реБрдИ

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

рдПрдХ рд╕рд╛рде рдХрдИ Kubernetes рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдкрддрд╡рд╛рд░, рдФрд░ рд╣рдорд╛рд░реЗ рд╕рднреА рдЪрд╛рд░реНрдЯ рдПрдХ git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреИрдХ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рддрдерд╛рдХрдерд┐рдд рд╕рд╛рд░рд╛рдВрд╢ рдЪрд╛рд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рдЪрд╛рд░реНрдЯ рд╣реИ рдЬреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдПрдХ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдПрдкреАрдЖрдИ рдФрд░ рдЗрд╕рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

рдЪрд▓рд┐рдП рдореБрджреНрджреЗ рдкрд░ рдЖрддреЗ рд╣реИрдВ.

рдЯрд┐рдкреНрдкрдгреАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдкрдврд╝рд╛, рд╣реЗрд▓реНрдо 3 рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд░рд┐рд▓реАрдЬрд╝ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреА рдШреЛрд╖рдгрд╛ рдкрд╣рд▓реЗ рд╣реА рдХреА рдЬрд╛ рдЪреБрдХреА рд╣реИред рдореБрдЦреНрдп рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрддреАрдд рдореЗрдВ рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдЖрдП рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдзрд╛рд░реЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЪрд╛рд░реНрдЯ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣

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

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

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

рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдЪрд╛рд░реНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реА рдЫреЛрдЯреА рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдУрдкрдирдПрдкреАрдЖрдИ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдорд╛рдиреНрдп рдХрд░рддреА рд╣реИ рдХреБрдмреЗрд╡рд▓, рдЙрдиреНрд╣реЗрдВ рдЪрд╛рд░реНрдЯрдореНрдпреВрдЬрд╝рдо рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗред

рдЪрд╛рд░реНрдЯ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг

  1. рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ gazr.io рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП (рд▓рд┐рдВрдЯ, рдпреВрдирд┐рдЯ-рдЯреЗрд╕реНрдЯ)ред
  2. рд╣рдорд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рдпрдерди рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреЛ рдкреБрд╢ рдХрд░рдирд╛ред
  3. рд╢рд╛рдЦрд╛ рдХреЗ рдирд╛рдо рд╕реЗ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред
  4. Kubeval рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Kubernetes yaml рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдирд╛ред
  5. рдХрд┐рд╕реА рдЪрд╛рд░реНрдЯ рдФрд░ рдЙрд╕рдХреЗ рдореВрд▓ рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдврд╝рд╛рдПрдВ (рдЪрд╛рд░реНрдЯ рдЬреЛ рдмрджрд▓реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЪрд╛рд░реНрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ)ред
  6. рдЪрд╛рд░реНрдЯрдореНрдпреВрдЬрд┐рдпрдо рдореЗрдВ рдПрдХ рдЪрд╛рд░реНрдЯ рд╕рдмрдорд┐рдЯ рдХрд░рдирд╛ рдЬреЛ рдЙрд╕рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ

рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдЕрдВрддрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛

рдХреНрд▓рд╕реНрдЯрд░реЛрдВ рдХрд╛ рд╕рдВрдШ

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

рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╕рдореВрд╣реЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рдЧрдИ (рд╣рдордиреЗ рдлреЗрдбрд░реЗрд╢рди рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛; рджреВрд╕рд░реЗ рдореЗрдВ рдХреБрдЫ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ)ред

рднреВ-рд╡рд┐рддрд░рд┐рдд рдордВрдЪ

рд╣рдорд╛рд░рд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ 6 рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рд╣реИ - 3 рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдФрд░ 3 рдХреНрд▓рд╛рдЙрдб рдореЗрдВред


рд╡рд┐рддрд░рд┐рдд рддреИрдирд╛рддреА

рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЗрд▓реНрдо рдореВрд▓реНрдп

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

global:
  cloud: True
  env: staging
  region: us-central1
  clusterName: staging-us-central1

рд╡реИрд╢реНрд╡рд┐рдХ рдореВрд▓реНрдп

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

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

рдпрд╣рд╛рдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

{{/* Returns Horizontal Pod Autoscaler replicas for GraphQL*/}}
{{- define "graphql.hpaReplicas" -}}
{{- if eq .Values.global.env "prod" }}
{{- if eq .Values.global.region "europe-west1" }}
minReplicas: 40
{{- else }}
minReplicas: 150
{{- end }}
maxReplicas: 1400
{{- else }}
minReplicas: 4
maxReplicas: 20
{{- end }}
{{- end -}}

рд╣реЗрд▓реНрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдЙрджрд╛рд╣рд░рдг

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ YAML рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░реНрдХ рдХреЛ рдПрдХ рд╕рд╣рд╛рдпрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрд╡реЗрджрди рдШреЛрд╖рдгрд╛

рд╣рдорд╛рд░реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЙрдкрдХрд░рдг рдЕрдиреЗрдХ YAML рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рд╕реЗрд╡рд╛ рдФрд░ рдЙрд╕рдХреА рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЯреЛрдкреЛрд▓реЙрдЬреА (рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛) рдХреА рдШреЛрд╖рдгрд╛ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВред

releases:
  - foo.world

foo.world:                # Release name
  services:               # List of dailymotion's apps/projects
    foobar:
      chart_name: foo-foobar
      repo: [email protected]:dailymotion/foobar
      contexts:
        prod-europe-west1:
          deployments:
            - name: foo-bar-baz
              replicas: 18
            - name: another-deployment
              replicas: 3

рд╕реЗрд╡рд╛ рдкрд░рд┐рднрд╛рд╖рд╛

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


рдЬреЗрдирдХреАрдВрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЪрд░рдг

рд░рд╣рд╕реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

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

рд╣рдорд╛рд░реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЙрдкрдХрд░рдг рд╡реЙрд▓реНрдЯ рд╕реЗ рдЧреБрдкреНрдд рдорд╛рди рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░, рдЬрдм рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рд╕рдордп рдЖрддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╣реЗрд▓реНрдо рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╡реЙрд▓реНрдЯ рдореЗрдВ рд░рд╣рд╕реНрдпреЛрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд░рд╣рд╕реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдореИрдкрд┐рдВрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛:

secrets:                                                                                                                                                                                                        
     - secret_id: "stack1-app1-password"                                                                                                                                                                                  
       contexts:                                                                                                                                                                                                   
         - name: "default"                                                                                                                                                                                         
           vaultPath: "/kv/dev/stack1/app1/test"                                                                                                                                                               
           vaultKey: "password"                                                                                                                                                                                    
         - name: "cluster1"                                                                                                                                                                           
           vaultPath: "/kv/dev/stack1/app1/test"                                                                                                                                                               
           vaultKey: "password"

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

apiVersion: v1
data:
{{- range $key,$value := .Values.secrets }}
  {{ $key }}: {{ $value | b64enc | quote }}
{{ end }}
kind: Secret
metadata:
  name: "{{ .Chart.Name }}"
  labels:
    chartVersion: "{{ .Chart.Version }}"
    tillerVersion: "{{ .Capabilities.TillerVersion.SemVer }}"
type: Opaque

рдЪреБрдиреМрддрд┐рдпрд╛рдВ рдФрд░ рд╕реАрдорд╛рдПрдБ

рдПрдХрд╛рдзрд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

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

рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдПрдХ рдкрд░реЗрд╢рд╛рдиреА рд╣реИ

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛, рд╕рд╛рдорд╛рдиреНрдп рдЪрд╛рд░реНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдФрд░ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ --reuse-valuesрд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рд╕рднреА рдорд╛рдиреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред

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

рдПрдХрд╛рдзрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрджреНрдпрддрди рдХрд░ рд░рд╣рд╛ рд╣реИ

рдЬрдм рдХреЛрдИ рдбреЗрд╡рд▓рдкрд░ рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓рдиреА рдкрдбрд╝рддреА рд╣реИрдВ: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдШреЛрд╖рдгрд╛, рд░рд╣рд╕реНрдпреЛрдВ рдХреА рд╕реВрдЪреА, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ред

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

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реИ AppRole, рдЬреЛ рддрд┐рдЬреЛрд░реА рдХреЗ рд╕рднреА рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИред

рд░реЛрд▓рдмреИрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд╣реАрдВ рд╣реИ

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

рд╣рдо GitOps рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВ

рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп

рд╣рдо рдЪрд╛рд░реНрдЯ рдХреЛ рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рддреИрдирд╛рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

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

рдЗрд╕рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ:

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

рджреЛ-рдЪрд░рдгреАрдп рдкреНрд░рд╡рд╛рд╕рди

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

  • рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбреЗрд▓реАрдореЛрд╢рдирд░рд┐рд▓реАрдЬрд╝ рдирд╛рдордХ рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВред

apiVersion: "v1"
kind: "DailymotionRelease"
metadata:
  name: "app1.ns1"
  environment: "dev"
  branch: "mybranch"
spec:
  slack_channel: "#admin"
  chart_name: "app1"
  scaling:
    - context: "dev-us-central1-0"
      replicas:
        - name: "hermes"
          count: 2
    - context: "dev-europe-west1-0"
      replicas:
        - name: "app1-deploy"
          count: 2
  secrets:
    - secret_id: "app1"
      contexts:
        - name: "default"
          vaultPath: "/kv/dev/ns1/app1/test"
          vaultKey: "password"
        - name: "dev-europe-west1-0"
          vaultPath: "/kv/dev/ns1/app1/test"
          vaultKey: "password"

  • рдкреНрд░рддрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди 1 рд░рд┐рд▓реАрдЬрд╝ (рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯ рдХреЗ рдмрд┐рдирд╛)ред
  • рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЪрд╛рд░реНрдЯред

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

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

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ