Antes de enseñarte a cómo hacer tu propio repositorio, primero te voy a enseñar cómo administrar los repositorios.
Buscar en el repositorio de Helm:
helm search hub grafana
Buscar en los repositorios ya instalados:
helm searh repo grafana
Para ver los Values de un paquete:
helm show values grafana
Supongamos que hiciste tu propio archivo de values y lo quieres aplicar en lugar del que trae por el paquete:
helm install -f miarchivo.yaml aplicación paquete
Crear repositorio con GitHub
1. Creas un nuevo repositorio público en GitHub. 2. Ahora que estas en el repositorio nuevo que creaste, vas a settings -> Pages (en la barra de la izquierda).
3. En Branch seleccionas la branch que quieres usar, en este ejemplo usaré main y por último seleccionas el directorio que por default es /(root). 4. Por último le das click en Save. Con esto has creado un repositorio.
La URL para acceder a tu repositorio es:
https://tuuser.github.io/tu-repositorio/
Por ejemplo:
https://ahioros.github.io/nginx-charts/
Subir nuestro paquete al repositorio.
En el post anterior creamos nuestro package/paquete de nuestra aplicación. Para que funcione nuestro repositorio debemos crear una carpeta llamada charts y dentro poner nuestro paquete.
Ahora debemos crear un archivo index.yaml para que helm sepa que charts hay dentro del repositorio.
helm repo index .
Nota: Hay un espacio y un punto después de index.
El contenido de este index.yaml es:
Ahora queda subirlo al repositorio de github.
Agregando nuestro repositorio a Helm
Para agregar nuestro repositorio a Helm debemos ejecutar:
helm repo add turepo https://TUURLDETUREPOSITORIO/TUCHARTS helm repo add ahioros https://ahioros.github.io/nginx-charts/
Comprobamos que se ha agregado correctamente nuestro repositorio:
helm search repo turepo helm search repo ahioros
Instalando desde tu repositorio
Ahora lo que queda es instalar tus propios paquetes desde tu repositorio recien creado.
Puedes realizar una "instalación fake"
helm install --dry-run nombrepaquete turepo/nombrepaquete helm install --dry-run test ahioros/nginx-chart
Nota: esto nos instalará el paquete nginx-chart (sin S al final) de nuestro reposirotorio que se llama nginx-charts (con S al final) el paquete cuando sea instalado se llamará test.
Salida:
--- NAME: test LAST DEPLOYED: Tue Aug 27 18:48:41 2024 NAMESPACE: default STATUS: pending-install REVISION: 1 TEST SUITE: None HOOKS: MANIFEST: --- # Source: nginx-chart/templates/namespace.yaml apiVersion: v1 kind: Namespace metadata: name: nginx-chart --- # Source: nginx-chart/templates/lbl-service.yaml apiVersion: v1 kind: Service metadata: name: loadbalancer-test-nginx-chart namespace: nginx-chart spec: ports: - port: 80 targetPort: 80 protocol: TCP type: LoadBalancer selector: app: app.kubernetes.io/name: nginx-chart app.kubernetes.io/instance: test --- # Source: nginx-chart/templates/service.yaml apiVersion: v1 kind: Service metadata: name: test-nginx-chart namespace: nginx-chart spec: selector: app: helm.sh/chart: nginx-chart-1.0.0 app.kubernetes.io/name: nginx-chart app.kubernetes.io/instance: test app.kubernetes.io/version: "1.16.0" app.kubernetes.io/managed-by: Helm ports: - protocol: TCP port: 80 targetPort: 80 --- # Source: nginx-chart/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: test-nginx-chart namespace: nginx-chart spec: replicas: 2 selector: matchLabels: app: app.kubernetes.io/name: nginx-chart app.kubernetes.io/instance: test template: metadata: labels: app: app.kubernetes.io/name: nginx-chart app.kubernetes.io/instance: test spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 NOTES: Nginx se ha desplegado correctamente. Puedes acceder a la aplicación a través de http://IP:80 ---
Ahora si todo está bien ya puedes instalar tu paquete, solo debes quitar el --dry-run:
helm install nginx-chart ahioros/nginx-chart
Podemos verificar nuestra aplicación instalada con kubectl:
kubectl get all -n nginx-chart
Listo hasta aquí la guía de Helm, espero que te sirva, si tienes dudas puedes dejarla en los comentarios.
Top comments (0)