OpenShift - Tekton
Оригінальний автор цієї сторінки Haroun
Що таке tekton
Згідно з документацією: Tekton - це потужна та гнучка відкрита платформа для створення систем CI/CD, що дозволяє розробникам створювати, тестувати та розгортати програми на різних хмарних провайдерах та локальних системах. Як Jenkins, так і Tekton можуть використовуватися для тестування, створення та розгортання додатків, однак Tekton є Cloud Native.
У Tekton все представлено у вигляді YAML файлів. Розробники можуть створювати Користувацькі Ресурси (CR) типу Pipelines
і вказувати кілька Tasks
, які вони хочуть виконати. Для запуску ресурсу Pipeline необхідно створити ресурси типу PipelineRun
.
Коли tekton встановлено, у кожному просторі імен створюється обліковий запис служби (sa) під назвою pipeline. Коли Pipeline запускається, створюється pod, що використовує цей sa під назвою pipeline
для виконання завдань, визначених у YAML файлі.
Можливості облікового запису служби Pipeline
За замовчуванням, обліковий запис служби pipeline може використовувати можливість pipelines-scc
. Це пов'язано з глобальною конфігурацією за замовчуванням tekton. Насправді, глобальна конфігурація tekton також є YAML у об'єкті openshift під назвою TektonConfig
, який можна побачити, якщо у вас є деякі ролі читача в кластері.
В будь-якому просторі імен, якщо ви зможете отримати токен сервісного облікового запису конвеєра, ви зможете використовувати pipelines-scc
.
Неправильна конфігурація
Проблема в тому, що за замовчуванням scc, який може використовувати sa конвеєра, контролюється користувачем. Це можна зробити, використовуючи мітку в визначенні простору імен. Наприклад, якщо я можу створити простір імен з наступним yaml визначенням:
Текто́н оператор надасть обліковому запису служби конвеєра в test-namespace
можливість використовувати scc привілейований. Це дозволить монтувати вузол.
Виправлення
Документи Tekton про те, як обмежити перевагу scc, додавши мітку в об'єкт TektonConfig
.
Ця мітка називається max-allowed
Last updated