ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Β«ΡƒΠΌΠ½ΠΎΠΉΒ» очистки ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π΅Ρ‘ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² werf

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° «ΡƒΠΌΠ½ΠΎΠΉ» очистки ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π΅Ρ‘ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² werf

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассмотрСна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° очистки ΠΎΠ±Ρ€Π°Π·ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² рССстрах ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (Docker Registry ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³Π°Ρ…) Π² рСалиях соврСмСнных CI/CD-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ² для cloud native-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, доставляСмых Π² Kubernetes. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ основныС ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈ Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… слоТности ΠΏΡ€ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ очистки, сохранСния мСста ΠΈ удовлСтворСния потрСбностям ΠΊΠΎΠΌΠ°Π½Π΄. НаконСц, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Open Source-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΡ‹ расскаТСм, ΠΊΠ°ΠΊ эти слоТности ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π² рССстрС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ расти, занимая большС мСста Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ, соотвСтствСнно, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ увСличивая Π΅Π³ΠΎ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ. Для контроля, ограничСния Π»ΠΈΠ±ΠΎ поддСрТания ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠ³ΠΎ роста мСста, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² registry, принято:

  1. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ фиксированноС количСство Ρ‚Π΅Π³ΠΎΠ² для ΠΎΠ±Ρ€Π°Π·ΠΎΠ²;
  2. ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹.


ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° допустимо для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄. Если Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ постоянных Ρ‚Π΅Π³ΠΎΠ² (latest, main, test, boris ΠΈ Ρ‚.ΠΏ.), рССстр Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π΄ΡƒΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… ΠΈ Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± очисткС. Π’Π΅Π΄ΡŒ всС Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ‚ΠΈΡ€Π°ΡŽΡ‚ΡΡ, Π° для очистки просто Π½Π΅ остаётся Ρ€Π°Π±ΠΎΡ‚Ρ‹ (всё дСлаСтся ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌ сборщиком мусора).

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сильно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊ CI/CD соврСмСнных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ΠΠ΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ стала автоматизация, которая позволяСт Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. НапримСр, Ρƒ нас Π²ΠΎ всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ автоматичСски создаСтся CI-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½. Π’ Π½Ρ‘ΠΌ собираСтся ΠΎΠ±Ρ€Π°Π·, тСстируСтся, выкатываСтся Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Kubernetes-ΠΊΠΎΠ½Ρ‚ΡƒΡ€Ρ‹ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ, Π° Ссли всё Ρ…ΠΎΡ€ΠΎΡˆΠΎ β€” измСнСния доходят Π΄ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. И это Π΄Π°Π²Π½ΠΎ Π½Π΅ rocket science, Π° ΠΎΠ±Ρ‹Π΄Π΅Π½Π½ΠΎΡΡ‚ΡŒ для ΠΌΠ½ΠΎΠ³ΠΈΡ… β€” скорСС всСго ΠΈ для вас, Ρ€Π°Π· Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ устранСниС Π±Π°Π³ΠΎΠ² ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° вСдСтся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, Π° Ρ€Π΅Π»ΠΈΠ·Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎ нСсколько Ρ€Π°Π· Π² дСнь, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сопровоТдаСтся сущСствСнным количСством ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π° Π·Π½Π°Ρ‡ΠΈΡ‚ β€” большим числом ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π² registry. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, остро встаСт вопрос ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ эффСктивной очистки registry, Ρ‚.Π΅. удалСния Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ².

Но ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ Π»ΠΈ ΠΎΠ±Ρ€Π°Π·?

ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±Ρ€Π°Π·Π°

Π’ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв основныС ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π°ΠΊΠΎΠ²Ρ‹:

1. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ (самый ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ ΠΈ самый ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈΠ· всСх) β€” это ΠΎΠ±Ρ€Π°Π·Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Kubernetes. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ этих ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ Π² связи с простоСм production (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ) ΠΈΠ»ΠΈ свСсти Π½Π° Π½Π΅Ρ‚ усилия ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, которая занимаСтся ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ². (По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΌΡ‹ Π΄Π°ΠΆΠ΅ сдСлали ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Prometheus exporter, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ отсутствиС Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π² любом Kubernetes-кластСрС.)

