{"id":3315,"date":"2026-10-11T20:48:00","date_gmt":"2026-10-11T18:48:00","guid":{"rendered":"https:\/\/djimn.com\/?p=3315"},"modified":"2026-10-11T20:48:00","modified_gmt":"2026-10-11T18:48:00","slug":"lo-que-nadie-cuenta-de-instalar-ibm-maximo-application-suite-sobre-openshift","status":"publish","type":"post","link":"https:\/\/djimn.com\/index.php\/2026\/10\/11\/lo-que-nadie-cuenta-de-instalar-ibm-maximo-application-suite-sobre-openshift\/","title":{"rendered":"Lo que nadie cuenta de instalar IBM Maximo Application Suite sobre OpenShift"},"content":{"rendered":"<p dir=\"ltr\">La documentaci\u00f3n de IBM Maximo Application Suite explica bien el camino feliz: preparas OpenShift, lanzas el <code dir=\"ltr\">mas install<\/code> del CLI oficial y esperas. En la realidad, la instalaci\u00f3n se para varias veces por cosas que no tienen nada que ver con MAS y s\u00ed mucho con el cluster en el que aterriza. Estas son las que me he encontrado instalando MAS 9.1, y las que ahora reviso <em>antes<\/em> de lanzar nada.<\/p>\n<p dir=\"ltr\"><strong>1. El cat\u00e1logo decide tu versi\u00f3n de OpenShift, no al rev\u00e9s.<\/strong> Cada cat\u00e1logo de operadores de MAS soporta un rango concreto de versiones de OpenShift. Antes de elegir versi\u00f3n de OCP para un cluster nuevo, mira qu\u00e9 cat\u00e1logo vas a usar y qu\u00e9 versiones admite, y cruza eso con el fin de soporte de cada versi\u00f3n de OpenShift. Elegir la m\u00e1s estable que conoces puede dejarte fuera de soporte en pocos meses.<\/p>\n<p dir=\"ltr\"><strong>2. El almacenamiento falla antes que MAS.<\/strong> Mis primeros bloqueos no fueron de MAS. Fueron par\u00e1metros del driver CSI mal puestos en la StorageClass, el secreto de credenciales del proveedor de almacenamiento que faltaba, y el registro interno de im\u00e1genes de OpenShift sin PVC. MAS necesita a la vez almacenamiento RWO (bases de datos, componentes con estado) y RWX (los vol\u00famenes compartidos de Manage). Prueba a crear un PVC de cada tipo y m\u00f3ntalo en un pod de prueba antes de instalar. Te ahorra horas de leer logs de operadores.<\/p>\n<p dir=\"ltr\"><strong>3. Las dependencias que ya existen en el cluster te pueden romper la instalaci\u00f3n.<\/strong> cert-manager, por ejemplo. Si ya hab\u00eda una instalaci\u00f3n previa o un OperatorGroup duplicado en su namespace, OLM se niega a resolver la suscripci\u00f3n y el error que ves no apunta claramente a la causa. Revisa qu\u00e9 operadores comunes ya hay en el cluster antes de que el instalador intente a\u00f1adir los suyos.<\/p>\n<p dir=\"ltr\"><strong>4. Si la base de datos es externa, prep\u00e1rala t\u00fa.<\/strong> Con una DB2 externa, el instalador no te va a crear lo que Manage necesita. Hay que dejar listos los tablespaces de datos e \u00edndices, un bufferpool de 32K y los permisos para que el usuario de Maximo pueda crear tablas. Y, por supuesto, la regla de firewall desde los workers al puerto de la base de datos. Ese \u00faltimo punto parece obvio y es el que m\u00e1s d\u00edas de espera me ha costado, porque depende de otro equipo.<\/p>\n<p dir=\"ltr\"><strong>5. Los permisos de los vol\u00famenes compartidos de Manage son delicados.<\/strong> Los pods de Manage corren con un UID aleatorio de OpenShift y acceden a los vol\u00famenes compartidos (adjuntos, carpetas globales de la aplicaci\u00f3n) a trav\u00e9s del grupo 0. Cualquier cosa que toque esos vol\u00famenes desde fuera puede dejar a Manage sin escritura en sus propias carpetas sin que salte ninguna alarma: un pod auxiliar, una copia de ficheros, un contenedor que hace <code dir=\"ltr\">chown<\/code> al arrancar. El s\u00edntoma tampoco ayuda: errores 404 en la consola o un \u201cthe entered path is not a directory\u201d al adjuntar un fichero. Desde entonces, todo lo que monto sobre esos PVC usa <code dir=\"ltr\">subPath<\/code> y respeta el grupo 0 con <code dir=\"ltr\">g+rwX<\/code> y el bit setgid en los directorios.<\/p>\n<p dir=\"ltr\"><strong>6. La red de salida tambi\u00e9n es parte de la instalaci\u00f3n.<\/strong> Las integraciones de verdad llegan despu\u00e9s: correo, LDAP, SSO, ServiceNow\u2026 y casi todas acaban en una petici\u00f3n de firewall. Si los pods salen con la IP de cualquier worker, cada apertura hay que hacerla para todos los nodos. Configurar una EgressIP fija para el namespace de Manage simplifica esas peticiones a una sola IP. Lo mismo pasa con los certificados: un wildcard p\u00fablico para las rutas de MAS es un requisito real para muchas integraciones, no un detalle cosm\u00e9tico. P\u00eddelo pronto, porque suele tardar.<\/p>\n<p dir=\"ltr\">Ninguno de estos puntos aparece como \u201cpaso\u201d en la gu\u00eda de instalaci\u00f3n, porque ninguno es estrictamente de MAS. Pero son exactamente los que deciden si la instalaci\u00f3n dura un d\u00eda o tres semanas.<\/p>\n<p dir=\"ltr\">\u00bfHab\u00e9is instalado MAS sobre OpenShift? \u00bfQu\u00e9 os bloque\u00f3 a vosotros que no aparec\u00eda en la documentaci\u00f3n?<\/p>\n<hr \/>\n<p dir=\"ltr\"><em>Si trabajas con OpenShift en producci\u00f3n, la parte de seguridad y monitorizaci\u00f3n del cluster la trato a fondo en mi manual \u201cSeguridad y monitorizaci\u00f3n en Kubernetes\u201d (950 p\u00e1ginas, en espa\u00f1ol). [Descarga la muestra gratuita]([URL de la muestra]) \u00b7 <a href=\"https:\/\/4016705366609.gumroad.com\/l\/seguridad-kubernetes?wanted=true\">Consigue el manual completo<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La documentaci\u00f3n de IBM Maximo Application Suite explica bien el camino feliz: preparas OpenShift, lanzas el mas install del CLI oficial y esperas. En la realidad, la instalaci\u00f3n se para varias veces por cosas que no tienen nada que ver con MAS y s\u00ed mucho con el cluster en el que aterriza. Estas son las [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3316,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[5],"tags":[60],"class_list":["post-3315","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-arquitecturadesoftware-cloudcomputing-devops-sre-monitorizacion-seguridad-aws-azure-gcp-finops"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/djimn.com\/wp-content\/uploads\/2026\/10\/instalar-mas-openshift.png?fit=1200%2C630&ssl=1","_links":{"self":[{"href":"https:\/\/djimn.com\/index.php\/wp-json\/wp\/v2\/posts\/3315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/djimn.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/djimn.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/djimn.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/djimn.com\/index.php\/wp-json\/wp\/v2\/comments?post=3315"}],"version-history":[{"count":1,"href":"https:\/\/djimn.com\/index.php\/wp-json\/wp\/v2\/posts\/3315\/revisions"}],"predecessor-version":[{"id":3317,"href":"https:\/\/djimn.com\/index.php\/wp-json\/wp\/v2\/posts\/3315\/revisions\/3317"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/djimn.com\/index.php\/wp-json\/wp\/v2\/media\/3316"}],"wp:attachment":[{"href":"https:\/\/djimn.com\/index.php\/wp-json\/wp\/v2\/media?parent=3315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/djimn.com\/index.php\/wp-json\/wp\/v2\/categories?post=3315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/djimn.com\/index.php\/wp-json\/wp\/v2\/tags?post=3315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}