95 lines
4.2 KiB
YAML
95 lines
4.2 KiB
YAML
---
|
||
harbor_version: "" # "" = автоматически последняя версия чарта
|
||
harbor_namespace: "harbor"
|
||
harbor_chart_repo: "https://helm.goharbor.io"
|
||
|
||
# Пароль администратора — задай в vault.yml: vault_harbor_admin_password
|
||
harbor_admin_password: "{{ vault_harbor_admin_password | default('Harbor12345') }}"
|
||
|
||
# Ingress (обязателен — Harbor требует корректный externalURL)
|
||
harbor_ingress_enabled: true
|
||
harbor_ingress_host: "harbor.local"
|
||
harbor_ingress_class: "{{ ingress_nginx_class_name | default('nginx') }}"
|
||
harbor_ingress_tls: false
|
||
harbor_ingress_cert_issuer: "{{ cert_manager_default_issuer_name | default('letsencrypt-prod') }}"
|
||
|
||
# Хранилище
|
||
harbor_registry_storage_size: "20Gi"
|
||
harbor_jobservice_storage_size: "1Gi"
|
||
harbor_trivy_storage_size: "5Gi"
|
||
harbor_storage_class: "" # "" = default StorageClass
|
||
|
||
# База данных
|
||
# internal — встроенная PostgreSQL (1Gi PVC)
|
||
# external — addon_postgresql (автоматически при addon_postgresql: true)
|
||
harbor_database_type: "{{ 'external' if addon_postgresql | default(false) | bool else 'internal' }}"
|
||
harbor_database_storage_size: "1Gi" # используется только при type: internal
|
||
harbor_db_host: "{{ postgresql_external_host | default('') }}"
|
||
harbor_db_port: "{{ postgresql_external_port | default(5432) }}"
|
||
harbor_db_name: "harbor"
|
||
harbor_db_username: "harbor"
|
||
harbor_db_password: "{{ vault_harbor_db_password | default('changeme-harbor') }}"
|
||
harbor_postgresql_admin_password: "{{ vault_postgresql_postgres_password | default('changeme-postgres') }}"
|
||
|
||
# Redis — всегда internal (отдельного Redis-аддона нет)
|
||
harbor_redis_storage_size: "1Gi"
|
||
|
||
# Метрики
|
||
harbor_metrics_enabled: true
|
||
# ServiceMonitor создаётся только когда addon_prometheus_stack: true
|
||
|
||
# ── Proxy Cache (зеркалирование публичных registry) ───────────────────────────
|
||
# При pull образа через Harbor он автоматически кэшируется в Harbor.
|
||
# Использование: docker pull harbor.example.com/dockerhub/library/nginx:latest
|
||
#
|
||
# Использование после настройки:
|
||
# docker pull harbor.example.com/dockerhub/library/nginx:latest # → кэш из docker.io
|
||
# docker pull harbor.example.com/ghcr/owner/image:tag # → кэш из ghcr.io
|
||
# docker pull harbor.example.com/k8s-registry/kube-apiserver:v1.30.0
|
||
# ^^^^^^^^^ имя проекта ниже
|
||
harbor_proxy_cache_enabled: true
|
||
harbor_proxy_cache_registries:
|
||
- name: "dockerhub"
|
||
description: "Docker Hub"
|
||
type: "docker-hub"
|
||
url: "https://hub.docker.com"
|
||
- name: "gcr"
|
||
description: "Google Container Registry"
|
||
type: "gcr"
|
||
url: "https://gcr.io"
|
||
- name: "quay"
|
||
description: "Quay.io"
|
||
type: "quay"
|
||
url: "https://quay.io"
|
||
- name: "ghcr"
|
||
description: "GitHub Container Registry"
|
||
type: "docker-registry"
|
||
url: "https://ghcr.io"
|
||
- name: "k8s-registry"
|
||
description: "Kubernetes Registry (registry.k8s.io)"
|
||
type: "docker-registry"
|
||
url: "https://registry.k8s.io"
|
||
- name: "mcr"
|
||
description: "Microsoft Container Registry"
|
||
type: "docker-registry"
|
||
url: "https://mcr.microsoft.com"
|
||
- name: "ecr-public"
|
||
description: "Amazon ECR Public Gallery"
|
||
type: "docker-registry"
|
||
url: "https://public.ecr.aws"
|
||
|
||
# ── Tag Retention Policy ──────────────────────────────────────────────────────
|
||
# Автоматически удалять образы если их больше N штук для одного репозитория.
|
||
# Политика применяется ко ВСЕМ проектам (включая proxy cache).
|
||
# Запуск: ежедневно в 03:00 UTC.
|
||
harbor_retention_enabled: true
|
||
harbor_retention_max_tags: 3 # хранить последних N тегов по дате push
|
||
|
||
harbor_resources:
|
||
requests:
|
||
cpu: 100m
|
||
memory: 256Mi
|
||
limits:
|
||
cpu: 1000m
|
||
memory: 1Gi
|