От CI к GitOps: Bootstrap Namespaces в Kubernetes

Привет, Хабр! Меня зовут Никита Чубаров. По трудовому договору я инженер-эксперт по разработке и сопровождению сервисов, а по факту DevOps-инженер с фокусом на доставку в платформенных командах, которые поставляют общие решения для десятка дочерних команд. Со временем эта доставка перестала быть прозрачной и предсказуемой, и всё больше напоминала космолёт, в котором пилот перед каждым запуском вручную подключает провода, проверяет давление в контурах и по списку нажимает десятки кнопок. Пока запусков мало, это ещё можно представить, но когда их становится сотни, а кораблей — десятки, такая схема быстро превращается в источник ошибок и выгорания. Примерно в таком состоянии у нас находился Bootstrap Namespaces. В статье я расскажу, как мы прошли путь от сложной CI-оркестрации к декларативному управлению Bootstrap Namespaces через Argo CD и GitOps, какие проблемы это позволило убрать и какие новые ограничения пришлось принять.

https://habr.com/ru/companies/raiffeisenbank/articles/1001782/

#gitops #argo_cd #applicationset #bootstrap #helm #cluster #git #generator #infrastructure_as_code #app_of_apps

От CI к GitOps: Bootstrap Namespaces в Kubernetes

Привет, Хабр! Меня зовут Никита Чубаров. По трудовому договору я инженер-эксперт по разработке и сопровождению сервисов, а по факту DevOps-инженер с фокусом на доставку в платформенных командах,...

Хабр
Install Argo CD in a homelab cluster

In part five of my kubernetes homelab series, we will install Argo CD into a homelab cluster so we can use gitops practices instead of ad-hoc kubectl commands. This will make it much easier to recreate the cluster exactly if we decide to move it to new hardware or just want to reset things to a known-good state after experimentation. Part 1 - Setting up Talos with a Cilium CNI on proxmox Part 2 Add SSL to Kubernetes using Cilium, cert-manager and LetsEncrypt with domains hosted on Amazon Route 53 Part 3 - Secret Management with SOPS Part 4 - Back up your Talos etcd cluster to a SMB share Part 5 - Install Argo CD Why bother with gitops? It’s a homelab, and I’m the only administrator Using gitops to configure your cluster instead of running kubectl apply commands directly makes it possible to reproduce the exact state of the cluster later if you need to revert to a known-good state.

unixorn.github.io

[Перевод] От CI к каталогу Kubernetes: создание компонуемой платформы с помощью GitOps и vCluster

Многие команды уже построили вокруг Kubernetes свои внутренние платформы, но со временем они превращаются в свалку YAML’ов и разрозненных Helm-чартов. В статье показывается, как собрать из этого аккуратный «конструктор» из трёх уровней компоновки (инфраструктура, сервисы платформы, приложения), завязать всё на GitOps через Argo CD и vCluster, а затем скрыть сложность за шаблонами и CRD, чтобы разработчику было достаточно описать один WebApp-ресурс вместо возни с десятком сущностей Kubernetes.

https://habr.com/ru/companies/otus/articles/970622/

#kubernetes #gitops #cicd #модульная_платформа #Argo_CD #Terraform #Helm

От CI к каталогу Kubernetes: создание компонуемой платформы с помощью GitOps и vCluster

Сегодня многие компании пытаются создать собственную платформу для внутренней разработки. Задача заключается в поиске оптимального уровня абстракции, который позволит предложить ценные решения, не...

Хабр

Эффективный CI/CD: переход на trunk-based development и GitLab

Меня зовут Илья Куликов, я руковожу разработкой веб-терминалов в компании «Столото». Сегодня хочу рассказать, как мы превратили ручные релизы и вечные конфликты в почти автономный CI/CD. За почти 10 лет в компании я прошёл путь от бэкенд-разработчика до руководителя направления, в «Столото» же за это время родился и вырос целый продукт — веб-терминал для агентов розничной сети. Изначально у нас был парк дорогих аппаратных терминалов, установленных у агентов. Но как расширить сеть и снизить входной порог? Возникла идея: а что, если сделать аналогичное приложение в браузере? Тогда любой желающий мог бы стать агентом — достаточно старого ноутбука и договора с нами. Так появился полноценный веб-аналог аппаратного терминала со всеми необходимыми функциями для продажи лотерей. Но вместе с ростом продукта росла и боль: релизы занимали часы, всё постоянно ломалось на проде, а после каждого деплоя команда судорожно грепала логи в поисках причины падения. Мы поняли: без серьёзной перестройки процессов дальше — только хуже. И тогда решили кардинально пересмотреть наш подход к CI/CD. Отказались от классического GitFlow в пользу trunk-based development, полностью перестроили пайплайны в GitLab и внедрили автоматизацию на всех этапах — от сборки и тестирования до деплоя и мониторинга. В этой статье я делюсь реальным опытом: - как мы ушли от ручных релизов к автоматическому деплою в прод; - какие практики и инструменты позволили нам перестать бояться каждого коммита; - как повысить качество кода и ускорить вывод фич на рынок без ущерба для стабильности. Этот материал будет особенно полезен техлидам, инженерам DevOps, разработчикам и командам, которые всё ещё живут в мире ручных деплоев, боятся нажимать «мердж» в пятницу вечером. Если вы задумываетесь, как перейти от хаоса к предсказуемости в релизах — вы по адресу. А как мы этого добились — читайте под катом!

https://habr.com/ru/companies/stoloto/articles/957056/

#gitflow #cicd #trunkbased_development #gitlab #reactjs #java #spring_boot #gitops #argo_cd #kubernetes

Эффективный CI/CD: переход на trunk-based development и GitLab

