Compare commits
No commits in common. "main" and "3.25-amd64" have entirely different histories.
main
...
3.25-amd64
22
.env.dist
22
.env.dist
@ -1,20 +1,6 @@
|
|||||||
# compose project name. A docker compose project has as its name
|
# must be the same that SITE_VERSION define in php-fpm/.env
|
||||||
# the name of the folder where it is executed (default).
|
DOCKER_IMAGE_VERSION="3.25"
|
||||||
# This setting overrides the default
|
|
||||||
COMPOSE_PROJECT_NAME=wwwgmo
|
|
||||||
# must be the same that SITE_VERSION
|
|
||||||
# define in php-fpm/.env
|
|
||||||
DOCKER_IMAGE_VERSION="3.3.0"
|
|
||||||
# docker login user
|
|
||||||
DOCKER_USER=gmouchet
|
|
||||||
# docker login password
|
|
||||||
DOCKER_PASS=TOBECOMPLETED
|
|
||||||
# docker image tag = DOCKER_IMAGE_VERSION
|
# docker image tag = DOCKER_IMAGE_VERSION
|
||||||
DOCKER_IMAGE=wwwgmo-php-fpm
|
DOCKER_IMAGE=gmouchet/wwwgmo-php-fpm
|
||||||
# docker login user
|
|
||||||
DOCKER_USER=gmouchet
|
|
||||||
# docker ports
|
|
||||||
NGINX_PORT=8085
|
NGINX_PORT=8085
|
||||||
PMA_PORT_WEB_HTTPS=8084
|
PMA_PORT_WEB=8084
|
||||||
# elastic version
|
|
||||||
ELASTIC_VERSION=9.0.2
|
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,4 +3,3 @@
|
|||||||
.env
|
.env
|
||||||
helm-old
|
helm-old
|
||||||
mariadb-old
|
mariadb-old
|
||||||
staging
|
|
||||||
|
|||||||
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@ -2,3 +2,4 @@
|
|||||||
"editor.fontSize": 13,
|
"editor.fontSize": 13,
|
||||||
"terminal.integrated.fontSize": 13,
|
"terminal.integrated.fontSize": 13,
|
||||||
"window.zoomLevel": 1.4,
|
"window.zoomLevel": 1.4,
|
||||||
|
}
|
||||||
32
LICENSE
32
LICENSE
@ -1,32 +0,0 @@
|
|||||||
Non-Commercial Use License – [docker.sh.sh]
|
|
||||||
|
|
||||||
Copyright (c) [2025] [Gilles Mouchet]
|
|
||||||
|
|
||||||
This script is provided free of charge with its source code. You are permitted to:
|
|
||||||
|
|
||||||
Use the script for personal, educational, or non-commercial professional purposes.
|
|
||||||
Study, modify, and share the script freely, provided this license is included.
|
|
||||||
|
|
||||||
You are strictly prohibited from:
|
|
||||||
|
|
||||||
- Selling this script or any modified version.
|
|
||||||
- Using it in commercial services or products.
|
|
||||||
- Distributing it in exchange for financial compensation, directly or indirectly.
|
|
||||||
|
|
||||||
This script is provided "as is", without any warranty of any kind.
|
|
||||||
-----------------------------------------------------------------------------------------
|
|
||||||
Licence d’utilisation non commerciale – [docker.sh]
|
|
||||||
|
|
||||||
Copyright (c) [2025] [Gilles Mouchet]
|
|
||||||
|
|
||||||
Ce script est fourni gratuitement avec son code source. Toute personne est autorisée à :
|
|
||||||
|
|
||||||
Utiliser le script à des fins personnelles, éducatives ou professionnelles non commerciales.
|
|
||||||
Étudier, modifier et partager le script gratuitement, à condition de conserver cette licence.
|
|
||||||
|
|
||||||
Il est strictement interdit de :
|
|
||||||
|
|
||||||
- Vendre ce script ou une version modifiée.
|
|
||||||
- L’utiliser dans des services ou produits commerciaux.
|
|
||||||
- Le distribuer en échange d’une contrepartie financière, directe ou indirecte.
|
|
||||||
|
|
||||||
125
README.md
125
README.md
@ -7,11 +7,8 @@ Examples site with nginx, phpfpm, mysql, phpmyadmin, elasticsearch and kibana
|
|||||||
|:---|:---|
|
|:---|:---|
|
||||||
|docker.sh|files to build the docker image|
|
|docker.sh|files to build the docker image|
|
||||||
|docker/mariadb|env file|
|
|docker/mariadb|env file|
|
||||||
|docker/phpmyadmin|config for phpmyadmin|
|
|
||||||
|docker/nginx|config file|
|
|docker/nginx|config file|
|
||||||
|docker/php-fpm|files to create docker image|
|
|docker/php-fpm|files to create docker image|
|
||||||
|docker/elasticsearch|env file + script for elasticsearch|
|
|
||||||
|docker/kibana|env file|
|
|
||||||
|src|site source|
|
|src|site source|
|
||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
@ -21,8 +18,10 @@ Copy file ALL `.env.dist` to `.env`
|
|||||||
Complete or modify the values according to your needs
|
Complete or modify the values according to your needs
|
||||||
|
|
||||||
### Build
|
### Build
|
||||||
The **docker.sh** script is use to manage docker image. See `./docker.sh -h` for more informations
|
#### Install plugin php for elasticsearch
|
||||||
|
```bash
|
||||||
|
./docker.sh install
|
||||||
|
```
|
||||||
#### Build image
|
#### Build image
|
||||||
```bash
|
```bash
|
||||||
./docker.sh build
|
./docker.sh build
|
||||||
@ -31,45 +30,34 @@ or
|
|||||||
```bash
|
```bash
|
||||||
./docker.sh build-no-cache
|
./docker.sh build-no-cache
|
||||||
```
|
```
|
||||||
#### Build image multi-plaform (amd64 and amr64)
|
|
||||||
```bash
|
|
||||||
./docker.sh build-multi
|
|
||||||
```
|
|
||||||
or
|
|
||||||
```bash
|
|
||||||
./docker.sh build-multi-no-cache
|
|
||||||
```
|
|
||||||
|
|
||||||
### Start
|
### Start
|
||||||
```bash
|
```bash
|
||||||
./docker.sh start
|
./docker.sh start
|
||||||
```
|
```
|
||||||
#### Check
|
#### Check
|
||||||
```bash
|
```bash
|
||||||
docker exec <COMPOSE_PROJECT_NAME>-mariadb-1 mysql -uroot -p<MYSQL_ROOT_PASSWORD> mysql -e 'SELECT user,host FROM mysql.user;'
|
docker exec wwwgmo-mariadb mysql -uroot -p<MYSQL_ROOT_PASSWORD> mysql -e 'SELECT user,host FROM mysql.user;'
|
||||||
```
|
```
|
||||||
```bash
|
```bash
|
||||||
docker exec <COMPOSE_PROJECT_NAME>-elasticsearch-1 curl -u elastic:<ELASTIC_PASSWORD> http://elasticsearch:9200/_cluster/health?pretty
|
docker exec wwwgmo-elasticsearch curl -u elastic:<ELASTIC_PASSWORD> http://wwwgmo-elasticsearch:9200/_cluster/health?pretty
|
||||||
```
|
```
|
||||||
```bash
|
```bash
|
||||||
docker exec <COMPOSE_PROJECT_NAME>-php-fpm-1 curl -u elastic:<ELASTIC_PASSWORD> http://wwwgmo-elasticsearch:9200/_cluster/health?pretty
|
docker exec wwwgmo-php-fpm curl -s -u elastic:<ELASTIC_PASSWORD> http://wwwgmo-elasticsearch:9200/_cluster/health?pretty
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Access
|
#### Access
|
||||||
|
|
||||||
https://<server_name>:<NGINX_PORT>
|
http://<server_name>:<NGINX_PORT>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## kubernetes
|
## kubernetes
|
||||||
|
|
||||||
|**folders**|**description**|
|
|**folders**|**description**|
|
||||||
|:---|:---|
|
|:---|:---|
|
||||||
|
|deploy.sh|files to deploy on k8s or k3s (see ./deploy.s -h)|
|
||||||
|helm|Chart root folder|
|
|helm|Chart root folder|
|
||||||
|Chart.yaml|Charts file|
|
|Chart.yaml|Charts file|
|
||||||
|values-xxxx-configs.yml|configs file use for kubernetes manifest|
|
|values-configs.yml|configs file use for kubernetes manifest|
|
||||||
|values-xxxx-secrets.yaml|secrets file for kubernetes manifet (Must be encrypted with sops in a production environment)|
|
|values-secrets.yaml|secrets file for kubernetes manifet (Must be encrypted with sops in a production environment)|
|
||||||
|templates/elasticsearch|manifests for elasticsearch|
|
|templates/elasticsearch|manifests for elasticsearch|
|
||||||
|templates/kibana|manifests for kibana|
|
|templates/kibana|manifests for kibana|
|
||||||
|templates/mariadb|manifests for mariadb|
|
|templates/mariadb|manifests for mariadb|
|
||||||
@ -90,23 +78,31 @@ kubectl create secret docker-registry secret-regcred --dry-run=client \
|
|||||||
```
|
```
|
||||||
### Certificats
|
### Certificats
|
||||||
```bash
|
```bash
|
||||||
cat certs/tls.key | base64 -w0
|
cat certs/gmolab.net.key | base64 -w0
|
||||||
```
|
```
|
||||||
copy the base64 result into file `values-xxxx-secrets.yaml` in ssl_key key
|
copy the base64 result into file `values-secrets.yaml` in ssl_key key
|
||||||
```bash
|
```bash
|
||||||
cat certs/tls.crt | base64 -w0
|
cat certs/gmolab.net.crt | base64 -w0
|
||||||
```
|
```
|
||||||
copy the base64 result into file `values-xxxx-config.yaml` in ssl_crt key
|
copy the base64 result into file `values-config.yaml` in ssl_crt key
|
||||||
|
|
||||||
# Deployment
|
### Docker image version
|
||||||
|
|
||||||
|
In the `helm/Chart.yaml` file, the `appVersion` value must match the version of the docker image (see DOCKER_IMAGE_VERSION in the `.env` file and SITE_VERSION in the `docker/php-fpm/.env` file)
|
||||||
|
|
||||||
|
## Deployment by script
|
||||||
|
|
||||||
|
This is the recommended way
|
||||||
|
|
||||||
|
>This script builds the docker image based on the Kubernetes VM architecture (AMD64 or ARM64). At each deployment the minor version of the image is incremented by 1.
|
||||||
|
```bash
|
||||||
|
./deploy.md -n wwwgmo -k k3s
|
||||||
|
```
|
||||||
|
## Manual deployment
|
||||||
### Set kubesystem config
|
### Set kubesystem config
|
||||||
```bash
|
```bash
|
||||||
rm -f $HOME/.kube/config
|
rm -f $HOME/.kube/config
|
||||||
```
|
```
|
||||||
for **kind**
|
|
||||||
```bash
|
|
||||||
sudo cp /root/.kube/config $HOME/.kube/config
|
|
||||||
```
|
|
||||||
for **k3s**
|
for **k3s**
|
||||||
```bash
|
```bash
|
||||||
ln -s $HOME/.kube/k3s $HOST/.kube/config
|
ln -s $HOME/.kube/k3s $HOST/.kube/config
|
||||||
@ -118,15 +114,15 @@ ln -s $HOST/.kube/k8s $HOST/.kube/config
|
|||||||
### Set namespace and kube system
|
### Set namespace and kube system
|
||||||
```bash
|
```bash
|
||||||
export NS=wwwgmo
|
export NS=wwwgmo
|
||||||
export KUBE_SYS=kind|k3s|k8s
|
export KUBE_SYS=k3s|k8s
|
||||||
```
|
```
|
||||||
### Test template
|
### Test template
|
||||||
```bash
|
```bash
|
||||||
helm template $NS ./helm --values=./helm/values-$KUBE_SYS-configs.yaml --values=./helm/values-$KUBE_SYS-secrets.yaml --namespace $NS
|
helm template $NS --set kube=$KUBE_SYS ./helm --values=./helm/values-configs.yaml --values=./helm/values-secrets.yaml --namespace $NS
|
||||||
```
|
```
|
||||||
### Chart deployment
|
### Chart deployment
|
||||||
```bash
|
```bash
|
||||||
helm upgrade $NS ./helm --install --atomic --cleanup-on-fail --values=/helm/values-$KUBE_SYS-configs.yaml --values=./helm/values-$KUBE_SYS-secrets.yaml --namespace $NS --create-namespace
|
helm upgrade $NS --set kube=$KUBE_SYS ./helm --install --atomic --cleanup-on-fail --values=./helm/values-configs.yaml --values=./helm/values-secrets.yaml --namespace $NS --create-namespace
|
||||||
```
|
```
|
||||||
|
|
||||||
## Remove
|
## Remove
|
||||||
@ -136,12 +132,10 @@ kubectl delete namespaces $NS
|
|||||||
```
|
```
|
||||||
## NOTES
|
## NOTES
|
||||||
### Cronjob
|
### Cronjob
|
||||||
**No longer needed**. A job (`job-mariadb.yaml`), launched during deployment, has been created. We leave the procedure below for information
|
|
||||||
When we deploy manually (I do not why) you must trig manually the cronjob to make a DB backup to termine correctly the helm command
|
When we deploy manually (I do not why) you must trig manually the cronjob to make a DB backup to termine correctly the helm command
|
||||||
```bash
|
```bash
|
||||||
kubectl create job -n $NS --from=cronjob/cronjob-mariadb-backupdb dbbackup-$(date +%Y-%m-%d-%H-%M-%S)
|
kubectl create job -n $NS --from=cronjob/cronjob-mariadb-backupdb dbbackup-$(date +%Y-%m-%d-%H-%M-%S)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Database
|
## Database
|
||||||
Not necessary because created during deployment. We leave the procedure below for information
|
Not necessary because created during deployment. We leave the procedure below for information
|
||||||
|
|
||||||
@ -191,51 +185,34 @@ done
|
|||||||
[MariaDB Statefulset](https://mariadb.org/create-statefulset-mariadb-application-in-k8s/)
|
[MariaDB Statefulset](https://mariadb.org/create-statefulset-mariadb-application-in-k8s/)
|
||||||
[PHP-FPM, nginx, kubernetes and docker](https://matthewpalmer.net/kubernetes-app-developer/articles/php-fpm-nginx-kubernetes.html)
|
[PHP-FPM, nginx, kubernetes and docker](https://matthewpalmer.net/kubernetes-app-developer/articles/php-fpm-nginx-kubernetes.html)
|
||||||
|
|
||||||
|
https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docker.html
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
### 3.25 (2024-04-14)
|
||||||
|
**New features:**
|
||||||
|
* added elasticsearch and kibana
|
||||||
|
* added option `install` to script `docker.sh` to install php elasticserch module
|
||||||
|
* created `deploy.sh` script
|
||||||
|
|
||||||
### 3.3.0 (2025-06-29)
|
**Fixed bugs:**
|
||||||
**New Features:**
|
* problem with display environment var in php site
|
||||||
- Definition for vm-vdglab
|
|
||||||
- Displayed the Elasticsearch PHP client version on the `esinfo.php` page.
|
|
||||||
- Removed the condition checking for **k8s** or **k3s** in Kubernetes deployment.
|
|
||||||
- Added configuration and secret values for the `kind` system.
|
|
||||||
- Added configuration and secret values for the `k8s` system.
|
|
||||||
- Added build multi-platform docker image
|
|
||||||
|
|
||||||
**Bug Fixes:**
|
|
||||||
- Fixed somes bugs
|
|
||||||
|
|
||||||
|
**Updated:**
|
||||||
|
* added new features in README.md
|
||||||
|
* added Changelog part in README.md
|
||||||
---
|
---
|
||||||
|
|
||||||
### 3.2.5 (2024-04-14)
|
### 2.5 (2024-03-29)
|
||||||
|
**Fixed bugs:**
|
||||||
|
* fixed somes bugs
|
||||||
|
|
||||||
**New Features:**
|
**New features:**
|
||||||
- Added **Elasticsearch** and **Kibana**.
|
* posibility to deploy on k3s or k8s
|
||||||
- Introduced `install` option in `docker.sh` script to install the PHP Elasticsearch module.
|
|
||||||
- Created `deploy.sh` script for deployment.
|
|
||||||
|
|
||||||
**Bug Fixes:**
|
|
||||||
- Fixed an issue with displaying environment variables in the PHP site.
|
|
||||||
|
|
||||||
**Updates:**
|
|
||||||
- Enhanced `README.md` with new feature documentation.
|
|
||||||
- Added a **Changelog** section to the `README.md`.
|
|
||||||
|
|
||||||
|
**Updated:**
|
||||||
|
* updated README.md
|
||||||
---
|
---
|
||||||
|
|
||||||
### 2.5.0 (2024-03-29)
|
### 1.0 (2024-03-01)
|
||||||
|
* Created from scratch
|
||||||
|
|
||||||
**New Features:**
|
|
||||||
- Added support for deploying on **k3s** or **k8s**.
|
|
||||||
|
|
||||||
**Bug Fixes:**
|
|
||||||
- Various bug fixes.
|
|
||||||
|
|
||||||
**Updates:**
|
|
||||||
- Updated `README.md`.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 1.0.0 (2024-03-01)
|
|
||||||
|
|||||||
@ -41,3 +41,4 @@ data:
|
|||||||
#fastcgi_pass 127.0.0.1:9000;
|
#fastcgi_pass 127.0.0.1:9000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
1
cron
1
cron
@ -0,0 +1 @@
|
|||||||
|
/usr/bin/mysqldump --verbose --hex-blob --complete-insert --single-transaction --skip-lock-tables --skip-add-locks --routines -h service-mariadb -uroot -ppa55w0rd wwwgmo | gzip - > /var/backups/$MYSQL_DATABASE-$(date +%Y-%m-%d_%H%M%S).sql.gz; find /var/backups/ -type f -mindepth 1 -mtime +14 -exec rm {} \;
|
||||||
@ -1,19 +1,26 @@
|
|||||||
|
# GMo Lab
|
||||||
|
#version: '2.3'
|
||||||
services:
|
services:
|
||||||
nginx:
|
|
||||||
|
## Linux nginx mysql php
|
||||||
|
wwwgmo-nginx:
|
||||||
|
container_name: wwwgmo-nginx
|
||||||
|
hostname: wwwgmo-nginx
|
||||||
image: nginxinc/nginx-unprivileged:1.23-alpine
|
image: nginxinc/nginx-unprivileged:1.23-alpine
|
||||||
# platform: linux/amd64,linux/arm64
|
|
||||||
volumes:
|
volumes:
|
||||||
- './docker/nginx/default.conf:/etc/nginx/conf.d/default.conf'
|
- './docker/nginx/default.conf:/etc/nginx/conf.d/default.conf'
|
||||||
- './certs:/etc/nginx/certs/'
|
- './certs:/etc/nginx/certs/'
|
||||||
- './src:/var/www/html:rw,cached'
|
- './src:/var/www/html:rw,cached'
|
||||||
ports:
|
ports:
|
||||||
- '${NGINX_PORT}:8443'
|
- '${NGINX_PORT}:8080' #local:docker
|
||||||
depends_on:
|
depends_on:
|
||||||
- php-fpm
|
- wwwgmo-php-fpm
|
||||||
|
#
|
||||||
php-fpm:
|
wwwgmo-php-fpm:
|
||||||
image: ${DOCKER_USER}/${DOCKER_IMAGE}:${DOCKER_IMAGE_VERSION}
|
container_name: wwwgmo-php-fpm
|
||||||
# platform: linux/amd64,linux/arm64
|
hostname: wwwgmo-php-fpm
|
||||||
|
#image: wwwgmo
|
||||||
|
image: ${DOCKER_IMAGE}:${DOCKER_IMAGE_VERSION}
|
||||||
env_file:
|
env_file:
|
||||||
- ./docker/php-fpm/.env
|
- ./docker/php-fpm/.env
|
||||||
volumes:
|
volumes:
|
||||||
@ -22,74 +29,70 @@ services:
|
|||||||
context: .
|
context: .
|
||||||
dockerfile: ./docker/php-fpm/Dockerfile
|
dockerfile: ./docker/php-fpm/Dockerfile
|
||||||
ports:
|
ports:
|
||||||
- '9000:9000'
|
- '9000:9000' #local:docker
|
||||||
depends_on:
|
depends_on:
|
||||||
- mariadb
|
- wwwgmo-mariadb
|
||||||
|
|
||||||
mariadb:
|
wwwgmo-mariadb:
|
||||||
|
container_name: wwwgmo-mariadb
|
||||||
|
hostname: wwwgmo-mariadb
|
||||||
|
#image: mysql:8.0-debian
|
||||||
|
#image: mysql/mysql-server:8.0.27-aarch64
|
||||||
image: mariadb:10.11.7
|
image: mariadb:10.11.7
|
||||||
# platform: linux/amd64,linux/arm64
|
|
||||||
volumes:
|
volumes:
|
||||||
- 'mariadb:/var/lib/mysql:z'
|
- 'wwwgmo-mariadb:/var/lib/mysql:z'
|
||||||
env_file:
|
env_file:
|
||||||
- ./docker/mariadb/.env
|
- ./docker/mariadb/.env # ports:
|
||||||
|
|
||||||
phpmyadmin:
|
wwwgmo-phpmyadmin:
|
||||||
|
container_name: wwwgmo-pma
|
||||||
image: phpmyadmin
|
image: phpmyadmin
|
||||||
# platform: linux/amd64,linux/arm64
|
|
||||||
volumes:
|
|
||||||
- ./certs:/etc/apache2/ssl
|
|
||||||
- ./docker/phpmyadmin/apache-ssl.conf:/etc/apache2/sites-available/default-ssl.conf
|
|
||||||
- ./docker/phpmyadmin/config.secret.inc.php:/etc/phpmyadmin/config.secret.inc.php
|
|
||||||
links:
|
links:
|
||||||
- mariadb
|
- wwwgmo-mariadb
|
||||||
env_file:
|
env_file:
|
||||||
- ./docker/mariadb/.env
|
- ./docker/mariadb/.env
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- ${PMA_PORT_WEB_HTTPS}:443
|
- ${PMA_PORT_WEB}:80
|
||||||
command: >
|
|
||||||
sh -c "a2enmod ssl &&
|
|
||||||
a2ensite default-ssl &&
|
|
||||||
apache2-foreground"
|
|
||||||
|
|
||||||
elasticsearch:
|
# EK
|
||||||
image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}
|
wwwgmo-elasticsearch:
|
||||||
# platform: linux/amd64,linux/arm64
|
container_name: wwwgmo-elasticsearch
|
||||||
|
hostname: wwwgmo-elasticsearch
|
||||||
|
image: 'docker.elastic.co/elasticsearch/elasticsearch:7.17.19'
|
||||||
|
#image: 'docker.elastic.co/elasticsearch/elasticsearch:8.8.1'
|
||||||
|
volumes:
|
||||||
|
- 'wwwgmo-elasticsearch:/usr/share/elasticsearch/data'
|
||||||
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- ./docker/elasticsearch/.env
|
- ./docker/elasticsearch/.env
|
||||||
ulimits:
|
ulimits:
|
||||||
memlock:
|
memlock:
|
||||||
soft: -1
|
soft: -1
|
||||||
hard: -1
|
hard: -1
|
||||||
|
nofile:
|
||||||
|
soft: 65536
|
||||||
|
hard: 65536
|
||||||
|
cap_add:
|
||||||
|
- IPC_LOCK
|
||||||
ports:
|
ports:
|
||||||
- "9200:9200"
|
- '9200:9200'
|
||||||
- "9300:9300"
|
- '9300:9300'
|
||||||
volumes:
|
|
||||||
- elasticsearch:/usr/share/elasticsearch/data
|
|
||||||
- ./docker/elasticsearch/create_kibana_user.sh:/usr/local/bin/create_kibana_user.sh
|
|
||||||
command: >
|
|
||||||
bash -c "
|
|
||||||
/bin/tini -g -- /usr/local/bin/docker-entrypoint.sh &
|
|
||||||
pid=$!;
|
|
||||||
sleep 20;
|
|
||||||
bash /usr/local/bin/create_kibana_user.sh;
|
|
||||||
wait $pid
|
|
||||||
"
|
|
||||||
|
|
||||||
kibana:
|
# kibana
|
||||||
image: docker.elastic.co/kibana/kibana:${ELASTIC_VERSION}
|
wwwgmo_kibana:
|
||||||
# platform: linux/amd64,linux/arm64
|
container_name: wwwgmo-kibana
|
||||||
|
hostname: wwwgmo-kibana
|
||||||
|
image: docker.elastic.co/kibana/kibana:7.17.19
|
||||||
|
#image: docker.elastic.co/kibana/kibana:8.8.1
|
||||||
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- ./docker/kibana/.env
|
- ./docker/kibana/.env
|
||||||
volumes:
|
|
||||||
- './certs:/usr/share/kibana/config/certs/'
|
|
||||||
depends_on:
|
|
||||||
- elasticsearch
|
|
||||||
ports:
|
ports:
|
||||||
- "5601:5601"
|
- 5601:5601
|
||||||
|
depends_on:
|
||||||
|
- wwwgmo-elasticsearch
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
elasticsearch:
|
wwwgmo-mariadb:
|
||||||
mariadb:
|
wwwgmo-elasticsearch:
|
||||||
|
|
||||||
|
|||||||
196
docker.sh
196
docker.sh
@ -1,196 +1,78 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
############################################################
|
|
||||||
# Decription: this script manage docker image
|
|
||||||
# file with an AWX inventory
|
|
||||||
#
|
|
||||||
# Author: Gilles Mouchet (gilles.mouchet@gmail.com)
|
|
||||||
# Creation Date: 28.06.2025
|
|
||||||
# Version: 1.0
|
|
||||||
#
|
|
||||||
# Usage: ./docker.sh --help
|
|
||||||
# Changelog:
|
|
||||||
# V1.0 - 28.06.2025 - GMo
|
|
||||||
# Added
|
|
||||||
# - Creation of script from scratch
|
|
||||||
#
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
version="1.0"
|
|
||||||
|
|
||||||
# with set -e, as soon as a command returns an exit code other than 0,
|
|
||||||
# the script stops immediately.
|
|
||||||
set -e
|
set -e
|
||||||
_UID=$(id -u)
|
_UID=$(id -u)
|
||||||
_GID=$(id -g)
|
_GID=$(id -g)
|
||||||
############################################################
|
|
||||||
# functions
|
|
||||||
############################################################
|
|
||||||
# function usage
|
|
||||||
usage() {
|
|
||||||
cat << EOF
|
|
||||||
Usage: ./$(basename "$0") options
|
|
||||||
Manage docker image
|
|
||||||
Options:
|
|
||||||
build build docker image
|
|
||||||
build-no-cache build an image from scratch, without using the cache from previous steps.
|
|
||||||
build-multi build a multi-platform image (amd64, arm64)
|
|
||||||
build-multi-no-cache build a multi-platform image from scratch , without using the cache from previous steps.
|
|
||||||
start start the stack
|
|
||||||
stop stop the stack and delete the container
|
|
||||||
restart stop and start stack
|
|
||||||
bash open the ${COMPOSE_PROJECT_NAME}-php-fpm-1 container bash
|
|
||||||
bash-root open the ${COMPOSE_PROJECT_NAME}-php-fpm-1 container bash with root user
|
|
||||||
logs tail logs from ${COMPOSE_PROJECT_NAME}-php-fpm-1 -f
|
|
||||||
push push image php-fpm on docker registry
|
|
||||||
down stop and delete the container
|
|
||||||
help|-h|--help display this help
|
|
||||||
version|-v|--version display script version
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
# read the varoables
|
|
||||||
export $(grep -v '^#' .env | xargs)
|
|
||||||
|
|
||||||
# check param exist
|
export $(grep -v '^#' .env | xargs)
|
||||||
if [ -z "$1" ]; then
|
|
||||||
usage
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if certs folder exite in src
|
# check if certs folder exite in src
|
||||||
if [ ! -d "./src/certs" ]; then
|
if [ ! -d "./src/certs" ]; then
|
||||||
mkdir ./src/certs
|
mkdir ./src/certs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
while test $# -gt 0
|
while test $# -gt 0
|
||||||
do
|
do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
start)
|
install)
|
||||||
sudo chown -R $_UID:$_GID ./certs/
|
env UID=${_UID} GID=${_GID} docker compose up -d wwwgmo-php-fpm
|
||||||
# The env before the docker command is there to assign rights in case different
|
#docker exec --user root wwwgmo-php-fpm "/bin/sh -c 'cd /var/www/html/; composer require elasticsearch/elasticsearch'"
|
||||||
# users are called upon to work on this project. We comment it for documentation purposes.
|
docker exec --user root wwwgmo-php-fpm /bin/sh -c "cd /var/www/html; composer require elasticsearch/elasticsearch:^7.17.2"
|
||||||
# env UID=${_UID} GID=${_GID} docker compose up -d
|
env UID=${_UID} GID=${_GID} docker compose stop
|
||||||
docker compose up -d
|
|
||||||
;;
|
;;
|
||||||
restart)
|
start)
|
||||||
sudo chown -R $_UID:$_GID ./certs/
|
env UID=${_UID} GID=${_GID} docker compose up -d;
|
||||||
docker compose down --remove-orphans
|
docker exec --user root wwwgmo-php-fpm composer install --no-interaction
|
||||||
docker compose up -d;
|
;;
|
||||||
|
start-nginx)
|
||||||
|
env UID=${_UID} GID=${_GID} docker compose up -d wwwgmo-nginx
|
||||||
|
;;
|
||||||
|
start-db)
|
||||||
|
env UID=${_UID} GID=${_GID} docker compose up -d wwwgmo-mariadb
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
docker compose stop
|
env UID=${_UID} GID=${_GID} docker compose stop
|
||||||
;;
|
;;
|
||||||
bash)
|
bash)
|
||||||
docker exec -it ${COMPOSE_PROJECT_NAME}-php-fpm-1 /bin/sh
|
docker exec -it wwwgmo-php-fpm /bin/sh
|
||||||
;;
|
;;
|
||||||
bash-root)
|
bash-root)
|
||||||
docker exec --user root -it ${COMPOSE_PROJECT_NAME}-php-fpm-1 /bin/sh
|
docker exec --user root -it wwwgmo-php-fpm /bin/sh
|
||||||
;;
|
;;
|
||||||
logs)
|
logs)
|
||||||
docker logs ${COMPOSE_PROJECT_NAME}-php-fpm-1 -f
|
docker logs wwwgmo-php-fpm -f
|
||||||
|
;;
|
||||||
|
build-no-cache)
|
||||||
|
#cp ./certs/ca.pem ./src/certs/.
|
||||||
|
sudo chown -R $_UID:$_GID ./src/
|
||||||
|
env UID=${_UID} GID=${_GID} docker compose build --pull --no-cache
|
||||||
|
env UID=${_UID} GID=${_GID} docker compose up -d;
|
||||||
|
#docker exec --user root wwwgmo-php-fpm composer install --no-interaction
|
||||||
|
sleep 5 # wait mysql container up
|
||||||
|
#docker exec -it wwwgmo-mariadb /bin/bash -c "mysql -u root --password=password -e \
|
||||||
|
# \"CREATE USER IF NOT EXISTS 'xmaroot'@'%' IDENTIFIED BY 'sqlAdmin'; \
|
||||||
|
# GRANT ALL PRIVILEGES ON *.* TO 'xmaroot'@'%'; \
|
||||||
|
# flush privileges;\""
|
||||||
|
env UID=${_UID} GID=${_GID} docker compose stop
|
||||||
;;
|
;;
|
||||||
build)
|
build)
|
||||||
# build image in local
|
#cp ./certs/ca.pem ./src/certs/.
|
||||||
sudo chown -R $_UID:$_GID ./src/
|
sudo chown -R $_UID:$_GID ./src/
|
||||||
docker compose build --pull
|
env UID=${_UID} GID=${_GID} docker compose build
|
||||||
docker compose up -d;
|
env UID=${_UID} GID=${_GID} docker compose up -d;
|
||||||
docker exec --user root ${COMPOSE_PROJECT_NAME}-php-fpm-1 /bin/sh -c "cd /var/www/html; composer require elasticsearch/elasticsearch"
|
#docker exec --user root wwwgmo-php-fpm composer install --no-interaction
|
||||||
# not needed. We comment it for documentation purposes.
|
|
||||||
#sleep 5 # wait mysql container up
|
#sleep 5 # wait mysql container up
|
||||||
#docker exec -it wwwgmo-mysql /bin/bash -c "mysql -u root --password=password -e \
|
#docker exec -it wwwgmo-mysql /bin/bash -c "mysql -u root --password=password -e \
|
||||||
# \"CREATE USER IF NOT EXISTS 'xmaroot'@'%' IDENTIFIED BY 'sqlAdmin'; \
|
# \"CREATE USER IF NOT EXISTS 'xmaroot'@'%' IDENTIFIED BY 'sqlAdmin'; \
|
||||||
# GRANT ALL PRIVILEGES ON *.* TO 'xmaroot'@'%'; \
|
# GRANT ALL PRIVILEGES ON *.* TO 'xmaroot'@'%'; \
|
||||||
# flush privileges;\""
|
# flush privileges;\""
|
||||||
docker compose stop
|
env UID=${_UID} GID=${_GID} docker compose stop
|
||||||
;;
|
|
||||||
build-no-cache)
|
|
||||||
# build image in local
|
|
||||||
sudo chown -R $_UID:$_GID ./src/
|
|
||||||
docker compose build --pull --no-cache
|
|
||||||
docker compose up -d;
|
|
||||||
docker exec --user root ${COMPOSE_PROJECT_NAME}-php-fpm-1 /bin/sh -c "cd /var/www/html; composer require elasticsearch/elasticsearch"
|
|
||||||
docker compose stop
|
|
||||||
;;
|
|
||||||
build-multi-no-cache)
|
|
||||||
# build image multi platform linux/amd64 and linux/arm64
|
|
||||||
#
|
|
||||||
# This operation may take some time (env. 15 min). Please be patient.
|
|
||||||
#
|
|
||||||
#echo "${DOCKER_USER}/wwwgmo-php-fpm:${DOCKER_IMAGE_VERSION}"
|
|
||||||
#cp ./certs/ca.pem ./src/certs/.
|
|
||||||
sudo chown -R $_UID:$_GID ./src/
|
|
||||||
# load images needed to buil docker iomage for multi platform
|
|
||||||
if [ "$(docker images -q moby/buildkit)" == "" ]; then
|
|
||||||
docker buildx create --use --name gmobuilder
|
|
||||||
docker buildx inspect gmobuilder --bootstrap
|
|
||||||
fi
|
|
||||||
# login to docker hub
|
|
||||||
docker login -u="${DOCKER_USER}" -p="${DOCKER_PASS}"
|
|
||||||
# builds image for linux/amd64 and linux/arm64
|
|
||||||
docker buildx build --no-cache --platform linux/amd64,linux/arm64 -t "${DOCKER_USER}/wwwgmo-php-fpm:${DOCKER_IMAGE_VERSION}" --push -f ./docker/php-fpm/Dockerfile .
|
|
||||||
# start stack
|
|
||||||
docker compose up -d
|
|
||||||
# install elasticsearch client for PHP
|
|
||||||
docker exec --user root ${COMPOSE_PROJECT_NAME}-php-fpm-1 /bin/sh -c "cd /var/www/html; composer require elasticsearch/elasticsearch"
|
|
||||||
# stop stack
|
|
||||||
docker compose stop
|
|
||||||
# logout from docker hub
|
|
||||||
docker logout
|
|
||||||
# cleanup container, image and instance to create multi platform image
|
|
||||||
docker stop buildx_buildkit_gmobuilder0
|
|
||||||
docker container rm buildx_buildkit_gmobuilder0
|
|
||||||
docker rmi moby/buildkit:buildx-stable-1 --force
|
|
||||||
docker buildx rm --all-inactive --force
|
|
||||||
;;
|
|
||||||
build-multi)
|
|
||||||
# build image multi platform linux/amd64 and linux/arm64
|
|
||||||
#
|
|
||||||
# This operation may take some time (env. 15 min). Please be patient.
|
|
||||||
#
|
|
||||||
#echo "${DOCKER_USER}/wwwgmo-php-fpm:${DOCKER_IMAGE_VERSION}"
|
|
||||||
#cp ./certs/ca.pem ./src/certs/.
|
|
||||||
sudo chown -R $_UID:$_GID ./src/
|
|
||||||
# load images needed to buil docker iomage for multi platform
|
|
||||||
if [ "$(docker images -q moby/buildkit)" == "" ]; then
|
|
||||||
docker buildx create --use --name gmobuilder
|
|
||||||
docker buildx inspect gmobuilder --bootstrap
|
|
||||||
fi
|
|
||||||
# login to docker hub
|
|
||||||
docker login -u="${DOCKER_USER}" -p="${DOCKER_PASS}"
|
|
||||||
# builds image for linux/amd64 and linux/arm64
|
|
||||||
docker buildx build --platform linux/amd64,linux/arm64 -t "${DOCKER_USER}/wwwgmo-php-fpm:${DOCKER_IMAGE_VERSION}" --push -f ./docker/php-fpm/Dockerfile .
|
|
||||||
# start stack
|
|
||||||
docker compose up -d
|
|
||||||
# install elasticsearch client for PHP
|
|
||||||
docker exec --user root ${COMPOSE_PROJECT_NAME}-php-fpm-1 /bin/sh -c "cd /var/www/html; composer require elasticsearch/elasticsearch"
|
|
||||||
# stop stack
|
|
||||||
docker compose stop
|
|
||||||
# logout from docker hub
|
|
||||||
docker logout
|
|
||||||
# cleanup container, image and instance to create multi platform image
|
|
||||||
docker stop buildx_buildkit_gmobuilder0
|
|
||||||
docker container rm buildx_buildkit_gmobuilder0
|
|
||||||
docker rmi moby/buildkit:buildx-stable-1 --force
|
|
||||||
docker buildx rm --all-inactive --force
|
|
||||||
;;
|
;;
|
||||||
push)
|
push)
|
||||||
docker login -u="${DOCKER_USER}" -p="${DOCKER_PASS}"
|
|
||||||
docker image push ${DOCKER_IMAGE}:${DOCKER_IMAGE_VERSION}
|
docker image push ${DOCKER_IMAGE}:${DOCKER_IMAGE_VERSION}
|
||||||
docker logout
|
|
||||||
;;
|
;;
|
||||||
down)
|
*)
|
||||||
docker compose down --remove-orphans
|
echo "docker.sh [start|stop|install|logs|bash-root|bash|build|build-no-cache|push]"
|
||||||
;;
|
|
||||||
version|-v|--version)
|
|
||||||
cat << EOF
|
|
||||||
$(basename "$0") v$version (c) 1990 - $(date +%Y) by Gilles Mouchet
|
|
||||||
Non-Commercial Use License – See LICENSE for details
|
|
||||||
EOF
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
*|help|-h|--help)
|
|
||||||
usage
|
|
||||||
exit
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
# config es
|
xpack.security.transport.ssl.enabled=true
|
||||||
cluster.name=es-cluster
|
|
||||||
discovery.type=single-node
|
|
||||||
bootstrap.memory_lock=true
|
|
||||||
xpack.security.enabled=true
|
xpack.security.enabled=true
|
||||||
xpack.security.http.ssl.enabled=false
|
discovery.type=single-node
|
||||||
ES_JAVA_OPTS=-Xms1g -Xmx1g
|
cluster.name=gmo_es_cluster
|
||||||
# password for elastic user
|
ELASTIC_USERNAME=elastic
|
||||||
ELASTIC_PASSWORD=pa55w0rd
|
ELASTIC_PASSWORD=pa55w0rd
|
||||||
@ -1,22 +0,0 @@
|
|||||||
!/bin/bash
|
|
||||||
# create a user on es to allow kibana to connect to es
|
|
||||||
# from es 8 kibana cannot connect with elastic user.
|
|
||||||
# elastic user can be use to login form kibana UI
|
|
||||||
# Wait for elasticsearch to start
|
|
||||||
echo "--- waiting for elasticsearch to start..."
|
|
||||||
until curl -u elastic:${ELASTIC_PASSWORD} -s http://localhost:9200 >/dev/null; do
|
|
||||||
sleep 2
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "--- elasticsearch is ready. Creating the Kibana user..."
|
|
||||||
|
|
||||||
# create a user for Kibana
|
|
||||||
curl -X POST http://localhost:9200/_security/user/kibana_system_user \
|
|
||||||
-u elastic:${ELASTIC_PASSWORD} \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{
|
|
||||||
"password" : "kibanapassword",
|
|
||||||
"roles" : [ "kibana_system" ],
|
|
||||||
"full_name" : "Kibana System User"
|
|
||||||
}'
|
|
||||||
|
|
||||||
@ -1,11 +1,4 @@
|
|||||||
# es url
|
ELASTICSEARCH_HOSTS=http://wwwgmo-elasticsearch:9200
|
||||||
ELASTICSEARCH_HOSTS=http://elasticsearch:9200
|
ELASTICSEARCH_USERNAME=elastic
|
||||||
# username (technical) with kibana connects to elasticsearch
|
ELASTICSEARCH_PASSWORD=pa55w0rd
|
||||||
# the username is create with docker/elasticsearch/create_kibana_user.sh
|
xpack.security.enabled=true
|
||||||
# script
|
|
||||||
ELASTICSEARCH_USERNAME=kibana_system_user
|
|
||||||
# password for username
|
|
||||||
ELASTICSEARCH_PASSWORD=kibanapassword
|
|
||||||
# acitve https
|
|
||||||
SERVER_SSL_ENABLED=true
|
|
||||||
SERVER_SSL_KEY="/usr/share/kibana/config/certs/tls.key"
|
|
||||||
@ -6,7 +6,8 @@ MYSQL_USER=wwwgmo
|
|||||||
MYSQL_PASSWORD=password
|
MYSQL_PASSWORD=password
|
||||||
MYSQL_TCP_PORT=3306
|
MYSQL_TCP_PORT=3306
|
||||||
# phpmyadmin
|
# phpmyadmin
|
||||||
PMA_HOST=mariadb
|
PMA_HOST=wwwgmo-mariadb
|
||||||
PMA_USER=root
|
PMA_USER=root
|
||||||
PMA_PASSWORD=pa55w0rd
|
PMA_PASSWORD=pa55w0rd
|
||||||
PMA_PORT=3306
|
PMA_PORT=3306
|
||||||
|
PMA_ARBITRARY=1
|
||||||
@ -17,17 +17,10 @@
|
|||||||
#add_header Referrer-Policy "origin-when-cross-origin" always;
|
#add_header Referrer-Policy "origin-when-cross-origin" always;
|
||||||
#add_header Strict-Transport-Security "max-age=31536000" always;
|
#add_header Strict-Transport-Security "max-age=31536000" always;
|
||||||
|
|
||||||
server {
|
|
||||||
listen 8080 default_server;
|
|
||||||
return 301 https://$host$request_uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
server {
|
||||||
index index.php;
|
index index.php;
|
||||||
root /var/www/html;
|
root /var/www/html;
|
||||||
listen 8443 ssl;
|
listen 8080;
|
||||||
ssl_certificate /etc/nginx/certs/tls.crt;
|
|
||||||
ssl_certificate_key /etc/nginx/certs/tls.key;
|
|
||||||
server_name _;
|
server_name _;
|
||||||
error_log /dev/stderr;
|
error_log /dev/stderr;
|
||||||
access_log /dev/stdout;
|
access_log /dev/stdout;
|
||||||
@ -56,7 +49,7 @@
|
|||||||
|
|
||||||
location ~* \.php$ {
|
location ~* \.php$ {
|
||||||
#fastcgi_pass 127.0.0.1:9000;
|
#fastcgi_pass 127.0.0.1:9000;
|
||||||
fastcgi_pass php-fpm:9000;
|
fastcgi_pass wwwgmo-php-fpm:9000;
|
||||||
#fastcgi_pass archivescacm-php-fpm:9000;
|
#fastcgi_pass archivescacm-php-fpm:9000;
|
||||||
include fastcgi_params;
|
include fastcgi_params;
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
|||||||
@ -1,23 +1,22 @@
|
|||||||
# site
|
# site
|
||||||
SITE_TITLE="Stack GMo - PHP-FPM - MariaDB - Elasticsearch"
|
SITE_TITLE="Stack GMo - PHP-FPM - MariaDB - Elasticsearch"
|
||||||
# must be the same that DOCKER_IMAGE_VERSION define in .env
|
# must be the same that DOCKER_IMAGE_VERSION define in .env
|
||||||
SITE_VERSION=${DOCKER_IMAGE_VERSION}
|
SITE_VERSION="3.25"
|
||||||
# db
|
# db
|
||||||
DB_NAME=wwwgmo
|
DB_NAME=wwwgmo
|
||||||
DB_USER=wwwgmo
|
DB_USER=wwwgmo
|
||||||
DB_PASSWORD=password
|
DB_PASSWORD=password
|
||||||
DB_HOST=mariadb
|
DB_HOST=wwwgmo-mariadb
|
||||||
DB_PORT=3306
|
DB_PORT=3306
|
||||||
DB_TABLE=tbl_email
|
DB_TABLE=tbl_email
|
||||||
# PMA
|
# PMA
|
||||||
# the port must be the same as PMA_PORT_WEB define in .env on root project path
|
# the port must be the same as PMA_PORT_WEB define in .env on root project path
|
||||||
PMA_URL=https://docker1.gmolab.net:8084
|
PMA_URL=http://gmoadm.gmolab.net:8084
|
||||||
KIBANA_URL=https://docker1.gmolab.net:5601
|
KIBANA_URL=http://gmoadm.gmolab.net:5601
|
||||||
# Elsaticsearch/kibana
|
# Elsaticsearch/kibana
|
||||||
ES_HOST=elasticsearch:9200
|
ES_HOST=wwwgmo-elasticsearch:9200
|
||||||
ES_USER=elastic
|
ES_USER=elastic
|
||||||
ES_PASSWORD=pa55w0rd
|
ES_PASSWORD=pa55w0rd
|
||||||
ES_INDEX=wwwgmo_index
|
ES_INDEX=wwwgmo_index
|
||||||
KIB_PORT=5601
|
KIB_PORT=5601
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#https://hub.docker.com/r/rhamdeew/docker-php-8-fpm-alpine/dockerfile
|
#https://hub.docker.com/r/rhamdeew/docker-php-8-fpm-alpine/dockerfile
|
||||||
#https://github.com/elastic/elasticsearch-php
|
#https://github.com/elastic/elasticsearch-php
|
||||||
|
|
||||||
FROM php:8.4-fpm-alpine3.22
|
FROM php:8.2.6-fpm-alpine
|
||||||
LABEL maintainer="gilles.mouchet@gmail.com"
|
LABEL maintainer="gilles.mouchet@gmail.com"
|
||||||
|
|
||||||
RUN apk add --no-cache mysql-client msmtp perl wget procps shadow libzip libpng libjpeg-turbo libwebp freetype icu
|
RUN apk add --no-cache mysql-client msmtp perl wget procps shadow libzip libpng libjpeg-turbo libwebp freetype icu
|
||||||
|
|||||||
@ -1,12 +0,0 @@
|
|||||||
<IfModule mod_ssl.c>
|
|
||||||
<VirtualHost _default_:443>
|
|
||||||
ServerAdmin webmaster@localhost
|
|
||||||
DocumentRoot /var/www/html
|
|
||||||
|
|
||||||
SSLEngine on
|
|
||||||
SSLCertificateFile /etc/apache2/ssl/tls.crt
|
|
||||||
SSLCertificateKeyFile /etc/apache2/ssl/tls.key
|
|
||||||
|
|
||||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
|
||||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
|
||||||
</VirtualHost>
|
|
||||||
@ -1 +0,0 @@
|
|||||||
<?php
|
|
||||||
@ -26,4 +26,4 @@ version: 1.0.0
|
|||||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||||
# It is recommended to use it with quotes.
|
# It is recommended to use it with quotes.
|
||||||
# Also set the docker image tag
|
# Also set the docker image tag
|
||||||
appVersion: "3.3.0"
|
appVersion: "3.25-amd64"
|
||||||
|
|||||||
@ -11,7 +11,7 @@ data:
|
|||||||
cluster.name: "wwwgmo-es"
|
cluster.name: "wwwgmo-es"
|
||||||
discovery.type: "single-node"
|
discovery.type: "single-node"
|
||||||
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
|
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
|
||||||
|
ELASTIC_USERNAME: elastic
|
||||||
ELASTIC_HOST: "service-elasticsearch"
|
ELASTIC_HOST: "service-elasticsearch"
|
||||||
xpack.security.enabled: "true"
|
xpack.security.enabled: "true"
|
||||||
xpack.security.transport.ssl.enabled: "false"
|
xpack.security.transport.ssl.enabled: "true"
|
||||||
xpack.security.http.ssl.enabled: "false"
|
|
||||||
|
|||||||
@ -9,8 +9,4 @@ metadata:
|
|||||||
{{- include "site.labels" . | nindent 4 }}
|
{{- include "site.labels" . | nindent 4 }}
|
||||||
type: Opaque
|
type: Opaque
|
||||||
stringData:
|
stringData:
|
||||||
ELASTIC_USERNAME: elastic
|
|
||||||
ELASTIC_PASSWORD: "{{ required ".Values.elastic.password entry is required!" .Values.elastic.password }}"
|
ELASTIC_PASSWORD: "{{ required ".Values.elastic.password entry is required!" .Values.elastic.password }}"
|
||||||
# user for kibana to connect on elasticsearch
|
|
||||||
KIBANA_PASSWORD: "{{ required ".Values.kibana.password entry is required!" .Values.kibana.password }}"
|
|
||||||
KIBANA_USERNAME: "{{ required ".Values.kibana.username entry is required!" .Values.kibana.username }}"
|
|
||||||
|
|||||||
@ -79,21 +79,6 @@ spec:
|
|||||||
initialDelaySeconds: 30
|
initialDelaySeconds: 30
|
||||||
timeoutSeconds: 5
|
timeoutSeconds: 5
|
||||||
|
|
||||||
lifecycle:
|
|
||||||
postStart:
|
|
||||||
exec:
|
|
||||||
command:
|
|
||||||
- "/bin/sh"
|
|
||||||
- "-c"
|
|
||||||
- |
|
|
||||||
loop=0
|
|
||||||
until curl -s http://localhost:9200 | grep -q "missing authentication credentials"; do let loop=loop+1 ; sleep 30; if [ $loop -ge 4 ]; then exit 1; fi; done
|
|
||||||
echo "Setting sihusearch role and user/password"
|
|
||||||
loop=0
|
|
||||||
echo "Setting Kibana System password"
|
|
||||||
curl -s -X POST -u "elastic:{{ required ".Values.elastic.password entry is required!" .Values.elastic.password }}" -H "Content-Type: application/json" http://localhost:9200/_security/user/kibana_system/_password -d "{\"password\" : \"{{ required ".Values.kibana.password entry is required!" .Values.kibana.password }}\"}"
|
|
||||||
echo "All done!"
|
|
||||||
|
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: fix-permissions
|
- name: fix-permissions
|
||||||
image: busybox
|
image: busybox
|
||||||
@ -133,8 +118,14 @@ spec:
|
|||||||
app: elastic
|
app: elastic
|
||||||
tier: elastic
|
tier: elastic
|
||||||
spec:
|
spec:
|
||||||
accessModes: {{ required ".Values.common.pvc.accessModes entry is required!" .Values.common.pvc.accessModes }}
|
{{- if eq "k3s" $.Values.kube }}
|
||||||
storageClassName: {{ required ".Values.common.pvc.storageClassName entry is required!" .Values.common.pvc.storageClassName }}
|
accessModes: [ "ReadWriteOnce" ]
|
||||||
|
storageClassName: {{ required ".Values.elastic.persistentVolumeClaim.k3sStorageClassName entry is required!" .Values.elastic.persistentVolumeClaim.k3sStorageClassName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "k8s" $.Values.kube }}
|
||||||
|
accessModes: [ "ReadWriteMany" ]
|
||||||
|
storageClassName: {{ required ".Values.elastic.persistentVolumeClaim.k8sStorageClassName entry is required!" .Values.elastic.persistentVolumeClaim.k8sStorageClassName }}
|
||||||
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: {{ required ".Values.elastic.persistentVolumeClaim.storageRequest entry is required!" .Values.elastic.persistentVolumeClaim.storageRequest }}
|
storage: {{ required ".Values.elastic.persistentVolumeClaim.storageRequest entry is required!" .Values.elastic.persistentVolumeClaim.storageRequest }}
|
||||||
|
|||||||
@ -7,17 +7,6 @@ metadata:
|
|||||||
app: site
|
app: site
|
||||||
tier: kibana
|
tier: kibana
|
||||||
{{- include "site.labels" . | nindent 4 }}
|
{{- include "site.labels" . | nindent 4 }}
|
||||||
# envFrom:
|
|
||||||
# - secretRef:
|
|
||||||
# name: secret-elasticsearch
|
|
||||||
data:
|
data:
|
||||||
#ELASTICSEARCH_HOSTS: "{{ required ".Values.elastic.host entry is required!" .Values.elastic.host }}"
|
ELASTICSEARCH_HOSTS: "{{ required ".Values.kibana.host entry is required!" .Values.kibana.host }}"
|
||||||
# ELASTICSEARCH_USERNAME: "{{ required ".Values.kibana.username entry is required!" .Values.kibana.username }}"
|
|
||||||
# ELASTICSEARCH_PASSWORD: "{{ required ".Values.kibana.password entry is required!" .Values.kibana.password }}"
|
|
||||||
#KIBANA_USERNAME: "{{ required ".Values.kibana.username entry is required!" .Values.kibana.username }}"
|
|
||||||
#KIBANA_PASSWORD: "{{ required ".Values.kibana.password entry is required!" .Values.kibana.password }}"
|
|
||||||
#KIBANA_USERNAME: "{{ required ".Values.kibana.username entry is required!" .Values.kibana.username }}"
|
|
||||||
#server.ssl.enabled: false
|
|
||||||
ELASTICSEARCH_HOSTS: "{{ required ".Values.elastic.host entry is required!" .Values.elastic.host }}"
|
|
||||||
ELASTICSEARCH_USERNAME: "{{ required ".Values.kibana.username entry is required!" .Values.kibana.username }}"
|
ELASTICSEARCH_USERNAME: "{{ required ".Values.kibana.username entry is required!" .Values.kibana.username }}"
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@ spec:
|
|||||||
automountServiceAccountToken: false
|
automountServiceAccountToken: false
|
||||||
containers:
|
containers:
|
||||||
- name: kibana
|
- name: kibana
|
||||||
image: docker.elastic.co/kibana/kibana:{{ required ".Values.elastic.imageTag entry is required!" .Values.elastic.imageTag }}
|
image: docker.elastic.co/kibana/kibana:7.17.10
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
|
|
||||||
envFrom:
|
envFrom:
|
||||||
|
|||||||
@ -4,13 +4,17 @@ metadata:
|
|||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
name: ingress-kibana
|
name: ingress-kibana
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: {{ required ".Values.common.ingress.ingressClassName entry is required!" .Values.common.ingress.ingressClassName }}
|
{{- if eq "k3s" $.Values.kube }}
|
||||||
{{- if .Values.site.tls.enabled }}
|
ingressClassName: traefik
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "k8s" $.Values.kube }}
|
||||||
|
ingressClassName: nginx
|
||||||
|
{{- end }}
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
{{ required ".Values.site.ingres.kibana.hosts entry is required!" .Values.site.ingress.kibana.hosts }}
|
{{ required ".Values.site.ingress.kibana.hosts entry is required!" .Values.site.ingress.kibana.hosts }}
|
||||||
secretName: secret-ingress-tls
|
secretName: secret-ingress-tls
|
||||||
{{- end }}
|
|
||||||
rules:
|
rules:
|
||||||
- host: {{ required ".Values.site.urlKibana entry is required!" .Values.site.urlKibana }}
|
- host: {{ required ".Values.site.urlKibana entry is required!" .Values.site.urlKibana }}
|
||||||
http:
|
http:
|
||||||
@ -22,3 +26,4 @@ spec:
|
|||||||
name: service-kibana
|
name: service-kibana
|
||||||
port:
|
port:
|
||||||
number: 5601
|
number: 5601
|
||||||
|
|
||||||
@ -7,12 +7,4 @@ metadata:
|
|||||||
{{- include "site.labels" . | nindent 4 }}
|
{{- include "site.labels" . | nindent 4 }}
|
||||||
type: Opaque
|
type: Opaque
|
||||||
stringData:
|
stringData:
|
||||||
#ELASTICSEARCH_PASSWORD: "{{ required ".Values.elastic.password entry is required!" .Values.elastic.password }}"
|
ELASTICSEARCH_PASSWORD: "{{ required ".Values.elastic.password entry is required!" .Values.elastic.password }}"
|
||||||
#ELASTIC_USERNAME: elastic
|
|
||||||
#ELASTIC_PASSWORD: "{{ required ".Values.elastic.password entry is required!" .Values.elastic.password }}"
|
|
||||||
#KIBANA_PASSWORD: kibanaPass55w0rd
|
|
||||||
#KIBANA_USERNAME: kibana_system_user
|
|
||||||
#ELASTICSEARCH_USERNAME: "{{ required ".Values.kibana.username entry is required!" .Values.kibana.username }}"
|
|
||||||
ELASTICSEARCH_PASSWORD: "{{ required ".Values.kibana.password entry is required!" .Values.kibana.password }}"
|
|
||||||
#ELASTICSEARCH_HOSTS: "{{ required ".Values.elastic.host entry is required!" .Values.elastic.host }}"
|
|
||||||
|
|
||||||
|
|||||||
@ -8,6 +8,7 @@ metadata:
|
|||||||
data:
|
data:
|
||||||
MYSQL_DATABASE: "{{ required ".Values.mariadb.databaseName entry is required!" .Values.mariadb.databaseName }}"
|
MYSQL_DATABASE: "{{ required ".Values.mariadb.databaseName entry is required!" .Values.mariadb.databaseName }}"
|
||||||
MYSQL_USER: "{{ required ".Values.site.phpfpmSite.db.user entry is required!" .Values.site.phpfpmSite.db.user }}"
|
MYSQL_USER: "{{ required ".Values.site.phpfpmSite.db.user entry is required!" .Values.site.phpfpmSite.db.user }}"
|
||||||
|
MYSQL_PASSWORD: "{{ required ".Values.mariadb.dbPass entry is required!" .Values.mariadb.dbPass }}"
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
|
|||||||
@ -1,55 +0,0 @@
|
|||||||
# templates/mariadb/job-mariadb-backup-initial.yaml
|
|
||||||
# For the pod to start properly, the backup job must be run only once during deployment.
|
|
||||||
# This initial run is to create the backup Persistent Volume Claim (PVC).
|
|
||||||
# The pod depends on the presence of this PVC, identified as 'mariadb-datadir-bck',
|
|
||||||
# and will not be able to launch without its creation.
|
|
||||||
# ----
|
|
||||||
# Pour que le pod puisse démarrer correctement, il est nécessaire d'exécuter
|
|
||||||
# le job de sauvegarde une seule fois au moment du déploiement.
|
|
||||||
# Cette exécution initiale a pour but de créer le Persistent Volume Claim (PVC) de sauvegarde.
|
|
||||||
# En effet, le pod est dépendant de la présence de ce PVC, identifié comme 'mariadb-datadir-bck',
|
|
||||||
# et ne pourra pas se lancer sans sa création préalable.
|
|
||||||
# ----
|
|
||||||
apiVersion: batch/v1
|
|
||||||
kind: Job
|
|
||||||
metadata:
|
|
||||||
name: {{ include "site.fullname" . }}-mariadb-backup-initial
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
labels:
|
|
||||||
{{- include "site.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: mariadb
|
|
||||||
tier: cronjob-initial
|
|
||||||
{{- include "site.labels" . | nindent 8 }}
|
|
||||||
spec:
|
|
||||||
automountServiceAccountToken: false
|
|
||||||
containers:
|
|
||||||
- image: {{ required ".Values.mariadb.repository entry is required!" .Values.mariadb.repository }}:{{ required ".Values.mariadb.tag entry is required!" .Values.mariadb.tag }}
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: cronjob-mariadb-backupdb-initial
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: configmap-mariadb-envvars
|
|
||||||
- secretRef:
|
|
||||||
name: secret-mariadb
|
|
||||||
command: ["/bin/sh", "-c"]
|
|
||||||
args:
|
|
||||||
- set -x;
|
|
||||||
ls -l /var/backups;
|
|
||||||
/usr/bin/mysqldump --verbose --hex-blob --complete-insert --single-transaction --skip-lock-tables --skip-add-locks --routines -h service-mariadb -uroot -p$MYSQL_ROOT_PASSWORD $MYSQL_DATABASE | gzip - > /var/backups/$MYSQL_DATABASE-$(date +%Y-%m-%d_%H%M%S).sql.gz;
|
|
||||||
# Note: you might want to adjust the find command if this is the very first backup
|
|
||||||
# find /var/backups/ -mindepth 1 -type f -mtime +14 -exec rm {} \;
|
|
||||||
volumeMounts:
|
|
||||||
- name: mariadb-datadir-bck
|
|
||||||
mountPath: /var/backups
|
|
||||||
|
|
||||||
restartPolicy: OnFailure # Important for Jobs
|
|
||||||
|
|
||||||
terminationGracePeriodSeconds: {{ required ".Values.mariadb.terminationGracePeriodSeconds entry is required!" .Values.mariadb.terminationGracePeriodSeconds }}
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: mariadb-datadir-bck
|
|
||||||
persistentVolumeClaim:
|
|
||||||
@ -8,8 +8,16 @@ metadata:
|
|||||||
annotations:
|
annotations:
|
||||||
helm.sh/resource-policy: keep
|
helm.sh/resource-policy: keep
|
||||||
spec:
|
spec:
|
||||||
accessModes: {{ required ".Values.common.pvc.accessModes entry is required!" .Values.common.pvc.accessModes }}
|
{{- if eq "k3s" $.Values.kube }}
|
||||||
storageClassName: {{ required ".Values.common.pvc.storageClassName entry is required!" .Values.common.pvc.storageClassName }}
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: {{ required ".Values.mariadb.persistentVolumeClaim.k3sStorageClassName entry is required!" .Values.mariadb.persistentVolumeClaim.k3sStorageClassName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "k8s" $.Values.kube }}
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
storageClassName: {{ required ".Values.mariadb.persistentVolumeClaim.k8sStorageClassName entry is required!" .Values.mariadb.persistentVolumeClaim.k8sStorageClassName }}
|
||||||
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: {{ required ".Values.site.marioadb.persistentVolumeClaim.storageRequest entry is required!" .Values.mariadb.persistentVolumeClaim.storageRequest }}
|
storage: {{ required ".Values.site.marioadb.persistentVolumeClaim.storageRequest entry is required!" .Values.mariadb.persistentVolumeClaim.storageRequest }}
|
||||||
@ -24,8 +32,16 @@ metadata:
|
|||||||
annotations:
|
annotations:
|
||||||
helm.sh/resource-policy: keep
|
helm.sh/resource-policy: keep
|
||||||
spec:
|
spec:
|
||||||
accessModes: {{ required ".Values.common.pvc.accessModes entry is required!" .Values.common.pvc.accessModes }}
|
{{- if eq "k3s" $.Values.kube }}
|
||||||
storageClassName: {{ required ".Values.common.pvc.storageClassName entry is required!" .Values.common.pvc.storageClassName }}
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: {{ required ".Values.mariadb.persistentVolumeClaim.k3sStorageClassName entry is required!" .Values.mariadb.persistentVolumeClaim.k3sStorageClassName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "k8s" $.Values.kube }}
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
storageClassName: {{ required ".Values.mariadb.persistentVolumeClaim.k8sStorageClassName entry is required!" .Values.mariadb.persistentVolumeClaim.k8sStorageClassName }}
|
||||||
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: {{ required ".Values.mariadb.persistentVolumeClaim.backupDbStorageRequest entry is required!" .Values.mariadb.persistentVolumeClaim.backupDbStorageRequest }}
|
storage: {{ required ".Values.mariadb.persistentVolumeClaim.backupdDbStorageRequest entry is required!" .Values.mariadb.persistentVolumeClaim.backupdDbStorageRequest }}
|
||||||
|
|||||||
@ -8,4 +8,3 @@ metadata:
|
|||||||
type: Opaque
|
type: Opaque
|
||||||
stringData:
|
stringData:
|
||||||
MYSQL_ROOT_PASSWORD: "{{ required ".Values.mariadb.rootPass entry is required!" .Values.mariadb.rootPass }}"
|
MYSQL_ROOT_PASSWORD: "{{ required ".Values.mariadb.rootPass entry is required!" .Values.mariadb.rootPass }}"
|
||||||
MYSQL_PASSWORD: "{{ required ".Values.mariadb.dbPass entry is required!" .Values.mariadb.dbPass }}"
|
|
||||||
|
|||||||
@ -38,19 +38,13 @@ spec:
|
|||||||
- containerPort: 3306
|
- containerPort: 3306
|
||||||
name: mariadb
|
name: mariadb
|
||||||
|
|
||||||
# The startupProbe is used to determine whether the application has started successfully
|
|
||||||
# before checking the other probes (livenessProbe and readinessProbe).
|
|
||||||
# This is useful for databases like MariaDB, as they can take a while to start up.
|
|
||||||
startupProbe:
|
startupProbe:
|
||||||
tcpSocket:
|
tcpSocket:
|
||||||
port: 3306
|
port: 3306
|
||||||
initialDelaySeconds: 10 # waiting time before the first test
|
failureThreshold: 12
|
||||||
periodSeconds: 10 # test frequency (every 10 seconds)
|
periodSeconds: 10
|
||||||
failureThreshold: 30 # number of failures before considering the container not starting
|
timeoutSeconds: 5
|
||||||
|
|
||||||
# The livenessProbe is used to determine whether the MariaDB container is still alive,
|
|
||||||
# i.e., whether it is functioning properly.
|
|
||||||
# If the probe fails, Kubernetes will restart the container.
|
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
tcpSocket:
|
tcpSocket:
|
||||||
port: 3306
|
port: 3306
|
||||||
@ -59,29 +53,13 @@ spec:
|
|||||||
initialDelaySeconds: 0
|
initialDelaySeconds: 0
|
||||||
timeoutSeconds: 5
|
timeoutSeconds: 5
|
||||||
|
|
||||||
# The readinessProbe is used to determine whether the container is ready to receive traffic.
|
|
||||||
# This is important because MariaDB might be up and running but not yet ready to serve
|
|
||||||
# queries (for example, if restore or prepare queries are in progress).
|
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
initialDelaySeconds: 15
|
tcpSocket:
|
||||||
|
port: 3306
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
timeoutSeconds: 5
|
|
||||||
successThreshold: 1
|
|
||||||
failureThreshold: 3
|
failureThreshold: 3
|
||||||
tcpSocket:
|
initialDelaySeconds: 0
|
||||||
port: 3306
|
timeoutSeconds: 5
|
||||||
readinessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 3306
|
|
||||||
initialDelaySeconds: 30
|
|
||||||
periodSeconds: 10
|
|
||||||
#readinessProbe:
|
|
||||||
# tcpSocket:
|
|
||||||
# port: 3306
|
|
||||||
# periodSeconds: 10
|
|
||||||
# failureThreshold: 3
|
|
||||||
# initialDelaySeconds: 0
|
|
||||||
# timeoutSeconds: 5
|
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
|
|||||||
@ -13,10 +13,8 @@ data:
|
|||||||
DB_NAME: "{{ required ".Values.site.phpfpmSite.db.name entry is required!" .Values.site.phpfpmSite.db.name }}"
|
DB_NAME: "{{ required ".Values.site.phpfpmSite.db.name entry is required!" .Values.site.phpfpmSite.db.name }}"
|
||||||
DB_PORT: "{{ required ".Values.site.phpfpmSite.db.port entry is required!" .Values.site.phpfpmSite.db.port }}"
|
DB_PORT: "{{ required ".Values.site.phpfpmSite.db.port entry is required!" .Values.site.phpfpmSite.db.port }}"
|
||||||
DB_TABLE: "{{ required ".Values.site.phpfpmSite.db.tabl entry is required!" .Values.site.phpfpmSite.db.tabl }}"
|
DB_TABLE: "{{ required ".Values.site.phpfpmSite.db.tabl entry is required!" .Values.site.phpfpmSite.db.tabl }}"
|
||||||
PMA_URL: "{{ required ".Values.site.proto entry is required!" .Values.site.proto }}://{{ required ".Values.site.urlPma entry is required!" .Values.site.urlPma }}"
|
PMA_URL: "https://{{ required ".Values.site.urlPma entry is required!" .Values.site.urlPma }}"
|
||||||
#PMA_URL: "{{ required ".Values.site.urlPma entry is required!" .Values.site.urlPma }}"
|
|
||||||
ES_HOST: "{{ required ".Values.site.phpfpmSite.es.host entry is required!" .Values.site.phpfpmSite.es.host }}"
|
ES_HOST: "{{ required ".Values.site.phpfpmSite.es.host entry is required!" .Values.site.phpfpmSite.es.host }}"
|
||||||
ES_USER: "{{ required ".Values.site.phpfpmSite.es.user entry is required!" .Values.site.phpfpmSite.es.user }}"
|
ES_USER: "{{ required ".Values.site.phpfpmSite.es.user entry is required!" .Values.site.phpfpmSite.es.user }}"
|
||||||
ES_INDEX: "{{ required ".Values.site.phpfpmSite.es.index entry is required!" .Values.site.phpfpmSite.es.index }}"
|
ES_INDEX: "{{ required ".Values.site.phpfpmSite.es.index entry is required!" .Values.site.phpfpmSite.es.index }}"
|
||||||
KIBANA_URL: "{{ required ".Values.site.proto entry is required!" .Values.site.proto }}://{{ required ".Values.site.urlKibana entry is required!" .Values.site.urlKibana }}"
|
KIBANA_URL: "https://{{ required ".Values.site.utlKibana entry is required!" .Values.site.urlKibana }}"
|
||||||
#KIBANA_URL: "{{ required ".Values.site.urlKibana entry is required!" .Values.site.urlKibana }}"
|
|
||||||
|
|||||||
@ -99,7 +99,7 @@ spec:
|
|||||||
# - ALL
|
# - ALL
|
||||||
|
|
||||||
### Container 2 : PHP-FPM
|
### Container 2 : PHP-FPM
|
||||||
- image: {{ required ".Values.site.phpfpmSite.repository entry is required!" .Values.site.phpfpmSite.repository }}:{{ required "Values.site.phpfpmSite.imageTag entry is required!" .Values.site.phpfpmSite.imageTag }}
|
- image: {{ required ".Values.site.phpfpmSite.repository entry is required!" .Values.site.phpfpmSite.repository }}:{{ required ".Chart.AppVersion entry is required!" .Chart.AppVersion }}
|
||||||
imagePullPolicy: {{ required ".Values.site.phpfpmSite.pullPolicy entry is required!" .Values.site.phpfpmSite.pullPolicy }}
|
imagePullPolicy: {{ required ".Values.site.phpfpmSite.pullPolicy entry is required!" .Values.site.phpfpmSite.pullPolicy }}
|
||||||
name: phpfpm
|
name: phpfpm
|
||||||
|
|
||||||
|
|||||||
@ -22,13 +22,16 @@ metadata:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: {{ required ".Values.common.ingress.ingressClassName entry is required!" .Values.common.ingress.ingressClassName }}
|
{{- if eq "k3s" $.Values.kube }}
|
||||||
{{- if .Values.site.tls.enabled }}
|
ingressClassName: traefik
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "k8s" $.Values.kube }}
|
||||||
|
ingressClassName: nginx
|
||||||
|
{{- end }}
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
{{ required ".Values.site.ingress.site.hosts entry is required!" .Values.site.ingress.site.hosts }}
|
{{ required ".Values.site.ingress.site.hosts entry is required!" .Values.site.ingress.site.hosts }}
|
||||||
secretName: secret-ingress-tls
|
secretName: secret-ingress-tls
|
||||||
{{- end }}
|
|
||||||
rules:
|
rules:
|
||||||
- host: {{ required ".Values.site.host entry is required!" .Values.site.host }}
|
- host: {{ required ".Values.site.host entry is required!" .Values.site.host }}
|
||||||
http:
|
http:
|
||||||
@ -40,3 +43,4 @@ spec:
|
|||||||
name: service-site
|
name: service-site
|
||||||
port:
|
port:
|
||||||
number: 8080
|
number: 8080
|
||||||
|
|
||||||
@ -10,8 +10,16 @@ metadata:
|
|||||||
annotations:
|
annotations:
|
||||||
helm.sh/resource-policy: keep
|
helm.sh/resource-policy: keep
|
||||||
spec:
|
spec:
|
||||||
accessModes: {{ required ".Values.common.pvc.accessModes entry is required!" .Values.common.pvc.accessModes }}
|
{{- if eq "k3s" $.Values.kube }}
|
||||||
storageClassName: {{ required ".Values.common.pvc.storageClassName entry is required!" .Values.common.pvc.storageClassName }}
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: {{ required ".Values.site.persistentVolumeClaim.k3sStorageClassName entry is required!" .Values.site.persistentVolumeClaim.k3sStorageClassName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "k8s" $.Values.kube }}
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
storageClassName: {{ required ".Values.site.persistentVolumeClaim.k8sStorageClassName entry is required!" .Values.site.persistentVolumeClaim.k8sStorageClassName }}
|
||||||
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
storage: {{ required ".Values.site.persistentVolumeClaim.storageRequest entry is required!" .Values.site.persistentVolumeClaim.storageRequest }}
|
storage: {{ required ".Values.site.persistentVolumeClaim.storageRequest entry is required!" .Values.site.persistentVolumeClaim.storageRequest }}
|
||||||
@ -7,3 +7,4 @@ kind: Secret
|
|||||||
metadata:
|
metadata:
|
||||||
name: secret-ingress-tls
|
name: secret-ingress-tls
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
|
type: kubernetes.io/tls
|
||||||
@ -5,3 +5,4 @@ kind: Secret
|
|||||||
metadata:
|
metadata:
|
||||||
name: secret-regcred
|
name: secret-regcred
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
|
type: kubernetes.io/dockerconfigjson
|
||||||
@ -9,3 +9,4 @@ type: Opaque
|
|||||||
stringData:
|
stringData:
|
||||||
DB_PASSWORD: "{{ required ".Values.mariadb.dbPass entry is required!" .Values.mariadb.dbPass }}"
|
DB_PASSWORD: "{{ required ".Values.mariadb.dbPass entry is required!" .Values.mariadb.dbPass }}"
|
||||||
ES_PASSWORD: "{{ required ".Values.elastic.password entry is required!" .Values.elastic.password }}"
|
ES_PASSWORD: "{{ required ".Values.elastic.password entry is required!" .Values.elastic.password }}"
|
||||||
|
|
||||||
@ -15,3 +15,4 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
app: site
|
app: site
|
||||||
tier: backend
|
tier: backend
|
||||||
|
type: ClusterIP
|
||||||
@ -10,13 +10,6 @@ metadata:
|
|||||||
#traefik.ingress.kubernetes.io/rewrite-target: /
|
#traefik.ingress.kubernetes.io/rewrite-target: /
|
||||||
#traefik.ingress.kubernetes.io/rule-type: PathPrefixStrip
|
#traefik.ingress.kubernetes.io/rule-type: PathPrefixStrip
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if eq "kind" $.Values.kube }}
|
|
||||||
#kubernetes.io/ingress.allow-http: "false"
|
|
||||||
#nginx.ingress.kubernetes.io/affinity: "cookie"
|
|
||||||
##nginx.ingress.kubernetes.io/session-cookie-name: "SAUTHSESSION*"
|
|
||||||
#nginx.ingress.kubernetes.io/proxy-body-size: "32m"
|
|
||||||
#nginx.org/client-max-body-size: "32m"
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq "k8s" $.Values.kube }}
|
{{- if eq "k8s" $.Values.kube }}
|
||||||
#kubernetes.io/ingress.allow-http: "false"
|
#kubernetes.io/ingress.allow-http: "false"
|
||||||
#nginx.ingress.kubernetes.io/affinity: "cookie"
|
#nginx.ingress.kubernetes.io/affinity: "cookie"
|
||||||
@ -25,13 +18,16 @@ metadata:
|
|||||||
#nginx.org/client-max-body-size: "32m"
|
#nginx.org/client-max-body-size: "32m"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: {{ required ".Values.common.ingress.ingressClassName entry is required!" .Values.common.ingress.ingressClassName }}
|
{{- if eq "k3s" $.Values.kube }}
|
||||||
{{- if .Values.site.tls.enabled }}
|
ingressClassName: traefik
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "k8s" $.Values.kube }}
|
||||||
|
ingressClassName: nginx
|
||||||
|
{{- end }}
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
{{ required ".Values.site.ingress.pma.hosts entry is required!" .Values.site.ingress.pma.hosts }}
|
{{ required ".Values.site.ingress.pma.hosts entry is required!" .Values.site.ingress.pma.hosts }}
|
||||||
secretName: secret-ingress-tls
|
secretName: secret-ingress-tls
|
||||||
{{- end }}
|
|
||||||
rules:
|
rules:
|
||||||
- host: {{ required ".Values.site.urlPma entry is required!" .Values.site.urlPma }}
|
- host: {{ required ".Values.site.urlPma entry is required!" .Values.site.urlPma }}
|
||||||
http:
|
http:
|
||||||
@ -43,3 +39,4 @@ spec:
|
|||||||
name: service-pma
|
name: service-pma
|
||||||
port:
|
port:
|
||||||
number: 80
|
number: 80
|
||||||
|
|
||||||
@ -11,3 +11,4 @@ spec:
|
|||||||
ports:
|
ports:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
port: 80
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
@ -5,26 +5,22 @@
|
|||||||
# elasticsearch
|
# elasticsearch
|
||||||
elastic:
|
elastic:
|
||||||
priorityClassName: system-cluster-critical
|
priorityClassName: system-cluster-critical
|
||||||
imageTag: 9.0.2
|
imageTag: 7.17.16
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
#storageRequest: 1Gi
|
#storageRequest: 1Gi
|
||||||
storageRequest: 500M
|
storageRequest: 500M
|
||||||
k3sStorageClassName: local-path
|
k3sStorageClassName: local-path
|
||||||
kindStorageClassName: standard
|
|
||||||
k8sStorageClassName: longhorn
|
k8sStorageClassName: longhorn
|
||||||
host: http://service-elasticsearch:9200
|
|
||||||
|
|
||||||
kibana:
|
kibana:
|
||||||
imageTag: 9.0.2
|
username: elastic
|
||||||
username: kibana_system_user
|
|
||||||
priorityClassName: system-node-critical
|
priorityClassName: system-node-critical
|
||||||
# host: http://service-elasticsearch:9200
|
host: http://statefulset-elasticsearch-0.service-elasticsearch:9200
|
||||||
|
|
||||||
mariadb:
|
mariadb:
|
||||||
repository: mariadb
|
repository: mariadb
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
tag: "10.11.7"
|
tag: "10.11.7"
|
||||||
#tag: "11.2"
|
|
||||||
databaseName: gmo_db
|
databaseName: gmo_db
|
||||||
innoDbBufferPoolSize: 256M
|
innoDbBufferPoolSize: 256M
|
||||||
queryCacheSize: 256M
|
queryCacheSize: 256M
|
||||||
@ -42,12 +38,9 @@ mariadb:
|
|||||||
storageRequest: 500M
|
storageRequest: 500M
|
||||||
backupdDbStorageRequest: 500M
|
backupdDbStorageRequest: 500M
|
||||||
k3sStorageClassName: local-path
|
k3sStorageClassName: local-path
|
||||||
kindStorageClassName: standard
|
|
||||||
k8sStorageClassName: longhorn
|
k8sStorageClassName: longhorn
|
||||||
|
|
||||||
site:
|
site:
|
||||||
tls:
|
|
||||||
enabled: false
|
|
||||||
host: wwwgmo.gmolab.net
|
host: wwwgmo.gmolab.net
|
||||||
urlPma: wwwgmo-pma.gmolab.net
|
urlPma: wwwgmo-pma.gmolab.net
|
||||||
urlKibana: wwwgmo-kibana.gmolab.net
|
urlKibana: wwwgmo-kibana.gmolab.net
|
||||||
@ -84,7 +77,6 @@ site:
|
|||||||
|
|
||||||
phpfpmSite:
|
phpfpmSite:
|
||||||
repository: gmouchet/wwwgmo-php-fpm
|
repository: gmouchet/wwwgmo-php-fpm
|
||||||
imageTag:
|
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
ressourceRequest:
|
ressourceRequest:
|
||||||
memory: 16M #16 Mo RAM
|
memory: 16M #16 Mo RAM
|
||||||
@ -110,6 +102,8 @@ site:
|
|||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
storageRequest: 500M
|
storageRequest: 500M
|
||||||
k3sStorageClassName: local-path
|
k3sStorageClassName: local-path
|
||||||
kindStorageClassName: standard
|
|
||||||
k8sStorageClassName: longhorn
|
k8sStorageClassName: longhorn
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,124 +0,0 @@
|
|||||||
common:
|
|
||||||
pvc:
|
|
||||||
# k3s
|
|
||||||
#accessModes: [ "ReadWriteOnce" ]
|
|
||||||
#storageClassName: local-path
|
|
||||||
# kind
|
|
||||||
#accessModes: [ "ReadWriteOnce" ]
|
|
||||||
#storageClassName: standard
|
|
||||||
# k8s
|
|
||||||
accessModes: [ "ReadWriteMany" ]
|
|
||||||
storageClassName: longhorn
|
|
||||||
ingress:
|
|
||||||
#k3s
|
|
||||||
#ingressClassName: traefik
|
|
||||||
# kind
|
|
||||||
#ingressClassName: nginx
|
|
||||||
# k8s
|
|
||||||
ingressClassName: nginx
|
|
||||||
|
|
||||||
# elasticsearch
|
|
||||||
elastic:
|
|
||||||
priorityClassName: system-cluster-critical
|
|
||||||
imageTag: 9.0.2
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
host: http://service-elasticsearch:9200
|
|
||||||
|
|
||||||
# kibana
|
|
||||||
kibana:
|
|
||||||
imageTag: 9.0.2
|
|
||||||
username: kibana_system_user
|
|
||||||
priorityClassName: system-node-critical
|
|
||||||
# host: http://service-elasticsearch:9200
|
|
||||||
|
|
||||||
# mariadb
|
|
||||||
mariadb:
|
|
||||||
repository: mariadb
|
|
||||||
pullPolicy: Always
|
|
||||||
tag: "10.11.7"
|
|
||||||
#tag: "11.2"
|
|
||||||
databaseName: gmo_db
|
|
||||||
innoDbBufferPoolSize: 256M
|
|
||||||
queryCacheSize: 256M
|
|
||||||
queryCacheLimit: 4M
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 300Mi
|
|
||||||
cpu: 100m
|
|
||||||
ephemeralStorage: 128M
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 1250Mi #1250 Mo RAM, au delà eviction
|
|
||||||
cpu: 200m # 0.1 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
terminationGracePeriodSeconds: 60
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
backupDbStorageRequest: 500M
|
|
||||||
|
|
||||||
# site
|
|
||||||
site:
|
|
||||||
tls:
|
|
||||||
enabled: true #k8s ssl by k8s, kind ssl by haproxy
|
|
||||||
host: wwwgmok8s.gmolab.net
|
|
||||||
proto: https
|
|
||||||
urlPma: wwwgmok8s-pma.gmolab.net
|
|
||||||
urlKibana: wwwgmok8s-kibana.gmolab.net
|
|
||||||
replicas: 1
|
|
||||||
priorityClassName: business-app-critical
|
|
||||||
terminationGracePeriodSeconds: 60
|
|
||||||
filesMountPath: /var/www/html/web
|
|
||||||
sourcesMountPath: /var/www/html
|
|
||||||
ssl_crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZmekNDQTJlZ0F3SUJBZ0lKQU5YN2sxZ3dnOVNkTUEwR0NTcUdTSWIzRFFFQkN3VUFNSUcrTVFzd0NRWUQKVlFRR0V3SkRTREVOTUFzR0ExVUVDQk1FVm1GMVpERU5NQXNHQTFVRUJ4TUVUbmx2YmpFaE1COEdBMVVFQ2hNWQpSMDFQSUV4aFltOXlZWFJ2YVhKbElDaG5iVzlzWVdJcE1UQXdMZ1lEVlFRTEV5ZFRTVXhCUWlBb1UzbHpkR1Z0ClpTQnBibVp2Y20xaGRHbHZiaUJzWVdKdmNtRjBiMmx5WlNreEVqQVFCZ05WQkFNVENVZE5UMHhoWWlCRFFURW8KTUNZR0NTcUdTSWIzRFFFSkFSWVpaWGh3Ykc5cGRDNW5iVzkwWldOb1FHZHRZV2xzTG1OdmJUQWVGdzB5TlRBMApNalF3T0RBeU1qVmFGdzB5TmpBME1qUXdPREF5TWpWYU1JSEJNUXN3Q1FZRFZRUUdFd0pEU0RFTk1Bc0dBMVVFCkNCTUVWbUYxWkRFTk1Bc0dBMVVFQnhNRVRubHZiakVoTUI4R0ExVUVDaE1ZUjAxUElFeGhZbTl5WVhSdmFYSmwKSUNobmJXOXNZV0lwTVRBd0xnWURWUVFMRXlkVFNVeEJRaUFvVTNsemRHVnRaU0JwYm1admNtMWhkR2x2YmlCcwpZV0p2Y21GMGIybHlaU2t4RlRBVEJnTlZCQU1VRENvdVoyMXZiR0ZpTG01bGRERW9NQ1lHQ1NxR1NJYjNEUUVKCkFSWVpaWGh3Ykc5cGRDNW5iVzkwWldOb1FHZHRZV2xzTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQUQKZ2dFUEFEQ0NBUW9DZ2dFQkFKVXY0S1NWcndpWGFGUWZvMTBvVTVzYkIzRFM4K0djWTB1NW51VjFSN2F5SFhoaAp0ejhxYUJGaTJ3NllOVmRNNGJtSmRsNDluMk5aMmEwQlp4MmM1SFF5blc2Nk90WFZIWUVVL3RlYVlHZmJlYnpsCjhFMFVvMmFqMVQvNGNFQ0dLakxyam1DS04xQWpyVFpLVThVWWh2STJUa3NWN1EveEd3WUZ4Z3I4SXI2NlQ5WGsKa3V6bTIyUXVSb2Z5bXFLbnh4NXg0TStXQWNvZG0zRHQrTE5XNWVpYUZOMmR4L0I1S2hPMndTSWxEdHhxK3ZKNwpwR0Jxb0xQWGcwQkltRm0vUEtlQlI3KzRMR01JbG5uZ05lTzI3WmZRa2VMQmgwTDhkTklKdzFId29JdXdNdGRYCnhWM040TDByZmdQcmdKditIeHJQdXlDRGhlZEU5UWQwZEU1bWk1OENBd0VBQWFON01Ia3dDUVlEVlIwVEJBSXcKQURBWEJnTlZIUkVFRURBT2dnd3FMbWR0YjJ4aFlpNXVaWFF3RXdZRFZSMGxCQXd3Q2dZSUt3WUJCUVVIQXdFdwpIUVlEVlIwT0JCWUVGQ1AzTWRaYVBHKzdlZG5EUHA4eHhpdndtNEpKTUI4R0ExVWRJd1FZTUJhQUZPVVNUYWp0CnRranZWQUtqc3pQemJ3RExtL2x1TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDT0pCb2dEMFlPMHk0SGdscEkKaFAwVTFQbXdUMGFObFpGNW9teXFOeGZGVHFWN2FXRnhTM2I5VWVUL09GUUlkYThzdlhsYXFTN0xLZk5zamVYagpCeC9YOG1NWUJ1Zm50bkppUGZFVTZJdGRUVmhaY1RIYlJRTFkyVjVuZ21WV3ErQ2xVMklsWmtSeWtELzcvc0NaCnV6ODhKUEJXZ1R4MnV2QXh4NGI0bFAzUzF6L1VSVmczVzR5ei9pTUVNQ1M2Ymgra3FuUXdFM05HeFZmc2swOU0KdFhnWW1jQXZrZFpNcVNJOFVYRC9pTXNLV1NYd0JFeVFVQVJ4Wi9jMVJSSzhHVGpRMUNySHE5TFM0T1R3Qnc5aAorUWxoZU0yQUhKRzdES2tLbHJENkVzN0l5RkUrOG0zVzRtbkk2S2M4anRhYVZTeGdYeTBDZmtDQ2xMaTQxV3Y5CjJ5ZGY0N3ArOTUvN1ZvUUFKQXg5MWdxL3AxcWc1V0JCeVBMNWFMS2FzTnNkUjhrOUdLYk5BVVBZZGZvUzdiTGEKcjBzTGJlYitGUmgvVEt3dFh0RWJNVGRZN1hNTWE3ZG5CeEViRWs0ZHRjZTZvZkZJRnJVUzJ0eDU0cUdzaEd2QwpiNjV0N0U3MHFvWTRTck1KWVB5amlLVjNMYnoyMWgwRVh2dXBlekpsWHQ5SHZmME41OWdKSGZONmFIOGV0TU9xCmoxalptTHpCSDRGZ3cyQlZxSGR0b1JtYjB2UHVpcGtobjVHMzYzWXQxQU1pQzdtdVcvSVYreUNiRkYxN3p0c0wKUWxiQmxoSkZDQU5KQjd5WFo4cGFtMGVuVVZVUi81TUF2U0hIV1ZwcDI2RDZmUFJWbldmQTNhc09LdDNza0hOVApBb0Fpam5uZER6Y1diWmN1cWlJRHZLK3lNQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
|
||||||
nginxSite:
|
|
||||||
repository: nginxinc/nginx-unprivileged
|
|
||||||
pullPolicy: Always
|
|
||||||
tag: "1.26"
|
|
||||||
nginxConfigPath: /etc/nginx/conf.d/default.conf
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 16M #16 Mo RAM
|
|
||||||
cpu: 50m # 0.05 core de CPU
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image)
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 128M #128 Mo RAM, au delà eviction
|
|
||||||
cpu: 500m # 0.5 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
ingress:
|
|
||||||
site:
|
|
||||||
hosts:
|
|
||||||
- wwwgmok8s.gmolab.net
|
|
||||||
pma:
|
|
||||||
hosts:
|
|
||||||
- wwwgmok8s-pma.gmolab.net
|
|
||||||
kibana:
|
|
||||||
hosts:
|
|
||||||
- wwwgmok8s-kibana.gmolab.net
|
|
||||||
# php-fpm
|
|
||||||
phpfpmSite:
|
|
||||||
repository: gmouchet/wwwgmo-php-fpm
|
|
||||||
imageTag: 3.3.0
|
|
||||||
pullPolicy: Always
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 16M #16 Mo RAM
|
|
||||||
cpu: 50m # 0.05 core de CPU
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image)
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 128M #128 Mo RAM, au delà eviction
|
|
||||||
cpu: 500m # 0.5 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
site:
|
|
||||||
title: "Stack GMo - PHP-FPM - MariaDB - Elasticsearch"
|
|
||||||
db:
|
|
||||||
name: gmo_db
|
|
||||||
user: gmo_db
|
|
||||||
host: service-mariadb
|
|
||||||
port: 3306
|
|
||||||
tabl: tbl_email
|
|
||||||
es:
|
|
||||||
host: service-elasticsearch:9200
|
|
||||||
user: elastic
|
|
||||||
index: wwwgmo_index
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
site:
|
|
||||||
ssl_key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ1ZMK0NrbGE4SWwyaFUKSDZOZEtGT2JHd2R3MHZQaG5HTkx1WjdsZFVlMnNoMTRZYmMvS21nUll0c09tRFZYVE9HNWlYWmVQWjlqV2RtdApBV2Nkbk9SME1wMXV1anJWMVIyQkZQN1htbUJuMjNtODVmQk5GS05tbzlVLytIQkFoaW95NjQ1Z2lqZFFJNjAyClNsUEZHSWJ5Tms1TEZlMFA4UnNHQmNZSy9DSyt1ay9WNUpMczV0dGtMa2FIOHBxaXA4Y2VjZURQbGdIS0hadHcKN2ZpelZ1WG9taFRkbmNmd2VTb1R0c0VpSlE3Y2F2cnllNlJnYXFDejE0TkFTSmhadnp5bmdVZS91Q3hqQ0paNQo0RFhqdHUyWDBKSGl3WWRDL0hUU0NjTlI4S0NMc0RMWFY4VmR6ZUM5SzM0RDY0Q2IvaDhhejdzZ2c0WG5SUFVICmRIUk9ab3VmQWdNQkFBRUNnZ0VBRGpNRXRrV0tQUGx1M3ZXS21VeEVTNGY5WTZTckVtSE4wRXIyTDdBWThrVHUKVkhpTElNSksyTDl5OVdiNzlMZUc2SFRkUlBKU2l2bmwrUGNnTnd1cGNYeDd5dFV1SjdvUUE5V0VFcHRKUDdsVApxSmRZdkNLOFpxd3Q3aTBabEsvd1c1dXdsOG12K0JCZE9tOUZSOXQzYjBoSFFyMloxdmJ1SG9XZ0tETFZUOEoxCis1MXlISC9VbGlIb0E4bzkxYUd3K3F5KzllWlJrdGpxSmlOWXpGMUMzVDB5Sk1yQXdxZXU4Z09ic2k3c2kwMWkKZ254d1VISDVVckNjaXZRTzQxWFBjUW5QYzQ5dTE4bkFRSGRxTTZNL05yTzZwWENUTnY0OHY2OEZsaDlmanBqawpvUDVJN0IwRThOTE5ZSDkyMEJUbE1hRFUvYVAwdE9HRXJHblgyWElBY1FLQmdRQzZRbFpJMjAyTmZMWnVSVmhoCjBMN3A4VklXWnE3UEl2US9tRHF4Rlc4WllkQk14RXY2UFZVTTl6VHVsVVh2TlM2SE9ncHAxUGxGVVNHM2dQRzUKZU1nR1piTTZjczJwM1dmOVVjZ1ZQYXM3Q2lGYnRZZXdJS0dYMWY5OHFMTU4ybkFTd2dVU0N5eUQrZER0UVpDWQp1VlRybnhZbUkrOHlBUFpOR3pSVUVNUnh1UUtCZ1FETkRBalpWTmNOeGJaVW1YWkZrMEp1YnNLUGZVMStYZVdrCkxCYkVCaDZwVG5hOWNVTE5Cc0F1ZjI4cEpFS1FQeXc4SVFEUDIwaDJXWUdIQ1FtNFZyMEM1TVN3TFVxNGdsalgKNHJ3bmxSZE44MDNqbjJTVUJjV1lGSGdNc1EyN2ZRT2lvNnVnUnUrZ0U2ZDMwa0lYTW1waUp4eHNuN3V5L0JBOAp1Z0pBc1R6MEZ3S0JnRE56ejlJZ2dyUHJGNW91bmRPbmpwV2hqRU9UNmdaZWFZcUh5dTdRTlBpV0JLeXdMU3piCmRIczRidTdaWFpCTzZLT0NiUTMvUHp6ZXhLbWtmU0gzTTRwUTNjbnZuTkNuME9veGhVd1kxUXhpS0FUbGlLNG0KMVh6VUtOZU80cWVaQ0F5bWZEQVgxaHcvRG0vOEJLMnJ4TUd5R0xSQWlQc1BPUHJqNFBpNENReEJBb0dBTmw0bgpob0N4V095QWtPUHo4VFMvbTRwd3VoMHVUQUJYb0hVMFFCdWpTNThMYXVXNklhVFZsajZoMmRYTWRIVGJwTUhYCmRrV2RiQXdGaFNtSFUwSmtjWHo1RGdHa1cxSHNmcW1XM0NQeS91OHhTdFo3azZnSUlXL2orUEdGUTU0OU5ZV1MKUHpndjExRCt5WTJOaXBzS2pDWDBxblNjRHpRNGxmRjRJWEVkU1ZjQ2dZRUF0VVQ2Y1BYdnYxamM4WVUvN3BjTApXR21WYldjcDNXbW5VK2FoaXBVM2l6YmxEUGkvWUR0aVhKSFVoYUl1TnZySVBKL2VIT1psejRPcVViS015YzFyCjV2blUrajg3MnZOdGViVkphemd1SHBHTzY3SVFrNHdJamp0TlQrQUYybUhjdnJUVTYyay9hWHJFSGN4ekZMMTMKcW1TcHNUVWtJYXFaZ2VMUERWMWNOZWc9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
|
|
||||||
|
|
||||||
mariadb:
|
|
||||||
rootPass: pa55w0rd
|
|
||||||
dbPass: passw0rd
|
|
||||||
|
|
||||||
elastic:
|
|
||||||
password: pa55w0rd
|
|
||||||
|
|
||||||
kibana:
|
|
||||||
password: kibanaPass55w0rd
|
|
||||||
|
|
||||||
@ -1,124 +0,0 @@
|
|||||||
common:
|
|
||||||
pvc:
|
|
||||||
# k3s
|
|
||||||
#accessModes: [ "ReadWriteOnce" ]
|
|
||||||
#storageClassName: local-path
|
|
||||||
# kind
|
|
||||||
accessModes: [ "ReadWriteOnce" ]
|
|
||||||
storageClassName: standard
|
|
||||||
# k8s
|
|
||||||
#accessModes: [ "ReadWriteMany" ]
|
|
||||||
#storageClassName: longhorn
|
|
||||||
ingress:
|
|
||||||
#k3s
|
|
||||||
#ingressClassName: traefik
|
|
||||||
# kind
|
|
||||||
ingressClassName: nginx
|
|
||||||
# k8s
|
|
||||||
#ingressClassName: nginx
|
|
||||||
|
|
||||||
# elasticsearch
|
|
||||||
elastic:
|
|
||||||
priorityClassName: system-cluster-critical
|
|
||||||
imageTag: 9.0.2
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
host: http://service-elasticsearch:9200
|
|
||||||
|
|
||||||
# kibana
|
|
||||||
kibana:
|
|
||||||
imageTag: 9.0.2
|
|
||||||
username: kibana_system_user
|
|
||||||
priorityClassName: system-node-critical
|
|
||||||
# host: http://service-elasticsearch:9200
|
|
||||||
|
|
||||||
# mariadb
|
|
||||||
mariadb:
|
|
||||||
repository: mariadb
|
|
||||||
pullPolicy: Always
|
|
||||||
tag: "10.11.7"
|
|
||||||
#tag: "11.2"
|
|
||||||
databaseName: gmo_db
|
|
||||||
innoDbBufferPoolSize: 256M
|
|
||||||
queryCacheSize: 256M
|
|
||||||
queryCacheLimit: 4M
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 300Mi
|
|
||||||
cpu: 100m
|
|
||||||
ephemeralStorage: 128M
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 1250Mi #1250 Mo RAM, au delà eviction
|
|
||||||
cpu: 200m # 0.1 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
terminationGracePeriodSeconds: 60
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
backupDbStorageRequest: 500M
|
|
||||||
|
|
||||||
# site
|
|
||||||
site:
|
|
||||||
tls:
|
|
||||||
enabled: false
|
|
||||||
host: wwwgmokind.gmolab.net
|
|
||||||
proto: http
|
|
||||||
urlPma: wwwgmokind-pma.gmolab.net
|
|
||||||
urlKibana: wwwgmokind-kibana.gmolab.net
|
|
||||||
replicas: 1
|
|
||||||
priorityClassName: business-app-critical
|
|
||||||
terminationGracePeriodSeconds: 60
|
|
||||||
filesMountPath: /var/www/html/web
|
|
||||||
sourcesMountPath: /var/www/html
|
|
||||||
ssl_crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZmekNDQTJlZ0F3SUJBZ0lKQU5YN2sxZ3dnOVNkTUEwR0NTcUdTSWIzRFFFQkN3VUFNSUcrTVFzd0NRWUQKVlFRR0V3SkRTREVOTUFzR0ExVUVDQk1FVm1GMVpERU5NQXNHQTFVRUJ4TUVUbmx2YmpFaE1COEdBMVVFQ2hNWQpSMDFQSUV4aFltOXlZWFJ2YVhKbElDaG5iVzlzWVdJcE1UQXdMZ1lEVlFRTEV5ZFRTVXhCUWlBb1UzbHpkR1Z0ClpTQnBibVp2Y20xaGRHbHZiaUJzWVdKdmNtRjBiMmx5WlNreEVqQVFCZ05WQkFNVENVZE5UMHhoWWlCRFFURW8KTUNZR0NTcUdTSWIzRFFFSkFSWVpaWGh3Ykc5cGRDNW5iVzkwWldOb1FHZHRZV2xzTG1OdmJUQWVGdzB5TlRBMApNalF3T0RBeU1qVmFGdzB5TmpBME1qUXdPREF5TWpWYU1JSEJNUXN3Q1FZRFZRUUdFd0pEU0RFTk1Bc0dBMVVFCkNCTUVWbUYxWkRFTk1Bc0dBMVVFQnhNRVRubHZiakVoTUI4R0ExVUVDaE1ZUjAxUElFeGhZbTl5WVhSdmFYSmwKSUNobmJXOXNZV0lwTVRBd0xnWURWUVFMRXlkVFNVeEJRaUFvVTNsemRHVnRaU0JwYm1admNtMWhkR2x2YmlCcwpZV0p2Y21GMGIybHlaU2t4RlRBVEJnTlZCQU1VRENvdVoyMXZiR0ZpTG01bGRERW9NQ1lHQ1NxR1NJYjNEUUVKCkFSWVpaWGh3Ykc5cGRDNW5iVzkwWldOb1FHZHRZV2xzTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQUQKZ2dFUEFEQ0NBUW9DZ2dFQkFKVXY0S1NWcndpWGFGUWZvMTBvVTVzYkIzRFM4K0djWTB1NW51VjFSN2F5SFhoaAp0ejhxYUJGaTJ3NllOVmRNNGJtSmRsNDluMk5aMmEwQlp4MmM1SFF5blc2Nk90WFZIWUVVL3RlYVlHZmJlYnpsCjhFMFVvMmFqMVQvNGNFQ0dLakxyam1DS04xQWpyVFpLVThVWWh2STJUa3NWN1EveEd3WUZ4Z3I4SXI2NlQ5WGsKa3V6bTIyUXVSb2Z5bXFLbnh4NXg0TStXQWNvZG0zRHQrTE5XNWVpYUZOMmR4L0I1S2hPMndTSWxEdHhxK3ZKNwpwR0Jxb0xQWGcwQkltRm0vUEtlQlI3KzRMR01JbG5uZ05lTzI3WmZRa2VMQmgwTDhkTklKdzFId29JdXdNdGRYCnhWM040TDByZmdQcmdKditIeHJQdXlDRGhlZEU5UWQwZEU1bWk1OENBd0VBQWFON01Ia3dDUVlEVlIwVEJBSXcKQURBWEJnTlZIUkVFRURBT2dnd3FMbWR0YjJ4aFlpNXVaWFF3RXdZRFZSMGxCQXd3Q2dZSUt3WUJCUVVIQXdFdwpIUVlEVlIwT0JCWUVGQ1AzTWRaYVBHKzdlZG5EUHA4eHhpdndtNEpKTUI4R0ExVWRJd1FZTUJhQUZPVVNUYWp0CnRranZWQUtqc3pQemJ3RExtL2x1TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDT0pCb2dEMFlPMHk0SGdscEkKaFAwVTFQbXdUMGFObFpGNW9teXFOeGZGVHFWN2FXRnhTM2I5VWVUL09GUUlkYThzdlhsYXFTN0xLZk5zamVYagpCeC9YOG1NWUJ1Zm50bkppUGZFVTZJdGRUVmhaY1RIYlJRTFkyVjVuZ21WV3ErQ2xVMklsWmtSeWtELzcvc0NaCnV6ODhKUEJXZ1R4MnV2QXh4NGI0bFAzUzF6L1VSVmczVzR5ei9pTUVNQ1M2Ymgra3FuUXdFM05HeFZmc2swOU0KdFhnWW1jQXZrZFpNcVNJOFVYRC9pTXNLV1NYd0JFeVFVQVJ4Wi9jMVJSSzhHVGpRMUNySHE5TFM0T1R3Qnc5aAorUWxoZU0yQUhKRzdES2tLbHJENkVzN0l5RkUrOG0zVzRtbkk2S2M4anRhYVZTeGdYeTBDZmtDQ2xMaTQxV3Y5CjJ5ZGY0N3ArOTUvN1ZvUUFKQXg5MWdxL3AxcWc1V0JCeVBMNWFMS2FzTnNkUjhrOUdLYk5BVVBZZGZvUzdiTGEKcjBzTGJlYitGUmgvVEt3dFh0RWJNVGRZN1hNTWE3ZG5CeEViRWs0ZHRjZTZvZkZJRnJVUzJ0eDU0cUdzaEd2QwpiNjV0N0U3MHFvWTRTck1KWVB5amlLVjNMYnoyMWgwRVh2dXBlekpsWHQ5SHZmME41OWdKSGZONmFIOGV0TU9xCmoxalptTHpCSDRGZ3cyQlZxSGR0b1JtYjB2UHVpcGtobjVHMzYzWXQxQU1pQzdtdVcvSVYreUNiRkYxN3p0c0wKUWxiQmxoSkZDQU5KQjd5WFo4cGFtMGVuVVZVUi81TUF2U0hIV1ZwcDI2RDZmUFJWbldmQTNhc09LdDNza0hOVApBb0Fpam5uZER6Y1diWmN1cWlJRHZLK3lNQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
|
||||||
nginxSite:
|
|
||||||
repository: nginxinc/nginx-unprivileged
|
|
||||||
pullPolicy: Always
|
|
||||||
tag: "1.26"
|
|
||||||
nginxConfigPath: /etc/nginx/conf.d/default.conf
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 16M #16 Mo RAM
|
|
||||||
cpu: 50m # 0.05 core de CPU
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image)
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 128M #128 Mo RAM, au delà eviction
|
|
||||||
cpu: 500m # 0.5 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
ingress:
|
|
||||||
site:
|
|
||||||
hosts:
|
|
||||||
- wwwgmokind.gmolab.net
|
|
||||||
pma:
|
|
||||||
hosts:
|
|
||||||
- wwwgmokind-pma.gmolab.net
|
|
||||||
kibana:
|
|
||||||
hosts:
|
|
||||||
- wwwgmokind-kibana.gmolab.net
|
|
||||||
# php-fpm
|
|
||||||
phpfpmSite:
|
|
||||||
repository: gmouchet/wwwgmo-php-fpm
|
|
||||||
imageTag: 3.3.0
|
|
||||||
pullPolicy: Always
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 16M #16 Mo RAM
|
|
||||||
cpu: 50m # 0.05 core de CPU
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image)
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 128M #128 Mo RAM, au delà eviction
|
|
||||||
cpu: 500m # 0.5 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
site:
|
|
||||||
title: "Stack GMo - PHP-FPM - MariaDB - Elasticsearch"
|
|
||||||
db:
|
|
||||||
name: gmo_db
|
|
||||||
user: gmo_db
|
|
||||||
host: service-mariadb
|
|
||||||
port: 3306
|
|
||||||
tabl: tbl_email
|
|
||||||
es:
|
|
||||||
host: service-elasticsearch:9200
|
|
||||||
user: elastic
|
|
||||||
index: wwwgmo_index
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
site:
|
|
||||||
ssl_key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ1ZMK0NrbGE4SWwyaFUKSDZOZEtGT2JHd2R3MHZQaG5HTkx1WjdsZFVlMnNoMTRZYmMvS21nUll0c09tRFZYVE9HNWlYWmVQWjlqV2RtdApBV2Nkbk9SME1wMXV1anJWMVIyQkZQN1htbUJuMjNtODVmQk5GS05tbzlVLytIQkFoaW95NjQ1Z2lqZFFJNjAyClNsUEZHSWJ5Tms1TEZlMFA4UnNHQmNZSy9DSyt1ay9WNUpMczV0dGtMa2FIOHBxaXA4Y2VjZURQbGdIS0hadHcKN2ZpelZ1WG9taFRkbmNmd2VTb1R0c0VpSlE3Y2F2cnllNlJnYXFDejE0TkFTSmhadnp5bmdVZS91Q3hqQ0paNQo0RFhqdHUyWDBKSGl3WWRDL0hUU0NjTlI4S0NMc0RMWFY4VmR6ZUM5SzM0RDY0Q2IvaDhhejdzZ2c0WG5SUFVICmRIUk9ab3VmQWdNQkFBRUNnZ0VBRGpNRXRrV0tQUGx1M3ZXS21VeEVTNGY5WTZTckVtSE4wRXIyTDdBWThrVHUKVkhpTElNSksyTDl5OVdiNzlMZUc2SFRkUlBKU2l2bmwrUGNnTnd1cGNYeDd5dFV1SjdvUUE5V0VFcHRKUDdsVApxSmRZdkNLOFpxd3Q3aTBabEsvd1c1dXdsOG12K0JCZE9tOUZSOXQzYjBoSFFyMloxdmJ1SG9XZ0tETFZUOEoxCis1MXlISC9VbGlIb0E4bzkxYUd3K3F5KzllWlJrdGpxSmlOWXpGMUMzVDB5Sk1yQXdxZXU4Z09ic2k3c2kwMWkKZ254d1VISDVVckNjaXZRTzQxWFBjUW5QYzQ5dTE4bkFRSGRxTTZNL05yTzZwWENUTnY0OHY2OEZsaDlmanBqawpvUDVJN0IwRThOTE5ZSDkyMEJUbE1hRFUvYVAwdE9HRXJHblgyWElBY1FLQmdRQzZRbFpJMjAyTmZMWnVSVmhoCjBMN3A4VklXWnE3UEl2US9tRHF4Rlc4WllkQk14RXY2UFZVTTl6VHVsVVh2TlM2SE9ncHAxUGxGVVNHM2dQRzUKZU1nR1piTTZjczJwM1dmOVVjZ1ZQYXM3Q2lGYnRZZXdJS0dYMWY5OHFMTU4ybkFTd2dVU0N5eUQrZER0UVpDWQp1VlRybnhZbUkrOHlBUFpOR3pSVUVNUnh1UUtCZ1FETkRBalpWTmNOeGJaVW1YWkZrMEp1YnNLUGZVMStYZVdrCkxCYkVCaDZwVG5hOWNVTE5Cc0F1ZjI4cEpFS1FQeXc4SVFEUDIwaDJXWUdIQ1FtNFZyMEM1TVN3TFVxNGdsalgKNHJ3bmxSZE44MDNqbjJTVUJjV1lGSGdNc1EyN2ZRT2lvNnVnUnUrZ0U2ZDMwa0lYTW1waUp4eHNuN3V5L0JBOAp1Z0pBc1R6MEZ3S0JnRE56ejlJZ2dyUHJGNW91bmRPbmpwV2hqRU9UNmdaZWFZcUh5dTdRTlBpV0JLeXdMU3piCmRIczRidTdaWFpCTzZLT0NiUTMvUHp6ZXhLbWtmU0gzTTRwUTNjbnZuTkNuME9veGhVd1kxUXhpS0FUbGlLNG0KMVh6VUtOZU80cWVaQ0F5bWZEQVgxaHcvRG0vOEJLMnJ4TUd5R0xSQWlQc1BPUHJqNFBpNENReEJBb0dBTmw0bgpob0N4V095QWtPUHo4VFMvbTRwd3VoMHVUQUJYb0hVMFFCdWpTNThMYXVXNklhVFZsajZoMmRYTWRIVGJwTUhYCmRrV2RiQXdGaFNtSFUwSmtjWHo1RGdHa1cxSHNmcW1XM0NQeS91OHhTdFo3azZnSUlXL2orUEdGUTU0OU5ZV1MKUHpndjExRCt5WTJOaXBzS2pDWDBxblNjRHpRNGxmRjRJWEVkU1ZjQ2dZRUF0VVQ2Y1BYdnYxamM4WVUvN3BjTApXR21WYldjcDNXbW5VK2FoaXBVM2l6YmxEUGkvWUR0aVhKSFVoYUl1TnZySVBKL2VIT1psejRPcVViS015YzFyCjV2blUrajg3MnZOdGViVkphemd1SHBHTzY3SVFrNHdJamp0TlQrQUYybUhjdnJUVTYyay9hWHJFSGN4ekZMMTMKcW1TcHNUVWtJYXFaZ2VMUERWMWNOZWc9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
|
|
||||||
|
|
||||||
mariadb:
|
|
||||||
rootPass: pa55w0rd
|
|
||||||
dbPass: passw0rd
|
|
||||||
|
|
||||||
elastic:
|
|
||||||
password: pa55w0rd
|
|
||||||
|
|
||||||
kibana:
|
|
||||||
password: kibanaPass55w0rd
|
|
||||||
|
|
||||||
@ -8,6 +8,3 @@ mariadb:
|
|||||||
elastic:
|
elastic:
|
||||||
password: pa55w0rd
|
password: pa55w0rd
|
||||||
|
|
||||||
kibana:
|
|
||||||
password: kibanaPass55w0rd
|
|
||||||
|
|
||||||
|
|||||||
@ -1,125 +0,0 @@
|
|||||||
common:
|
|
||||||
pvc:
|
|
||||||
# k3s
|
|
||||||
#accessModes: [ "ReadWriteOnce" ]
|
|
||||||
#storageClassName: local-path
|
|
||||||
# kind
|
|
||||||
accessModes: [ "ReadWriteOnce" ]
|
|
||||||
storageClassName: standard
|
|
||||||
# k8s
|
|
||||||
#accessModes: [ "ReadWriteMany" ]
|
|
||||||
#storageClassName: longhorn
|
|
||||||
ingress:
|
|
||||||
#k3s
|
|
||||||
#ingressClassName: traefik
|
|
||||||
# kind
|
|
||||||
ingressClassName: nginx
|
|
||||||
# k8s
|
|
||||||
#ingressClassName: nginx
|
|
||||||
|
|
||||||
# elasticsearch
|
|
||||||
elastic:
|
|
||||||
priorityClassName: system-cluster-critical
|
|
||||||
imageTag: 9.0.2
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
host: http://service-elasticsearch:9200
|
|
||||||
|
|
||||||
# kibana
|
|
||||||
kibana:
|
|
||||||
imageTag: 9.0.2
|
|
||||||
#username: kibana_system_user
|
|
||||||
username: kibana_system
|
|
||||||
priorityClassName: system-node-critical
|
|
||||||
# host: http://service-elasticsearch:9200
|
|
||||||
|
|
||||||
# mariadb
|
|
||||||
mariadb:
|
|
||||||
repository: mariadb
|
|
||||||
pullPolicy: Always
|
|
||||||
tag: "10.11.7"
|
|
||||||
#tag: "11.2"
|
|
||||||
databaseName: gmo_db
|
|
||||||
innoDbBufferPoolSize: 256M
|
|
||||||
queryCacheSize: 256M
|
|
||||||
queryCacheLimit: 4M
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 300Mi
|
|
||||||
cpu: 100m
|
|
||||||
ephemeralStorage: 128M
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 1250Mi #1250 Mo RAM, au delà eviction
|
|
||||||
cpu: 200m # 0.1 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
terminationGracePeriodSeconds: 60
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
backupDbStorageRequest: 500M
|
|
||||||
|
|
||||||
# site
|
|
||||||
site:
|
|
||||||
tls:
|
|
||||||
enabled: false
|
|
||||||
host: wwwgmo.vdglab.net
|
|
||||||
proto: http
|
|
||||||
urlPma: wwwgmo-pma.vdglab.net
|
|
||||||
urlKibana: wwwgmo-kibana.vdglab.net
|
|
||||||
replicas: 1
|
|
||||||
priorityClassName: business-app-critical
|
|
||||||
terminationGracePeriodSeconds: 60
|
|
||||||
filesMountPath: /var/www/html/web
|
|
||||||
sourcesMountPath: /var/www/html
|
|
||||||
ssl_crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZmekNDQTJlZ0F3SUJBZ0lKQU5YN2sxZ3dnOVNkTUEwR0NTcUdTSWIzRFFFQkN3VUFNSUcrTVFzd0NRWUQKVlFRR0V3SkRTREVOTUFzR0ExVUVDQk1FVm1GMVpERU5NQXNHQTFVRUJ4TUVUbmx2YmpFaE1COEdBMVVFQ2hNWQpSMDFQSUV4aFltOXlZWFJ2YVhKbElDaG5iVzlzWVdJcE1UQXdMZ1lEVlFRTEV5ZFRTVXhCUWlBb1UzbHpkR1Z0ClpTQnBibVp2Y20xaGRHbHZiaUJzWVdKdmNtRjBiMmx5WlNreEVqQVFCZ05WQkFNVENVZE5UMHhoWWlCRFFURW8KTUNZR0NTcUdTSWIzRFFFSkFSWVpaWGh3Ykc5cGRDNW5iVzkwWldOb1FHZHRZV2xzTG1OdmJUQWVGdzB5TlRBMApNalF3T0RBeU1qVmFGdzB5TmpBME1qUXdPREF5TWpWYU1JSEJNUXN3Q1FZRFZRUUdFd0pEU0RFTk1Bc0dBMVVFCkNCTUVWbUYxWkRFTk1Bc0dBMVVFQnhNRVRubHZiakVoTUI4R0ExVUVDaE1ZUjAxUElFeGhZbTl5WVhSdmFYSmwKSUNobmJXOXNZV0lwTVRBd0xnWURWUVFMRXlkVFNVeEJRaUFvVTNsemRHVnRaU0JwYm1admNtMWhkR2x2YmlCcwpZV0p2Y21GMGIybHlaU2t4RlRBVEJnTlZCQU1VRENvdVoyMXZiR0ZpTG01bGRERW9NQ1lHQ1NxR1NJYjNEUUVKCkFSWVpaWGh3Ykc5cGRDNW5iVzkwWldOb1FHZHRZV2xzTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQUQKZ2dFUEFEQ0NBUW9DZ2dFQkFKVXY0S1NWcndpWGFGUWZvMTBvVTVzYkIzRFM4K0djWTB1NW51VjFSN2F5SFhoaAp0ejhxYUJGaTJ3NllOVmRNNGJtSmRsNDluMk5aMmEwQlp4MmM1SFF5blc2Nk90WFZIWUVVL3RlYVlHZmJlYnpsCjhFMFVvMmFqMVQvNGNFQ0dLakxyam1DS04xQWpyVFpLVThVWWh2STJUa3NWN1EveEd3WUZ4Z3I4SXI2NlQ5WGsKa3V6bTIyUXVSb2Z5bXFLbnh4NXg0TStXQWNvZG0zRHQrTE5XNWVpYUZOMmR4L0I1S2hPMndTSWxEdHhxK3ZKNwpwR0Jxb0xQWGcwQkltRm0vUEtlQlI3KzRMR01JbG5uZ05lTzI3WmZRa2VMQmgwTDhkTklKdzFId29JdXdNdGRYCnhWM040TDByZmdQcmdKditIeHJQdXlDRGhlZEU5UWQwZEU1bWk1OENBd0VBQWFON01Ia3dDUVlEVlIwVEJBSXcKQURBWEJnTlZIUkVFRURBT2dnd3FMbWR0YjJ4aFlpNXVaWFF3RXdZRFZSMGxCQXd3Q2dZSUt3WUJCUVVIQXdFdwpIUVlEVlIwT0JCWUVGQ1AzTWRaYVBHKzdlZG5EUHA4eHhpdndtNEpKTUI4R0ExVWRJd1FZTUJhQUZPVVNUYWp0CnRranZWQUtqc3pQemJ3RExtL2x1TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDT0pCb2dEMFlPMHk0SGdscEkKaFAwVTFQbXdUMGFObFpGNW9teXFOeGZGVHFWN2FXRnhTM2I5VWVUL09GUUlkYThzdlhsYXFTN0xLZk5zamVYagpCeC9YOG1NWUJ1Zm50bkppUGZFVTZJdGRUVmhaY1RIYlJRTFkyVjVuZ21WV3ErQ2xVMklsWmtSeWtELzcvc0NaCnV6ODhKUEJXZ1R4MnV2QXh4NGI0bFAzUzF6L1VSVmczVzR5ei9pTUVNQ1M2Ymgra3FuUXdFM05HeFZmc2swOU0KdFhnWW1jQXZrZFpNcVNJOFVYRC9pTXNLV1NYd0JFeVFVQVJ4Wi9jMVJSSzhHVGpRMUNySHE5TFM0T1R3Qnc5aAorUWxoZU0yQUhKRzdES2tLbHJENkVzN0l5RkUrOG0zVzRtbkk2S2M4anRhYVZTeGdYeTBDZmtDQ2xMaTQxV3Y5CjJ5ZGY0N3ArOTUvN1ZvUUFKQXg5MWdxL3AxcWc1V0JCeVBMNWFMS2FzTnNkUjhrOUdLYk5BVVBZZGZvUzdiTGEKcjBzTGJlYitGUmgvVEt3dFh0RWJNVGRZN1hNTWE3ZG5CeEViRWs0ZHRjZTZvZkZJRnJVUzJ0eDU0cUdzaEd2QwpiNjV0N0U3MHFvWTRTck1KWVB5amlLVjNMYnoyMWgwRVh2dXBlekpsWHQ5SHZmME41OWdKSGZONmFIOGV0TU9xCmoxalptTHpCSDRGZ3cyQlZxSGR0b1JtYjB2UHVpcGtobjVHMzYzWXQxQU1pQzdtdVcvSVYreUNiRkYxN3p0c0wKUWxiQmxoSkZDQU5KQjd5WFo4cGFtMGVuVVZVUi81TUF2U0hIV1ZwcDI2RDZmUFJWbldmQTNhc09LdDNza0hOVApBb0Fpam5uZER6Y1diWmN1cWlJRHZLK3lNQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
|
||||||
nginxSite:
|
|
||||||
repository: nginxinc/nginx-unprivileged
|
|
||||||
pullPolicy: Always
|
|
||||||
tag: "1.26"
|
|
||||||
nginxConfigPath: /etc/nginx/conf.d/default.conf
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 16M #16 Mo RAM
|
|
||||||
cpu: 50m # 0.05 core de CPU
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image)
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 128M #128 Mo RAM, au delà eviction
|
|
||||||
cpu: 500m # 0.5 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
ingress:
|
|
||||||
site:
|
|
||||||
hosts:
|
|
||||||
- wwwgmo.vdglab.net
|
|
||||||
pma:
|
|
||||||
hosts:
|
|
||||||
- wwwgmo-pma.vdglab.net
|
|
||||||
kibana:
|
|
||||||
hosts:
|
|
||||||
- wwwgmo-kibana.vdglab.net
|
|
||||||
# php-fpm
|
|
||||||
phpfpmSite:
|
|
||||||
repository: gmouchet/wwwgmo-php-fpm
|
|
||||||
imageTag: 3.3.0
|
|
||||||
pullPolicy: Always
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 16M #16 Mo RAM
|
|
||||||
cpu: 50m # 0.05 core de CPU
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image)
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 128M #128 Mo RAM, au delà eviction
|
|
||||||
cpu: 500m # 0.5 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
site:
|
|
||||||
title: "Stack GMo - PHP-FPM - MariaDB - Elasticsearch"
|
|
||||||
db:
|
|
||||||
name: gmo_db
|
|
||||||
user: gmo_db
|
|
||||||
host: service-mariadb
|
|
||||||
port: 3306
|
|
||||||
tabl: tbl_email
|
|
||||||
es:
|
|
||||||
host: service-elasticsearch:9200
|
|
||||||
user: elastic
|
|
||||||
index: wwwgmo_index
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
site:
|
|
||||||
ssl_key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ1ZMK0NrbGE4SWwyaFUKSDZOZEtGT2JHd2R3MHZQaG5HTkx1WjdsZFVlMnNoMTRZYmMvS21nUll0c09tRFZYVE9HNWlYWmVQWjlqV2RtdApBV2Nkbk9SME1wMXV1anJWMVIyQkZQN1htbUJuMjNtODVmQk5GS05tbzlVLytIQkFoaW95NjQ1Z2lqZFFJNjAyClNsUEZHSWJ5Tms1TEZlMFA4UnNHQmNZSy9DSyt1ay9WNUpMczV0dGtMa2FIOHBxaXA4Y2VjZURQbGdIS0hadHcKN2ZpelZ1WG9taFRkbmNmd2VTb1R0c0VpSlE3Y2F2cnllNlJnYXFDejE0TkFTSmhadnp5bmdVZS91Q3hqQ0paNQo0RFhqdHUyWDBKSGl3WWRDL0hUU0NjTlI4S0NMc0RMWFY4VmR6ZUM5SzM0RDY0Q2IvaDhhejdzZ2c0WG5SUFVICmRIUk9ab3VmQWdNQkFBRUNnZ0VBRGpNRXRrV0tQUGx1M3ZXS21VeEVTNGY5WTZTckVtSE4wRXIyTDdBWThrVHUKVkhpTElNSksyTDl5OVdiNzlMZUc2SFRkUlBKU2l2bmwrUGNnTnd1cGNYeDd5dFV1SjdvUUE5V0VFcHRKUDdsVApxSmRZdkNLOFpxd3Q3aTBabEsvd1c1dXdsOG12K0JCZE9tOUZSOXQzYjBoSFFyMloxdmJ1SG9XZ0tETFZUOEoxCis1MXlISC9VbGlIb0E4bzkxYUd3K3F5KzllWlJrdGpxSmlOWXpGMUMzVDB5Sk1yQXdxZXU4Z09ic2k3c2kwMWkKZ254d1VISDVVckNjaXZRTzQxWFBjUW5QYzQ5dTE4bkFRSGRxTTZNL05yTzZwWENUTnY0OHY2OEZsaDlmanBqawpvUDVJN0IwRThOTE5ZSDkyMEJUbE1hRFUvYVAwdE9HRXJHblgyWElBY1FLQmdRQzZRbFpJMjAyTmZMWnVSVmhoCjBMN3A4VklXWnE3UEl2US9tRHF4Rlc4WllkQk14RXY2UFZVTTl6VHVsVVh2TlM2SE9ncHAxUGxGVVNHM2dQRzUKZU1nR1piTTZjczJwM1dmOVVjZ1ZQYXM3Q2lGYnRZZXdJS0dYMWY5OHFMTU4ybkFTd2dVU0N5eUQrZER0UVpDWQp1VlRybnhZbUkrOHlBUFpOR3pSVUVNUnh1UUtCZ1FETkRBalpWTmNOeGJaVW1YWkZrMEp1YnNLUGZVMStYZVdrCkxCYkVCaDZwVG5hOWNVTE5Cc0F1ZjI4cEpFS1FQeXc4SVFEUDIwaDJXWUdIQ1FtNFZyMEM1TVN3TFVxNGdsalgKNHJ3bmxSZE44MDNqbjJTVUJjV1lGSGdNc1EyN2ZRT2lvNnVnUnUrZ0U2ZDMwa0lYTW1waUp4eHNuN3V5L0JBOAp1Z0pBc1R6MEZ3S0JnRE56ejlJZ2dyUHJGNW91bmRPbmpwV2hqRU9UNmdaZWFZcUh5dTdRTlBpV0JLeXdMU3piCmRIczRidTdaWFpCTzZLT0NiUTMvUHp6ZXhLbWtmU0gzTTRwUTNjbnZuTkNuME9veGhVd1kxUXhpS0FUbGlLNG0KMVh6VUtOZU80cWVaQ0F5bWZEQVgxaHcvRG0vOEJLMnJ4TUd5R0xSQWlQc1BPUHJqNFBpNENReEJBb0dBTmw0bgpob0N4V095QWtPUHo4VFMvbTRwd3VoMHVUQUJYb0hVMFFCdWpTNThMYXVXNklhVFZsajZoMmRYTWRIVGJwTUhYCmRrV2RiQXdGaFNtSFUwSmtjWHo1RGdHa1cxSHNmcW1XM0NQeS91OHhTdFo3azZnSUlXL2orUEdGUTU0OU5ZV1MKUHpndjExRCt5WTJOaXBzS2pDWDBxblNjRHpRNGxmRjRJWEVkU1ZjQ2dZRUF0VVQ2Y1BYdnYxamM4WVUvN3BjTApXR21WYldjcDNXbW5VK2FoaXBVM2l6YmxEUGkvWUR0aVhKSFVoYUl1TnZySVBKL2VIT1psejRPcVViS015YzFyCjV2blUrajg3MnZOdGViVkphemd1SHBHTzY3SVFrNHdJamp0TlQrQUYybUhjdnJUVTYyay9hWHJFSGN4ekZMMTMKcW1TcHNUVWtJYXFaZ2VMUERWMWNOZWc9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
|
|
||||||
|
|
||||||
mariadb:
|
|
||||||
rootPass: pa55w0rd
|
|
||||||
dbPass: passw0rd
|
|
||||||
|
|
||||||
elastic:
|
|
||||||
password: pa55w0rd
|
|
||||||
|
|
||||||
kibana:
|
|
||||||
password: kibanaPass55w0rd
|
|
||||||
|
|
||||||
@ -1,125 +0,0 @@
|
|||||||
common:
|
|
||||||
pvc:
|
|
||||||
# k3s
|
|
||||||
#accessModes: [ "ReadWriteOnce" ]
|
|
||||||
#storageClassName: local-path
|
|
||||||
# kind
|
|
||||||
accessModes: [ "ReadWriteOnce" ]
|
|
||||||
storageClassName: standard
|
|
||||||
# k8s
|
|
||||||
#accessModes: [ "ReadWriteMany" ]
|
|
||||||
#storageClassName: longhorn
|
|
||||||
ingress:
|
|
||||||
#k3s
|
|
||||||
#ingressClassName: traefik
|
|
||||||
# kind
|
|
||||||
ingressClassName: nginx
|
|
||||||
# k8s
|
|
||||||
#ingressClassName: nginx
|
|
||||||
|
|
||||||
# elasticsearch
|
|
||||||
elastic:
|
|
||||||
priorityClassName: system-cluster-critical
|
|
||||||
imageTag: 9.0.2
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
host: http://service-elasticsearch:9200
|
|
||||||
|
|
||||||
# kibana
|
|
||||||
kibana:
|
|
||||||
imageTag: 9.0.2
|
|
||||||
#username: kibana_system_user
|
|
||||||
username: kibana_system
|
|
||||||
priorityClassName: system-node-critical
|
|
||||||
# host: http://service-elasticsearch:9200
|
|
||||||
|
|
||||||
# mariadb
|
|
||||||
mariadb:
|
|
||||||
repository: mariadb
|
|
||||||
pullPolicy: Always
|
|
||||||
tag: "10.11.7"
|
|
||||||
#tag: "11.2"
|
|
||||||
databaseName: gmo_db
|
|
||||||
innoDbBufferPoolSize: 256M
|
|
||||||
queryCacheSize: 256M
|
|
||||||
queryCacheLimit: 4M
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 300Mi
|
|
||||||
cpu: 100m
|
|
||||||
ephemeralStorage: 128M
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 1250Mi #1250 Mo RAM, au delà eviction
|
|
||||||
cpu: 200m # 0.1 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
terminationGracePeriodSeconds: 60
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
backupDbStorageRequest: 500M
|
|
||||||
|
|
||||||
# site
|
|
||||||
site:
|
|
||||||
tls:
|
|
||||||
enabled: false
|
|
||||||
host: gmovdg.vdglab.net
|
|
||||||
proto: https
|
|
||||||
urlPma: gmovdg-pma.vdglab.net
|
|
||||||
urlKibana: gmovdg-kibana.vdglab.net
|
|
||||||
replicas: 1
|
|
||||||
priorityClassName: business-app-critical
|
|
||||||
terminationGracePeriodSeconds: 60
|
|
||||||
filesMountPath: /var/www/html/web
|
|
||||||
sourcesMountPath: /var/www/html
|
|
||||||
ssl_crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZmekNDQTJlZ0F3SUJBZ0lKQU5YN2sxZ3dnOVNkTUEwR0NTcUdTSWIzRFFFQkN3VUFNSUcrTVFzd0NRWUQKVlFRR0V3SkRTREVOTUFzR0ExVUVDQk1FVm1GMVpERU5NQXNHQTFVRUJ4TUVUbmx2YmpFaE1COEdBMVVFQ2hNWQpSMDFQSUV4aFltOXlZWFJ2YVhKbElDaG5iVzlzWVdJcE1UQXdMZ1lEVlFRTEV5ZFRTVXhCUWlBb1UzbHpkR1Z0ClpTQnBibVp2Y20xaGRHbHZiaUJzWVdKdmNtRjBiMmx5WlNreEVqQVFCZ05WQkFNVENVZE5UMHhoWWlCRFFURW8KTUNZR0NTcUdTSWIzRFFFSkFSWVpaWGh3Ykc5cGRDNW5iVzkwWldOb1FHZHRZV2xzTG1OdmJUQWVGdzB5TlRBMApNalF3T0RBeU1qVmFGdzB5TmpBME1qUXdPREF5TWpWYU1JSEJNUXN3Q1FZRFZRUUdFd0pEU0RFTk1Bc0dBMVVFCkNCTUVWbUYxWkRFTk1Bc0dBMVVFQnhNRVRubHZiakVoTUI4R0ExVUVDaE1ZUjAxUElFeGhZbTl5WVhSdmFYSmwKSUNobmJXOXNZV0lwTVRBd0xnWURWUVFMRXlkVFNVeEJRaUFvVTNsemRHVnRaU0JwYm1admNtMWhkR2x2YmlCcwpZV0p2Y21GMGIybHlaU2t4RlRBVEJnTlZCQU1VRENvdVoyMXZiR0ZpTG01bGRERW9NQ1lHQ1NxR1NJYjNEUUVKCkFSWVpaWGh3Ykc5cGRDNW5iVzkwWldOb1FHZHRZV2xzTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQUQKZ2dFUEFEQ0NBUW9DZ2dFQkFKVXY0S1NWcndpWGFGUWZvMTBvVTVzYkIzRFM4K0djWTB1NW51VjFSN2F5SFhoaAp0ejhxYUJGaTJ3NllOVmRNNGJtSmRsNDluMk5aMmEwQlp4MmM1SFF5blc2Nk90WFZIWUVVL3RlYVlHZmJlYnpsCjhFMFVvMmFqMVQvNGNFQ0dLakxyam1DS04xQWpyVFpLVThVWWh2STJUa3NWN1EveEd3WUZ4Z3I4SXI2NlQ5WGsKa3V6bTIyUXVSb2Z5bXFLbnh4NXg0TStXQWNvZG0zRHQrTE5XNWVpYUZOMmR4L0I1S2hPMndTSWxEdHhxK3ZKNwpwR0Jxb0xQWGcwQkltRm0vUEtlQlI3KzRMR01JbG5uZ05lTzI3WmZRa2VMQmgwTDhkTklKdzFId29JdXdNdGRYCnhWM040TDByZmdQcmdKditIeHJQdXlDRGhlZEU5UWQwZEU1bWk1OENBd0VBQWFON01Ia3dDUVlEVlIwVEJBSXcKQURBWEJnTlZIUkVFRURBT2dnd3FMbWR0YjJ4aFlpNXVaWFF3RXdZRFZSMGxCQXd3Q2dZSUt3WUJCUVVIQXdFdwpIUVlEVlIwT0JCWUVGQ1AzTWRaYVBHKzdlZG5EUHA4eHhpdndtNEpKTUI4R0ExVWRJd1FZTUJhQUZPVVNUYWp0CnRranZWQUtqc3pQemJ3RExtL2x1TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDT0pCb2dEMFlPMHk0SGdscEkKaFAwVTFQbXdUMGFObFpGNW9teXFOeGZGVHFWN2FXRnhTM2I5VWVUL09GUUlkYThzdlhsYXFTN0xLZk5zamVYagpCeC9YOG1NWUJ1Zm50bkppUGZFVTZJdGRUVmhaY1RIYlJRTFkyVjVuZ21WV3ErQ2xVMklsWmtSeWtELzcvc0NaCnV6ODhKUEJXZ1R4MnV2QXh4NGI0bFAzUzF6L1VSVmczVzR5ei9pTUVNQ1M2Ymgra3FuUXdFM05HeFZmc2swOU0KdFhnWW1jQXZrZFpNcVNJOFVYRC9pTXNLV1NYd0JFeVFVQVJ4Wi9jMVJSSzhHVGpRMUNySHE5TFM0T1R3Qnc5aAorUWxoZU0yQUhKRzdES2tLbHJENkVzN0l5RkUrOG0zVzRtbkk2S2M4anRhYVZTeGdYeTBDZmtDQ2xMaTQxV3Y5CjJ5ZGY0N3ArOTUvN1ZvUUFKQXg5MWdxL3AxcWc1V0JCeVBMNWFMS2FzTnNkUjhrOUdLYk5BVVBZZGZvUzdiTGEKcjBzTGJlYitGUmgvVEt3dFh0RWJNVGRZN1hNTWE3ZG5CeEViRWs0ZHRjZTZvZkZJRnJVUzJ0eDU0cUdzaEd2QwpiNjV0N0U3MHFvWTRTck1KWVB5amlLVjNMYnoyMWgwRVh2dXBlekpsWHQ5SHZmME41OWdKSGZONmFIOGV0TU9xCmoxalptTHpCSDRGZ3cyQlZxSGR0b1JtYjB2UHVpcGtobjVHMzYzWXQxQU1pQzdtdVcvSVYreUNiRkYxN3p0c0wKUWxiQmxoSkZDQU5KQjd5WFo4cGFtMGVuVVZVUi81TUF2U0hIV1ZwcDI2RDZmUFJWbldmQTNhc09LdDNza0hOVApBb0Fpam5uZER6Y1diWmN1cWlJRHZLK3lNQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
|
||||||
nginxSite:
|
|
||||||
repository: nginxinc/nginx-unprivileged
|
|
||||||
pullPolicy: Always
|
|
||||||
tag: "1.26"
|
|
||||||
nginxConfigPath: /etc/nginx/conf.d/default.conf
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 16M #16 Mo RAM
|
|
||||||
cpu: 50m # 0.05 core de CPU
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image)
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 128M #128 Mo RAM, au delà eviction
|
|
||||||
cpu: 500m # 0.5 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
persistentVolumeClaim:
|
|
||||||
storageRequest: 500M
|
|
||||||
ingress:
|
|
||||||
site:
|
|
||||||
hosts:
|
|
||||||
- gmovdg.vdglab.net
|
|
||||||
pma:
|
|
||||||
hosts:
|
|
||||||
- gmovdg-pma.vdglab.net
|
|
||||||
kibana:
|
|
||||||
hosts:
|
|
||||||
- gmovdg-kibana.vdglab.net
|
|
||||||
# php-fpm
|
|
||||||
phpfpmSite:
|
|
||||||
repository: gmouchet/wwwgmo-php-fpm
|
|
||||||
imageTag: 3.3.0
|
|
||||||
pullPolicy: Always
|
|
||||||
ressourceRequest:
|
|
||||||
memory: 16M #16 Mo RAM
|
|
||||||
cpu: 50m # 0.05 core de CPU
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image)
|
|
||||||
ressourceLimit:
|
|
||||||
memory: 128M #128 Mo RAM, au delà eviction
|
|
||||||
cpu: 500m # 0.5 core de CPU, au delà CPU Throttle
|
|
||||||
ephemeralStorage: 512M #512 Mo de storage non persistent (en + de ce qui est dans l'image), au delà éviction
|
|
||||||
site:
|
|
||||||
title: "Stack GMo - PHP-FPM - MariaDB - Elasticsearch"
|
|
||||||
db:
|
|
||||||
name: gmo_db
|
|
||||||
user: gmo_db
|
|
||||||
host: service-mariadb
|
|
||||||
port: 3306
|
|
||||||
tabl: tbl_email
|
|
||||||
es:
|
|
||||||
host: service-elasticsearch:9200
|
|
||||||
user: elastic
|
|
||||||
index: wwwgmo_index
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
site:
|
|
||||||
ssl_key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ1ZMK0NrbGE4SWwyaFUKSDZOZEtGT2JHd2R3MHZQaG5HTkx1WjdsZFVlMnNoMTRZYmMvS21nUll0c09tRFZYVE9HNWlYWmVQWjlqV2RtdApBV2Nkbk9SME1wMXV1anJWMVIyQkZQN1htbUJuMjNtODVmQk5GS05tbzlVLytIQkFoaW95NjQ1Z2lqZFFJNjAyClNsUEZHSWJ5Tms1TEZlMFA4UnNHQmNZSy9DSyt1ay9WNUpMczV0dGtMa2FIOHBxaXA4Y2VjZURQbGdIS0hadHcKN2ZpelZ1WG9taFRkbmNmd2VTb1R0c0VpSlE3Y2F2cnllNlJnYXFDejE0TkFTSmhadnp5bmdVZS91Q3hqQ0paNQo0RFhqdHUyWDBKSGl3WWRDL0hUU0NjTlI4S0NMc0RMWFY4VmR6ZUM5SzM0RDY0Q2IvaDhhejdzZ2c0WG5SUFVICmRIUk9ab3VmQWdNQkFBRUNnZ0VBRGpNRXRrV0tQUGx1M3ZXS21VeEVTNGY5WTZTckVtSE4wRXIyTDdBWThrVHUKVkhpTElNSksyTDl5OVdiNzlMZUc2SFRkUlBKU2l2bmwrUGNnTnd1cGNYeDd5dFV1SjdvUUE5V0VFcHRKUDdsVApxSmRZdkNLOFpxd3Q3aTBabEsvd1c1dXdsOG12K0JCZE9tOUZSOXQzYjBoSFFyMloxdmJ1SG9XZ0tETFZUOEoxCis1MXlISC9VbGlIb0E4bzkxYUd3K3F5KzllWlJrdGpxSmlOWXpGMUMzVDB5Sk1yQXdxZXU4Z09ic2k3c2kwMWkKZ254d1VISDVVckNjaXZRTzQxWFBjUW5QYzQ5dTE4bkFRSGRxTTZNL05yTzZwWENUTnY0OHY2OEZsaDlmanBqawpvUDVJN0IwRThOTE5ZSDkyMEJUbE1hRFUvYVAwdE9HRXJHblgyWElBY1FLQmdRQzZRbFpJMjAyTmZMWnVSVmhoCjBMN3A4VklXWnE3UEl2US9tRHF4Rlc4WllkQk14RXY2UFZVTTl6VHVsVVh2TlM2SE9ncHAxUGxGVVNHM2dQRzUKZU1nR1piTTZjczJwM1dmOVVjZ1ZQYXM3Q2lGYnRZZXdJS0dYMWY5OHFMTU4ybkFTd2dVU0N5eUQrZER0UVpDWQp1VlRybnhZbUkrOHlBUFpOR3pSVUVNUnh1UUtCZ1FETkRBalpWTmNOeGJaVW1YWkZrMEp1YnNLUGZVMStYZVdrCkxCYkVCaDZwVG5hOWNVTE5Cc0F1ZjI4cEpFS1FQeXc4SVFEUDIwaDJXWUdIQ1FtNFZyMEM1TVN3TFVxNGdsalgKNHJ3bmxSZE44MDNqbjJTVUJjV1lGSGdNc1EyN2ZRT2lvNnVnUnUrZ0U2ZDMwa0lYTW1waUp4eHNuN3V5L0JBOAp1Z0pBc1R6MEZ3S0JnRE56ejlJZ2dyUHJGNW91bmRPbmpwV2hqRU9UNmdaZWFZcUh5dTdRTlBpV0JLeXdMU3piCmRIczRidTdaWFpCTzZLT0NiUTMvUHp6ZXhLbWtmU0gzTTRwUTNjbnZuTkNuME9veGhVd1kxUXhpS0FUbGlLNG0KMVh6VUtOZU80cWVaQ0F5bWZEQVgxaHcvRG0vOEJLMnJ4TUd5R0xSQWlQc1BPUHJqNFBpNENReEJBb0dBTmw0bgpob0N4V095QWtPUHo4VFMvbTRwd3VoMHVUQUJYb0hVMFFCdWpTNThMYXVXNklhVFZsajZoMmRYTWRIVGJwTUhYCmRrV2RiQXdGaFNtSFUwSmtjWHo1RGdHa1cxSHNmcW1XM0NQeS91OHhTdFo3azZnSUlXL2orUEdGUTU0OU5ZV1MKUHpndjExRCt5WTJOaXBzS2pDWDBxblNjRHpRNGxmRjRJWEVkU1ZjQ2dZRUF0VVQ2Y1BYdnYxamM4WVUvN3BjTApXR21WYldjcDNXbW5VK2FoaXBVM2l6YmxEUGkvWUR0aVhKSFVoYUl1TnZySVBKL2VIT1psejRPcVViS015YzFyCjV2blUrajg3MnZOdGViVkphemd1SHBHTzY3SVFrNHdJamp0TlQrQUYybUhjdnJUVTYyay9hWHJFSGN4ekZMMTMKcW1TcHNUVWtJYXFaZ2VMUERWMWNOZWc9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
|
|
||||||
|
|
||||||
mariadb:
|
|
||||||
rootPass: pa55w0rd
|
|
||||||
dbPass: passw0rd
|
|
||||||
|
|
||||||
elastic:
|
|
||||||
password: pa55w0rd
|
|
||||||
|
|
||||||
kibana:
|
|
||||||
password: kibanaPass55w0rd
|
|
||||||
|
|
||||||
@ -31,3 +31,4 @@ function checkindex($user,$password,$host,$index)
|
|||||||
|
|
||||||
}
|
}
|
||||||
return checkindex($es_user,$es_password,$es_host,$es_index)
|
return checkindex($es_user,$es_password,$es_host,$es_index)
|
||||||
|
?>
|
||||||
@ -1,5 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"config": {
|
||||||
|
"allow-plugins": {
|
||||||
|
"php-http/discovery": true
|
||||||
|
}
|
||||||
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"elasticsearch/elasticsearch": "^8.18"
|
"elasticsearch/elasticsearch": "^7.17.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
1082
src/composer.lock
generated
1082
src/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once "./vendor/autoload.php";
|
require_once "./vendor/autoload.php";
|
||||||
use Elastic\Elasticsearch\ClientBuilder;
|
use Elasticsearch\ClientBuilder;
|
||||||
|
|
||||||
require_once 'config.php';
|
require_once 'config.php';
|
||||||
function connect_es($es_host, $es_user, $es_password)
|
function connect_es($es_host, $es_user, $es_password)
|
||||||
|
|||||||
@ -13,3 +13,4 @@ function connect($host, $db, $user, $password)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return connect($host, $db, $user, $password);
|
||||||
@ -63,3 +63,4 @@ if (($handle = fopen($data_csv_file, "r")) !== FALSE) {
|
|||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</body>
|
</body>
|
||||||
|
</html>
|
||||||
1
src/css/bootstrap-grid.css
vendored
1
src/css/bootstrap-grid.css
vendored
@ -2047,3 +2047,4 @@ html {
|
|||||||
align-self: stretch !important;
|
align-self: stretch !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*# sourceMappingURL=bootstrap-grid.css.map */
|
||||||
File diff suppressed because one or more lines are too long
1
src/css/bootstrap-grid.min.css
vendored
1
src/css/bootstrap-grid.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
src/css/bootstrap-reboot.css
vendored
1
src/css/bootstrap-reboot.css
vendored
@ -327,3 +327,4 @@ template {
|
|||||||
[hidden] {
|
[hidden] {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
/*# sourceMappingURL=bootstrap-reboot.css.map */
|
||||||
File diff suppressed because one or more lines are too long
1
src/css/bootstrap-reboot.min.css
vendored
1
src/css/bootstrap-reboot.min.css
vendored
@ -5,3 +5,4 @@
|
|||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||||
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
||||||
|
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
||||||
File diff suppressed because one or more lines are too long
1
src/css/bootstrap.css
vendored
1
src/css/bootstrap.css
vendored
@ -8972,3 +8972,4 @@ a.text-dark:hover, a.text-dark:focus {
|
|||||||
border: 1px solid #ddd !important;
|
border: 1px solid #ddd !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*# sourceMappingURL=bootstrap.css.map */
|
||||||
File diff suppressed because one or more lines are too long
1
src/css/bootstrap.min.css
vendored
1
src/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -34,31 +34,10 @@ curl_close($curl);
|
|||||||
// decode
|
// decode
|
||||||
$array = json_decode($status, true);
|
$array = json_decode($status, true);
|
||||||
|
|
||||||
# get version of elasticsearch php composer
|
|
||||||
$composerLockPath = __DIR__ . '/composer.lock';
|
|
||||||
if (!file_exists($composerLockPath)) {
|
|
||||||
die("The composer.lock file was not found.\n");
|
|
||||||
}
|
|
||||||
$composerLock = json_decode(file_get_contents($composerLockPath), true);
|
|
||||||
foreach ($composerLock['packages'] as $package) {
|
|
||||||
if (strpos($package['name'], 'elasticsearch') !== false) {
|
|
||||||
$phpPackName=$package['name'];
|
|
||||||
$phpPackVersion=$package['version'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# check if package is installed
|
|
||||||
if (empty($phpPackName)) {
|
|
||||||
$phpPackName="not installed";
|
|
||||||
$phpPackVersion="not installed";
|
|
||||||
}
|
|
||||||
|
|
||||||
// display result
|
// display result
|
||||||
echo "<h3>Informations</h3>";
|
echo "<h4>Informations</h4>";
|
||||||
echo "<h4>Elasticsearch cluster</h4>";
|
echo "<p><b>Name:</b> ".$response['name']."<br>";
|
||||||
echo "<p><b>Node name:</b> ".$response['name']."<br>";
|
|
||||||
echo "<b>Cluster name:</b> ".$response['cluster_name']."<br>";
|
echo "<b>Cluster name:</b> ".$response['cluster_name']."<br>";
|
||||||
echo "<b>Elasticsearch version:</b> ".$response['version']['number']."<br>";
|
echo "<b>Elasticsearch version:</b> ".$response['version']['number']."<br>";
|
||||||
echo "<b>Cluster health status:</b> ".$array['status']."</p>";
|
echo "<b>Cluster health status:</b> ".$array['status']."</p>";
|
||||||
echo "<h4>Elasticsearch client for PHP</h4>";
|
?>
|
||||||
echo "<p><b>Package name:</b> ".$phpPackName."<br>";
|
|
||||||
echo "<b>Package version:</b> ".$phpPackVersion."</p>";
|
|
||||||
@ -2,3 +2,4 @@
|
|||||||
<path fill-rule="evenodd" d="M5.707 13.707a1 1 0 01-.39.242l-3 1a1 1 0 01-1.266-1.265l1-3a1 1 0 01.242-.391L10.086 2.5a2 2 0 012.828 0l.586.586a2 2 0 010 2.828l-7.793 7.793zM3 11l7.793-7.793a1 1 0 011.414 0l.586.586a1 1 0 010 1.414L5 13l-3 1 1-3z" clip-rule="evenodd"/>
|
<path fill-rule="evenodd" d="M5.707 13.707a1 1 0 01-.39.242l-3 1a1 1 0 01-1.266-1.265l1-3a1 1 0 01.242-.391L10.086 2.5a2 2 0 012.828 0l.586.586a2 2 0 010 2.828l-7.793 7.793zM3 11l7.793-7.793a1 1 0 011.414 0l.586.586a1 1 0 010 1.414L5 13l-3 1 1-3z" clip-rule="evenodd"/>
|
||||||
<path fill-rule="evenodd" d="M9.854 2.56a.5.5 0 00-.708 0L5.854 5.855a.5.5 0 01-.708-.708L8.44 1.854a1.5 1.5 0 012.122 0l.293.292a.5.5 0 01-.707.708l-.293-.293z" clip-rule="evenodd"/>
|
<path fill-rule="evenodd" d="M9.854 2.56a.5.5 0 00-.708 0L5.854 5.855a.5.5 0 01-.708-.708L8.44 1.854a1.5 1.5 0 012.122 0l.293.292a.5.5 0 01-.707.708l-.293-.293z" clip-rule="evenodd"/>
|
||||||
<path d="M13.293 1.207a1 1 0 011.414 0l.03.03a1 1 0 01.03 1.383L13.5 4 12 2.5l1.293-1.293z"/>
|
<path d="M13.293 1.207a1 1 0 011.414 0l.03.03a1 1 0 01.03 1.383L13.5 4 12 2.5l1.293-1.293z"/>
|
||||||
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 678 B After Width: | Height: | Size: 684 B |
@ -1,3 +1,4 @@
|
|||||||
<svg class="bi bi-trash" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
<svg class="bi bi-trash" width="1em" height="1em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M5.5 5.5A.5.5 0 016 6v6a.5.5 0 01-1 0V6a.5.5 0 01.5-.5zm2.5 0a.5.5 0 01.5.5v6a.5.5 0 01-1 0V6a.5.5 0 01.5-.5zm3 .5a.5.5 0 00-1 0v6a.5.5 0 001 0V6z"/>
|
<path d="M5.5 5.5A.5.5 0 016 6v6a.5.5 0 01-1 0V6a.5.5 0 01.5-.5zm2.5 0a.5.5 0 01.5.5v6a.5.5 0 01-1 0V6a.5.5 0 01.5-.5zm3 .5a.5.5 0 00-1 0v6a.5.5 0 001 0V6z"/>
|
||||||
<path fill-rule="evenodd" d="M14.5 3a1 1 0 01-1 1H13v9a2 2 0 01-2 2H5a2 2 0 01-2-2V4h-.5a1 1 0 01-1-1V2a1 1 0 011-1H6a1 1 0 011-1h2a1 1 0 011 1h3.5a1 1 0 011 1v1zM4.118 4L4 4.059V13a1 1 0 001 1h6a1 1 0 001-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z" clip-rule="evenodd"/>
|
<path fill-rule="evenodd" d="M14.5 3a1 1 0 01-1 1H13v9a2 2 0 01-2 2H5a2 2 0 01-2-2V4h-.5a1 1 0 01-1-1V2a1 1 0 011-1H6a1 1 0 011-1h2a1 1 0 011 1h3.5a1 1 0 011 1v1zM4.118 4L4 4.059V13a1 1 0 001 1h6a1 1 0 001-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z" clip-rule="evenodd"/>
|
||||||
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 560 B After Width: | Height: | Size: 566 B |
@ -1,2 +1,3 @@
|
|||||||
<?php
|
<?php
|
||||||
phpinfo();
|
phpinfo();
|
||||||
|
?>
|
||||||
@ -39,3 +39,4 @@ if ($CSVvar !== FALSE) {
|
|||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
fclose($CSVvar);
|
fclose($CSVvar);
|
||||||
|
?>
|
||||||
@ -95,3 +95,4 @@ Yshi;Potte;yshi@yshipotte.ch;
|
|||||||
Yvan;Descloux;yvan@yvandescloux.ch;
|
Yvan;Descloux;yvan@yvandescloux.ch;
|
||||||
Yves;Rogne;yves@yvesrogne.ch;
|
Yves;Rogne;yves@yvesrogne.ch;
|
||||||
Yves;Vaurien;yves@yvesvaurien.ch;
|
Yves;Vaurien;yves@yvesvaurien.ch;
|
||||||
|
Yvon;Pasbien;yvon@yvonpasbien.ch;
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
Alex;Kuze;alex@alexkuze.ch;
|
Alex;Kuze;alex@alexkuze.ch;
|
||||||
Ali;Gator;ali@aligator.ch;
|
Ali;Gator;ali@aligator.ch;
|
||||||
|
Alphonse;Danltas;alphonse@alphonsedanltas.ch;
|
||||||
|
@ -103,3 +103,4 @@ if ($index_status == 200) {
|
|||||||
else {
|
else {
|
||||||
echo "Problem with index <b>".$es_index."</b> (".$index_status.")";
|
echo "Problem with index <b>".$es_index."</b> (".$index_status.")";
|
||||||
}
|
}
|
||||||
|
?>
|
||||||
Loading…
x
Reference in New Issue
Block a user