2. Π’Ρ‚ΠΎΡ€ΠΎΠΉ (ΠΌΠ΅Π½Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½, Π½ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½ ΠΈ снова относится ΠΊ эксплуатации) β€” ΠΎΠ±Ρ€Π°Π·Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π² случаС выявлСния ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии. НапримСр, Π² случаС с Helm это ΠΎΠ±Ρ€Π°Π·Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² сохранСнных вСрсиях Ρ€Π΅Π»ΠΈΠ·Π°. (К слову, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Helm Π»ΠΈΠΌΠΈΡ‚ Π² 256 Ρ€Π΅Π²ΠΈΠ·ΠΈΠΉ, Π½ΠΎ вряд Π»ΠΈ Ρƒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² сохранСнии Ρ‚Π°ΠΊΠΎΠ³ΠΎ большого количСства вСрсий?..) Π’Π΅Π΄ΡŒ ΠΌΡ‹, Π² частности, для Ρ‚ΠΎΠ³ΠΎ ΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌ вСрсии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚.Π΅. Β«ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡΒ» Π½Π° Π½ΠΈΡ… Π² случаС нСобходимости.

3. Π’Ρ€Π΅Ρ‚ΠΈΠΉ β€” потрСбности Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²: всС ΠΎΠ±Ρ€Π°Π·Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны с ΠΈΡ… Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΠΌΠΈ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ссли ΠΌΡ‹ рассматриваСм PR, Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ послСднСму ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ ΠΈ, скаТСм, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ: Ρ‚Π°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ смоТСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ любой Π·Π°Π΄Π°Ρ‡Π΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с послСдними измСнСниями.

4. Π§Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ β€” ΠΎΠ±Ρ€Π°Π·Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ вСрсиям нашСго прилоТСния, Ρ‚.Π΅. ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ: v1.0.0, 20.04.01, sierra ΠΈ Ρ‚.Π΄.

NB: ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ здСсь ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ Π±Ρ‹Π»ΠΈ сформулированы Π½Π° основС ΠΎΠΏΡ‹Ρ‚Π° взаимодСйствия с дСсятками ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. Однако, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² зависимости ΠΎΡ‚ особСнностСй Π² процСссах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ инфраструктуры (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Kubernetes), эти ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

БоотвСтствиС критСриям ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ сСрвисы с container registry, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ свои ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ очистки ΠΎΠ±Ρ€Π°Π·ΠΎΠ²: Π² Π½ΠΈΡ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ условия, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π΅Π³ удаляСтся ΠΈΠ· registry. Однако возмоТности этих условий ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π°, врСмя создания ΠΈ количСство Ρ‚Π΅Π³ΠΎΠ²*.

* Зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ container registry. ΠœΡ‹ рассматривали возмоТности ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ: Azure CR, Docker Hub, ECR, GCR, GitHub Packages, GitLab Container Registry, Harbor Registry, JFrog Artifactory, Quay.io β€” ΠΏΠΎ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° ΡΠ΅Π½Ρ‚ΡΠ±Ρ€ΡŒ’2020.

Π’Π°ΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²ΠΏΠΎΠ»Π½Π΅ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚ΠΎΠΌΡƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ β€” Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ вСрсиям. Однако для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² приходится Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ компромиссноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ (Π±ΠΎΠ»Π΅Π΅ ΠΆΠ΅ΡΡ‚ΠΊΡƒΡŽ ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ρ‰Π°Π΄ΡΡ‰ΡƒΡŽ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ) β€” Π² зависимости ΠΎΡ‚ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ ΠΈ финансовых возмоТностСй.

НапримСр, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ β€” связанный с потрСбностями Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² β€” ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒΡΡ Π·Π° счСт ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ процСссов Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄: спСцифичного имСнования ΠΎΠ±Ρ€Π°Π·ΠΎΠ², вСдСния ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… allow lists ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… договорСнностСй. Но Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС Π΅Π³ΠΎ всё Ρ€Π°Π²Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. А Ссли возмоТностСй Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚, приходится Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ своё.

Аналогична ΠΈ ситуация с двумя ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ критСриями: ΠΈΡ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ Π±Π΅Π· получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ внСшнСй систСмы β€” Ρ‚ΠΎΠΉ самой, Π³Π΄Π΅ происходит Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π² нашСм случаС это Kubernetes).

Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ workflow Π² Git

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΉ схСмС Π² Git:

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° «ΡƒΠΌΠ½ΠΎΠΉ» очистки ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π΅Ρ‘ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² werf

