рдХрд╕рд░реА рдбреЗрд▓реАрдореЛрд╢рдирд▓реЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ: рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯ
рд╣рд╛рдореАрд▓реЗ рдбреЗрд▓реАрдореЛрд╢рдирдорд╛ 3 рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ рдЙрддреНрдкрд╛рджрдирдорд╛ Kubernetes рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдерд╛рд▓реНрдпреМрдВред рддрд░ рдзреЗрд░реИ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд╣рд░реВ рдбрд┐рдкреНрд▓реЛрдЗ рдЧрд░реНрдиреБ рд░рдорд╛рдЗрд▓реЛ рдЫ, рддреНрдпрд╕реИрд▓реЗ рд╡рд┐рдЧрдд рдХреЗрд╣реА рд╡рд░реНрд╖рд╣рд░реВрдорд╛ рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░рд╛ рдЙрдкрдХрд░рдгрд╣рд░реВ рд░ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рд╣рд░реВ рд╕реБрдзрд╛рд░ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред
рдХрд╣рд╛рдБрдмрд╛рдЯ рд╕реБрд░реБ рднрдпреЛ
рдпрд╣рд╛рдБ рд╣рд╛рдореА рдХрднрд░ рдЧрд░реНрдиреЗрдЫреМрдВ рдХрд┐ рд╣рд╛рдореА рдХрд╕рд░реА рд╣рд╛рдореНрд░рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╡рд┐рд╢реНрд╡рднрд░рдХрд╛ рдзреЗрд░реИ Kubernetes рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рддреИрдирд╛рдд рдЧрд░реНрдЫреМрдВред
рдПрдХреИрдЪреЛрдЯрд┐ рдзреЗрд░реИ Kubernetes рд╡рд╕реНрддреБрд╣рд░реВ рддреИрдирд╛рдд рдЧрд░реНрди, рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ
рд╣рд╛рдореАрд▓реЗ рдЪреЗрдХ рдЧрд░реНрди, рдЪрд╛рд░реНрдЯрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди, рдЧреЛрдкреНрдп рдХреБрд░рд╛рд╣рд░реВ рдердкреНрди рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╣реЗрд▓реНрдордХреЛ рдорд╛рдерд┐ рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рдкрд╛рдЗрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрдирд┐ рд▓реЗрдЦреНрдпреМрдВред рдпреА рд╕рдмреИ рдХрд╛рд░реНрдпрд╣рд░реВ рдбрдХрд░ рдЫрд╡рд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХреЗрдиреНрджреНрд░реАрдп CI рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдиреНрдЫред
рдмрд┐рдиреНрджреБрдорд╛ рдкреБрдЧреМрдВред
рдиреЛрдЯред рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдкрдвреНрджрд╛, рд╣реЗрд▓реНрдо 3 рдХреЛ рд▓рд╛рдЧрд┐ рдкрд╣рд┐рд▓реЛ рд░рд┐рд▓реАрдЬ рдЙрдореНрдореЗрджреНрд╡рд╛рд░ рдкрд╣рд┐рд▓реЗ рдиреИ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред рдореБрдЦреНрдп рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рд╣рд╛рдореАрд▓реЗ рд╡рд┐рдЧрддрдорд╛ рд╕рд╛рдордирд╛ рдЧрд░реЗрдХрд╛ рдХреЗрд╣реА рд╕рдорд╕реНрдпрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдореНрдмреЛрдзрди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдореНрдкреВрд░реНрдг рд╕реБрдзрд╛рд░рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред
рдЪрд╛рд░реНрдЯ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣
рд╣рд╛рдореА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╢рд╛рдЦрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ, рд░ рд╣рд╛рдореАрд▓реЗ рдЪрд╛рд░реНрдЯрд╣рд░реВрдорд╛ рдЙрд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред
- рд╕рд╛рдЦрд╛ dev рд╡рд┐рдХрд╛рд╕ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░рд┐рдиреЗ рдЪрд╛рд░реНрдЯрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред
- рдЬрдм рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкреЗрд╢ рдЧрд░рд┐рдиреНрдЫ рдорд╛рд╕реНрдЯрд░, рддрд┐рдиреАрд╣рд░реВ рд╕реНрдЯреЗрдЬрд┐рдЩрдорд╛ рдЬрд╛рдБрдЪ рдЧрд░рд┐рдиреНрдЫред
- рдЕрдиреНрддрдорд╛, рд╣рд╛рдореА рд╢рд╛рдЦрд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдХрдорд┐рдЯ рдЧрд░реНрди рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ рдкреНрд░реЛ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЙрддреНрдкрд╛рджрдирдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рдЖрдлреНрдиреИ рдирд┐рдЬреА рднрдгреНрдбрд╛рд░ рд╣реБрдиреНрдЫ рдЬрд╕рд▓реЗ рд╣рд╛рдореНрд░реЛ рдЪрд╛рд░реНрдЯрд╣рд░реВ рднрдгреНрдбрд╛рд░ рдЧрд░реНрджрдЫ, рд░ рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫреМрдВ
рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдЪрд╛рд░реНрдЯ рднрдгреНрдбрд╛рд░рд╣рд░реВ
рдпреЛ рдзреНрдпрд╛рди рджрд┐рди рд▓рд╛рдпрдХ рдЫ рдХрд┐ рдЬрдм рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ dev рд╢рд╛рдЦрд╛ рдкреБрд╢ рдЧрд░реНрдЫрдиреН, рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЪрд╛рд░реНрдЯрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ dev Chartmuseum рдорд╛ рдкреБрд╢ рд╣реБрдиреНрдЫред рдпрд╕реИрд▓реЗ, рд╕рдмреИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдПрдЙрдЯреИ dev рднрдгреНрдбрд╛рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН, рд░ рддрдкрд╛рдИрдВрд▓реЗ рдЪрд╛рд░реНрдЯрдХреЛ рдЖрдлреНрдиреЛ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрд╕рд┐рдпрд╛рд░реАрдкреВрд░реНрд╡рдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рддрд╛рдХрд┐ рдЧрд▓реНрддрд┐рд▓реЗ рдЕрд░реВ рдХрд╕реИрдХреЛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдпрд╕рдмрд╛рд╣реЗрдХ, рд╣рд╛рдореНрд░реЛ рд╕рд╛рдиреЛ рдкрд╛рдЗрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ Kubernetes рдУрдкрдирдПрдкреАрдЖрдИ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Kubernetes рд╡рд╕реНрддреБрд╣рд░реВрд▓рд╛рдИ рдорд╛рдиреНрдп рдЧрд░реНрджрдЫред
рдЪрд╛рд░реНрдЯ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг
- рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдЕрдиреБрд╕рд╛рд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛рд░реНрдпрд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрджреИ
gazr.io рдЧреБрдгрд╕реНрддрд░ рдирд┐рдпрдиреНрддреНрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ (рд▓рд┐рдиреНрдЯ, рдПрдХрд╛рдЗ-рдкрд░реАрдХреНрд╖рдг)ред - рд╣рд╛рдореНрд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд╣рд░реВ рдбрд┐рдкреНрд▓реЛрдЗ рдЧрд░реНрдиреЗ рдкрд╛рдЗрдерди рдЙрдкрдХрд░рдгрд╣рд░реВрд╕рдБрдЧ рдбрдХрд░ рдЫрд╡рд┐ рдкреБрд╢ рдЧрд░реНрджреИред
- рд╢рд╛рдЦрд╛ рдирд╛рдо рджреНрд╡рд╛рд░рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯрдЕрдкред
- Kubeval рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Kubernetes yaml рдлрд╛рдЗрд▓рд╣рд░реВ рдорд╛рдиреНрдп рдЧрд░реНрджреИред
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЪрд╛рд░реНрдЯрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рд░ рдпрд╕рдХреЛ рдЕрднрд┐рднрд╛рд╡рдХ рдЪрд╛рд░реНрдЯрд╣рд░реВ (рдЪрд╛рд░реНрдЯрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рднрдЗрд░рд╣реЗрдХреЛ рдЪрд╛рд░реНрдЯрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ) рдмрдврд╛рдЙрдиреБрд╣реЛрд╕реНред
- рдЪрд╛рд░реНрдЯрдореНрдпреБрдЬрд┐рдпрдордорд╛ рдЪрд╛рд░реНрдЯ рдкреЗрд╕ рдЧрд░реНрджреИ рдЬреБрди рдпрд╕рдХреЛ рд╡рд╛рддрд╛рд╡рд░рдгрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ
рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рднрд┐рдиреНрдирддрд╛рд╣рд░реВ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдХреНрд▓рд╕реНрдЯрд░ рдорд╣рд╛рд╕рдВрдШ
рдПрдХ рд╕рдордп рдерд┐рдпреЛ рдЬрдм рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдереЗ
рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рд╕реНрд╡рддрдиреНрддреНрд░ рд░реВрдкрдорд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдерд╛рд▓реНрдпреМрдВ, рдЬрд╕рд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдзреЗрд░реИ рд╕рд░рд▓ рдмрдирд╛рдпреЛ (рд╣рд╛рдореАрд▓реЗ рд╕рдВрдШрдХреЛ рдкрд╣рд┐рд▓реЛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВ; рджреЛрд╕реНрд░реЛрдорд╛ рдХреЗрд╣реА рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рд╣реБрди рд╕рдХреНрдЫ)ред
рднреВ-рд╡рд┐рддрд░рд┐рдд рдкреНрд▓реЗрдЯрдлрд░реНрдо
рд╣рд╛рдореНрд░реЛ рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╣рд╛рд▓ 6 рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдорд╛ рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ - 3 рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рд░ 3 рдХреНрд▓рд╛рдЙрдбрдорд╛ред
рд╡рд┐рддрд░рд┐рдд рдкрд░рд┐рдирд┐рдпреЛрдЬрди
рдЧреНрд▓реЛрдмрд▓ рд╣реЗрд▓реНрдо рдорд╛рдирд╣рд░реВ
4 рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд╣реЗрд▓реНрдо рдорд╛рдирд╣рд░реВрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рдмреАрдЪрдХреЛ рднрд┐рдиреНрдирддрд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рд╣рд╛рдореНрд░рд╛ рд╕рдмреИ рдЪрд╛рд░реНрдЯрд╣рд░реВрдорд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдиреНрдпреВрдирддрдо рдорд╛рдирд╣рд░реВ рдЫрдиреНред
global:
cloud: True
env: staging
region: us-central1
clusterName: staging-us-central1
рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдореВрд▓реНрдпрд╣рд░реВ
рдпреА рдорд╛рдирд╣рд░реВрд▓реЗ рд╣рд╛рдореНрд░рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд╕рдиреНрджрд░реНрднрд▓рд╛рдИ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫ рд░ рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ: рдЕрдиреБрдЧрдорди, рдЯреНрд░реЗрд╕рд┐рдЩ, рд▓рдЧрд┐рдЩ, рдмрд╛рд╣реНрдп рдХрд▓рд╣рд░реВ, рд╕реНрдХреЗрд▓рд┐рдВрдЧ, рдЖрджрд┐ред
- "Cloud": рд╣рд╛рдореАрд╕рдБрдЧ рд╣рд╛рдЗрдмреНрд░рд┐рдб Kubernetes рдкреНрд▓реЗрдЯрдлрд░реНрдо рдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рд╣рд╛рдореНрд░реЛ 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 -}}
рд╣реЗрд▓рдо рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЙрджрд╛рд╣рд░рдг
Kubernetes 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 рдорд╛ рдЧреЛрдкреНрдп рдХреБрд░рд╛рд╣рд░реВ рд░реЗрдХрд░реНрдб рдЧрд░реНрджрд╛ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрдкрд░реНрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдорд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реЗрдХрд╛ рдЫреМрдВред
- рдпрджрд┐ рдЧреЛрдкреНрдп рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдиреНрджрд░реНрдн рд╡рд╛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред (рдпрд╣рд╛рдБ рд╕рдиреНрджрд░реНрдн рдХреНрд▓рд╕реНрдЯрд░ рез рдХреЛ рдЧреЛрдкреНрдп рд╕реНрдЯреНрдпрд╛рдХ-рдПрдкрез-рдкрд╛рд╕рд╡рд░реНрдбрдХреЛ рдЖрдлреНрдиреИ рдорд╛рди рдЫ)ред
- рдЕрдиреНрдпрдерд╛ рдорд╛рди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рджреНрд╡рд╛рд░рд╛.
- рдпрд╕ рд╕реВрдЪреАрдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБрдХреЛ рд▓рд╛рдЧрд┐ Kubernetes рдЧреЛрдкреНрдп рдХреБрдЮреНрдЬреА-рдорд╛рди рдЬреЛрдбреА рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рддреНрдпрд╕реИрд▓реЗ, рд╣рд╛рдореНрд░реЛ рдЪрд╛рд░реНрдЯ рдорд╛ рдЧреЛрдкреНрдп рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдзреЗрд░реИ рд╕рд░рд▓ рдЫред
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
рд╕рдорд╕реНрдпрд╛ рд░ рд╕реАрдорд╛рд╣рд░реВ
рдзреЗрд░реИ рднрдгреНрдбрд╛рд░рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИ
рдЕрдм рд╣рд╛рдореА рдЪрд╛рд░реНрдЯ рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рдЕрд▓рдЧ рдЧрд░реНрдЫреМрдВред рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рджреБрдИ git рднрдгреНрдбрд╛рд░рд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреБрдкрд░реНрдЫ: рдПрдЙрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐, рд░ рдЕрд░реНрдХреЛ Kubernetes рдорд╛ рдпрд╕рдХреЛ рддреИрдирд╛рддреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ред 2 git рд░рд┐рдкреЛрдЬрд┐рдЯрд░реАрд╣рд░реВ 2 рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рд╣рд░реВ рд╣реБрдиреН, рд░ рдпреЛ рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рднреНрд░рдорд┐рдд рд╣реБрди рд╕рдЬрд┐рд▓реЛ рдЫред
рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯрд╣рд░реВ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрдиреБ рдПрдХ рдЭрдиреНрдЭрдЯ рд╣реЛ
рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рднрдиреЗрдЭреИрдВ, рдЬреЗрдиреЗрд░рд┐рдХ рдЪрд╛рд░реНрдЯрд╣рд░реВ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рд░ рдзреЗрд░реИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рджреНрд░реБрдд рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдЙрдкрдпреЛрдЧреА рдЫрдиреНред рддрд░ рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ --reuse-values
рд╣рд░реЗрдХ рдкрдЯрдХ рд╣рд╛рдореАрд▓реЗ рдпреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯрдХреЛ рдЕрдВрд╢ рднрдПрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрджрд╛ рд╕рдмреИ рдорд╛рдирд╣рд░реВ рдкрд╛рд╕ рдЧрд░реНрдирдмрд╛рдЯ рдмрдЪреНрдиред
рдирд┐рд░рдиреНрддрд░ рд╡рд┐рддрд░рдг рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рдорд╛, рд╣рд╛рдореАрд╕рдБрдЧ рдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреЗ рджреБрдИрд╡рдЯрд╛ рдорд╛рдирд╣рд░реВ рдЫрдиреН: рдкреНрд░рддрд┐рдХреГрддрд┐рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд░ рдЫрд╡рд┐ рдЯреНрдпрд╛рдЧ (рд╕рдВрд╕реНрдХрд░рдг)ред рдЕрдиреНрдп, рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдорд╛рдирд╣рд░реВ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫрдиреН, рд░ рдпреЛ рдПрдХрджрдо рдЧрд╛рд╣реНрд░реЛ рдЫред рдпрд╕рдмрд╛рд╣реЗрдХ, рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯ рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрдиреЗ рдПрдЙрдЯрд╛ рдЧрд▓реНрддреАрд▓реЗ рдЧрдореНрднреАрд░ рдЕрд╕рдлрд▓рддрд╛ рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫ, рдЬрд╕реНрддреЛ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рдЕрдиреБрднрд╡рдмрд╛рдЯ рджреЗрдЦреЗрдХрд╛ рдЫреМрдВред
рдзреЗрд░реИ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджреИ
рдЬрдм рдПрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдирдпрд╛рдБ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдердкреНрдЫ, рдЙрд╕рд▓реЗ рдзреЗрд░реИ рдлрд╛рдЗрд▓рд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ: рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдШреЛрд╖рдгрд╛, рдЧреЛрдкреНрдп рд╕реВрдЪреА, рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдирд┐рд░реНрднрд░рддрд╛рдХреЛ рд░реВрдкрдорд╛ рдердкреНрджреИ рдпрджрд┐ рдпреЛ рд╕рд╛рдорд╛рдиреНрдп рдЪрд╛рд░реНрдЯрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫ рднрдиреЗред
рдЬреЗрдирдХрд┐рдиреНрд╕ рдЕрдиреБрдорддрд┐рд╣рд░реВ рднрд▓реНрдЯрдорд╛ рдзреЗрд░реИ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЫрдиреН
рдЕрдм рд╣рд╛рдореАрд╕рдБрдЧ рдПрдЙрдЯрд╛ рдЫ
рд░реЛрд▓рдмреНрдпрд╛рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЫреИрди
рд░реЛрд▓рдмреНрдпрд╛рдХ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдзреЗрд░реИ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ рдпреЛ рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓реЗ рднрд░рд┐рдПрдХреЛ рдЫред рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг ID рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рд╣рд╛рдореА рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдпреЛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫреМрдВред
рд╣рд╛рдореА GitOps рддрд┐рд░ рд▓рд╛рдЧрд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ
рд╣рд╛рдореНрд░реЛ рд▓рдХреНрд╖реНрдп
рд╣рд╛рдореА рдЪрд╛рд░реНрдЯрд▓рд╛рдИ рдпреЛ рдбрд┐рдкреНрд▓реЛрдп рдЧрд░рд┐рдПрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рднрдгреНрдбрд╛рд░рдорд╛ рдлрд░реНрдХрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреМрдВред
рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╕реНрддреИ рд╣реБрдиреЗрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЬрдм рд╢рд╛рдЦрд╛рд▓рд╛рдИ рдорд╛рд╕реНрдЯрд░рдорд╛ рдзрдХреЗрд▓рд┐рдиреНрдЫ, рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рд╕реНрд╡рддрдГ рдЯреНрд░рд┐рдЧрд░ рд╣реБрдиреЗрдЫред рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд░ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдмреАрдЪрдХреЛ рдореБрдЦреНрдп рднрд┐рдиреНрдирддрд╛ рддреНрдпреЛ рд╣реБрдиреЗрдЫ рд╕рдмреИ рдХреБрд░рд╛ git рдорд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реБрдиреЗрдЫ (рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдЖрдлреИрдВ рд░ рдХреБрдмреЗрд░рдиреЗрдЯрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛)ред
рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдлрд╛рдЗрджрд╛рд╣рд░реВ рдЫрдиреН:
- рдзреЗрд░реИ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ред рд╕реНрдерд╛рдиреАрдп рдЪрд╛рд░реНрдЯрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдХрд╕рд░реА рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╕рд┐рдХреНрди рд╕рдЬрд┐рд▓реЛ рдЫред
- рд╕реЗрд╡рд╛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд░рд┐рднрд╛рд╖рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдХреЛрдб рдЬрд╕реНрддреИ рдард╛рдЙрдБ рд╕реЗрд╡рд╛ред
- рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯрд╣рд░реВ рд╣рдЯрд╛рдЙрдиреЗ рдкреНрд░рдмрдиреНрдзред рд╕реЗрд╡рд╛рдХреЛ рдЖрдлреНрдиреИ рд╣реЗрд▓реНрдо рд░рд┐рд▓реАрдЬ рд╣реБрдиреЗрдЫред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреАрд╡рдирдЪрдХреНрд░ (рд░реЛрд▓рдмреНрдпрд╛рдХ, рд╕реНрддрд░рд╡реГрджреНрдзрд┐) рд▓рд╛рдИ рд╕рдмреИрднрдиреНрджрд╛ рд╕рд╛рдиреЛ рд╕реНрддрд░рдорд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫ, рддрд╛рдХрд┐ рдЕрдиреНрдп рд╕реЗрд╡рд╛рд╣рд░реВрд▓рд╛рдИ рдЕрд╕рд░ рдирд╣реЛрд╕реНред
- Git рдХреЛ рдлрд╛рдЗрджрд╛рд╣рд░реВ рдЪрд╛рд░реНрдЯ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирдХрд╛ рд▓рд╛рдЧрд┐: рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкреВрд░реНрд╡рд╡рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЕрдбрд┐рдЯ рд▓рдЧ, рдЗрддреНрдпрд╛рджрд┐ред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЪрд╛рд░реНрдЯрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд▓рд╛рдИ рдкреВрд░реНрд╡рд╡рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ git рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рд╕реНрд╡рддрдГ рд╕реБрд░реБ рд╣реБрдиреНрдЫред
- рддрдкрд╛рдИрд▓реЗ рдЖрдлреНрдиреЛ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рд╕реБрдзрд╛рд░ рдЧрд░реНрдиреЗ рдЙрдкрдХрд░рдгрд╣рд░реВ рдЬрд╕реНрддреИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд╕реНрдХрд╛рдлреЛрд▓реНрдб, рдЬрд╕рдХреЛ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЙрддреНрдкрд╛рджрдирдХреЛ рдирдЬрд┐рдХрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред
рджреБрдИ-рдЪрд░рдг рдорд╛рдЗрдЧреНрд░реЗрд╕рди
рд╣рд╛рдореНрд░рд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдпреЛ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ реи рд╡рд░реНрд╖рджреЗрдЦрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рдЖрдПрдХрд╛ рдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдорд╛рдЗрдЧреНрд░реЗрд╕рдирд▓рд╛рдИ рд╕рдХреЗрд╕рдореНрдо рдкреАрдбрд╛рд░рд╣рд┐рдд рд╣реЛрд╕реН рднрдиреНрдиреЗ рдЪрд╛рд╣рдиреНрдЫреМрдБред рддреНрдпрд╕рдХрд╛рд░рдг, рд╣рд╛рдореАрд▓реЗ рд▓рдХреНрд╖реНрдпрдХреЛ рдмрд╛рдЯреЛрдорд╛ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдЪрд░рдг рдердкреНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред
рдкрд╣рд┐рд▓реЛ рдЪрд░рдг рд╕рд░рд▓ рдЫ:
- рд╣рд╛рдореА рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯ рд╕реЗрдЯрдЕрдк рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рд░рд╛рдЦреНрдЫреМрдВ, рддрд░ рдбреЗрд▓реАрдореЛрд╢рди рд░рд┐рд▓рд┐рдЬ рднрдирд┐рдиреЗ рдПрдХрд▓ рд╡рд╕реНрддреБрдорд╛ред
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"
- рдкреНрд░рддрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рез рд░рд┐рд▓реАрдЬ (рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЪрд╛рд░реНрдЯрд╣рд░реВ рдмрд┐рдирд╛)ред
- рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ git рднрдгреНрдбрд╛рд░рдорд╛ рдЪрд╛рд░реНрдЯрд╣рд░реВред
рд╣рд╛рдореАрд▓реЗ рд╕рдмреИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд╕рдБрдЧ рдХреБрд░рд╛ рдЧрд░реЗрдХрд╛ рдЫреМрдВ, рддреНрдпрд╕реИрд▓реЗ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реБ рднрдЗрд╕рдХреЗрдХреЛ рдЫред рдкрд╣рд┐рд▓реЛ рдЪрд░рдг рдЕрдЭреИ рдкрдирд┐ CI рдкреНрд▓реЗрдЯрдлрд░реНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред рдо рджреЛрд╕реНрд░реЛ рдЪрд░рдгрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЪрд╛рдБрдбреИ рдЕрд░реНрдХреЛ рдкреЛрд╕реНрдЯ рд▓реЗрдЦреНрдиреЗрдЫреБ: рдХрд╕рд░реА рд╣рд╛рдореА GitOps рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рдорд╛ рд╕рд╛рд░рд┐рдпреЛ
рдпрд╣рд╛рдБ рд╣рд╛рдореАрд▓реЗ рд╡рд┐рдЧрддрдХрд╛ рд╡рд░реНрд╖рд╣рд░реВрдорд╛ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рдорд╛ рд╣рд╛рдореНрд░реЛ рдкреНрд░рдЧрддрд┐ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдХрд╛ рдЫреМрдВ, рдЬрд╕рд▓реЗ GitOps рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдпреЛред рд╣рд╛рдореА рдЕрдЭреИ рд▓рдХреНрд╖реНрдпрдорд╛ рдкреБрдЧреЗрдХрд╛ рдЫреИрдиреМрдВ рд░ рдирддрд┐рдЬрд╛рд╣рд░реВрдорд╛ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрдиреЗрдЫреМрдВ, рддрд░ рдЕрдм рд╣рд╛рдореА рд╡рд┐рд╢реНрд╡рд╕реНрдд рдЫреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рд╕рдмреИ рдХреБрд░рд╛рд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдиреЗ рд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдмрд╛рдиреАрдХреЛ рдирдЬрд┐рдХ рд▓реНрдпрд╛рдЙрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрджрд╛ рд╣рд╛рдореАрд▓реЗ рд╕рд╣реА рдХрд╛рдо рдЧрд░реНрдпреМрдВред
рд╕реНрд░реЛрдд: www.habr.com