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

рдбреЗрд▓реАрдореЛрд╢рди рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХрд╕реЗ рд╡рд╛рдкрд░рддреЗ: рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ

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

рдХреБрдареВрди рд╕реБрд░реБрд╡рд╛рдд рдЭрд╛рд▓реА

рдЬрдЧрднрд░рд╛рддреАрд▓ рдЕрдиреЗрдХ Kubernetes рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдордзреНрдпреЗ рдЖрдореНрд╣реА рдЖрдордЪреЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдХрд╕реЗ рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░рддреЛ рддреЗ рдпреЗрдереЗ рдЖрдореНрд╣реА рдХрд╡реНрд╣рд░ рдХрд░реВ.

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

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

рдЪрд▓рд╛ рдореБрджреНрджреНрдпрд╛рдХрдбреЗ рдЬрд╛рдКрдпрд╛.

рдиреЛрдВрдж. рдЖрдкрдг рд╣реЗ рд╡рд╛рдЪрддрд╛рдЪ, рд╣реЗрд▓реНрдо 3 рд╕рд╛рдареА рдкреНрд░рдердо рд░рд┐рд▓реАрдЭ рдЙрдореЗрджрд╡рд╛рд░ рдЖрдзреАрдЪ рдШреЛрд╖рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рднреВрддрдХрд╛рд│рд╛рдд рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд▓реЗрд▓реНрдпрд╛ рдХрд╛рд╣реА рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореБрдЦреНрдп рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ рдЕрдиреЗрдХ рд╕реБрдзрд╛рд░рдгрд╛ рдЖрд╣реЗрдд.

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

рдЖрдореНрд╣реА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╛рдареА рдмреНрд░рдБрдЪрд┐рдВрдЧрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддреЛ рдЖрдгрд┐ рдЖрдореНрд╣реА рдЪрд╛рд░реНрдЯрд╡рд░ рд╕рдорд╛рди рджреГрд╖реНрдЯреАрдХреЛрди рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛.

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

рдкреНрд░рддреНрдпреЗрдХ рдкрд░реНрдпрд╛рд╡рд░рдгрд╛рдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдЦрд╛рдЬрдЧреА рднрд╛рдВрдбрд╛рд░ рдЕрд╕рддреЗ рдЬреЗ рдЖрдордЪреЗ рдЪрд╛рд░реНрдЯ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рдЖрдореНрд╣реА рд╡рд╛рдкрд░рддреЛ рдЪрд╛рд░реНрдЯрдореНрдпреБрдЭрд┐рдпрдо рдЕрддрд┐рд╢рдп рдЙрдкрдпреБрдХреНрдд API рд╕рд╣. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдЖрдореНрд╣реА рдЙрддреНрдкрд╛рджрдирд╛рдордзреНрдпреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╡рд╛рддрд╛рд╡рд░рдг рдЖрдгрд┐ рдЪрд╛рд░реНрдЯреНрд╕рдЪреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ-рдЬрд╛рдЧрддрд┐рдХ рдЪрд╛рдЪрдгреА рджрд░рдореНрдпрд╛рди рдХрдареЛрд░ рдЕрд▓рдЧрд╛рд╡ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЛ.

рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдЪрд╛рд░реНрдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬ

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

рд╢рд┐рд╡рд╛рдп, рдЖрдордЪреА рдЫреЛрдЯреА рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдУрдкрдирдПрдкреАрдЖрдп рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рд╡рд┐рд░реВрджреНрдз рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рддреЗ. рдХреБрдмреЗрд╡рд▓, рдЪрд╛рд░реНрдЯрдореНрдпреБрдЭрдорд╡рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА.

рдЪрд╛рд░реНрдЯ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рд╡рд░реНрдХрдлреНрд▓реЛрдЪреЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдгрди

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

рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдордзреАрд▓ рдлрд░рдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ

рдлреЗрдбрд░реЗрд╢рди рдСрдл рдХреНрд▓рд╕реНрдЯрд░реНрд╕

