Установка
Предварительная настройка
После заключения контракта менеджер должен передать 2 файла конфигурации k8s, в которых описываются настроки секретов, необходимых для релиза софта. Их необходимо применить при помощи команды kubectl
export ONPREM_NAMESPACE=yandex-onprem # or override to your custom namespace
kubectl apply -n $ONPREM_NAMESPACE -f apikey.yaml
kubectl apply -n $ONPREM_NAMESPACE -f license.yaml
Важно
Мы рекомендуем разворачивать onprem в отдельном неймспейсе, чтобы не было конфликта имен с существующими объектами k8s.
Далее необходимо написать конфигурационный файл для helm-чарта(стандартное название - values.yaml):
domain: YOUR-DOMAIN # domain suffix to be used in js api bundle
global:
ipv6: false # optional, defaults to false. Enable if you need ipv6 support
fast_storage_class: ssd # ssd storage class of your cloud provider, optional
Установка
Далее собственно установка:
export ONPREM_NAMESPACE=yandex-onprem # or override to your custom namespace
apikey=$(kubectl get -n $ONPREM_NAMESPACE secret apikey -o json | jq -r .data.key | base64 -d)
secret=$(kubectl get -n $ONPREM_NAMESPACE secret apikey -o json | jq -r .data.secret | base64 -d)
base_url="/jwt/issue?apikey=${apikey}&expires=`date -d '+1 hour' +%s`"
signature=$(echo -n $base_url | openssl sha256 -hmac $secret -binary | base64)
password=$(curl -H "X-Signature: ${signature}" "auth.on-prem.maps.yandex.net/${base_url}")
echo $password | helm registry login registry.on-prem.maps.yandex.net -u $apikey --password-stdin
helm install -n $ONPREM_NAMESPACE yandex-onprem oci://registry.on-prem.maps.yandex.net/yandex-onprem -f values.yaml # put here path to your values.yaml created in previous step
После успешной установки необходимо настроить ingress для заведения трафика в k8s по следующим правилам:
| Domain | K8S service |
|---|---|
| YOUR-DOMAIN | front-startup-service |
| tiles.YOUR-DOMAIN | core-renderer-tilesgen |
| geocoder.api.YOUR-DOMAIN | front-geocode-search-api |
| router.api.YOUR-DOMAIN | front-router-api |
| js.api.YOUR-DOMAIN | front-startup-service |
| suggest.api.YOUR-DOMAIN | geosuggest |
Важно
Не забудьте корректно настроить CORS на стороне вашего ingress контроллера.
Обновление
Для обновления на самую свежую версию необходимо запустить следующий скрипт:
export ONPREM_NAMESPACE=yandex-onprem # or override to your custom namespace
apikey=$(kubectl get -n $ONPREM_NAMESPACE secret apikey -o json | jq -r .data.key | base64 -d)
password=$(kubectl get -n $ONPREM_NAMESPACE secret apikey -o json | jq -r .data.jwt | base64 -d)
echo $password | helm registry login registry.on-prem.maps.yandex.net -u $apikey --password-stdin
helm upgrade -n $ONPREM_NAMESPACE --reuse-values yandex-onprem oci://registry.on-prem.maps.yandex.net/yandex-onprem