- 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
- 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