Glpi Deployment on Kubernetes with persistent volumes and SSL certificate Document
# glpi
Glpi Deployment on Kubernetes with persistent volumes and SSL certificate
Glpi Prerequisites - WebServer, PHP, Mysql/Mariadb Database.
Glpi Key Directories - /var/www/html/glpi/{config, plugins, marketplace.Files}.
MariadDB - /var/lib/mysql
Prerequisites for deploying GLPI:-
Kubernetes Cluster
Shared Storage for PV (You may also use local storage, but it is not recommended.)
1. Clone above repo - https://github.com/Dineshk1205/glpi.git
$ git clone https://github.com/Dineshk1205/glpi.git
2. Crate MariaDB root password as secret –
$ kubectl create secret generic mariadb --from-literal=mariadb-root-password=xxxxx
3. Create a glpi namespace.
$ Kubectl create ns glpi
4. Extract controller-v1.9.0.tar.gz file
$ tar -xvf controller-v1.9.0.tar.gz
6. Installing the Nginx controller helm is required.
Helm installation –
$curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
6. Nginx deployment: -
Switch to ingress-controller directory.
$ cd ingress-nginx-controller-v1.9.0/charts/ingress-controller
7. Create a ingress-controller namespace
$ kubectl create namespace ingress-nginx
8. Run the following command to install the nginx ingress –
$ helm install -n ingress-nginx ingress-nginx -f values.yaml.
9. SSL Certificate Configuration –
Generate a self-signed certificate or use ca certified certificate.
Crate Secret using Certificate key and cert file in glpi namespace
$ kubectl create secret tls glpi-tls --key xx.key --cert xx.crt -n glpi
10. Update the IP address Range in metallb-pool.yaml file based on your network
11. Update host name in ingress.yaml based on your requiremnts
12. Finally, Install MariaDB And glpi
Switch to cloned Directory glpi and run the below command
$ kubectl apply -f .
Check pod status
$ kubectl get pods -A
Once pods are up, check glpi IP to access the GLPI GUI.
$ kubectl get ingress -n glpi
Create DNS records for the above IP ( IP is above ingress IP, and Hostname will be matched with ingress.yaml file hostname).Access GLPU using FQDN.
DB for Configuring the GLPI
In the Kubernetes cluster, check MariaDB IP
$ kubectl get svc
Note down above mariadbsv cluster IP; use IP for connected Glpi.SQL user use root as user and enter a password. (Password created as secret in previous steps)
Service d'assistance aux clients par UserEcho