Configuración de Harbor para repositorios de gráficos Helm y carga de cartas

  1. Configuración del repositorio Harbor

Nota: El entorno base utiliza Docker con enstalación mediante docker-compose.

1.1. Instalación de Docker

# Instalar paquetes necesarios
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# Configurar el repositorio de Docker
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# Instalar Docker CE
sudo yum install docker-ce

1.2. Descarga de Harbor

wget https://github.com/goharbor/harbor/releases/download/v2.3.1/harbor-offline-installer-v2.3.1.tgz
tar -zxvf harbor-offline-installer-v2.3.1.tgz

1.3. Instalación de Harbor

1.3.1. Modificación de archivos de configuración

cd harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml

Contenido del archivo harbor.yml:

# Configuración de Harbor

# Nombre de host (usar IP o dominio, no localhost)
hostname: ejemplo.dominio.com

# Configuración HTTP (modificar puerto si es necesario)
http:
  port: 80

# Configuración HTTPS (comentar si no se usa)
https:
  port: 443
  certificate: /ruta/a/certificado.pem
  private_key: /ruta/a/clave.key

# URL externa (descomentar para acceder externamente)
external_url: https://ejemplo.dominio.com

# Contraseña inicial del administrador
harbor_admin_password: contrasena_segura

# Configuración de la base de datos
database:
  password: raiz123
  max_idle_conns: 100
  max_open_conns: 900

# Volumen de datos para imágenes y gráficos
data_volume: /ruta/datos/harbor

# Configuración de Trivy (escaneo de vulnerabilidades)
trivy:
  ignore_unfixed: false
  skip_update: false
  insecure: false

# Configuración del servicio de trabajos
jobservice:
  max_job_workers: 10

# Configuración de registro de actividades
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor

# Versión de configuración (no modificar)
_version: 2.3.0

# Configuración de proxy global
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - trivy

Después de modificar, ejecutar el script de instalación:

sh install.sh

  1. Carga de gráficos Helm

2.1. Instalación del plugin helm-push

Nota: La instalación oficial puede ser lenta, se recomienda el método offline.

Instalación en línea:

helm plugin install https://github.com/chartmuseum/helm-push

Instalación offline:

# 1. Descargar el paquete helm-push (ej. v0.9.0)
# 2. Verificar la ruta de plugins de Helm
helm env

Salidda ejemplo de helm env:

HELM_PLUGINS="/root/.local/share/helm/plugins"
HELM_REGISTRY_CONFIG="/root/.config/helm/registry.json"
HELM_REPOSITORY_CACHE="/root/.cache/helm/repository"
HELM_REPOSITORY_CONFIG="/root/.config/helm/repositories.yaml"

# 3. Crear carpeta para el plugin y extraer el paquete
mkdir -p /root/.local/share/helm/plugins/helm-push
cp helm-push_0.9.0_linux_amd64.tar.gz /root/.local/share/helm/plugins/helm-push/
tar -zxvf /root/.local/share/helm/plugins/helm-push/helm-push_0.9.0_linux_amd64.tar.gz -C /root/.local/share/helm/plugins/helm-push/

# Verificar instalación
helm plugin list

Ejemplo de salida de helm plugin list:

NAME   VERSION DESCRIPTION
push   0.9.0   Push chart package to ChartMuseum

2.2. Uso de helm-push

2.2.1. Añadir repositorio

Al añadir el repositorio, se deben incluir credenciales:

helm repo add mi-repositorio https://direccion-harbor/chartrepo/nombre-proyecto --username=usuario --password=contrasena

2.2.2. Subir gráfico

helm push mi-grafico.tgz mi-repositorio

Etiquetas: Harbor Helm Docker Kubernetes ChartMuseum

Publicado el 7-28 20:48