Рубрики
Uncategorized

Развертывание Git, ориентированное на Git по происхождению Kubernetes Распределение

Это второй пост в серии, объясняющий, как UniQkey.eu делает инфраструктуру для Git-Git-Code … Помечено с Куберовщиком, дежоптом, открытым, продуктивностью.

Это второй пост в серии, объясняющий, как Uniqkey.eu Разнотворяет ли гидромассажная инфраструктура — как-код в распределении OKD Kubernetes. Мы сделали наши инструменты открытым исходным кодом как ОКР Отказ Они могут быть использованы в качестве ракетной паспоряющей пыли радуги, чтобы получить отгрузовать ваши функции 🌈✨🚀 Этот пост даст обзор короткого ОКР Учебник Это развертывается, а затем обновляют приложение REVENTJS, когда вы нажимаете изменения в Git Repo. Вот видео о том, что у учебника вы делаете:

Мы называем эту гидромасштабную инфраструктуру в качестве кода. Как бонусный шаг, учебное пособие вы откатывали модернизацию одним Helm Rollback команда. Почему мы думаем, что это такая удивительная идея?

Последнее сообщение имеет видео о положении URL-адреса Git в OpenShift и его создание кода и развертывание приложения RealWorld.io restjs. Вы наступили, что в конечном итоге вызовут команду в этом видео? Я использовал веб-консоль с 🐁 или 🐾 Pad. Это плохо, так как он дает краткосрочное усиление, но долгосрочное боль. Почему?

Нажав на веб-консоль для настройки нескольких веб-парков и API в одинаковых постановке и живых средах будет повторяется и скучно. Когда давление на несоответствиях появятся. Со временем будет дрейфовать как внутри, так и в средах. Только один человек делает нажатие, который не записан или многоразовый с помощью других членов команды. В конечном итоге настраивая среды вручную на веб-консоли станут Kryptonite как к точности, так и для расширения прав и возможностей команды. Облако-родные среды могут быть приведены в действие API и построены из шаблонов. Так почему бы не все автоматизировать?

Если мы примем, что мы должны автоматизировать все, что мы должны добавить к нашему желанию? Как насчет:

  • Автоматические развертывания, когда мы толкаем изменения конфигурации в REPO GIT. Мы считаем, что радуга кажется где-то в мире, когда это происходит ✨🌈🙌
  • Использование шаблонов Чтобы скрыть котельной, чтобы вы могли сосредоточиться на том, что уникально относится к каждому WebApp или API, вы развернуте в Kubernetes
  • Использование декларативного стиля конфигурации с обновлениями IDEMPOTENT. Не волнуйтесь, я объясню это позже
  • Положив все в Git, включая шифрующие секреты, чтобы мы могли управлять инфраструктурой, как код с помощью запросов по тяги
  • Автоматически создавать изображение сборки выпуска из события GIT RELELECT, и применять тот же тег на изображение
  • Используйте постоянные версии выполнения в приложениях и позволяют легко регулярно применить патчи безопасности на слои базового изображения

Неужели я прошу так много? Конечно, нет! Вы можете тестировать диск OCD, используя Minishift который позволяет вам запустить Кубернаны на вашем ноутбуке. Вместо того, чтобы попытаться охватить все эти точки в одном посте, давайте посмотрим на короткое руководство от Wiki OCD, что охватывает декларативное развертывание пребужденных изображений Отказ Эта демография охватывает первые четыре очка. Вы настроили вещи, показанные на видео выше на вашем ноутбуке 💻✨🌈. Вот диаграмма последовательности:

Слева находится Git Push из конфигурации в GIT REP. Мы используем GitHub. Вы можете использовать любой Git Server, который вам нравится. Демо демонстрирует Gitea в качестве сервера Git, работающих внутри Minishift, чтобы все могли работать на вашем ноутбуке. Веб -ook вызывает приложение под названием ОКД-Окружающая среда-Webhook Отказ Это пример удивительного adnanh/webhook. Инструмент, настроенный для запуска сценариев, чтобы вытащить конфигурацию из Git и установить ее в Kubernetes, используя Helmfile и Thilder. Thilder установит наши радуги в Кубебение. Мы введем Helmfile и Ciller на более поздних постах. Вот полная конфигурация, которую демонстрирует демонстрацию:

repositories:
  - name: ocd-meta 
    url: https://ocd-scm.github.io/ocd-meta/charts
releases:
  - name: {{ requiredEnv "ENV_PREFIX" }}-realworld
    labels: 
      deployer: {{ requiredEnv "ENV_PREFIX" }}-realworld
    chart: ocd-meta/ocd-deployer
    version: "1.0.0"
    values:
      - name: react-redux-realworld
      - replicas: 2
      - imageStreamTag: "react-redux-realworld:v0.0.1"
      - deploy_env: 
        - name: API_ROOT
          value: https://conduit.productionready.io/api

