Архив рубрики: CI/CD

Continuous integration in software engineering is the practice of merging all developer working copies to a shared mainline several times a day.

Continuous delivery is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, doing so manually. It aims at building, testing, and releasing software with greater speed and frequency.

ArgoCD: обзор, запуск, настройка SSL, деплой приложения

19 ноября 2020
 

 ArgoCD помогает деплоить приложения в Kubernetes, используя GitOps подход, т.е. когда приложения, конфиги, манифесты и тому подобные данных хранятся в Git-репозитории. Поддерживает работу с «голыми» манифестами Kubernetes, kustomize, ksonnet, jsonnet и то, чем пользуемся мы — Helm-шаблонами. ArgoCD запускает свой контроллер в Kubernetes-кластере, и отслеживает изменения в Git-репозиториях, синхронизируя приложения в кластере с их манифестами… Читать далее »

Jenkins: деплой Redis и Helm subchart values

29 октября 2020
 

 Задача — содать Jenkins джобу, которая будет деплоить Redis на Dev/Stage/Prod кластера. В посте Redis: Master-Slave репликация и запуск в Kubernetes сделали это вручную, посмотрели что и как вообще запускается и работает — теперь надо автоматизировать. Главный вопрос — как вообще деплоить и передавать параметры? Хочется использовать уже готовый чарт, но в тоже время —… Читать далее »

Kubernetes: запуск SQL-миграций — Kubernetes Job и Helm hook

26 октября 2020
 

 Имеется проект, которому во время деплоя надо выполнить SQL-миграции. Для запуска миграций надо склонировать репозиторий из Github, и затем выполнить собственно миграции, которые в нём хранятся. Сейчас у нас для этого используются Kubernetes initContainers, причём два — сначала один, с git, клонирует репозиторий с миграциями в Kubernetes Volume, второй с sql-migrate — запускает из этого… Читать далее »

Helm: helm-secrets — шифрование sensitive данных с AWS KMS и деплой из Jenkins

15 мая 2020
 

 В продолжение поста Helm: пошаговое создание чарта и деплоймента из Jenkins — теперь нам надо добавить шифрование данных, что бы не хранить пароли и различные приватные ключи в открытом виде в Github-репозиториях — даже пусть и приватных. Судя по гуглу, чуть ли не единственный вариант — это использование helm-secrets (а подскажите в комментариях — кто… Читать далее »

Helm: пошаговое создание чарта и деплоймента из Jenkins

14 мая 2020
 

 Продолжаем трогать Kubernetes и Helm. Сам Хельм в общих чертах рассмотрели в посте Helm: Kubernetes package manager — обзор, начало работы — теперь надо прикрутить его в Jenkins. И не просто прикрутить его вызов — а создать чарт, потому что сейчас приложение деплоится через «голые» манифест-файлы Kubernetes, в котором sed проставляет теги Докер-образа и значения переменных… Читать далее »

Helm: Kubernetes package manager — обзор, начало работы

3 мая 2020
 

 На официальной странице Helm называет сам себя «The package manager for Kubernetes«, но на деле Helm нечто большее, чем просто менеджер пакетов для Kubernetes — скорее это система управления приложениями в Kubernetes, позволяющая выполнять их установку, отслеживать состояние, выполнять обновление, удаление. В этом посте рассмотрим основные понятия и компоненты Helm, работу с чартами, шаблонами, переменными… Читать далее »

AWS Elastic Kubernetes Service: — автоматизация создания кластера, часть 2 — Ansible, eksctl

31 марта 2020
 

 Первая часть — AWS: Elastic Kubernetes Service — автоматизация создания кластера, часть 1 — CloudFormation. Напомню, что общая идея заключается в следующем: Ansible использует модуль cloudformation , создаёт инфрастуктуру используя Outputs созданного стека CloudFormation — Ansible из шаблона генерирует файл настроек для eksctl Ansible вызывает eksctl, передавая ему конфиг кластера, и создаёт или обновляет кластер Запускаться… Читать далее »

AWS Elastic Kubernetes Service: автоматизация создания кластера, часть 1 — CloudFormation

31 марта 2020
 

 Задача: продумать автоматизацию развёртывания AWS Elastic Kubernetes Service кластера. Используем: Ansible: для автоматизации создания CloudFormation стеков и запуска eksctl с нужными параметрами CloudFormation с NestedStacks: для создания инфрастуктуры — VPC, подсетей, SecurityGroups, IAM-роли, etc eksctl: для создания самого кластера, используя ресурсы, созданные CloudFormation Идея заключается в следующем: Ansible использует модуль cloudformation , создаёт инфрастуктуру используя Outputs… Читать далее »

What is: SAML — обзор, структура и трассировка запросов на примере Jenkins и Okta SAML SSO

2 ноября 2019
 

 В процессе настройки SAML SSO для Jenkins столкнулся с проблемой, при которой не передаются часть атрибутов из Okta в Jenkins. Собственно, в этом посте попробуем разобраться с тем, что такое SAML вообще, достаточно кратко рассмотрим его архитектуру и компонены, а затем выполним трассировку запросов между Okta и Jenkins, что бы посмотреть какие данные передаются. Т.к.… Читать далее »

Jenkins: SAML, Okta, группы пользователей и Role-Based Security

15 октября 2019
 

 В продолжение поста Jenkins: SAML Authentication через Okta SSO и группы пользователей — настройка Role-Based Security авторизации в Jenkins, используя группы Okta. Настройка Role-Based Security плагина Устанавливаем плагин Role-based Authorization Strategy: Переходим в Configure Global Security, переключаем авторизацию на Role-Based Strategy: Переходим в Manage and Assign Roles: Создание ролей — Global roles Роли делятся на… Читать далее »