Меня зовут Илья Куликов, я руковожу разработкой веб-терминалов в компании «Столото». Сегодня хочу рассказать, как мы превратили ручные релизы и вечные конфликты в почти автономный CI/CD. За почти 10...

Хабр

DNS-хаос, зомби-поды и майнеры в кластере: самые невероятные случаи при работе с Kubernetes

Kubernetes — мощный и одновременно сложный инструмент, работа с которым неизбежно порождает… инциденты. И на практике DNS виновата далеко не всегда. Иногда всё ломает слишком длинное имя деплоймента, протухший CA-сертификат или сбой сетевой карты, из-за которого TCP-пакеты просто отбрасываются. В статье вас ждут самые интересные и поучительные инженерные истории с Reddit.

https://habr.com/ru/companies/flant/articles/931902/

#kubernetes #dns #майнеры #зомбиподы #cni #kubedns #stickyсессии #etcd #argo_cd #инциденты

DNS-хаос, зомби-поды и майнеры в кластере: самые невероятные случаи при работе с Kubernetes

Kubernetes — мощный и сложный инструмент, работа с которым неизбежно порождает… инциденты. У каждого, кто всерьёз имел дело с оркестратором, найдётся в запасе история о бессонной ночи, потраченной на...

Хабр

Миграция с legacy: как werf упростил переезд на Kubernetes и ускорил CI/CD

Статья о том, как werf помог упростить переход на Kubernetes, ускорить CI/CD и решить проблемы с кэшированием. Автор поделился опытом внедрения, первыми шагами и преимуществами, которые получила его команда.

https://habr.com/ru/companies/flant/articles/910860/

#werf #open_source #legacy #kubernetes #argocd #argo_cd #dkp #s3 #миграция_данных #ci

Миграция с legacy: как werf упростил переезд на Kubernetes и ускорил CI/CD

Всем привет! Меня зовут Марк Барзали , я Software Engineer. В этой статье я описал кейс из моей работы в Seznam.cz (Чешский аналог «Яндекса». — Прим. ред.) . Вместе с командой мы занимались...

Хабр
Argo CD Notificationsのドキュメントの場所 | DevelopersIO

小ネタです。が、事実私がこれのせいで時間を溶かしてしまったので注意喚起です。

Argo CD Notificationsのドキュメントの場所 | DevelopersIO

Amazon EKSでArgo CDの検証環境を作成したいときはEKS Blueprints for Terraformが便利
https://dev.classmethod.jp/articles/amazon-eks-argo-cd-eks-blueprints-for-terraform/

#dev_classmethod #Amazon_EKS #AWS #Kubernetes #Argo_CD #Terraform

Amazon EKSでArgo CDの検証環境を作成したいときはEKS Blueprints for Terraformが便利 | DevelopersIO

Amazon EKSでArgo CDの検証環境を作成したいときはEKS Blueprints for Terraformが便利 | DevelopersIO

Argo CDで使われているRedisに脆弱性が発見されていました
https://dev.classmethod.jp/articles/redis-in-argo-cd-had-vulnerability/

#dev_classmethod #Argo_CD #脆弱性 #Helm #Redis

Argo CDで使われているRedisに脆弱性が発見されていました | DevelopersIO

Argo CDに脆弱性が発見されていましたので報告します。 対象バージョン 以下のバージョン未満のバージョンです。 2.11.1 2.10.10 2.9.15 2.8.19 逆に言うとこのバージョン以上ですと本脆弱性に対するパッチが適用済です。アップデートを検討ください。 Helmチャート Helmチャートですと6.10.0にてパッチが適用されています。6.10.0未満のチャートをお使いの方はアップデートを検討ください。 どの部分に脆弱性があったのか 発見箇所はArgo CDで使われているRedisです。 Argo CDにおけるRedisの用途ですが、以下記載の通り単なるキャッシュです。 Redis is used by Argo CD to provide a cache layer reducing requests sent to the Kube API as well as to the Git provider. It also supports a few UI operations. Component Architecture – Argo CD – Declarative GitOps CD for Kubernetes より引用 脆弱性詳細 このRedisはパスワード保護されていません。そのため攻撃者がこのRedisサーバーにアクセスできる場合、Redis のデータの読み取り/書き込みが可能です。 Redis内のデータを変更することで、Argo CDに任意のデプロイを実行させることが可能です。また任意の Kubernetes リソースの情報を取得する事もできます。詳細は以下をご確認ください。 Use of Risky or Missing Cryptographic Algorithms in Redis Cache · Advisory · argoproj/argo-cd 「攻撃者がこのRedisサーバーにアクセスできる場合」と書きましたが、私の環境ではクラスター内の全namespace上のpodからアクセス可能な状態になっていました。 パッチ内容 端的に言うとRedisへのアクセスにパスワードが必要になりました = パスワード保護されるようになりました。 パッチ適用前後のバージョンの比較: Comparing v2.11.0…v2.11.1 · argoproj/argo-cd Helmチャートのパッチ適用前後のバージョンの比較: Comparing argo-cd-6.9.3…argo-cd-6.10.0 · argoproj/argo-helm 解説(Helm) 私はHelmチャート経由でArgo CDをデプロイしていたのでHelmチャートについて解説します。 redis-secret-init job まず、パッチが適用されたチャートバージョン6.10.0より、redis-secret-initjobと、それに紐づくRole等が追加されました。 argo-helm/charts/argo-cd/templates/redis-secret-init/job.yaml at argo-cd-6.10.0 · argoproj/argo-helm これらredis-secret-init関連のリソースのマニフェストファイルには以下のannotaionsが付与されています。 これらはChart Hooksのための設定です。 …

クラスメソッド発「やってみた」系技術メディア | DevelopersIO