Иконкой с Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ Π½Π° схСмС ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚Ρ‹ Π² Kubernetes для ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, тСстировщиков, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² ΠΈ Ρ‚.Π΄.) ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚, Ссли ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ очистки ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ (Π½Π΅ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ) ΠΎΠ±Ρ€Π°Π·Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ названиям Ρ‚Π΅Π³ΠΎΠ²?

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° «ΡƒΠΌΠ½ΠΎΠΉ» очистки ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π΅Ρ‘ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² werf

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‚Π°ΠΊΠΎΠΉ сцСнарий Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΠΎΠ±Ρ€Π°Π΄ΡƒΠ΅Ρ‚.

Π§Ρ‚ΠΎ измСнится, Ссли ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π΅ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌΡƒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρƒ / числу послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²?

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° «ΡƒΠΌΠ½ΠΎΠΉ» очистки ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π΅Ρ‘ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² werf

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ стал Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ всё Π΅Ρ‰Ρ‘ Π΄Π°Π»Ρ‘ΠΊ ΠΎΡ‚ ΠΈΠ΄Π΅Π°Π»Π°. Π’Π΅Π΄ΡŒ Ρƒ нас ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΠ±Ρ€Π°Π·Ρ‹ Π² рССстрС (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚Ρ‹Π΅ Π² K8s) для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ багов…

Π Π΅Π·ΡŽΠΌΠΈΡ€ΡƒΡ ΡΠ»ΠΎΠΆΠΈΠ²ΡˆΡƒΡŽΡΡ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ: доступныС Π² рССстрах ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ достаточной гибкости ΠΏΡ€ΠΈ очисткС, Π° главная Ρ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° β€” Π½Π΅Ρ‚ возмоТности Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с внСшним ΠΌΠΈΡ€ΠΎΠΌ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ трСбуСтся такая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² «снаруТи», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Docker Registry API (ΠΈΠ»ΠΈ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ API ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ).

Однако ΠΌΡ‹ искали ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΎ Π±Ρ‹ очистку ΠΎΠ±Ρ€Π°Π·ΠΎΠ² для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π½Ρ‹Π΅ рССстры…

Наш ΠΏΡƒΡ‚ΡŒ ΠΊ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ очисткС ΠΎΠ±Ρ€Π°Π·ΠΎΠ²

ΠžΡ‚ΠΊΡƒΠ΄Π° такая ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ? Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ взятая Π³Ρ€ΡƒΠΏΠΏΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая обслуТиваСт сразу мноТСство Ρ‚Π°ΠΊΠΎΠ²Ρ‹Ρ…, помогая комплСксно Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ вопросы CI/CD. И Π³Π»Π°Π²Π½Ρ‹ΠΉ тСхничСский инструмСнт для этого β€” Open Source-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° werf. Π•Ρ‘ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ выполняСт Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π° сопровоТдаСт процСссы Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ доставки Π½Π° всСх этапах: ΠΎΡ‚ сборки Π΄ΠΎ дСплоя.

ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ Π² рССстрС* ΠΎΠ±Ρ€Π°Π·ΠΎΠ² (сразу послС ΠΈΡ… сборки) β€” очСвидная функция Ρ‚Π°ΠΊΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹. А Ρ€Π°Π· ΠΎΠ±Ρ€Π°Π·Ρ‹ Ρ‚ΡƒΠ΄Π° ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ β€” Ссли вашС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π΅ Π±Π΅Π·Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΎ β€” Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ ΠΈ Π·Π° ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ очистку. О Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ добились успСха Π² этом, удовлСтворяя всСм Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ критСриям, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ рассказано Π΄Π°Π»Π΅Π΅.

