Перейти к содержимому

Установка

Эта инструкция описывает базовую установку. Перед началом убедитесь, что выполнены требования.

Создайте базу данных и пользователя:

CREATE USER opsman WITH PASSWORD 'strong-password';
CREATE DATABASE opsman OWNER opsman;
GRANT ALL PRIVILEGES ON DATABASE opsman TO opsman;

Запишите connection string:

postgres://opsman:[email protected]:5432/opsman?sslmode=require
Окно терминала
kubectl create namespace opsman
kubectl -n opsman create secret docker-registry opsman-registry \
--docker-server=registry.company.com \
--docker-username=<user> \
--docker-password=<password>

3. Подготовьте RSA-ключ для подписей токенов

Заголовок раздела «3. Подготовьте RSA-ключ для подписей токенов»
Окно терминала
openssl genrsa -out jwt-private.pem 2048
kubectl -n opsman create secret generic opsman-jwt --from-file=private.pem=jwt-private.pem
  1. Распакуйте полученный архив с Helm-чартами, перейдите в charts/api-service.

  2. Создайте values.prod.yaml:

    image:
    repository: registry.company.com/opsman/api-service
    tag: "1.0.0"
    pullSecrets:
    - opsman-registry
    env:
    DATABASE_URL: "postgres://opsman:[email protected]:5432/opsman?sslmode=require"
    JWT_PRIVATE_KEY_PATH: "/etc/jwt/private.pem"
    SMTP_HOST: "smtp.company.com"
    SMTP_PORT: "587"
    SMTP_USER: "[email protected]"
    SMTP_PASS: "***"
    SMTP_FROM: "[email protected]"
    volumes:
    - name: jwt-key
    secret:
    secretName: opsman-jwt
    volumeMounts:
    - name: jwt-key
    mountPath: /etc/jwt
    readOnly: true
    resources:
    limits: { cpu: 2, memory: 4Gi }
    requests: { cpu: 500m, memory: 1Gi }
    ingress:
    enabled: true
    host: api-opsman.company.com
    tls:
    enabled: true
    secretName: api-opsman-tls
  3. Примените чарт:

    Окно терминала
    helm upgrade --install api-service ./charts/api-service \
    -n opsman \
    -f values.prod.yaml
  4. Проверьте, что API поднялся:

    Окно терминала
    kubectl -n opsman rollout status deploy/api-service
    curl -sf https://api-opsman.company.com/healthz

    Должны получить HTTP 200.

Миграции БД применяются автоматически при первом старте. В логах вы увидите строки о применении каждой миграции.

  1. Перейдите в charts/console.

  2. Создайте values.prod.yaml:

    image:
    repository: registry.company.com/opsman/console
    tag: "1.0.0"
    pullSecrets:
    - opsman-registry
    env:
    NODE_ENV: "production"
    PORT: "3000"
    HOST: "0.0.0.0"
    API_BASE_URL: "https://api-opsman.company.com"
    resources:
    limits: { cpu: 1, memory: 1Gi }
    requests: { cpu: 200m, memory: 256Mi }
    ingress:
    enabled: true
    host: console.company.com
    tls:
    enabled: true
    secretName: console-tls
  3. Установите:

    Окно терминала
    helm upgrade --install console ./charts/console \
    -n opsman \
    -f values.prod.yaml
  4. Откройте https://console.company.com — увидите страницу логина.

Откройте https://console.company.com/register. Введите данные — создастся и компания, и первый пользователь. Он получит расширенные права автоматически.

После установки обязательны три проверки:

  1. Логин: https://console.company.com, учётная запись создана.
  2. API: curl https://api-opsman.company.com/healthz → 200 OK.
  3. Регистрация компании и получение company token: после логина зайдите в Settings → Integrations → Kubernetes Clusters → Add — увидите инструкцию с вашим токеном, его используют агенты.