Мы используем TeamCity.
Сейчас, я тестовые демки в докере доставляю в свой прошлый игрушечный Кубер так:
- TeamCity запускает плейбук Ansible
- Ansible ломится на машину, на которой есть kubectl и kubeconfig
- Там, с помощью шаблонов Jinja2, параметров, которые передал TeamCity в командной строке, модуля k8s для Ansible применяется, по сути, аналог kubectl apply -f..... Образы контейнеров берутся из внутреннего конторского реджистри
У меня по разному - где то helm где то самописные операторы где то вообще envsubst Чаще gitlab + helm Но ансиблом никогда не катил)
fluxcd
Вариантов много. Вот тебе подборка Шаблоны kubectl + bash(envsubst, sed) ansible (https://docs.ansible.com/ansible/latest/modules/k8s_module.html) https://helm.sh/ + (https://github.com/roboll/helmfile) https://werf.io/ (helm внутри + трекинг ресурсов во время деплоя) https://get-kapp.io/ (трекинг ресурсов во время деплоя) + https://get-ytt.io/ (шаблоны) нативная работа со структурами в манифестах (не шаблоны) Jsonnet https://qbec.io/ https://tanka.dev/ yaml kubectl -k (kustomize) (из корбки) kpt (https://googlecontainertools.github.io/kpt) Свой DSL Terraform (https://www.terraform.io/docs/providers/kubernetes/index.html) waypoint (https://www.waypointproject.io/) Bazel (https://github.com/bazelbuild/rules_k8s) Полноценный ЯП pulumi (https://www.pulumi.com/docs/get-started/kubernetes/) AWS Cloud Development Kit (https://cdk8s.io/) Gitops https://github.com/fluxcd/flux https://github.com/argoproj/argo-cd Стратегии деплоя (канарейки, a/b) https://docs.flagger.app/ https://github.com/bookingcom/shipper
Огромное спасибо!
Обсуждают сегодня