Запуск в 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 чарта можно ознакомиться в официальном репозитории
-
Создайте сертификат для 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
-
Запустите установку ПО 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"
-
После инициализации и запуска проверьте доступность веб интерфейса ПО 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
-
Подключитесь к серверу где будет располагаться nfs-server выполните установку необходимых пакетов
sudo apt update && sudo apt install nfs-kernel-server
-
Создайте директорию для хранения данных и назначьте ей необходимые права
sudo mkdir -p /mnt/gitflic_data sudo chown nobody:nogroup /mnt/gitflic_data
-
Откройте файл /etc/exports и добавьте в него информацию что бы разрешить доступ к директориям
/mnt/gitflic_data *(rw,sync,no_subtree_check,no_root_squash)
-
Выполните экспорт директорий и перезапустите nfs-server
sudo exportfs -a && sudo systemctl restart nfs-kernel-server
-
Проверьте что директории корректно экспортированы
sudo showmount -e localhost
Установка GitFlic server
-
Создайте сертификат для 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
-
Запустите установку ПО 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"
-
После инициализации и запуска проверьте доступность веб интерфейса ПО 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"