Skip to content

video-hosting-platform/deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Установка всех зависимостей и cli

Установка kubectl(если необходимо)

curl -LO https://dl.k8s.io/release/`curl -LS https://dl.k8s.io/release/stable.txt`/bin/linux/amd64/kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

kubectl version --client

Не обязательные фишки

// для bash, чтобы в cli были автодополнения команд
// если не bash, то пободно
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrc

Установка mc - Minio client(если необходимо)

curl https://dl.min.io/client/mc/release/linux-amd64/mc \
  --create-dirs \
  -o $HOME/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

Установка Helm(если необходимо)

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

Запуск

Запуск кластера локально:

Для того чтобы не пондимать постоянно необходимые контейнеры, например RabbitMq, MinIO etc, делаем проброс портов

minikube start
helm install video-hosting oci://ghcr.io/redblood-pixel/charts/video-hosting-stack --version 0.1.10
bash bash/local_dev_ports.sh # скрипт, чтобы пробросить порты и автоматически открыть все сервисы
  • Смотрим на вывод паролей и логинов(для лок. разработки) и экспортируем к себе (в config)

Запуск кластера для прода

Для запуска для прода рекомендуется создать и заполнить в корне проекта values.yaml(пример можно найти в директории helm/video-hosting-stack)

Для того, чтобы редактировать values.yaml для зависимостей, можно использовать следующие референсы

Перед запуском terraform его необходимо настроить

terraform -chdir=terraform init
terraform -chdir=terraform apply

Чтобы удалить поднятую инфраструктуру, нужно воспользоваться командой terraform -chdir=terraform destroy

Сборка и пуш чарта

Чтобы собрать и запушить чарт нужно:

  • Перейти в папку с чартом - cd ./path-to-chart(helm/video-hosting-stack)
  • Обновить и скачать зависимости - helm dependency update
  • Проверить чарт - helm lint .
  • Собрать чарт - helm package .
  • Чтобы запушить нужно
    • Создайте Personal Access Token (PAT) в GitHub:
      • Настройки → Developer settings → Personal access tokens → Tokens (classic).
      • Дайте права: write:packages, read:packages, delete:packages
    • Залогиньтесь в GHCR через Helm:
      echo "ваш_github_token" | helm registry login ghcr.io \
      --username ваш_github_username \
      --password-stdin
  • Запушить чарт - helm push ваш-чарт-0.1.0.tgz oci://ghcr.io/ваш_github_username/charts
  • Можно скачать чарт - helm install my-app oci://ghcr.io/ваш_github_username/charts/ваш-чарт --version 0.1.0

Какие сервисы запускаются и как?

  • Traefik(API-Gateway) - разворачивается в Helm
  • Minio - разворачивается в Helm
  • Rabbitmq - разворачивается без Helm, обычным kubectl apply -f ...
  • Nginx(раздает статический файл) - разворачивается без Helm, кастомные манифесты

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors