Helm Chart
Быстрая установка
Заголовок раздела «Быстрая установка»helm repo add nora https://getnora-io.github.io/helm-chartshelm repo updatehelm install nora nora/nora -n nora-system --create-namespaceУстанавливает NORA с локальным хранилищем (10 Gi PVC), включённой сборкой мусора и сервисом ClusterIP на порту 4000.
Справочник values.yaml
Заголовок раздела «Справочник values.yaml»| Ключ | По умолчанию | Описание |
|---|---|---|
image.repository | ghcr.io/getnora-io/nora | Образ контейнера |
image.tag | "" (appVersion из Chart) | Переопределение тега |
image.pullPolicy | IfNotPresent | Политика скачивания |
imagePullSecrets | [] | Секреты для приватных реестров |
Сервис и Ingress
Заголовок раздела «Сервис и Ingress»| Ключ | По умолчанию | Описание |
|---|---|---|
service.type | ClusterIP | Тип сервиса |
service.port | 4000 | Порт сервиса |
ingress.enabled | false | Включить Ingress |
ingress.className | "" | Класс Ingress |
ingress.annotations | {} | Аннотации Ingress |
ingress.hosts | см. values.yaml | Правила маршрутизации |
ingress.tls | [] | Конфигурация TLS |
Хранилище
Заголовок раздела «Хранилище»| Ключ | По умолчанию | Описание |
|---|---|---|
persistence.enabled | true | Включить PVC |
persistence.size | 10Gi | Размер тома |
persistence.storageClass | "" | StorageClass (пустое = по умолчанию) |
persistence.accessModes | [ReadWriteOnce] | Режимы доступа PVC |
Конфигурация NORA
Заголовок раздела «Конфигурация NORA»| Ключ | По умолчанию | Описание |
|---|---|---|
config.server.host | 0.0.0.0 | Адрес привязки |
config.server.port | 4000 | Порт |
config.storage.mode | local | Бэкенд: local или s3 |
config.storage.path | /data/storage | Путь к данным |
config.docker.proxy_timeout | 60 | Таймаут Docker upstream (с) |
config.docker.upstreams | [] | Docker upstream-реестры |
config.gc.enabled | true | Включить сборку мусора |
config.gc.interval | 86400 | Интервал GC (с) |
config.retention.enabled | false | Включить политики хранения |
config.retention.interval | 86400 | Интервал retention (с) |
Секреты и переменные окружения
Заголовок раздела «Секреты и переменные окружения»| Ключ | По умолчанию | Описание |
|---|---|---|
existingSecret | "" | Существующий Secret с ключом secrets.toml (для учётных данных приватных реестров) |
extraEnv | [] | Дополнительные переменные окружения — нативный Kubernetes env spec |
extraEnvFrom | [] | Дополнительные envFrom записи (secretRef / configMapRef) |
Ресурсы и планирование
Заголовок раздела «Ресурсы и планирование»| Ключ | По умолчанию | Описание |
|---|---|---|
resources.requests.cpu | 100m | Запрос CPU |
resources.requests.memory | 128Mi | Запрос памяти |
resources.limits.memory | 512Mi | Лимит памяти |
nodeSelector | {} | Привязка к узлам |
tolerations | [] | Toleration-правила |
affinity | {} | Правила affinity |
Безопасность пода
Заголовок раздела «Безопасность пода»| Ключ | По умолчанию | Описание |
|---|---|---|
podSecurityContext.fsGroup | 1000 | Группа файловой системы |
securityContext.runAsNonRoot | true | Запрет запуска от root |
securityContext.runAsUser | 1000 | UID контейнера |
securityContext.readOnlyRootFilesystem | true | Корневая FS только для чтения |
Паттерны конфигурации
Заголовок раздела «Паттерны конфигурации»1. Простая переменная окружения
Заголовок раздела «1. Простая переменная окружения»extraEnv: - name: NORA_AUTH_ENABLED value: "true" - name: NORA_RATE_LIMIT_ENABLED value: "false"2. Ссылка на Secret (конкретный ключ)
Заголовок раздела «2. Ссылка на Secret (конкретный ключ)»extraEnv: - name: NORA_STORAGE_S3_ACCESS_KEY valueFrom: secretKeyRef: name: s3-credentials key: access-key - name: NORA_STORAGE_S3_SECRET_KEY valueFrom: secretKeyRef: name: s3-credentials key: secret-key3. Массовое внедрение из Secret
Заголовок раздела «3. Массовое внедрение из Secret»Все ключи Secret становятся переменными окружения:
extraEnvFrom: - secretRef: name: nora-all-secrets4. existingSecret для учётных данных приватных реестров
Заголовок раздела «4. existingSecret для учётных данных приватных реестров»Храните учётные данные Docker upstream вне values.yaml. Создайте Secret с ключом secrets.toml:
apiVersion: v1kind: Secretmetadata: name: nora-registry-credsstringData: secrets.toml: | [[docker.upstreams]] url = "https://private.registry.io" auth = "user:token"Укажите его в values:
existingSecret: nora-registry-credsЭти upstream-реестры объединяются с config.docker.upstreams. При дублировании URL приоритет у Secret.
5. Ссылка на ConfigMap
Заголовок раздела «5. Ссылка на ConfigMap»extraEnvFrom: - configMapRef: name: nora-feature-flagsПример Ingress
Заголовок раздела «Пример Ingress»nginx Ingress Controller
Заголовок раздела «nginx Ingress Controller»ingress: enabled: true className: nginx annotations: cert-manager.io/cluster-issuer: letsencrypt-prod nginx.ingress.kubernetes.io/proxy-body-size: "0" nginx.ingress.kubernetes.io/proxy-read-timeout: "600" hosts: - host: registry.example.com paths: - path: / pathType: Prefix tls: - secretName: nora-tls hosts: - registry.example.comContour HTTPProxy
Заголовок раздела «Contour HTTPProxy»Используйте манифесты напрямую — см. Примеры Kubernetes.
Пример S3-хранилища
Заголовок раздела «Пример S3-хранилища»config: storage: mode: s3 path: /data/storage # путь локального кэша
extraEnv: - name: NORA_STORAGE_S3_URL value: "https://s3.amazonaws.com" - name: NORA_STORAGE_BUCKET value: "nora-registry" - name: NORA_STORAGE_S3_REGION value: "us-east-1" - name: NORA_STORAGE_S3_ACCESS_KEY valueFrom: secretKeyRef: name: s3-credentials key: access-key - name: NORA_STORAGE_S3_SECRET_KEY valueFrom: secretKeyRef: name: s3-credentials key: secret-keyМиграция с v0.1.8
Заголовок раздела «Миграция с v0.1.8»В chart v0.1.9 параметры env и secrets заменены на extraEnv и extraEnvFrom.
Было (v0.1.8):
env: NORA_AUTH_ENABLED: "true"secrets: NORA_STORAGE_S3_SECRET_KEY: "my-key"Стало (v0.1.9):
extraEnv: - name: NORA_AUTH_ENABLED value: "true" - name: NORA_STORAGE_S3_SECRET_KEY valueFrom: secretKeyRef: name: my-s3-secret key: secret-keyЗачем: Старый параметр secrets хранил чувствительные значения в values.yaml — антипаттерн для GitOps. extraEnv с secretKeyRef оставляет секреты в Kubernetes Secrets, где им и место.
Удаление
Заголовок раздела «Удаление»helm uninstall nora -n nora-systemСм. также
Заголовок раздела «См. также»- Параметры конфигурации — все переменные окружения NORA
- Развёртывание в рабочей среде — обратный прокси, TLS, systemd
- Примеры Kubernetes — манифесты, Kustomize
- Исходный код