Эта конфигурация — Helmile YAML. Основное тело — это один выпуск с типом диаграммы OCD-развертыватель Отказ График — это набор шаблонов YAML, упакованных в ZIP и загружен с веб-сайта. Заголовок называют REPO Chart OCD на GitHub в качестве местоположения для загрузки графика. Значения шаблона, приложенные к графике, очень просты. Он указывает изображение контейнера для использования AS React-redux-Realworld: v0.0.1 И что две копии реплики должны быть сохранены. Это предварительное изображение приложения RealWorld.io Reventjs. Это также устанавливает переменную среды API_ROOT быть публичным API, что приложение будет использовать.

Чтобы получить этот развернутый, вам нужны необходимые предпосылки:

  1. Minishift с Helm Willer Установлено подробное здесь
  2. Gitea установлена на Minishift подробнее здесь

Как только у вас есть Gitea, вы можете зарегистрировать пользователь и создать пустой репо OCD-DEMO-ENV-COLOR и протолкните в нее демонстрационную конфигурацию:

# clone the code
git clone https://github.com/ocd-scm/ocd-demo-env-short.git
cd ocd-demo-env-short
# make sure we can load details about the gitea url
oc project gitea
# this should print the gitea url. If it doesn't set it manually
GITEA_URL=$(oc get routes | awk '$1~/gitea/{print $2}')
echo $GITEA_URL
# see instructions to setup your own person access token
ACCESS_TOKEN=f64960a3a63f5b6ac17916c9be2dad8dc76c7131
# set this to your username in gitea needed to get the url to your repo below 
USER_NAME=you_not_me
# add the gitea repo as a remote
git remote add minishift http://$ACCESS_TOKEN@$GITEA_URL/$USER_NAME/ocd-demo-env-short.git
# push the code into Gitea
git push minishift master

Почему мы это делаем? Поскольку мы не можем настроить Github WebHook на своем репо, чтобы выстрелить событие в ваш развертывающий трубопровод, работающий в Minishift на вашем ноутбуке. Мы загрузили код в Gitea Repo, чтобы вы могли настроить свой собственный веб -ook.

Далее нам нужно развернуть нашу OCD-Envireoment-WebHook Обработчик, который будет ловить события WebHook и развернуть нашу конфигурацию. Мы можем установить это в собственном проекте, используя сценарий:

oc logout ; oc login -u developer -p password
echo Use this git repo url http://$ACCESS_TOKEN@$GITEA_URL/$USER_NAME/ocd-demo-env-short.git
# this must match where tiller is installed
export TILLER_NAMESPACE=tiller-namespace
# create a new project
export PROJECT=ocd-short-demo
oc new-project $PROJECT
oc project $PROJECT
# upgrade to admin
oc logout ; oc login -u admin -p admin
oc project $PROJECT
pushd /tmp && oc project $PROJECT && curl -L https://github.com/ocd-scm/ocd-environment-webhook/archive/v1.0.1.tar.gz | tar zxf - \
&& cd ocd-environment-webhook-1.0.1 \
&& ./wizard.sh && popd

Обратите внимание, что отголовать URL-адрес Git Reppo, который вам нужно кормить Wizard.sh скрипт Вот стенограмма моего запуска, где я в основном ударил, чтобы принять значения по умолчанию:

The git repo url? http://6d42f3eb637f802cf0b2d17411ae2c2d26eefa54@gitea-gitea.192.168.99.100.nip.io/simbo1905/ocd-demo-env-short.git
The project where the images are built and promoted from? ocd-short-demo
Repo name? (default: simbo1905/ocd-demo-env-short): 
Branch ref? (default: refs/heads/master): 
Chart instance prefix? (default: ocd-short-demo): 
Use --insecure-no-tls-verify? (default: false): 

Он настроил WebHook в Gitea, вам нужен URL WebHook и секрет веб -ook. Это выводит URL:

$ oc get route ocd-environment | awk 'NR>1{print "http://" $2 "/hooks/ocd-environment-webhook"}'
http://ocd-environment-ocd-short-demo.192.168.99.100.nip.io/hooks/ocd-environment-webhook

И это секрет:

$ oc describe dc ocd-environment-webhook | awk '$1~/WEBHOOK_SECRET:/{print $2}'
M7MuW6aZnn

Затем вы используете их, чтобы настроить Gitea WebHook типа Приложение/JSON :

Теперь вы можете выстрелить в окно Git в командной строке или путем редактирования файлов с помощью веб-консоли Gitea. Чтобы сделать это на командной линии попробуйте:

echo "testing" >> README.md
git commit -am 'test commit'
git push minishift master

Затем вы должны увидеть огонь WebHook и наше приложение развертывание 💨✨🌈

После этого вы можете выполнить шаги в видео выше, чтобы редактировать номер версии контейнера, чтобы увидеть приложение, выполняющее обновление Rolling. Для бонусных знаков вы можете попробовать шаги в конце учебного пособия до отката к первому выпуску.

В этом руководстве мы охватываем четыре из из шести предметов по желанию выше. В следующем посте мы автоматизируем сборку выпуска из события Release Git WebHook и применять тот же тег на изображение. Таким образом, мы можем точно отслеживать, какой код продвигается между средами. В то же время мы сделаем его простым в использовании последовательных версий выполнения через приложения. Это облегчает безопасность исправить изображение выполнения.

Оригинал: «https://dev.to/simbo1905/git-driven-deployments-on-origin-kubernetes-distribution-37c5»