Artículo
· 15 mayo, 2024 Lectura de 4 min

IKO - Lecciones aprendidas (Parte 1 - Helm)

La documentación de IKO es robusta. Una única página web, que consta de unas 50 páginas reales de documentación. Para los principiantes eso puede ser un poco abrumador. Como dice el refrán: ¿cómo se come un elefante? Mordisco a mordisco. Empecemos con el primer bocado: Helm.

¿Qué es Helm?

Helm es a Kubernetes lo que el InterSystems Package Manager (IPM, antes ObjectScript Package Manager - ZPM) es a IRIS.

Facilita la instalación de aplicaciones en la plataforma, de una forma adecuada para Kubernetes. Es decir, está desarrollado de tal manera que facilita la instalación según sus necesidades, ya sea un entorno de desarrollo, prueba o producción.

Proporcionamos en nuestra distribución de software WRC todo lo que necesitaréis en la pestaña IRIS Components - consiste en un .tar.gz. Extraedlo y obtendréis un .tar. Extraedlo de nuevo y veréis una carpeta iris_operator_<versión>. Aquí hay un README con instrucciones, así como 3 carpetas - una imagen del IKO (también podríais haberla obtenido del InterSystems Container Registry), un chart y ejemplos. Los ejemplos son sólo para ayudaros a crear vuestros archivos, pero en realidad no es necesario para la instalación IKO. El chart, sin embargo, es necesario. Echemos un vistazo.

chart
|
|-> iris-operator
               |
               | -> README.md
               | -> .helmignore
               | -> Chart.yaml
               | -> values.yaml
               | -> templates 
                      | -> _helpers.tpl
                      | -> apiregistration.yaml
                      | -> appcatalog-user-roles.yaml
                      | -> cleaner.yaml
                      | -> cluster-role.yaml
                      | -> cluster-role-binding.yaml
                      | -> deployment.yaml
                      | -> mutating-webhook.yaml
                      | -> NOTES.txt
                      | -> service.yaml
                      | -> service-account.yaml
                      | -> user-roles.yaml
                      | -> validating-webhook.yaml
               

Esta es la carne y las patatas (una forma divertida de decir ingredientes básicos) de la aplicación que vamos a instalar. No os preocupéis. Lo único que nos importa es el values.yaml. Todo lo demás sucede entre bastidores, gracias a Helm. ¡Uf! Pero es importante saber que aunque nuestro operador pueda parecer un pod ordinario, es mucho más que eso.

La mayoría de los contenidos del values.yaml también van a estar fuera del alcance de este artículo porque no tendréis que preocuparos por ellos. Sólo nos preocuparemos de 4 campos (vale, 5 como mucho).

Son operator.registry, operator.repository, operator.tag, imagePullSecrets.name[0] e imagePullPolicy.

¿Dónde está vuestra imagen IKO? ¿Vuestra organización utiliza un repositorio privado? ¿Estáis planeando extraerla del ICR? Especificad los detalles de vuestra imagen en los campos de registro, repositorio y etiqueta. Si estáis utilizando el ICR podéis dejarlo como está.

¿Cómo accederéis al ICR o al repositorio de su organización? Suponiendo que sea privado, tendréis que especificar los datos con los que podréis acceder a él para tirar de él. En el próximo artículo hablaré de cómo crear este secreto, que podemos llamar intersystems-pull-secret en lugar del dockerhub-secret estándar que es lo que hay actualmente si habéis descargado los archivos del WRC.

Finalmente para el imagePullPolicy podemos dejarlo como Always, o alternativamente cambiarlo a IfNotPresent o Never. Os remito a la documentación de Kubernetes si necesitáis aclaraciones - aquí. Yo suelo usar IfNotPresent.

¡Parece que estamos listos para ir (suponiendo que ya tenéis Helm instalado, si no instaladlo primero)! Vamos a instalar el IKO. Vamos a tener que decirle a helm donde está la carpeta con todas nuestras cosas (esa es la carpeta iris-operator que veis arriba). Si estuviéramos en el directorio chart podéis usar el comando

helm install intersystems iris-operator

pero quizá estáis trabajando en algún nivel superior. No hay problema. Supongamos que estáis en un repositorio con iris_operator_amd-3.6.7.100:

helm install intersystems iris_operator_amd-3.6.7.100/chart/iris-operator

Recibiréis un mensaje que os indicará que la instalación se ha realizado correctamente y podréis comprobar que la instalación se está ejecutando tal y como se indica en el mensaje y en nuestra documentación.

kubectl --namespace=default get deployments -l "release=intersystems, app=iris-operator"

En el próximo post pondremos en práctica InterSystems Kubernetes Operator.

Comentarios (0)1
Inicie sesión o regístrese para continuar