рдПрдХ рдХрд╛рд│ рдЕрд╕рд╛ рд╣реЛрддрд╛ рдХреА рдЖрдкрдг рд╡рд╛рдкрд░рдд рд╣реЛрддреЛ рдлреЗрдбрд░реЗрд╢рди рдСрдл рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░реНрд╕, рдЬрд┐рдереЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдПрдХрд╛рдЪ API рдПрдВрдбрдкреЙрдИрдВрдЯрд╡рд░реВрди рдШреЛрд╖рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдкрдг рд╕рдорд╕реНрдпрд╛ рдирд┐рд░реНрдорд╛рдг рдЭрд╛рд▓реНрдпрд╛. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдлреЗрдбрд░реЗрд╢рди рдПрдВрдбрдкреЙрдИрдВрдЯрдордзреНрдпреЗ рдХрд╛рд╣реА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрд▓реНрдпрд╛ рдирд╛рд╣реАрдд, рдЬреНрдпрд╛рдореБрд│реЗ рд╡реИрдпрдХреНрддрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░рд╕рд╛рдареА рдлреЗрдбрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЖрдгрд┐ рдЗрддрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд░рд╛рдЦрдгреЗ рдХрдареАрдг рд╣реЛрддреЗ.

рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА, рдЬреНрдпрд╛рдореБрд│реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕реБрд▓рдн рдЭрд╛рд▓реА (рдЖрдореНрд╣реА рдлреЗрдбрд░реЗрд╢рдирдЪреА рдкрд╣рд┐рд▓реА рдЖрд╡реГрддреНрддреА рд╡рд╛рдкрд░рд▓реА; рджреБрд╕рд▒реНрдпрд╛рдордзреНрдпреЗ рдХрд╛рд╣реАрддрд░реА рдмрджрд▓рд▓реЗ рдЕрд╕реЗрд▓).

рдЬрд┐рдУ-рд╡рд┐рддрд░рд┐рдд рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо

рдЖрдордЪреЗ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рд╕рдзреНрдпрд╛ 6 рдХреНрд╖реЗрддреНрд░рд╛рдВрдордзреНрдпреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓реЗ рдЖрд╣реЗ - 3 рд╕реНрдерд╛рдирд┐рдХ рдЖрдгрд┐ 3 рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ.


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

рдЬрд╛рдЧрддрд┐рдХ рд╣реЗрд▓реНрдо рдореВрд▓реНрдпреЗ

4 рдЬрд╛рдЧрддрд┐рдХ рд╣реЗрд▓реНрдо рдореВрд▓реНрдпреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рдлрд░рдХ рдУрд│рдЦрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд. рдЖрдордЪреНрдпрд╛ рд╕рд░реНрд╡ рдЪрд╛рд░реНрдЯреНрд╕рдордзреНрдпреЗ рдбреАрдлреЙрд▓реНрдЯ рдХрд┐рдорд╛рди рдореВрд▓реНрдпреЗ рдЖрд╣реЗрдд.

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

рдЬрд╛рдЧрддрд┐рдХ рдореВрд▓реНрдпреЗ

