Архив метки: Git

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

19 ноября 2020
 

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

Git: git clone — fatal: unable to fork и RSA key fingerprint

23 октября 2020
 

 Имеется Docker-образ с установленным Git. Задача — во время запуска контейнера склонировать в него репозиторий. git clone — fatal: unable to fork Во время попытки выполнения git clone в Docker-контейнере — получаем ошибку «unable to fork«: Причина — тут git для аутентификации использует SSH (git@github.com), которого нет в системе: Устанавливаем: The authenticity of host ‘github.com’… Читать далее »

Kubernetes: дебаг Init containers при запуске SQL-миграций

15 октября 2020
 

 Имеется приложение в Kubernetes. Деплоится из Helm-чарта. При очередном деплое — новые поды не стартуют, а сам деплой падает со стандартной ошибкой «Upgrade «CHARTNAME» failed: timed out waiting for the condition«: wait.go:225: [debug] Deployment is not ready: eks-dev-1-community-api-ns/community-api. 0 out of 3 expected pods are ready upgrade.go:367: [debug] warning: Upgrade «community-api» failed: timed out waiting… Читать далее »

SonarQube: ошибка «SCM provider autodetection failed»

19 июня 2019
 

 Имеется свежая установка SonarQube, см пост SonarQube: запуск в Docker и вызов из Jenkins Pipeline. Проблема Но в дашборде проекта постоянно висит сообщение вида: SCM provider autodetection failed. Please use «sonar.scm.provider» to define SCM of your project, or disable the SCM Sensor in the project settings. И оно же выводится в логах билда в Jenkins.… Читать далее »

Linux: GPG-ключи, менеджер паролей pass и импорт из KeePass

25 апреля 2019
 

 pass — менеджер паролей для Linux/UNIX, наверно один из старейших. Хранит данные в древовидной структуре каталогов и файлов, а сами файлы с секретами шифрует с помощью GPG-ключа. В Arch Linux есть из коробки, в Debian можно установить с помощь apt из дефолтных репозиториев: В macOS — с помощью Homebrew: Хотя я сомневаюсь, что Mac-пользователи будут… Читать далее »

Git: пример merge develop в master

21 мая 2018
 

 Пример того, как смерджить бранч из девелоп-ветки в мастер, с сохранением всех коммитов и истории. Переключаемся на мастер, потягиваем последние изменения: $ git checkout master $ git pull Already up to date. Переключаемся на бранч, который будем мерджить в master, в данном примере это LTHS-380_Update_build_deploy_to_compose: M после чекаута указывает на то, что файл был modified: M… Читать далее »

Jenkins: получить пароль из Credentials Binding Plugin

25 апреля 2018
 

 Задача — добавить и запушить тег после билда, используя логин:пароль репозитория, которые добавлены в Credentials Binding Plugin. Само решение достаточно костыльное, но рабочее. Главная проблема в том, что Jenkins маскирует пароль ****. Т.е. при вызове: … withCredentials([usernamePassword(credentialsId: ‘git’, usernameVariable: ‘USERNAME’, passwordVariable: ‘PASSWORD’)]) { sh «echo pass $PASSWORD» sh «echo user $USERNAME» } … В результате получим… Читать далее »

Git: работа с тегами (метками)

28 марта 2018
 

 Документация тут>>>, ниже примеры работы с тегами. Кратко о метках в примерах. Создаём каталог для тестового репозитория: Инициализируем пустой репозиторий: Создаём тестовый файл: Добавление тегов Теги в Git есть двух основных типов: теги с аннотациями, содержат сообщение, и имя и почту автора тега, как при коммите легковесные теги — просто указатель на определённый коммит, без… Читать далее »

Git: merge — зачем нужна опция —no-ff (no-fast-forward)

26 марта 2018
 

 Во время выполнения git merge — можно указать опцию —no-ff, что бы гит сохранил историю коммитов в feature-бранче (или девелоп-бранче, кому как удобнее называть). Рассмотрим пример. Создаём каталог: Создаём в нём репозиторий: Создаём и добавляем тестовый файл: Проверяем: Создаём новый тестовый бранч testbranch: Вносим изменения в файл: Коммитим их: Проверяем: Переключаемся на master: Мерджим без… Читать далее »