/moodle

Deploy Moodle on Red Hat OpenShift Dedicated

Moodle on Red Hat OpenShift Dedicated

Moodle Redhat OpenShift kubernetes Tekton shell linkedin

El propósito de este proyecto consiste en autogenerar los objetos kubernetes y deployar en un ambiente de Dev, en base al codigo fuente del repositorio oficial Moodle por medio de un Pipeline Tekton para el despliegue sobre las plataformas de contenedores Kubernetes que cuenten con el Operador de Pipelines Instalado.

Para la construcción de la imagen del contenedor de moodle se utiliza la imagen oficial de RHEL8 del catálogo de Red Hat para php-74 con el agregado de la extensión php-zip requerida para la instalación de moodle.

Se verifico el funcionamiento en Sandbox RedHat OpenShift Dedicated (Openshift 4.14.1) a partir del release MOODLE_311_STABLE con una base de datos mariadb proporsionada por el catalogo de OpenShift.

Instalación Pipeline Tekton en OpenShift

  1. Ingresar a tu Sandbox y abrir una terminal web desde la consola de openshift seleccionando en el namespace asignado y ejecutar el siguiente comando para la creación del Pipeline Tekton
oc apply -f https://raw.githubusercontent.com/maximilianoPizarro/moodle/master/pipeline.yaml
Output:
Welcome to the OpenShift Web Terminal. Type "help" for a list of installed CLI tools.
bash-4.4 ~ $ oc apply -f https://raw.githubusercontent.com/maximilianoPizarro/moodle/master/pipeline.yaml
persistentvolumeclaim/moodle-workspace created
task.tekton.dev/s2i-php-74 configured
pipeline.tekton.dev/moodle configured

Ejecución Pipeline Tekton

  1. Desde la sección de Pipelines actualizar Parameters con los valores de correspondiente, tener en cuenta para el caso del dns el dominio base puede cambiar segun la región.
IMAGE_NAME=image-registry.openshift-image-registry.svc:5000/<NAMESPACE>/moodle
EXTERNAL_URL=moodle-<NAMESPACE>.apps.sandbox-m2.ll9k.p1.openshiftapps.com
VERSION=<NAMESPACE>-dev/php-74
Output:
IMAGE_NAME=image-registry.openshift-image-registry.svc:5000/maximilianopizarro5-dev/moodle
EXTERNAL_URL=moodle-maximilianopizarro5-dev.apps.sandbox-m2.ll9k.p1.openshiftapps.com
VERSION=maximilianopizarro5-dev/php-74

NOTA: Puede modificar los parametros desde el objeto moodle dentro del archivo pipeline.yaml como alternativa o desde el formulario de ejecución.

  1. Desde Pipeline builder instalar y agregar la tasks yq disponible en el catálogo de Pipelines. Importante: no guardar el cambio en Pipeline, seleccionar cancelar para que no se actualice el Pipeline con yq vacio.

  1. Desde la seccion de Pipeline seleccionar moodle y ejecutar Pipeline con el workspace "moodle-workspace" configurado.

  1. Luego de la ejecución con exito de la tasks 'oc-apply-manifest' , modicar el objeto moodle-configuration con los valores de desde la seccion de ConfigMaps, la opcion 'Edit ConfigMap', aplicar restart-rollout al deployment de moodle y verificar que el pod escale a 1 réplica.
  $CFG->dbhost    = 'mariadb.<NAMESPACE>-dev.svc.cluster.local';
  $CFG->wwwroot   = 'https://moodle-<NAMESPACE>-dev.apps.sandbox-m2.ll9k.p1.openshiftapps.com';

Instalación Moodle

  1. Desde la vista Topology seleccionar la aplicación moodle en donde encontraremos al dns del sitio.

  1. Vemos que comple los requerimientos mínimos y seleccionamos continuar.

  1. Generamos la cuenta administrador principal del sitio.

  1. Configuramos el nombre y la region.

  1. Vamos a recibir un correo de moodle con la confirmación del sitio, aceptamos los términos y condiciones.

  1. Autenticamos con las credenciales del administrador principal y listo.