рд╣реА рдореВрд▓реНрдпреЗ рдЖрдордЪреНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рд╕рдВрджрд░реНрдн рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░рддрд╛рдд рдЖрдгрд┐ рд╡рд┐рд╡рд┐рдз рдЙрджреНрджреЗрд╢рд╛рдВрд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддрд╛рдд: рдирд┐рд░реАрдХреНрд╖рдг, рдЯреНрд░реЗрд╕рд┐рдВрдЧ, рд▓реЙрдЧрд┐рдВрдЧ, рдмрд╛рд╣реНрдп рдХреЙрд▓ рдХрд░рдгреЗ, рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЗ.

  • "рдХреНрд▓рд╛рдЙрдб": рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╣рд╛рдпрдмреНрд░реАрдб рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдордЪреЗ API GCP рдЭреЛрдирдордзреНрдпреЗ рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рдордзреНрдпреЗ рддреИрдирд╛рдд рдХреЗрд▓реЗ рдЖрд╣реЗ.
  • "env": рдЙрддреНрдкрд╛рджрди рдирд╕рд▓реЗрд▓реНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рдореВрд▓реНрдпреЗ рдмрджрд▓реВ рд╢рдХрддрд╛рдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЖрдгрд┐ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди.
  • "рдкреНрд░рджреЗрд╢": рд╣реА рдорд╛рд╣рд┐рддреА рдХреНрд▓рд╕реНрдЯрд░рдЪреЗ рд╕реНрдерд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░рддреЗ рдЖрдгрд┐ рдмрд╛рд╣реНрдп рд╕реЗрд╡рд╛рдВрд╕рд╛рдареА рдЬрд╡рд│рдЪреЗ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.
  • "clusterName": рдЬрд░ рдЖрдгрд┐ рдХреЗрд╡реНрд╣рд╛ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╡реИрдпрдХреНрддрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░рд╕рд╛рдареА рдореВрд▓реНрдп рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ.

рдпреЗрдереЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЖрд╣реЗ:

