A logo showing the text blog.marcnuri.com
English
Inicio»Proyectos personales»Ahoy, Helm Java!

Entradas Recientes

  • Fabric8 Kubernetes Client 7.2.0 está disponible!
  • Conectarse a un servidor MCP con JavaScript y AI SDK
  • Conectarse a un servidor MCP con JavaScript y LangChain.js
  • El Futuro de las Herramientas para Desarrolladores en la era de la IA
  • Conectarse a un servidor Model Context Protocol (MCP) con Java y LangChain4j

Categorías

  • Antiguo
  • Front-end
  • Go
  • Herramientas
  • Industria y negocios
  • Inteligencia Artificial
  • Java
  • JavaScript
  • Operaciones
  • Personal
  • Proyectos personales

Archivos

  • mayo 2025
  • abril 2025
  • marzo 2025
  • febrero 2025
  • enero 2025
  • diciembre 2024
  • noviembre 2024
  • agosto 2024
  • junio 2024
  • mayo 2024
  • abril 2024
  • marzo 2024
  • febrero 2024
  • enero 2024
  • diciembre 2023
  • noviembre 2023
  • octubre 2023
  • septiembre 2023
  • agosto 2023
  • julio 2023
  • junio 2023
  • mayo 2023
  • abril 2023
  • marzo 2023
  • febrero 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • agosto 2022
  • julio 2022
  • mayo 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • diciembre 2020
  • octubre 2020
  • agosto 2020
  • junio 2020
  • mayo 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • noviembre 2019
  • octubre 2019
  • julio 2019
  • diciembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • mayo 2018
  • marzo 2018
  • febrero 2018
  • noviembre 2017
  • octubre 2017
  • agosto 2017
  • julio 2017
  • enero 2017
  • julio 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • diciembre 2014
  • marzo 2014
  • febrero 2011
  • junio 2008
  • mayo 2008
  • abril 2008
  • enero 2008
  • junio 2007
  • mayo 2007
  • abril 2007
  • marzo 2007

Ahoy, Helm Java!

2024-02-15 en Proyectos personales etiquetado Java / Helm / helm-java / Kubernetes / Open Source por Marc Nuri | Última actualización: 2024-08-15
English version

Un capitán de barco sosteniendo una taza con la mascota de Java detrás del timón (Helm)
Un capitán de barco sosteniendo una taza con la mascota de Java detrás del timón (Helm)

Introducción

Cuando trabajamos con Kubernetes, Helm se ha convertido en una de las herramientas más utilizadas para gestionar el despliegue de aplicaciones. Helm actúa como un gestor de paquetes para Kubernetes, facilitando la definición, instalación y actualización de aplicaciones de Kubernetes, incluso las más complejas.

La interfaz de línea de comandos (CLI) de Helm es la herramienta principal para gestionar los charts de Helm. Normalmente, los usuarios invocan comandos de la CLI de Helm para crear, empaquetar, instalar, actualizar y revertir versiones de aplicaciones.

Si bien las CLIs son potentes, invocar comandos de Helm directamente desde tu aplicación Java puede que no siempre sea el enfoque más eficiente. Aquí es donde entra en juego Helm Java.

Helm Java es una biblioteca Java que proporciona una API fluida para interactuar con Helm. Bajo el capó, Helm Java utiliza enlaces nativos a la biblioteca Helm Go, por lo que se comporta exactamente como la CLI de Helm.

Primeros pasos

Para incorporar Helm Java en tu proyecto, simplemente añade la siguiente dependencia a tu pom.xml si estás utilizando Maven:

pom.xml
<dependency>
  <groupId>com.marcnuri.helm-java</groupId>
  <artifactId>helm-java</artifactId>
  <version>0.0.15</version>
</dependency>

Para proyectos Gradle, añade lo siguiente a tu build.gradle:

build.gradle
implementation 'com.marcnuri.helm-java:helm-java:0.0.15'

¡Eso es todo! Ahora estás listo para ejecutar Helm desde Java.

Funcionalidades

El proyecto tiene como objetivo lograr la paridad de funcionalidades con la CLI de Helm. Puedes consultar la lista completa de comandos compatibles en el README.md del repositorio de GitHub de Helm Java.

En la actualidad, helm-java soporta la mayoría de los comandos estándar de Helm, incluyendo (entre muchos otros):

  • install: Instalar un chart.
  • upgrade: Actualizar un despliegue a una nueva versión de un chart.
  • uninstall: Desinstalar un despliegue.
  • test: Ejecutar las pruebas para un despliegue.
  • push: Publicar un chart en un repositorio.
  • dependency management: Gestionar las dependencias de un chart.
  • repo management: Añadir, listar, eliminar, actualizar e indexar repositorios de charts.
  • registry: Iniciar o cerrar sesión en un registro de Helm.
  • lint: Comprobar un chart en busca de posibles problemas.
  • package: Empaquetar un chart en un archivo.
  • template: Renderizar templates de chart localmente.

Ejemplo de instalación con Helm

Supongamos que quieres instalar un chart de Helm desde un repositorio. Puedes lograrlo con el siguiente código:

import com.marcnuri.helm.Helm;

public static void main(String[] args) {
  Helm.install("prometheus-community/prometheus")
    .withName("my-prometheus")
    .call();
}

Por otro lado, es posible que prefieras instalar un chart desde un directorio local:

public static void main(String[] args) {
  new Helm(Paths.get("path", "to", "chart"))
    .install()
    .withName("my-chart")
    .call();
}

La mayoría de los modificadores de comandos de instalación también están soportados:

public static void main(String[] args) {
  new Helm(Paths.get("path", "to", "chart"))
    .install()
    .generateName()
    .dependencyUpdate()
    .set("value.key", "value")
    .set("value.key.typed", 123)
    .call();
}

Como puedes ver, helm-java proporciona una API fluida que te permite interactuar con Helm de una manera muy intuitiva.

Conclusión

En esta publicación, te he presentado a Helm Java, una excelente biblioteca que te permite interactuar con Helm desde tus aplicaciones Java. Si estás considerando automatizar las operaciones de Helm mientras utilizas Java, esta biblioteca es una excelente opción que probablemente satisfará tus necesidades y te ahorrará un valioso tiempo.

Por favor, prueba Helm Java y dinos qué piensas.

Twitter iconFacebook iconLinkedIn iconPinterest iconEmail icon

Navegador de artículos
Fabric8 Kubernetes Client 6.11 está disponible!Eclipse JKube 1.16 está disponible!
© 2007 - 2025 Marc Nuri