* Π₯ΠΎΡ‚ΡŒ сами рССстры ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ (Docker Registry, GitLab Container Registry, Harbor ΠΈ Ρ‚.Π΄.), ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² нашСм случаС Π½Π΅ зависит ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ рССстра, Ρ‚.ΠΊ. выполняСтся Π²Π½Π΅ самих рССстров ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ для всСх.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ werf ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, надССмся, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ²ΡˆΠΈΠΌΡΡ с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ слоТностями.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ занялись внСшнСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° для очистки ΠΎΠ±Ρ€Π°Π·ΠΎΠ² β€” вмСсто Ρ‚Π΅Ρ… возмоТностСй, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ встроСны Π² рССстры для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом стало использованиС Docker Registry API для создания всё Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ ΠΏΠΎ количСству Ρ‚Π΅Π³ΠΎΠ² ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΡ… создания (упомянутых Π²Ρ‹ΡˆΠ΅). К Π½ΠΈΠΌ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ allow list Π½Π° основС ΠΎΠ±Ρ€Π°Π·ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚ΠΎΠΉ инфраструктурС, Ρ‚.Π΅. Kubernetes. Для послСднСго Π±Ρ‹Π»ΠΎ достаточно Ρ‡Π΅Ρ€Π΅Π· Kubernetes API ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ всС Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠ΅Π½Π½Ρ‹Π΅ рСсурсы ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ список ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ image.

Π’Π°ΠΊΠΎΠ΅ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΡ€Ρ‹Π»ΠΎ ΡΠ°ΠΌΡƒΡŽ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ (ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ β„–1), Π½ΠΎ стало Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΠΎΠΌ нашСго ΠΏΡƒΡ‚ΠΈ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° очистки. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ β€” ΠΈ ΠΊΡƒΠ΄Π° Π±ΠΎΠ»Π΅Π΅ интСрСсным β€” шагом стало Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ с историСй Git.

Π‘Ρ…Π΅ΠΌΡ‹ тСгирования

Для Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для очистки, ΠΈ выстроили процСсс Π½Π° схСмах тСгирования. ΠŸΡ€ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π·Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ ΠΎΠΏΡ†ΠΈΡŽ тСгирования (git-branch, git-commit ΠΈΠ»ΠΈ git-tag) ΠΈ использовал ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ CI-систСмах установка этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ автоматичСски Π½Π° основании ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния. По сути ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· связывался с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ Git-ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠΌ, храня Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для очистки Π² Π»Π΅ΠΉΠ±Π»Π°Ρ….

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° получился Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволял ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git ΠΊΠ°ΠΊ СдинствСнный источник ΠΏΡ€Π°Π²Π΄Ρ‹:

  • ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π²Π΅Ρ‚ΠΊΠΈ/Ρ‚Π΅Π³Π° Π² Git автоматичСски ΡƒΠ΄Π°Π»ΡΠ»ΠΈΡΡŒ ΠΈ связанныС ΠΎΠ±Ρ€Π°Π·Ρ‹ Π² registry.
  • ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ², связанноС с Git-Ρ‚Π΅Π³Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСством Ρ‚Π΅Π³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ схСмС, ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ создания связанного ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Π’ Ρ†Π΅Π»ΠΎΠΌ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ°ΡΡΡ рСализация удовлСтворяла нашим потрСбностям, Π½ΠΎ вскорС нас ΠΎΠΆΠΈΠ΄Π°Π» Π½ΠΎΠ²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ². Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π·Π° врСмя использования схСм тСгирования ΠΏΠΎ Git-ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°ΠΌ ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с рядом нСдостатков. (ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡ… описаниС Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Ρ‚Π΅ΠΌΡ‹ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ, всС ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с подробностями здСсь.) ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, приняв Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ эффСктивный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ‚Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ (content-based tagging), Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ очистки ΠΎΠ±Ρ€Π°Π·ΠΎΠ².

Новый Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ΠŸΡ€ΠΈ Ρ‚Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… content-based ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π΅Π³ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ мноТСству ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Git. ΠŸΡ€ΠΈ очисткС ΠΎΠ±Ρ€Π°Π·ΠΎΠ² большС нСльзя ΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Π³ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² рССстр.

