рдЖрдЬ рдЖрдкрдг GitOps рдЪреА рддрддреНрддреНрд╡реЗ рдЖрдгрд┐ рдореЙрдбреЗрд▓реНрд╕, рддрд╕реЗрдЪ рд╣реЗ рдореЙрдбреЗрд▓реНрд╕ OpenShift рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓реВ. рдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░ рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ
рдереЛрдбрдХреНрдпрд╛рдд, GitOps рд╣рд╛ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдЖрдгрд┐ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Git рдкреБрд▓ рд╡рд┐рдирдВрддреНрдпрд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкрджреНрдзрддреАрдВрдЪрд╛ рдПрдХ рд╕рдВрдЪ рдЖрд╣реЗ. GitOps рдордзреАрд▓ Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рд╣реА рдкреНрд░рдгрд╛рд▓реАрдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреАрдЪрд╛ рдПрдХ рд╕реНрд░реЛрдд рдореНрд╣рдгреВрди рд╣рд╛рддрд╛рд│рд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рдпрд╛ рд╕реНрдерд┐рддреАрддреАрд▓ рдХреЛрдгрддреЗрд╣реА рдмрджрд▓ рдкреВрд░реНрдгрдкрдгреЗ рд╢реЛрдзрдгреНрдпрд╛рдпреЛрдЧреНрдп рдЖрдгрд┐ рдСрдбрд┐рдЯ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЖрд╣реЗрдд.
GitOps рдордзреАрд▓ рдмрджрд▓ рдЯреНрд░реЕрдХрд┐рдВрдЧрдЪреА рдХрд▓реНрдкрдирд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ рдирд╡реАрди рдирд╛рд╣реА; рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддреНрд░реЛрдд рдХреЛрдбрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдирд╛ рд╣рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рдЬрд╡рд│рдЬрд╡рд│ рд╕рд░реНрд╡рддреНрд░ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдд рдЖрд╣реЗ. GitOps рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЖрдгрд┐ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рдордзреНрдпреЗ рд╕рдорд╛рди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ (рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдиреЗ, рдкреБрд▓ рд╡рд┐рдирдВрддреНрдпрд╛, рдЯреЕрдЧ рдЗ.) рд▓рд╛рдЧреВ рдХрд░рддреЗ рдЖрдгрд┐ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рд╕рдорд╛рди рдлрд╛рдпрджреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.
GitOps рд╕рд╛рдареА рдХреЛрдгрддреАрд╣реА рд╢реИрдХреНрд╖рдгрд┐рдХ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдВрд╡рд╛ рдирд┐рдпрдорд╛рдВрдЪрд╛ рдордВрдЬреВрд░ рд╕рдВрдЪ рдирд╛рд╣реА, рдлрдХреНрдд рддрддреНрддреНрд╡рд╛рдВрдЪрд╛ рд╕рдВрдЪ рдЬреНрдпрд╛рд╡рд░ рд╣реА рдкреНрд░рдерд╛ рдмрд╛рдВрдзрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ:
- рдкреНрд░рдгрд╛рд▓реАрдЪреЗ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╡рд░реНрдгрди рдЧрд┐рдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА (рдХреЙрдиреНрдлрд┐рдЧреНрд╕, рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЗ.) рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
- рд░рд╛рдЬреНрдп рдмрджрд▓ рдкреБрд▓ рд╡рд┐рдирдВрддреАрджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.
- Git рдкреБрд╢ рд╡рд┐рдирдВрддреНрдпрд╛ рд╡рд╛рдкрд░реВрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ рдбреЗрдЯрд╛рдЪреНрдпрд╛ рдЕрдиреБрд╖рдВрдЧрд╛рдиреЗ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд┐рд╕реНрдЯрдордЪреА рд╕реНрдерд┐рддреА рдЖрдгрд▓реА рдЬрд╛рддреЗ.
GitOps рддрддреНрддреНрд╡реЗ
- рд╕рд┐рд╕реНрдЯрдо рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдореНрд╣рдгреВрди рд╡рд░реНрдгрди рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд
рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреЛрдб рдореНрд╣рдгреВрди рдорд╛рдирд▓реЗ рдЬрд╛рддреЗ рдЬреЗрдгреЗрдХрд░реВрди рддреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ Git рд░рд┐рдкреЙрдЭрд┐рдЯрд░реАрдордзреНрдпреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдЖрд╡реГрддреНрддреА рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ, рдЬреЗ рд╕рддреНрдпрд╛рдЪрд╛ рдПрдХ рд╕реНрд░реЛрдд рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддреЗ. рд╣рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рд╕рд┐рд╕реНрдЯреАрдордордзреАрд▓ рдмрджрд▓ рд░реЛрд▓рдЖрдЙрдЯ рдЖрдгрд┐ рд░реЛрд▓рдмреЕрдХ рдХрд░рдгреЗ рд╕реЛрдкреЗ рдХрд░рддреЛ.
- рд╕рд┐рд╕реНрдЯрдордЪреА рдЗрдЪреНрдЫрд┐рдд рд╕реНрдерд┐рддреА рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди Git рдордзреНрдпреЗ рд╕реЗрдЯ рдЖрдгрд┐ рд╡реНрд╣рд░реНрдЬрди рдХреЗрд▓реЗ рдЖрд╣реЗ
Git рдордзреНтАНрдпреЗ рд╕рд┐рд╕реНтАНрдЯрдордЪреНтАНрдпрд╛ рдЗрдЪреНтАНрдЫрд┐рдд рд╕реНтАНрдЯреЗрдЯрдЪреЗ рд╕реНтАНрдЯреЛрдЕрд░ рдЖрдгрд┐ рдЖрд╡реГрддреНтАНрддреА рдХрд░реВрди, рдЖрдореНтАНрд╣реА рд╕рд┐рд╕реНтАНрдЯрдо рдЖрдгрд┐ ре▓рдкреНрд▓рд┐рдХреЗрд╢рдирдордзреНтАНрдпреЗ рд╕рд╣рдЬрддреЗрдиреЗ рд░реЛрд▓ рдЖрдКрдЯ рдХрд░рдгреНтАНрдпрд╛рд╕ рдЖрдгрд┐ рдмрджрд▓ рдХрд░рдгреНтАНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЖрд╣реЛрдд. рдХреЛрдб рдорд╛рд▓рдХреА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреНрдпрд╛рдЪреА рд╕рддреНрдпрддрд╛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА Git рдЪреНрдпрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдпрдВрддреНрд░рдгрд╛ рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ.
- рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓ рдкреБрд▓ рд╡рд┐рдирдВрддреАрджреНрд╡рд╛рд░реЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд
Git рдкреБрд▓ рд╡рд┐рдирдВрддреНрдпрд╛ рд╡рд╛рдкрд░реВрди, рдЖрдореНрд╣реА рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдмрджрд▓ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рддреЗ рд╕рд╣рдЬрдкрдгреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реВ рд╢рдХрддреЛ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреЗ рдЗрддрд░ рдЯреАрдо рд╕рджрд╕реНрдпрд╛рдВрдирд╛ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдирд╛рд╕рд╛рдареА рджрд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдХрд┐рдВрд╡рд╛ CI рдЪрд╛рдЪрдгреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рдЪрд╛рд▓рд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЗ.
рдЖрдгрд┐ рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдкреНрд░рд╢рд╛рд╕рдХ рдЕрдзрд┐рдХрд╛рд░ рдбрд╛рд╡реАрдХрдбреЗ рдЖрдгрд┐ рдЙрдЬрд╡реАрдХрдбреЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА. рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдлрдХреНрдд Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рдпреЛрдЧреНрдп рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд рдЬреЗрдереЗ рддреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.
- рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреНрдпрд╛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдбреНрд░рд┐рдлреНрдЯрдЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреЗ
рдПрдХрджрд╛ рдЧрд┐рдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рд╕рд┐рд╕реНрдЯреАрдордЪреА рдЗрдЪреНрдЫрд┐рдд рд╕реНрдерд┐рддреА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реНрдпрд╛рд╡рд░, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдлрдХреНрдд рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╢реЛрдзрд╛рдпрдЪреЗ рдЖрд╣реЗ рдЬреЗ рд╕рд┐рд╕реНрдЯрдордЪреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддреА рддреНрдпрд╛рдЪреНрдпрд╛ рдЗрдЪреНрдЫрд┐рдд рд╕реНрдерд┐рддреАрд╢реА рдЬреБрд│рддреЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░реЗрд▓. рдЕрд╕реЗ рдирд╕рд▓реНрдпрд╛рд╕, рдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдиреЗ - рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди - рдПрдХрддрд░ рд╕реНрд╡рддрдГрд╣реВрди рд╡рд┐рд╕рдВрдЧрддреА рджреВрд░ рдХреЗрд▓реА рдкрд╛рд╣рд┐рдЬреЗ рдХрд┐рдВрд╡рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдбреНрд░рд┐рдлреНрдЯрдмрджреНрджрд▓ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕реВрдЪрд┐рдд рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ.
OpenShift рд╕рд╛рдареА GitOps рдореЙрдбреЗрд▓
рдСрди-рдХреНрд▓рд╕реНрдЯрд░ рд░рд┐рд╕реЛрд░реНрд╕ рд░рд┐рдХрдВрд╕рд┐рд▓рд░
рдпрд╛ рдореЙрдбреЗрд▓рдиреБрд╕рд╛рд░, рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдПрдХ рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрд╣реЗ рдЬреЛ Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕рдВрд╕рд╛рдзрдиреЗ (YAML рдлрд╛рдЗрд▓реНрд╕) рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╢реА рддреБрд▓рдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ. рд╡рд┐рд╕рдВрдЧрддреА рдЖрдврд│рд▓реНрдпрд╛рд╕, рдирд┐рдпрдВрддреНрд░рдХ рд╕реВрдЪрдирд╛ рдкрд╛рдард╡рддреЛ рдЖрдгрд┐ рд╕рдВрднрд╛рд╡реНрдпрдд: рд╡рд┐рд╕рдВрдЧрддреА рджреБрд░реБрд╕реНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд░рд╡рд╛рдИ рдХрд░рддреЛ. рд╣реЗ GitOps рдореЙрдбреЗрд▓ рдЕрдБрдереЛрд╕ рдХреЙрдиреНрдлрд┐рдЧ рдореЕрдиреЗрдЬрдореЗрдВрдЯ рдЖрдгрд┐ рд╡реЗрд╡реНрд╣рд╡рд░реНрдХреНрд╕ рдлреНрд▓рдХреНрд╕рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.
рдмрд╛рд╣реНрдп рд╕рдВрд╕рд╛рдзрди рд╕рд╛рдордВрдЬрд╕реНрдп (рдкреБрд╢)
рдЬреЗрд╡реНрд╣рд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ тАЬGit repository - Kubernetes рдХреНрд▓рд╕реНрдЯрд░тАЭ рдЬреЛрдбреНрдпрд╛рдВрдордзреНрдпреЗ рд╕рдВрд╕рд╛рдзрдиреЗ рд╕рдордХреНрд░рдорд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдХ рдЕрд╕рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рд╣реЗ рдореЙрдбреЗрд▓ рдорд╛рдЧреАрд▓ рдореЙрдбреЗрд▓рдЪреЗ рд░реВрдкрд╛рдВрддрд░ рдорд╛рдирд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдпреЗрдереЗ рдлрд░рдХ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреНрд▓рд╕реНрдЯрд░рдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рд╕реНрд╡рддрдВрддреНрд░ рдирд┐рдпрдВрддреНрд░рдХ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА. Git - k8s рдХреНрд▓рд╕реНрдЯрд░ рдЬреЛрдбреНрдпрд╛ рд╕рд╣рд╕рд╛ CRDs (рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрд╕рд╛рдзрди рдкрд░рд┐рднрд╛рд╖рд╛) рдореНрд╣рдгреВрди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд, рдЬреЗ рдХрдВрдЯреНрд░реЛрд▓рд░рдиреЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди рдХрд╕реЗ рдХрд░рд╛рд╡реЗ рдпрд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░реВ рд╢рдХрддрд╛рдд. рдпрд╛ рдореЙрдбреЗрд▓рдордзреНрдпреЗ, рдирд┐рдпрдВрддреНрд░рдХ CRD рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ Git рднрд╛рдВрдбрд╛рд░рд╛рдЪреА рддреБрд▓рдирд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╢реА рдХрд░рддрд╛рдд, рдЬреЗ CRD рдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рддреБрд▓рдирд╛рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдпреЛрдЧреНрдп рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдд. рд╡рд┐рд╢реЗрд╖рддрдГ, рд╣реЗ GitOps рдореЙрдбреЗрд▓ ArgoCD рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.
OpenShift рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ GitOps
рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░рдЪреЗ рдкреНрд░рд╢рд╛рд╕рди
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪрд╛ рдкреНрд░рд╕рд╛рд░ рдЖрдгрд┐ рдорд▓реНрдЯреА-рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреНрд░реЕрдЯреЗрдЬреАрдЬ рдЖрдгрд┐ рдПрдЬ рдХреЙрдореНрдкреНрдпреБрдЯрд┐рдВрдЧрдЪреНрдпрд╛ рд╡рд╛рдврддреНрдпрд╛ рд▓реЛрдХрдкреНрд░рд┐рдпрддреЗрдореБрд│реЗ, рдкреНрд░рддрд┐ рдЧреНрд░рд╛рд╣рдХ рдУрдкрдирд╢рд┐рдлреНрдЯ рдХреНрд▓рд╕реНрдЯрд░рдЪреА рд╕рд░рд╛рд╕рд░реА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЦреАрд▓ рд╡рд╛рдврдд рдЖрд╣реЗ.
рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдЬ рдХреЙрдореНрдкреНрдпреБрдЯрд┐рдВрдЧ рд╡рд╛рдкрд░рддрд╛рдирд╛, рдПрдХрд╛ рдЧреНрд░рд╛рд╣рдХрд╛рдЪреЗ рдХреНрд▓рд╕реНрдЯрд░ рд╢реЗрдХрдбреЛ рдХрд┐рдВрд╡рд╛ рд╣рдЬрд╛рд░реЛ рдордзреНрдпреЗ рддреИрдирд╛рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдкрд░рд┐рдгрд╛рдореА, рддреНрдпрд╛рд▓рд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд▓рд╛рдЙрдб рдЖрдгрд┐ рдСрди-рдкреНрд░рд┐рдорд╛рдЗрд╕рдордзреНрдпреЗ рдЕрдиреЗрдХ рд╕реНрд╡рддрдВрддреНрд░ рдХрд┐рдВрд╡рд╛ рд╕рдордиреНрд╡рд┐рдд OpenShift рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рднрд╛рдЧ рдкрд╛рдбрд▓реЗ рдЬрд╛рддреЗ.
рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдмрд░реНрдпрд╛рдЪ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓, рд╡рд┐рд╢реЗрд╖рддрдГ:
- рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдПрдХрд╕рд╛рд░рдЦреНрдпрд╛ рд╕реНрдерд┐рддреАрдд рдЖрд╣реЗрдд рд╣реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рд╛ (рдХреЙрдиреНрдлрд┐рдЧреНрд╕, рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ, рд╕реНрдЯреЛрд░реЗрдЬ рдЗ.)
- рдЬреНрдЮрд╛рдд рд╕реНрдерд┐рддреАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХрд░рд╛ (рдХрд┐рдВрд╡рд╛ рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рд╛).
- рдЬреНрдЮрд╛рдд рд╕реНрдерд┐рддреАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдирд╡реАрди рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рд╛.
- рдПрдХрд╛рдзрд┐рдХ OpenShift рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдмрджрд▓ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рд╛.
- рдПрдХрд╛рдзрд┐рдХ OpenShift рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдмрджрд▓ рдкрд░рдд рдХрд░рд╛.
- рдЯреЗрдореНрдкреНрд▓реЗрдЯреЗрдб рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд▓рд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд▓рд┐рдВрдХ рдХрд░рд╛.
рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди
рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд▓рд╛рдЗрдлрд╕рд╛рдпрдХрд▓ рджрд░рдореНрдпрд╛рди, рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЙрддреНрдкрд╛рджрди рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╕рдВрдкрдгреНрдпрд╛рдкреВрд░реНрд╡реА рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рд╕рд╛рдЦрд│реАрддреВрди (рджреЗрд╡, рд╕реНрдЯреЗрдЬ, рдЗ.) рдЬрд╛рддрд╛рдд. рдпрд╛рд╢рд┐рд╡рд╛рдп, рдЙрдкрд▓рдмреНрдзрддрд╛ рдЖрдгрд┐ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдВрдореБрд│реЗ, рдЧреНрд░рд╛рд╣рдХ рдЕрдиреЗрдХрджрд╛ рдЕрдиреЗрдХ рдСрди-рдкреНрд░рд┐рдорд╛рдЗрд╕ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдордзреНрдпреЗ рдХрд┐рдВрд╡рд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪреНрдпрд╛ рдПрдХрд╛рдзрд┐рдХ рдХреНрд╖реЗрддреНрд░рд╛рдВрдордзреНрдпреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддреИрдирд╛рдд рдХрд░рддрд╛рдд.
рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЦрд╛рд▓реАрд▓ рдХрд╛рд░реНрдпреЗ рд╕реЛрдбрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:
- рдХреНрд▓рд╕реНрдЯрд░реНрд╕ (рджреЗрд╡, рд╕реНрдЯреЗрдЬ, рдЗ.) рджрд░рдореНрдпрд╛рди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреА рд╣рд╛рд▓рдЪрд╛рд▓ (рдмрд╛рдпрдирд░реА, рдХреЙрдиреНрдлрд┐рдЧ, рдЗ.) рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рд╛.
- рдЕрдиреЗрдХ OpenShift рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдордзреНрдпреЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ (рдмрд╛рдпрдирд░реА, рдХреЙрдиреНрдлрд┐рдЧ, рдЗ.) рдордзреНрдпреЗ рдмрджрд▓ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рд╛.
- рдорд╛рдЧреАрд▓ рдЬреНрдЮрд╛рдд рд╕реНрдерд┐рддреАрдд рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреАрд▓ рдмрджрд▓ рдкрд░рдд рдХрд░рд╛.
OpenShift GitOps рд╡рд╛рдкрд░ рдкреНрд░рдХрд░рдгреЗ
1. Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ рдмрджрд▓ рд▓рд╛рдЧреВ рдХрд░рдгреЗ
рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рд╢рд╛рд╕рдХ Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ OpenShift рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рдВрдЪрдпрд┐рдд рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ рдирд╡реАрди рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдкреЛрдЖрдк рд▓рд╛рдЧреВ рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдЬреНрдЮрд╛рдд рд╕реНрдерд┐рддреАрдкреНрд░рдорд╛рдгреЗрдЪ рд╕реНрдерд┐рддреАрдд рдЖрдгреВ рд╢рдХрддреЛ.
2. рд╕реАрдХреНрд░реЗрдЯ рдореЕрдиреЗрдЬрд░рд╕рд╣ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди
рдпрд╛рд╕рд╛рдареА рдЦрд╛рд╕ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рддреНрдпрд╛рдВрдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Vault рд╕рд╛рд░рдЦреНрдпрд╛ рдпреЛрдЧреНрдп рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рд╕рд╣ OpenShift рдЧреБрдкреНрдд рд╡рд╕реНрддреВ рд╕рдордХреНрд░рдорд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдорддреЗрдЪрд╛ рджреЗрдЦреАрд▓ рдкреНрд░рд╢рд╛рд╕рдХрд╛рд▓рд╛ рдлрд╛рдпрджрд╛ рд╣реЛрдИрд▓.
3. рдбреНрд░рд┐рдлреНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреЗ рдирд┐рдпрдВрддреНрд░рдг
рдЬрд░ OpenShift GitOps рд╕реНрд╡рддрдГрдЪ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЖрдгрд┐ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд┐рд╕рдВрдЧрддреА рдУрд│рдЦреВрди рддреНрдпрд╛рдмрджреНрджрд▓ рдЪреЗрддрд╛рд╡рдгреА рджреЗрдд тАЛтАЛрдЕрд╕реЗрд▓ рддрд░рдЪ рдкреНрд░рд╢рд╛рд╕рдХ рддреНрдпрд╛рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдЕрд╕реЗрд▓, рдЬреЗрдгреЗрдХрд░реВрди рддреЗ рдбреНрд░рд┐рдлреНрдЯрд▓рд╛ рддреНрд╡рд░реАрдд рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдК рд╢рдХрддреАрд▓.
4. рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдбреНрд░рд┐рдлреНрдЯрдмрджреНрджрд▓ рд╕реВрдЪрдирд╛
рдЬреЗрд╡реНрд╣рд╛ рдкреНрд░рд╢рд╛рд╕рдХрд╛рд╕ рд╕реНрд╡рддрдГрд╣реВрди рдпреЛрдЧреНрдп рдЙрдкрд╛рдпрдпреЛрдЬрдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдбреНрд░рд┐рдлреНрдЯрдЪреНрдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдВрдмрджреНрджрд▓ рддреНрд╡рд░реАрдд рдЬрд╛рдгреВрди рдШреНрдпрд╛рдпрдЪреЗ рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛ рддреЗ рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗрдд.
5. рдбреНрд░рд┐рдлреНрдЯрд┐рдВрдЧ рдХрд░рддрд╛рдирд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреЗ рдореЕрдиреНрдпреБрдЕрд▓ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди
рдХреНрд▓рд╕реНрдЯрд░рд▓рд╛ рдкреВрд░реНрд╡реАрдЪреНрдпрд╛ рдЬреНрдЮрд╛рдд рд╕реНрдерд┐рддреАрдд рддреНрд╡рд░реАрдд рдкрд░рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдбреНрд░рд┐рдлреНрдЯрдЪреНрдпрд╛ рдШрдЯрдиреЗрдд Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрд╕рд╣ OpenShift рдХреНрд▓рд╕реНрдЯрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рдЪреА рдкреНрд░рд╢рд╛рд╕рдХрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
6. рдбреНрд░рд┐рдлреНрдЯрд┐рдВрдЧ рдХрд░рддрд╛рдирд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреЗ рдСрдЯреЛ-рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди
рдЕреЕрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдУрдкрдирд╢рд┐рдлреНрдЯ рдХреНрд▓рд╕реНрдЯрд░рд▓рд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрд╕рд╣ рдЖрдкреЛрдЖрдк рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░ рджреЗрдЦреАрд▓ рдХрд░реВ рд╢рдХрддреЛ рдЬреЗрд╡реНрд╣рд╛ рдбреНрд░рд┐рдлреНрдЯ рдЖрдврд│рддреЛ, рдЬреЗрдгреЗрдХрд░реВрди рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдиреЗрд╣рдореА Git рдордзреАрд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╢реА рдЬреБрд│рддреЗ.
7. рдЕрдиреЗрдХ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ - рдПрдХ рднрд╛рдВрдбрд╛рд░
рдкреНрд░рд╢рд╛рд╕рдХ рдПрдХрд╛ рдЧрд┐рдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рдЕрдиреЗрдХ рднрд┐рдиреНрди рдУрдкрдирд╢рд┐рдлреНрдЯ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рдВрдЪрдпрд┐рдд рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ рддреНрдпрд╛рдВрдирд╛ рдирд┐рд╡рдбрдХрдкрдгреЗ рд▓рд╛рдЧреВ рдХрд░реВ рд╢рдХрддреЛ.
8. рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреА рдкрджрд╛рдиреБрдХреНрд░рдо (рд╡рд╛рд░рд╕рд╛)
рдкреНрд░рд╢рд╛рд╕рдХ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ (рд╕реНрдЯреЗрдЬ, рдкреНрд░реЛрдб, рдЕреЕрдк рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдУ, рдЗ. рдЗрдирд╣реЗрд░рд┐рдЯрдиреНрд╕рд╕рд╣) рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреА рдкрджрд╛рдиреБрдХреНрд░рдо рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддреЛ. рджреБрд╕рд░реНтАНрдпрд╛ рд╢рдмреНрджрд╛рдд, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рд╡реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реВ рд╢рдХрддреЗ.
рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд░ рдкреНрд░рд╢рд╛рд╕рдХрд╛рдиреЗ рдЧрд┐рдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ тАЬрдкреНрд░реЙрдбрдХреНрд╢рди рдХреНрд▓рд╕реНрдЯрд░реНрд╕ (рдкреНрд░реЙрдб) тЖТ рд╕рд┐рд╕реНрдЯрдо рдПрдХреНрд╕ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ тЖТ рд╕рд┐рд╕реНрдЯрдо рдПрдХреНрд╕рдЪреЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдХреНрд▓рд╕реНрдЯрд░реНрд╕тАЭ рд╣рд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рд╕реЗрдЯ рдХреЗрд▓рд╛, рддрд░ рдЦрд╛рд▓реАрд▓ рдХреЙрдиреНрдлрд┐рдЧрдЪреЗ рд╕рдВрдпреЛрдЬрди рд╕рд┐рд╕реНрдЯрдо X рдЪреНрдпрд╛ рдЙрддреНрдкрд╛рджрди рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ:
- рдХреЙрдиреНрдлрд┐рдЧ рд╕рд░реНрд╡ рдЙрддреНрдкрд╛рджрди рдХреНрд▓рд╕реНрдЯрд░реНрд╕рд╕рд╛рдареА рд╕рд╛рдорд╛рдиреНрдп.
- рд╕рд┐рд╕реНрдЯрдо X рдХреНрд▓рд╕реНрдЯрд░рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧреНрд╕.
- X рдкреНрд░рдгрд╛рд▓реА рдЙрддреНрдкрд╛рджрди рдХреНрд▓рд╕реНрдЯрд░рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧ.
9. рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдУрд╡реНрд╣рд░рд░рд╛рдЗрдбреНрд╕
рдкреНрд░рд╢рд╛рд╕рдХ рдЕрдиреБрд╡рд╛рдВрд╢рд┐рдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪрд╛ рд╕рдВрдЪ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреА рдореВрд▓реНрдпреЗ рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рдХрд░реВ рд╢рдХрддреЛ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд▓рд╕реНрдЯрд░рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬреНрдпрд╛рд╡рд░ рддреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓.
10. рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди, рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╛рдареА рдирд┐рд╡рдбрдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрдгрд┐ рд╡рдЧрд│рдгреЗ
рдкреНрд░рд╢рд╛рд╕рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╕рд╣ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╛рдареА рдХрд┐рдВрд╡рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреНрдпрд╛ рдЧреИрд░-рдЕрд░реНрдЬрд╛рд╕рд╛рдареА рдЕрдЯреА рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддреЛ.
11. рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдорд░реНрдерди
рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рдпреЛрдЧреНрдп рд╕реНрд╡рд░реВрдк рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрд╕рд╛рдзрдиреЗ рдХрд╢реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреАрд▓ (рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ, рд╢реБрджреНрдз рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдпрд╛рдорд▓ рдЗ.) рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдорддреЗрдЪрд╛ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ рдлрд╛рдпрджрд╛ рд╣реЛрдИрд▓.
OpenShift рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ GitOps рдЯреВрд▓реНрд╕
ArgoCD
ArgoCD рдмрд╛рд╣реНрдп рд╕рдВрд╕рд╛рдзрди рд╕рд╛рдордВрдЬрд╕реНрдп рдореЙрдбреЗрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдЖрдгрд┐ Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬрдордзреАрд▓ рдПрдХ-рддреЗ-рдЕрдиреЗрдХ рд╕рдВрдмрдВрдзрд╛рдВрдЪреЗ рдЖрдпреЛрдЬрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрдВрджреНрд░реАрдХреГрдд UI рдСрдлрд░ рдХрд░рддреЗ. рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рддреЛрдЯреНрдпрд╛рдВрдордзреНрдпреЗ ArgoCD рдХрд╛рд░реНрдп рдХрд░рдд рдирд╕рддрд╛рдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЕрдХреНрд╖рдорддрд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.
рдкреНрд░рд╡рд╛рд╣
рдлреНрд▓рдХреНрд╕ рдСрди-рдХреНрд▓рд╕реНрдЯрд░ рд░рд┐рд╕реЛрд░реНрд╕ рд░рд┐рдХрдиреНрд╕рд╛рдЗрд▓ рдореЙрдбреЗрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдореА, рдбреЗрдлрд┐рдиреЗрд╢рди рд░рд┐рдкреЙрдЭрд┐рдЯрд░реАрдЪреЗ рдХреЛрдгрддреЗрд╣реА рдХреЗрдВрджреНрд░реАрдХреГрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдирд╛рд╣реА, рдЬреЛ рдПрдХ рдХрдордХреБрд╡рдд рдореБрджреНрджрд╛ рдЖрд╣реЗ. рджреБрд╕рд░реАрдХрдбреЗ, рддрдВрддреЛрддрдВрдд рдХреЗрдВрджреНрд░реАрдХрд░рдгрд╛рдЪреНрдпрд╛ рдЕрднрд╛рд╡рд╛рдореБрд│реЗ, рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓рд╛ рддрд░реАрд╣реА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд░рд╛рд╣рддреЗ.
OpenShift рд╡рд░ ArgoCD рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЖрд╣реЗ
ArgoCD рдЙрддреНрдХреГрд╖реНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрдгрд┐ рд╡реЗрдм рдХрдиреНрд╕реЛрд▓ рдСрдлрд░ рдХрд░рддреЗ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдпреЗрдереЗ рдлреНрд▓рдХреНрд╕ рдЖрдгрд┐ рдЗрддрд░ рдкрд░реНрдпрд╛рдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА.
OpenShift 4 рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ ArgoCD рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рд╢рд╛рд╕рдХ рдореНрд╣рдгреВрди рдпрд╛ рдЪрд░рдгрд╛рдВрдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рд╛:
OpenShift рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ ArgoCD рдШрдЯрдХ рддреИрдирд╛рдд рдХрд░рдгреЗ
# Create a new namespace for ArgoCD components
oc create namespace argocd
# Apply the ArgoCD Install Manifest
oc -n argocd apply -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.2.2/manifests/install.yaml
# Get the ArgoCD Server password
ARGOCD_SERVER_PASSWORD=$(oc -n argocd get pod -l "app.kubernetes.io/name=argocd-server" -o jsonpath='{.items[*].metadata.name}')
рдЖрд░реНрдЧреЛрд╕реАрдбреА рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рд╕реБрдзрд╛рд░рдгрд╛ рдХрд░рдгреЗ рдЬреЗрдгреЗрдХрд░реВрди рддреЗ рдУрдкрдирд╢рд┐рдлреНрдЯ рд░реВрдЯрджреНрд╡рд╛рд░реЗ рдкрд╛рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ
# Patch ArgoCD Server so no TLS is configured on the server (--insecure)
PATCH='{"spec":{"template":{"spec":{"$setElementOrder/containers":[{"name":"argocd-server"}],"containers":[{"command":["argocd-server","--insecure","--staticassets","/shared/app"],"name":"argocd-server"}]}}}}'
oc -n argocd patch deployment argocd-server -p $PATCH
# Expose the ArgoCD Server using an Edge OpenShift Route so TLS is used for incoming connections
oc -n argocd create route edge argocd-server --service=argocd-server --port=http --insecure-policy=Redirect
ArgoCD Cli рдЯреВрд▓ рддреИрдирд╛рдд рдХрд░рдд рдЖрд╣реЗ
# Download the argocd binary, place it under /usr/local/bin and give it execution permissions
curl -L https://github.com/argoproj/argo-cd/releases/download/v1.2.2/argocd-linux-amd64 -o /usr/local/bin/argocd
chmod +x /usr/local/bin/argocd
ArgoCD рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рд╢рд╛рд╕рдХ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдгреЗ
# Get ArgoCD Server Route Hostname
ARGOCD_ROUTE=$(oc -n argocd get route argocd-server -o jsonpath='{.spec.host}')
# Login with the current admin password
argocd --insecure --grpc-web login ${ARGOCD_ROUTE}:443 --username admin --password ${ARGOCD_SERVER_PASSWORD}
# Update admin's password
argocd --insecure --grpc-web --server ${ARGOCD_ROUTE}:443 account update-password --current-password ${ARGOCD_SERVER_PASSWORD} --new-password
рдпрд╛ рдкрд╛рдпрд▒реНрдпрд╛ рдкреВрд░реНрдг рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рддреБрдореНрд╣реА ArgoCD WebUI рд╡реЗрдм рдХрдиреНрд╕реЛрд▓ рдХрд┐рдВрд╡рд╛ ArgoCD Cli рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓рджреНрд╡рд╛рд░реЗ ArgoCD рд╕рд░реНрд╡реНрд╣рд░рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХрддрд╛.
GitOps - рдХрдзреАрд╣реА рдЦреВрдк рдЙрд╢реАрд░ рдЭрд╛рд▓реЗрд▓рд╛ рдирд╛рд╣реА
"рдЯреНрд░реЗрди рдирд┐рдШрд╛рд▓реА рдЖрд╣реЗ" - рдЬреЗрд╡реНрд╣рд╛ рдХрд╛рд╣реАрддрд░реА рдХрд░рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рдЧрдорд╛рд╡рд▓реА рдЬрд╛рддреЗ рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдмрджреНрджрд▓ рддреЗ рдЕрд╕реЗ рдореНрд╣рдгрддрд╛рдд. OpenShift рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдпрд╛ рдЫрд╛рди рдирд╡реАрди рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪрд╛ рд╡рд╛рдкрд░ рддрд╛рдмрдбрддреЛрдм рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдЪреА рдЗрдЪреНрдЫрд╛ рдЕрдиреЗрдХрджрд╛ рдорд╛рд░реНрдЧ, рдЙрдкрдпреЛрдЬрди рдЖрдгрд┐ рдЗрддрд░ OpenShift рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреНрдпрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЖрдгрд┐ рджреЗрдЦрд░реЗрдЦреАрд╕рд╣ рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ. рдкрдг рд╕рдВрдзреА рдиреЗрд╣рдореАрдЪ рдЪреБрдХрддреЗ рдХрд╛?
рдмрджреНрджрд▓ рд▓реЗрдЦрд╛рдВрдЪреА рдорд╛рд▓рд┐рдХрд╛ рд╕реБрд░реВ рдареЗрд╡рдд рдЖрд╣реЗ
oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/namespace.yaml
oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/deployment.yaml
oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/service.yaml
oc expose svc/httpd -n simple-app
рдореНрд╣рдгреВрди рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рд╣рд╕реНрддрдХрд▓рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрд╣реЗ. рдЖрддрд╛ рддреЗ GitOps рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЕрдВрддрд░реНрдЧрдд рдЙрдкрд▓рдмреНрдзрддрд╛ рди рдЧрдорд╛рд╡рддрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдереЛрдбрдХреНрдпрд╛рдд, рд╣реЗ рдЕрд╕реЗ рдХрд░рддреЗ:
- рдХреЛрдбрд╕рд╛рдареА рдЧрд┐рдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рддрдпрд╛рд░ рдХрд░рд╛.
- рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рд╡рд╕реНрддреВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ Git рднрд╛рдВрдбрд╛рд░рд╛рдд рдЕрдкрд▓реЛрдб рдХрд░рддреЛ.
- GitOps рд╕рд╛рдзрдиреЗ рдирд┐рд╡рдбрдгреЗ рдЖрдгрд┐ рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░рдгреЗ.
- рдЖрдореНрд╣реА рдЖрдордЪреЗ рднрд╛рдВрдбрд╛рд░ рдпрд╛ рдЯреВрд▓рдХрд┐рдЯрдордзреНрдпреЗ рдЬреЛрдбрддреЛ.
- рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ GitOps рдЯреВрд▓рдХрд┐рдЯрдордзреНрдпреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЛ.
- рдЖрдореНрд╣реА GitOps рдЯреВрд▓рдХрд┐рдЯ рд╡рд╛рдкрд░реВрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреА рдЪрд╛рдЪрдгреА рдЪрд╛рд▓рд╡рддреЛ.
- рдЖрдореНрд╣реА GitOps рдЯреВрд▓рдХрд┐рдЯ рд╡рд╛рдкрд░реВрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХрд░рддреЛ.
- рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреА рдЫрд╛рдЯрдгреА рдЖрдгрд┐ рд╕реНрд╡рдпрдВ-рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди рд╕рдХреНрд╖рдо рдХрд░рд╛.
рдкреВрд░реНрд╡реА рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ
рдЖрдордЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд, рдЖрдореНрд╣реА GitHub рд╡рд░ рдПрдХ рдирд╡реАрди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрд╛рдВрдбрд╛рд░ рддрдпрд╛рд░ рдХрд░реВ. рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рдбреЗрд▓ рддреЗ рддреБрдореНрд╣реА рдореНрд╣рдгреВ рд╢рдХрддрд╛, рдЖрдореНрд╣реА рдмреНрд▓реЙрдЧрдкреЛрд╕реНрдЯ рд╣реЗ рдирд╛рд╡ рд╡рд╛рдкрд░рддреЛ.
YAML рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реНрд╕ рд╕реНрдерд╛рдирд┐рдХ рдХрд┐рдВрд╡рд╛ Git рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реНрдпрд╛ рдирд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣рд╛рд▓рд╛ oc рдХрд┐рдВрд╡рд╛ kubectl binaries рд╡рд╛рдкрд░рд╛рд╡реЗ рд▓рд╛рдЧрддреАрд▓. рдЦрд╛рд▓реАрд▓ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯрдордзреНрдпреЗ рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдиреЗрдорд╕реНрдкреЗрд╕, рдЙрдкрдпреЛрдЬрди, рд╕реЗрд╡рд╛ рдЖрдгрд┐ рдорд╛рд░реНрдЧрд╛рд╕рд╛рдареА YAML рдЪреА рд╡рд┐рдирдВрддреА рдХрд░рдд рдЖрд╣реЛрдд. рдпрд╛рдЖрдзреА, рдЖрдореНрд╣реА рдирд╡реАрди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдЖрдгрд┐ рд╕реАрдбреАрдЪреЗ рдХреНрд▓реЛрди рдХреЗрд▓реЗ.
oc get namespace simple-app -o yaml --export > namespace.yaml
oc get deployment httpd -o yaml -n simple-app --export > deployment.yaml
oc get service httpd -o yaml -n simple-app --export > service.yaml
oc get route httpd -o yaml -n simple-app --export > route.yaml
рдЖрддрд╛ Argo CD рд╕рд┐рдВрдХ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА рдЕрд╕реЗ рдлреАрд▓реНрдб рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рд╕рд╛рдареА deployment.yaml рдлрд╛рдЗрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВ.
sed -i '/sgeneration: .*/d' deployment.yaml
рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдорд╛рд░реНрдЧ рдмрджрд▓рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрдореНрд╣реА рдкреНрд░рдердо рдорд▓реНрдЯреАрд▓рд╛рдЗрди рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░реВ рдЖрдгрд┐ рдирдВрддрд░ рддреНрдпрд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдЪреНрдпрд╛ рд╕рд╛рдордЧреНрд░реАрд╕рд╣ рдкреНрд░рд╡реЗрд╢: рдирд▓ рдмрджрд▓реВ.
export ROUTE=" ingress:
- conditions:
- status: 'True'
type: Admitted"
sed -i "s/ ingress: null/$ROUTE/g" route.yaml
рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдлрд╛рдЗрд▓реНрд╕рдЪреА рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рд▓реА рдЖрд╣реЗ, рдлрдХреНрдд рддреНрдпрд╛ Git рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХрд░рдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ. рдЬреНрдпрд╛рдирдВрддрд░ рд╣реЗ рднрд╛рдВрдбрд╛рд░ рдорд╛рд╣рд┐рддреАрдЪреЗ рдПрдХрдореЗрд╡ рд╕реНрддреНрд░реЛрдд рдмрдирддреЗ рдЖрдгрд┐ рд╡рд╕реНрддреВрдВрдордзреНрдпреЗ рдХреЛрдгрддреЗрд╣реА рдореЕрдиреНрдпреБрдЕрд▓ рдмрджрд▓ рдХрдареЛрд░рдкрдгреЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рд╡реЗ.
git commit -am тАШinitial commit of objectsтАЩ
git push origin master
рдкреБрдвреЗ рдЖрдореНрд╣реА рдпрд╛ рд╡рд╕реНрддреБрд╕реНрдерд┐рддреАрдкрд╛рд╕реВрди рдкреБрдвреЗ рдЬрд╛рдК рдХреА рддреБрдореНрд╣реА рдЖрдзреАрдЪ ArgoCD рддреИрдирд╛рдд рдХреЗрд▓реЗ рдЖрд╣реЗ (рд╣реЗ рдХрд╕реЗ рдХрд░рд╛рдпрдЪреЗ - рдорд╛рдЧреАрд▓ рдкрд╣рд╛
argocd repo add https://github.com/cooktheryan/blogpost
рдЖрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрдпрд╛рд░ рдХрд░реВрдпрд╛. рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╡реНрд╣реЕрд▓реНрдпреВ рд╕реЗрдЯ рдХрд░рддреЗ рдЬреЗрдгреЗрдХрд░реВрди GitOps рдЯреВрд▓рдХрд┐рдЯ рдХреЛрдгрддреЗ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдЖрдгрд┐ рдкрде рд╡рд╛рдкрд░рд╛рдпрдЪреЗ, рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреА OpenShift рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рд░рд┐рдкреЙрдЭрд┐рдЯрд░реАрдЪреА рдХреЛрдгрддреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рд╛рдЦрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рд╕рдВрд╕рд╛рдзрдиреЗ рд╕реНрд╡рдпрдВ-рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХрд░рд╛рд╡реА рдХреА рдирд╛рд╣реА рд╣реЗ рд╕рдордЬрддреЗ.
argocd app create --project default
--name simple-app --repo https://github.com/cooktheryan/blogpost.git
--path . --dest-server https://kubernetes.default.svc
--dest-namespace simple-app --revision master --sync-policy none
рдПрдХрджрд╛ рдЕрд░реНрдЬ рдЖрд░реНрдЧреЛ рд╕реАрдбреАрдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реНрдпрд╛рд╡рд░, рдЯреВрд▓рдХрд┐рдЯ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ рд╡реНрдпрд╛рдЦреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рд░реВрджреНрдз рдЖрдзреАрдкрд╛рд╕реВрди рддреИрдирд╛рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд╕реНрддреВ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХрд░рддреЗ. рдЖрдордЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ, рд╕реНрд╡рдпрдВ-рд╕рд┐рдВрдХ рдЖрдгрд┐ рдХреНрд▓реАрдирдЕрдк рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЖрд╣реЗрдд, рддреНрдпрд╛рдореБрд│реЗ рдШрдЯрдХ рдЕрджреНрдпрд╛рдк рдмрджрд▓рдд рдирд╛рд╣реАрдд. рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА Argo CD рдЗрдВрдЯрд░рдлреЗрд╕рдордзреНрдпреЗ рдЖрдордЪреНрдпрд╛ рдЕрд░реНрдЬрд╛рдЪреА рд╕реНрдерд┐рддреА "рдЖрдКрдЯ рдСрдл рд╕рд┐рдВрдХ" рдЕрд╕реЗрд▓ рдХрд╛рд░рдг ArgoCD рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЕрд╕реЗ рдХреЛрдгрддреЗрд╣реА рд▓реЗрдмрд▓ рдирд╛рд╣реА.
рдореНрд╣рдгреВрдирдЪ рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рдереЛрдбреНрдпрд╛ рд╡реЗрд│рд╛рдиреЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди рд╕реБрд░реВ рдХрд░рддреЛ, рддреЗрд╡реНрд╣рд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкреБрдиреНрд╣рд╛ рддреИрдирд╛рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реАрдд.
рдЖрддрд╛ рдЖрдордЪреНрдпрд╛ рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рддреНрд░реБрдЯреА рдирд╛рд╣реАрдд рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЪрд╛рдЪрдгреА рдХрд░реВ.
argocd app sync simple-app --dry-run
рдХреЛрдгрддреАрд╣реА рддреНрд░реБрдЯреА рдирд╕рд▓реНрдпрд╛рд╕, рдЖрдкрдг рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рдирд╡рд░ рдкреБрдвреЗ рдЬрд╛рдК рд╢рдХрддрд╛.
argocd app sync simple-app
рдЖрдордЪреНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╡рд░ argocd get рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд▓реНрдпрд╛рдирдВрддрд░, рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреА рд╕реНрдерд┐рддреА рд╣реЗрд▓реНрджреА рдХрд┐рдВрд╡рд╛ рд╕рд┐рдВрдХрдордзреНрдпреЗ рдмрджрд▓рд▓реА рдЖрд╣реЗ рд╣реЗ рдкрд╛рд╣рд╛рд╡реЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рд╣реЛрдИрд▓ рдХреА Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрддрд╛ рддреНрдпрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗрдд рдЬреА рдЖрдзреАрдЪ рддреИрдирд╛рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗрдд.
argocd app get simple-app
Name: simple-app
Project: default
Server: https://kubernetes.default.svc
Namespace: simple-app
URL: https://argocd-server-route-argocd.apps.example.com/applications/simple-app
Repo: https://github.com/cooktheryan/blogpost.git
Target: master
Path: .
Sync Policy: <none>
Sync Status: Synced to master (60e1678)
Health Status: Healthy
...
рдЖрддрд╛ рддреБрдореНрд╣реА рд╕реНрд╡рдпрдВ-рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди рдЖрдгрд┐ рдХреНрд▓реАрдирдЕрдк рд╕рдХреНрд╖рдо рдХрд░реВ рд╢рдХрддрд╛ рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреА рдХрд╛рд╣реАрд╣реА рдореЕрдиреНрдпреБрдЕрд▓реА рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рдд рдирд╛рд╣реА рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдПрдЦрд╛рджреА рд╡рд╕реНрддреВ рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рддреЗ рдХрд┐рдВрд╡рд╛ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреНрдпреЗ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ рддреЗрд╡реНрд╣рд╛ рдПрдХ рдЙрдкрдпреЛрдЬрди рд╣реЛрдИрд▓.
argocd app set simple-app --sync-policy automated --auto-prune
рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ GitOps рдирд┐рдпрдВрддреНрд░рдгрд╛рдЦрд╛рд▓реА рдПрдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдгрд▓реЗ рдЖрд╣реЗ рдЬреЗ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ GitOps рд╡рд╛рдкрд░рдд рдирд╡реНрд╣рддреЗ.
рд╕реНрддреНрд░реЛрдд: www.habr.com