Установка

Предварительная настройка

После заключения контракта менеджер должен передать 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