Для Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° очистки Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡƒΠΉΡ‚ΠΈ ΠΎΡ‚ схСм тСгирования ΠΈ Π²Ρ‹ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ процСсс Π½Π° ΠΌΠ΅Ρ‚Π°-ΠΎΠ±Ρ€Π°Π·Π°Ρ…, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΡ‚ связку ΠΈΠ·:

  • ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ публикация (ΠΏΡ€ΠΈ этом Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, добавился, измСнился ΠΈΠ»ΠΈ остался ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ ΠΎΠ±Ρ€Π°Π· Π² рССстрС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²);
  • ΠΈ нашСго Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ собранному ΠΎΠ±Ρ€Π°Π·Ρƒ.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π±Ρ‹Π»Π° обСспСчСна связь ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚Π΅Π³ΠΎΠ² с ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ Π² Git.

Π˜Ρ‚ΠΎΠ³ΠΎΠ²Π°Ρ конфигурация ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ очистки стали доступны ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ осущСствляСтся Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ². КаТдая такая ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° опрСдСляСтся:

  • мноТСством references, Ρ‚.Π΅. Git-Ρ‚Π΅Π³Π°ΠΌΠΈ ΠΈΠ»ΠΈ Git-Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ сканировании;
  • ΠΈ Π»ΠΈΠΌΠΈΡ‚ΠΎΠΌ искомых ΠΎΠ±Ρ€Π°Π·ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ reference ΠΈΠ· мноТСства.

Для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ β€” Π²ΠΎΡ‚ ΠΊΠ°ΠΊ стала Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ конфигурация ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:

cleanup:
  keepPolicies:
  - references:
      tag: /.*/
      limit:
        last: 10
  - references:
      branch: /.*/
      limit:
        last: 10
        in: 168h
        operator: And
    imagesPerReference:
      last: 2
      in: 168h
      operator: And
  - references:  
      branch: /^(main|staging|production)$/
    imagesPerReference:
      last: 10

Вакая конфигурация содСрТит Ρ‚Ρ€ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ:

  1. Π‘ΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π· для 10 послСдних Git-Ρ‚Π΅Π³ΠΎΠ² (ΠΏΠΎ Π΄Π°Ρ‚Π΅ создания Ρ‚Π΅Π³Π°).
  2. Π‘ΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 2 ΠΎΠ±Ρ€Π°Π·ΠΎΠ², ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π° послСднюю нСдСлю, для Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 10 Π²Π΅Ρ‚ΠΎΠΊ с Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π° послСднюю нСдСлю.
  3. Π‘ΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΠΎ 10 ΠΎΠ±Ρ€Π°Π·ΠΎΠ² для Π²Π΅Ρ‚ΠΎΠΊ main, staging ΠΈ production.

Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ ΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сводится ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагам:

  • ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ манифСстов ΠΈΠ· container registry.
  • Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Kubernetes, Ρ‚.ΠΊ. ΠΈΡ… ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π»ΠΈ, опросив K8s API.
  • Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Git-истории ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°ΠΌ.
  • Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΠΎΠ±Ρ€Π°Π·ΠΎΠ².

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ нашСй ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ получаСтся с werf:

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° «ΡƒΠΌΠ½ΠΎΠΉ» очистки ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π΅Ρ‘ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² werf

Однако, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ werf, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΉ очисткС ΠΎΠ±Ρ€Π°Π·ΠΎΠ² β€” Π² Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π² соотвСтствии с ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ Ρ‚Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²) β€” ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах/ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ…. Для этого достаточно ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚Π΅Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΈ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π΅ возмоТности Π² вашСм стСкС, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π³Π»Π°Π΄ΠΊΠΎ. НадССмся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ Π½Π°ΠΌΠΈ ΠΏΡƒΡ‚ΡŒ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈ Π½Π° ваш частный случай с Π½ΠΎΠ²Ρ‹ΠΌΠΈ дСталями ΠΈ мыслями.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

  • Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ пСрСполнСния registry сталкиваСтся Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄.
  • ΠŸΡ€ΠΈ поискС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±Ρ€Π°Π·Π°.
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ популярными сСрвисами container registry, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ очистку, которая Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ «внСшний ΠΌΠΈΡ€Β»: ΠΎΠ±Ρ€Π°Π·Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Kubernetes, ΠΈ особСнности Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
  • Π“ΠΈΠ±ΠΊΠΈΠΉ ΠΈ эффСктивный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ прСдставлСниС ΠΎ CI/CD-процСссах, ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Docker-ΠΎΠ±Ρ€Π°Π·ΠΎΠ².

P.S.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π² нашСм Π±Π»ΠΎΠ³Π΅:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