{{/* 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

рд╕реЗрд╡рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛

рдЖрдордЪреНрдпрд╛ рдЙрдкрдпреЛрдЬрди рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рд╕рд░реНрд╡ рдЪрд░рдгрд╛рдВрдЪреА рд╣реА рд░реВрдкрд░реЗрд╖рд╛ рдЖрд╣реЗ. рд╢реЗрд╡рдЯрдЪреА рдкрд╛рдпрд░реА рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рдХрд╛рдордЧрд╛рд░ рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддреИрдирд╛рдд рдХрд░рддреЗ.


рдЬреЗрдирдХрд┐рдиреНрд╕ рдЙрдкрдпреЛрдЬрди рдкрд╛рдпрд▒реНрдпрд╛

рд░рд╣рд╕реНрдпрд╛рдВрдЪреЗ рдХрд╛рдп?

рд╕реБрд░рдХреНрд╖реЗрдмрд╛рдмрдд, рдЖрдореНрд╣реА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдард┐рдХрд╛рдгрд╛рдВрд╡рд░реАрд▓ рд╕рд░реНрд╡ рд░рд╣рд╕реНрдпрд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдШреЗрддреЛ рдЖрдгрд┐ рдПрдХрд╛ рдЕрдирдиреНрдп рд╡реЙрд▓реНрдЯрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ рд╡реНрд╣реЙрд▓реНрдЯ рдкреЕрд░рд┐рд╕рдордзреНрдпреЗ.

рдЖрдордЪреА рдЙрдкрдпреЛрдЬрди рд╕рд╛рдзрдиреЗ Vault рдордзреВрди рдЧреБрдкреНрдд рдореВрд▓реНрдпреЗ рдХрд╛рдврддрд╛рдд рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рдЙрдкрдпреЛрдЬрдирд╛рдЪреА рд╡реЗрд│ рдпреЗрддреЗ рддреЗрд╡реНрд╣рд╛ рддреА рд╣реЗрд▓реНрдордордзреНрдпреЗ рдШрд╛рд▓рд╛.

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

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"

  • Vault рдордзреНтАНрдпреЗ рдЧреБрдкрд┐рддреЗ рд░реЗрдХреЙрд░реНрдб рдХрд░рддрд╛рдирд╛ рдкрд╛рд│рдгреНтАНрдпрд╛рдЪреЗ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдг рдирд┐рдпрдо рдЖрдореНтАНрд╣реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗрдд.
  • рдЬрд░ рдЧреБрдкрд┐рдд рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрджрд░реНрдн рдХрд┐рдВрд╡рд╛ рдХреНрд▓рд╕реНрдЯрд░рд▓рд╛, рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдВрдЯреНрд░реА рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. (рдпреЗрдереЗ secret stack-app1-password рд╕рд╛рдареА рд╕рдВрджрд░реНрдн рдХреНрд▓рд╕реНрдЯрд░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 git рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬ рдореНрд╣рдгрдЬреЗ 2 рд╡рд░реНрдХрдлреНрд▓реЛ, рдЖрдгрд┐ рдирд╡рд╢рд┐рдХреНрдпрд╛рд╕рд╛рдареА рдЧреЛрдВрдзрд│рд╛рдд рдкрдбрдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ.

рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдПрдХ рддреНрд░рд╛рд╕рджрд╛рдпрдХ рдЖрд╣реЗ

рдЖрдореНрд╣реА рдЖрдзреАрдЪ рдореНрд╣рдЯрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдЬреЗрдиреЗрд░рд┐рдХ рдЪрд╛рд░реНрдЯ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдУрд│рдЦрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдПрдХрд╛рдзрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддреНрд╡рд░рд┐рдд рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЦреВрдк рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗрдд. рдкрдг рдЖрдореНрд╣реА рд╡рд╛рдкрд░рддреЛ --reuse-valuesрдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдЖрдореНрд╣реА рдпрд╛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯрдЪрд╛ рднрд╛рдЧ рдЕрд╕рд▓реЗрд▓рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░рддреЛ рддреЗрд╡реНрд╣рд╛ рд╕рд░реНрд╡ рдореВрд▓реНрдпреЗ рдкрд╛рд░ рдХрд░рдгреЗ рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА.

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

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

рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджрд╛ рд╡рд┐рдХрд╕рдХ рдирд╡реАрди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреЛрдбрддреЛ рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рд▓рд╛ рдЕрдиреЗрдХ рдлрд╛рдпрд▓реА рдмрджрд▓рд╛рд╡реНрдпрд╛ рд▓рд╛рдЧрддрд╛рдд: рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдШреЛрд╖рдгрд╛, рдЧреБрдкрд┐рддрд╛рдВрдЪреА рдпрд╛рджреА, рдЬрд░ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯрдордзреНрдпреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓рд╛ рдЕрд╕реЗрд▓ рддрд░ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдореНрд╣рдгреВрди рдЬреЛрдбрдгреЗ.

рд╡реНрд╣реЙрд▓реНрдЯрдордзреНрдпреЗ рдЬреЗрдирдХрд┐рдиреНрд╕ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рдЦреВрдк рд╡рд╛рдврд╡рд▓реНрдпрд╛ рдЖрд╣реЗрдд

рдЖрддрд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдЖрд╣реЗ AppRole, рдЬреЗ рд╡реНрд╣реЙрд▓реНрдЯрдордзреАрд▓ рд╕рд░реНрд╡ рд░рд╣рд╕реНрдпреЗ рд╡рд╛рдЪрддреЗ.

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

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

рдЖрдореНрд╣реА GitOps рдХрдбреЗ рд╡рд╛рдЯрдЪрд╛рд▓ рдХрд░рдд рдЖрд╣реЛрдд

рдЖрдордЪреЗ рдзреНрдпреЗрдп

рдЖрдореНрд╣реА рддреЛ рдЙрдкрдпреЛрдЬрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рднрд╛рдВрдбрд╛рд░рд╛рдд рдЪрд╛рд░реНрдЯ рдкрд░рдд рдХрд░реВ рдЗрдЪреНрдЫрд┐рддреЛ.

рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рд╡рд┐рдХрд╛рд╕рд╛рдкреНрд░рдорд╛рдгреЗрдЪ рдЕрд╕реЗрд▓. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджреА рд╢рд╛рдЦрд╛ рдорд╛рд╕реНрдЯрд░рдХрдбреЗ рдврдХрд▓рд▓реА рдЬрд╛рддреЗ, рддреЗрд╡реНрд╣рд╛ рддреИрдирд╛рддреА рдЖрдкреЛрдЖрдк рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдИрд▓. рд╣рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рдЖрдгрд┐ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рд╛рддреАрд▓ рдореБрдЦреНрдп рдлрд░рдХ рд╣рд╛ рдЕрд╕реЗрд▓ рд╕рд░реНрд╡рдХрд╛рд╣реА git рдордзреНрдпреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓ (рд╕реНрд╡рддрдГ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрдгрд┐ рддреЛ Kubernetes рдордзреНрдпреЗ рддреИрдирд╛рдд рдЖрд╣реЗ).

рдЕрдиреЗрдХ рдлрд╛рдпрджреЗ рдЖрд╣реЗрдд:

  • рдЦреВрдк рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА. рд╕реНрдерд╛рдирд┐рдХ рдЪрд╛рд░реНрдЯрдордзреНрдпреЗ рдмрджрд▓ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рд╢рд┐рдХрдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ.
  • рд╕реЗрд╡рд╛ рдЙрдкрдпреЛрдЬрди рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ рдХреЛрдб рд╕рд╛рд░рдЦреАрдЪ рдЬрд╛рдЧрд╛ рд╕реЗрд╡рд╛
  • рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯ рдХрд╛рдврдгреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ. рд╕реЗрд╡реЗрдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рд╣реЗрд▓реНрдо рд░рд┐рд▓реАрдЭ рдЕрд╕реЗрд▓. рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд╛рдЗрдлрд╕рд╛рдпрдХрд▓ (рд░реЛрд▓рдмреЕрдХ, рдЕрдкрдЧреНрд░реЗрдб) рд╕рд░реНрд╡рд╛рдд рд▓рд╣рд╛рди рд╕реНрддрд░рд╛рд╡рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓, рдЬреЗрдгреЗрдХрд░реВрди рдЗрддрд░ рд╕реЗрд╡рд╛рдВрд╡рд░ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА.
  • рдЧрд┐рдЯрдЪреЗ рдлрд╛рдпрджреЗ рдЪрд╛рд░реНрдЯ рдореЕрдиреЗрдЬрдореЗрдВрдЯрд╕рд╛рдареА: рдмрджрд▓ рдкреВрд░реНрд╡рд╡рдд рдХрд░рд╛, рдСрдбрд┐рдЯ рд▓реЙрдЧ рдЗ. рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЪрд╛рд░реНрдЯрдордзреНрдпреЗ рдмрджрд▓ рдкреВрд░реНрд╡рд╡рдд рдХрд░рд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓, рддрд░ рддреБрдореНрд╣реА рд╣реЗ 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 рдкреНрд░рдХрд╛рд╢рди (рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯрд╢рд┐рд╡рд╛рдп).
  • рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреНрдпрд╛ рдЧрд┐рдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ рдЪрд╛рд░реНрдЯ.

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

рдпреЗрдереЗ рдЖрдореНрд╣реА рдорд╛рдЧреАрд▓ рд╡рд░реНрд╖рд╛рдВрдордзреНрдпреЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рд╡рд░реНрдХрдлреНрд▓реЛрдордзреАрд▓ рдЖрдордЪреНрдпрд╛ рдкреНрд░рдЧрддреАрдЪреЗ рд╡рд░реНрдгрди рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ GitOps рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдмрджреНрджрд▓ рд╡рд┐рдЪрд╛рд░ рдЖрд▓реЗ. рдЖрдореНрд╣реА рдЕрджреНрдпрд╛рдк рдЙрджреНрджрд┐рд╖реНрдЯрд╛рдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрд▓реЛ рдирд╛рд╣реА рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдорд╛рдВрдмрджреНрджрд▓ рдЕрд╣рд╡рд╛рд▓ рджреЗрдК, рдкрд░рдВрддреБ рдЖрддрд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рддреНрд░реА рдЖрд╣реЗ рдХреА рдЖрдореНрд╣реА рд╕рд░реНрд╡рдХрд╛рд╣реА рд╕реЛрдкреЗ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЖрдгрд┐ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдЪреНрдпрд╛ рд╕рд╡рдпреАрдВрдЪреНрдпрд╛ рдЬрд╡рд│ рдЖрдгрдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛ рддреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рдпреЛрдЧреНрдп рдЧреЛрд╖реНрдЯ рдХреЗрд▓реА.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