Перейти к содержанию

Запуск в Kubernetes


Внимание!

  • Модуль ingress не предусмотрен в helm чарте
  • Не используйте PersistentVolume с classStorage: local в production окружении, это может привести к проблемам в работе сервиса
  • Перед обновлением, проверьте текущую версию Helm чарта. Мажорные версии обратно не совместимы!

Установка ПО GitFlic с помощью Helm

Внимание!

  • Для установки enterprise версии необходимо предварительно загрузить из личного кабинета образ gitflic-server-ee:<Актуальный тег> установить его в ваш реестр контейнеров и указывать его в качестве образа для ПО GitFlic
  • По умолчанию используется storageClass.name=default
  • Если установка производится в ознакомительных целях и не требуется хранить данные, добавьте ключи usePVC=false в команду запуска. Это отключит создание PVC и применит к вольюмам конфигурацию emptyDir:

    --set redis.usePVC=false
    --set postgres.usePVC=false
    --set elasticsearch.usePVC=false
    --set gitflic.usePVC=false
    
  • Автоматическое создание конфигурации для ingress контроллера находиться в тестовом режиме и отключено по умолчанию.

С изменениями в версиях и возможностями helm чарта можно ознакомиться в официальном репозитории

  1. Создайте сертификат для SSH сервера и ключевую пару RSA ключей для работы ПО GitFlic

    ssh-keygen -t ed25519 -N "" -q -f key.pem
    openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
    openssl rsa -pubout -in private_key.pem -out public_key.pem
    
  2. Запустите установку ПО GitFlic с помощью helm chart

    helm install gitflic oci://registry.gitflic.ru/helm/company/gitflic/gitflic-server-chart \
    --namespace gitflic --create-namespace \
    --set-file gitflic.certs.key=key.pem \
    --set-file gitflic.certs.public_key=public_key.pem \
    --set-file gitflic.certs.private_key=private_key.pem \
    --set gitflic.baseUrl="http://localhost:8080"
    
  3. После инициализации и запуска проверьте доступность веб интерфейса ПО GitFlic на 8080 порту. Порт 2255 используется для SSH соединения

    kubectl port-forward -n gitflic svc/gitflic-gitflic-service 8080:8080 2255:2255
    

Установка ПО GitFlic с помощью Helm и NFS Subdir Provisioner

В helm чарт ПО GitFlic встроена возможность подключить провиженера данных типа NFS для сохранения персистентрости статических файлов ПО GitFlic сервера. Данный провиженер не является рекомендованным и служит для ознакомления работы с платформой.

Установка и настройка NFS

Внимание !

  • Убедитесь, что сетевые настройки вашего хоста позволяют узлам Kubernetes обращаться к вашему NFS-серверу.
  • Убедитесь, что у вас есть права доступа к директории на уровне NFS-сервера, чтобы поды могли записывать данные.
  • Убедитесь что выделенного места достаточно для стабильной работы ПО Gitflic
  1. Подключитесь к серверу где будет располагаться nfs-server выполните установку необходимых пакетов

    sudo apt update && sudo apt install nfs-kernel-server
    
  2. Создайте директорию для хранения данных и назначьте ей необходимые права

    sudo mkdir -p /mnt/gitflic_data
    sudo chown nobody:nogroup /mnt/gitflic_data 
    
  3. Откройте файл /etc/exports и добавьте в него информацию что бы разрешить доступ к директориям

    /mnt/gitflic_data *(rw,sync,no_subtree_check,no_root_squash)
    
  4. Выполните экспорт директорий и перезапустите nfs-server

    sudo exportfs -a && sudo systemctl restart nfs-kernel-server
    
  5. Проверьте что директории корректно экспортированы

    sudo showmount -e localhost
    

Установка GitFlic server

  1. Создайте сертификат для SSH сервера и ключевую пару RSA ключей для работы ПО GitFlic

    ssh-keygen -t ed25519 -N "" -q -f key.pem
    openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
    openssl rsa -pubout -in private_key.pem -out public_key.pem
    
  2. Запустите установку ПО GitFlic с помощью helm chart

    helm install gitflic oci://registry.gitflic.ru/helm/company/gitflic/gitflic-server-chart \
    --namespace gitflic --create-namespace \
    --set-file gitflic.certs.key=key.pem \
    --set-file gitflic.certs.public_key=public_key.pem \
    --set-file gitflic.certs.private_key=private_key.pem \
    --set gitflic.baseUrl="http://localhost:8080" \
    --set nfsprovisioner.install=true \
    --set nfsprovisioner.nfs.server=<Адресс сервера nfs> \
    --set nfsprovisioner.nfs.path=<Путь до экспортируемой директории например /mnt/gitflic_data> \
    --set storageClass.name="nfs-client-gitflic" \
    --set redis.storage.storageClass.name="nfs-client-gitflic" \
    --set postgres.storage.storageClass.name="nfs-client-gitflic" \
    --set elasticsearch.storage.storageClass.name="nfs-client-gitflic" \
    --set gitflic.storage.storageClass.name="nfs-client-gitflic"
    
  3. После инициализации и запуска проверьте доступность веб интерфейса ПО GitFlic на 8080 порту. Порт 2255 используется для SSH соединения

    kubectl port-forward -n gitflic svc/gitflic-gitflic-service 8080:8080 2255:2255
    

Включение внешних баз данных

Если необходимо использовать внешние базы данных, добавьте в конфигурацию чарта параметры (redis/postgres/elasticsearch/rabbit).install: false и заполните соответствующие авторизационные поля. Подробнее см. в файле values.yaml

# values.yaml
postgres:
  install: false
  host: exhernal-host
  port: external-port
  user: external-user
  password: external-password
  database: external-database

...

elasticsearch:
  install: false
  uri: external-uri:extrenal-port
  user: external-user
  password: external-password

...

Включение лимитов для контейнеров

Для указания лимитов создаваемым контейнерам, добавьте в конфигурацию чарта параметры (redis/postgres/elasticsearch/rabbit).containers.resources.requests / (redis/postgres/elasticsearch/rabbit).containers.resources.limits. Подробнее см. в файле values.yaml

# values.yaml
elasticsearch:
  containers:
    resources:
      requests:
        cpu: "500m"
        memory: "512Mi"
      limits:
        cpu: "1000m"
        memory: "512Mi"