Compare commits
22 Commits
3.25-amd64
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 20d1f2af26 | |||
| 11c9175e71 | |||
| d41e78a5bc | |||
| a3bbbf3a51 | |||
| da2ff4c158 | |||
| 5e3c8e08ca | |||
| e49e14e71c | |||
| 7e77d5c8a6 | |||
| 290894e6f1 | |||
| 6e35193643 | |||
| f1005e54d8 | |||
|
|
2b96979040 | ||
| 79d158c04a | |||
| 719b26cf97 | |||
| 6d507a15d2 | |||
| 94e0e53fc8 | |||
| abaf7965c2 | |||
| 2d0643fa01 | |||
| 123ea0ba2a | |||
| 070c26450c | |||
|
|
b602a5c53f | ||
|
|
2729d642cd |
22
.env.dist
22
.env.dist
@ -1,6 +1,20 @@
|
||||
# must be the same that SITE_VERSION define in php-fpm/.env
|
||||
DOCKER_IMAGE_VERSION="3.25"
|
||||
# compose project name. A docker compose project has as its name
|
||||
# the name of the folder where it is executed (default).
|
||||
# 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=gmouchet/wwwgmo-php-fpm
|
||||
DOCKER_IMAGE=wwwgmo-php-fpm
|
||||
# docker login user
|
||||
DOCKER_USER=gmouchet
|
||||
# docker ports
|
||||
NGINX_PORT=8085
|
||||
PMA_PORT_WEB=8084
|
||||
PMA_PORT_WEB_HTTPS=8084
|
||||
# elastic version
|
||||
ELASTIC_VERSION=9.0.2
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@
|
||||
.env
|
||||
helm-old
|
||||
mariadb-old
|
||||
staging
|
||||
|
||||
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@ -2,4 +2,3 @@
|
||||
"editor.fontSize": 13,
|
||||
"terminal.integrated.fontSize": 13,
|
||||
"window.zoomLevel": 1.4,
|
||||
}
|
||||
32
LICENSE
Normal file
32
LICENSE
Normal file
@ -0,0 +1,32 @@
|
||||
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.
|
||||
|
||||
127
README.md
127
README.md
@ -7,8 +7,11 @@ Examples site with nginx, phpfpm, mysql, phpmyadmin, elasticsearch and kibana
|
||||
|:---|:---|
|
||||
|docker.sh|files to build the docker image|
|
||||
|docker/mariadb|env file|
|
||||
|docker/phpmyadmin|config for phpmyadmin|
|
||||
|docker/nginx|config file|
|
||||
|docker/php-fpm|files to create docker image|
|
||||
|docker/elasticsearch|env file + script for elasticsearch|
|
||||
|docker/kibana|env file|
|
||||
|src|site source|
|
||||
|
||||
## Docker
|
||||
@ -18,10 +21,8 @@ Copy file ALL `.env.dist` to `.env`
|
||||
Complete or modify the values according to your needs
|
||||
|
||||
### Build
|
||||
#### Install plugin php for elasticsearch
|
||||
```bash
|
||||
./docker.sh install
|
||||
```
|
||||
The **docker.sh** script is use to manage docker image. See `./docker.sh -h` for more informations
|
||||
|
||||
#### Build image
|
||||
```bash
|
||||
./docker.sh build
|
||||
@ -30,34 +31,45 @@ or
|
||||
```bash
|
||||
./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
|
||||
```bash
|
||||
./docker.sh start
|
||||
```
|
||||
#### Check
|
||||
```bash
|
||||
docker exec wwwgmo-mariadb mysql -uroot -p<MYSQL_ROOT_PASSWORD> mysql -e 'SELECT user,host FROM mysql.user;'
|
||||
docker exec <COMPOSE_PROJECT_NAME>-mariadb-1 mysql -uroot -p<MYSQL_ROOT_PASSWORD> mysql -e 'SELECT user,host FROM mysql.user;'
|
||||
```
|
||||
```bash
|
||||
docker exec wwwgmo-elasticsearch curl -u elastic:<ELASTIC_PASSWORD> http://wwwgmo-elasticsearch:9200/_cluster/health?pretty
|
||||
docker exec <COMPOSE_PROJECT_NAME>-elasticsearch-1 curl -u elastic:<ELASTIC_PASSWORD> http://elasticsearch:9200/_cluster/health?pretty
|
||||
```
|
||||
```bash
|
||||
docker exec wwwgmo-php-fpm curl -s -u elastic:<ELASTIC_PASSWORD> http://wwwgmo-elasticsearch:9200/_cluster/health?pretty
|
||||
docker exec <COMPOSE_PROJECT_NAME>-php-fpm-1 curl -u elastic:<ELASTIC_PASSWORD> http://wwwgmo-elasticsearch:9200/_cluster/health?pretty
|
||||
```
|
||||
|
||||
#### Access
|
||||
|
||||
http://<server_name>:<NGINX_PORT>
|
||||
https://<server_name>:<NGINX_PORT>
|
||||
|
||||
|
||||
|
||||
|
||||
## kubernetes
|
||||
|
||||
|**folders**|**description**|
|
||||
|:---|:---|
|
||||
|deploy.sh|files to deploy on k8s or k3s (see ./deploy.s -h)|
|
||||
|helm|Chart root folder|
|
||||
|Chart.yaml|Charts file|
|
||||
|values-configs.yml|configs file use for kubernetes manifest|
|
||||
|values-secrets.yaml|secrets file for kubernetes manifet (Must be encrypted with sops in a production environment)|
|
||||
|values-xxxx-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)|
|
||||
|templates/elasticsearch|manifests for elasticsearch|
|
||||
|templates/kibana|manifests for kibana|
|
||||
|templates/mariadb|manifests for mariadb|
|
||||
@ -78,31 +90,23 @@ kubectl create secret docker-registry secret-regcred --dry-run=client \
|
||||
```
|
||||
### Certificats
|
||||
```bash
|
||||
cat certs/gmolab.net.key | base64 -w0
|
||||
cat certs/tls.key | base64 -w0
|
||||
```
|
||||
copy the base64 result into file `values-secrets.yaml` in ssl_key key
|
||||
copy the base64 result into file `values-xxxx-secrets.yaml` in ssl_key key
|
||||
```bash
|
||||
cat certs/gmolab.net.crt | base64 -w0
|
||||
cat certs/tls.crt | base64 -w0
|
||||
```
|
||||
copy the base64 result into file `values-config.yaml` in ssl_crt key
|
||||
copy the base64 result into file `values-xxxx-config.yaml` in ssl_crt key
|
||||
|
||||
### 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
|
||||
# Deployment
|
||||
### Set kubesystem config
|
||||
```bash
|
||||
rm -f $HOME/.kube/config
|
||||
```
|
||||
for **kind**
|
||||
```bash
|
||||
sudo cp /root/.kube/config $HOME/.kube/config
|
||||
```
|
||||
for **k3s**
|
||||
```bash
|
||||
ln -s $HOME/.kube/k3s $HOST/.kube/config
|
||||
@ -114,15 +118,15 @@ ln -s $HOST/.kube/k8s $HOST/.kube/config
|
||||
### Set namespace and kube system
|
||||
```bash
|
||||
export NS=wwwgmo
|
||||
export KUBE_SYS=k3s|k8s
|
||||
export KUBE_SYS=kind|k3s|k8s
|
||||
```
|
||||
### Test template
|
||||
```bash
|
||||
helm template $NS --set kube=$KUBE_SYS ./helm --values=./helm/values-configs.yaml --values=./helm/values-secrets.yaml --namespace $NS
|
||||
helm template $NS ./helm --values=./helm/values-$KUBE_SYS-configs.yaml --values=./helm/values-$KUBE_SYS-secrets.yaml --namespace $NS
|
||||
```
|
||||
### Chart deployment
|
||||
```bash
|
||||
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
|
||||
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
|
||||
```
|
||||
|
||||
## Remove
|
||||
@ -131,11 +135,13 @@ helm uninstall $NS -n $NS
|
||||
kubectl delete namespaces $NS
|
||||
```
|
||||
## 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
|
||||
```bash
|
||||
kubectl create job -n $NS --from=cronjob/cronjob-mariadb-backupdb dbbackup-$(date +%Y-%m-%d-%H-%M-%S)
|
||||
```
|
||||
|
||||
## Database
|
||||
Not necessary because created during deployment. We leave the procedure below for information
|
||||
|
||||
@ -185,34 +191,51 @@ done
|
||||
[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)
|
||||
|
||||
https://www.elastic.co/guide/en/elasticsearch/reference/8.18/docker.html
|
||||
|
||||
|
||||
## 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
|
||||
|
||||
**Fixed bugs:**
|
||||
* problem with display environment var in php site
|
||||
### 3.3.0 (2025-06-29)
|
||||
**New Features:**
|
||||
- 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
|
||||
---
|
||||
|
||||
### 2.5 (2024-03-29)
|
||||
**Fixed bugs:**
|
||||
* fixed somes bugs
|
||||
### 3.2.5 (2024-04-14)
|
||||
|
||||
**New features:**
|
||||
* posibility to deploy on k3s or k8s
|
||||
**New Features:**
|
||||
- Added **Elasticsearch** and **Kibana**.
|
||||
- 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
|
||||
---
|
||||
|
||||
### 1.0 (2024-03-01)
|
||||
* Created from scratch
|
||||
### 2.5.0 (2024-03-29)
|
||||
|
||||
**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,4 +41,3 @@ data:
|
||||
#fastcgi_pass 127.0.0.1:9000;
|
||||
}
|
||||
}
|
||||
|
||||
1
cron
1
cron
@ -1 +0,0 @@
|
||||
/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,98 +1,95 @@
|
||||
# GMo Lab
|
||||
#version: '2.3'
|
||||
services:
|
||||
|
||||
## Linux nginx mysql php
|
||||
wwwgmo-nginx:
|
||||
container_name: wwwgmo-nginx
|
||||
hostname: wwwgmo-nginx
|
||||
nginx:
|
||||
image: nginxinc/nginx-unprivileged:1.23-alpine
|
||||
# platform: linux/amd64,linux/arm64
|
||||
volumes:
|
||||
- './docker/nginx/default.conf:/etc/nginx/conf.d/default.conf'
|
||||
- './certs:/etc/nginx/certs/'
|
||||
- './src:/var/www/html:rw,cached'
|
||||
ports:
|
||||
- '${NGINX_PORT}:8080' #local:docker
|
||||
- '${NGINX_PORT}:8443'
|
||||
depends_on:
|
||||
- wwwgmo-php-fpm
|
||||
#
|
||||
wwwgmo-php-fpm:
|
||||
container_name: wwwgmo-php-fpm
|
||||
hostname: wwwgmo-php-fpm
|
||||
#image: wwwgmo
|
||||
image: ${DOCKER_IMAGE}:${DOCKER_IMAGE_VERSION}
|
||||
- php-fpm
|
||||
|
||||
php-fpm:
|
||||
image: ${DOCKER_USER}/${DOCKER_IMAGE}:${DOCKER_IMAGE_VERSION}
|
||||
# platform: linux/amd64,linux/arm64
|
||||
env_file:
|
||||
- ./docker/php-fpm/.env
|
||||
volumes:
|
||||
- './src/:/var/www/html:rw,cached'
|
||||
build:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./docker/php-fpm/Dockerfile
|
||||
ports:
|
||||
- '9000:9000' #local:docker
|
||||
- '9000:9000'
|
||||
depends_on:
|
||||
- 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
|
||||
mariadb:
|
||||
image: mariadb:10.11.7
|
||||
# platform: linux/amd64,linux/arm64
|
||||
volumes:
|
||||
- 'wwwgmo-mariadb:/var/lib/mysql:z'
|
||||
- 'mariadb:/var/lib/mysql:z'
|
||||
env_file:
|
||||
- ./docker/mariadb/.env # ports:
|
||||
|
||||
wwwgmo-phpmyadmin:
|
||||
container_name: wwwgmo-pma
|
||||
- ./docker/mariadb/.env
|
||||
|
||||
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:
|
||||
- wwwgmo-mariadb
|
||||
- mariadb
|
||||
env_file:
|
||||
- ./docker/mariadb/.env
|
||||
restart: always
|
||||
ports:
|
||||
- ${PMA_PORT_WEB}:80
|
||||
- ${PMA_PORT_WEB_HTTPS}:443
|
||||
command: >
|
||||
sh -c "a2enmod ssl &&
|
||||
a2ensite default-ssl &&
|
||||
apache2-foreground"
|
||||
|
||||
# EK
|
||||
wwwgmo-elasticsearch:
|
||||
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
|
||||
elasticsearch:
|
||||
image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}
|
||||
# platform: linux/amd64,linux/arm64
|
||||
env_file:
|
||||
- ./docker/elasticsearch/.env
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
cap_add:
|
||||
- IPC_LOCK
|
||||
ports:
|
||||
- '9200:9200'
|
||||
- '9300:9300'
|
||||
- "9200:9200"
|
||||
- "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
|
||||
wwwgmo_kibana:
|
||||
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
|
||||
kibana:
|
||||
image: docker.elastic.co/kibana/kibana:${ELASTIC_VERSION}
|
||||
# platform: linux/amd64,linux/arm64
|
||||
env_file:
|
||||
- ./docker/kibana/.env
|
||||
ports:
|
||||
- 5601:5601
|
||||
volumes:
|
||||
- './certs:/usr/share/kibana/config/certs/'
|
||||
depends_on:
|
||||
- wwwgmo-elasticsearch
|
||||
- elasticsearch
|
||||
ports:
|
||||
- "5601:5601"
|
||||
|
||||
volumes:
|
||||
wwwgmo-mariadb:
|
||||
wwwgmo-elasticsearch:
|
||||
elasticsearch:
|
||||
mariadb:
|
||||
|
||||
|
||||
198
docker.sh
198
docker.sh
@ -1,78 +1,196 @@
|
||||
#!/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
|
||||
_UID=$(id -u)
|
||||
_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
|
||||
if [ -z "$1" ]; then
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
|
||||
# check if certs folder exite in src
|
||||
if [ ! -d "./src/certs" ]; then
|
||||
mkdir ./src/certs
|
||||
fi
|
||||
|
||||
|
||||
while test $# -gt 0
|
||||
do
|
||||
case "$1" in
|
||||
install)
|
||||
env UID=${_UID} GID=${_GID} docker compose up -d wwwgmo-php-fpm
|
||||
#docker exec --user root wwwgmo-php-fpm "/bin/sh -c 'cd /var/www/html/; composer require elasticsearch/elasticsearch'"
|
||||
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 stop
|
||||
;;
|
||||
start)
|
||||
env UID=${_UID} GID=${_GID} docker compose up -d;
|
||||
docker exec --user root wwwgmo-php-fpm composer install --no-interaction
|
||||
sudo chown -R $_UID:$_GID ./certs/
|
||||
# The env before the docker command is there to assign rights in case different
|
||||
# users are called upon to work on this project. We comment it for documentation purposes.
|
||||
# env UID=${_UID} GID=${_GID} docker compose up -d
|
||||
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
|
||||
restart)
|
||||
sudo chown -R $_UID:$_GID ./certs/
|
||||
docker compose down --remove-orphans
|
||||
docker compose up -d;
|
||||
;;
|
||||
stop)
|
||||
env UID=${_UID} GID=${_GID} docker compose stop
|
||||
docker compose stop
|
||||
;;
|
||||
bash)
|
||||
docker exec -it wwwgmo-php-fpm /bin/sh
|
||||
docker exec -it ${COMPOSE_PROJECT_NAME}-php-fpm-1 /bin/sh
|
||||
;;
|
||||
bash-root)
|
||||
docker exec --user root -it wwwgmo-php-fpm /bin/sh
|
||||
docker exec --user root -it ${COMPOSE_PROJECT_NAME}-php-fpm-1 /bin/sh
|
||||
;;
|
||||
logs)
|
||||
docker logs wwwgmo-php-fpm -f
|
||||
logs)
|
||||
docker logs ${COMPOSE_PROJECT_NAME}-php-fpm-1 -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)
|
||||
#cp ./certs/ca.pem ./src/certs/.
|
||||
# build image in local
|
||||
sudo chown -R $_UID:$_GID ./src/
|
||||
env UID=${_UID} GID=${_GID} docker compose build
|
||||
env UID=${_UID} GID=${_GID} docker compose up -d;
|
||||
#docker exec --user root wwwgmo-php-fpm composer install --no-interaction
|
||||
docker compose build --pull
|
||||
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"
|
||||
# not needed. We comment it for documentation purposes.
|
||||
#sleep 5 # wait mysql container up
|
||||
#docker exec -it wwwgmo-mysql /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
|
||||
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)
|
||||
docker image push ${DOCKER_IMAGE}:${DOCKER_IMAGE_VERSION}
|
||||
docker login -u="${DOCKER_USER}" -p="${DOCKER_PASS}"
|
||||
docker image push ${DOCKER_IMAGE}:${DOCKER_IMAGE_VERSION}
|
||||
docker logout
|
||||
;;
|
||||
*)
|
||||
echo "docker.sh [start|stop|install|logs|bash-root|bash|build|build-no-cache|push]"
|
||||
down)
|
||||
docker compose down --remove-orphans
|
||||
;;
|
||||
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
|
||||
shift
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
xpack.security.transport.ssl.enabled=true
|
||||
xpack.security.enabled=true
|
||||
# config es
|
||||
cluster.name=es-cluster
|
||||
discovery.type=single-node
|
||||
cluster.name=gmo_es_cluster
|
||||
ELASTIC_USERNAME=elastic
|
||||
ELASTIC_PASSWORD=pa55w0rd
|
||||
bootstrap.memory_lock=true
|
||||
xpack.security.enabled=true
|
||||
xpack.security.http.ssl.enabled=false
|
||||
ES_JAVA_OPTS=-Xms1g -Xmx1g
|
||||
# password for elastic user
|
||||
ELASTIC_PASSWORD=pa55w0rd
|
||||
|
||||
22
docker/elasticsearch/create_kibana_user.sh
Normal file
22
docker/elasticsearch/create_kibana_user.sh
Normal file
@ -0,0 +1,22 @@
|
||||
!/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,4 +1,11 @@
|
||||
ELASTICSEARCH_HOSTS=http://wwwgmo-elasticsearch:9200
|
||||
ELASTICSEARCH_USERNAME=elastic
|
||||
ELASTICSEARCH_PASSWORD=pa55w0rd
|
||||
xpack.security.enabled=true
|
||||
# es url
|
||||
ELASTICSEARCH_HOSTS=http://elasticsearch:9200
|
||||
# username (technical) with kibana connects to elasticsearch
|
||||
# the username is create with docker/elasticsearch/create_kibana_user.sh
|
||||
# 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,8 +6,7 @@ MYSQL_USER=wwwgmo
|
||||
MYSQL_PASSWORD=password
|
||||
MYSQL_TCP_PORT=3306
|
||||
# phpmyadmin
|
||||
PMA_HOST=wwwgmo-mariadb
|
||||
PMA_HOST=mariadb
|
||||
PMA_USER=root
|
||||
PMA_PASSWORD=pa55w0rd
|
||||
PMA_PORT=3306
|
||||
PMA_ARBITRARY=1
|
||||
@ -17,10 +17,17 @@
|
||||
#add_header Referrer-Policy "origin-when-cross-origin" always;
|
||||
#add_header Strict-Transport-Security "max-age=31536000" always;
|
||||
|
||||
server {
|
||||
listen 8080 default_server;
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
index index.php;
|
||||
root /var/www/html;
|
||||
listen 8080;
|
||||
listen 8443 ssl;
|
||||
ssl_certificate /etc/nginx/certs/tls.crt;
|
||||
ssl_certificate_key /etc/nginx/certs/tls.key;
|
||||
server_name _;
|
||||
error_log /dev/stderr;
|
||||
access_log /dev/stdout;
|
||||
@ -49,7 +56,7 @@
|
||||
|
||||
location ~* \.php$ {
|
||||
#fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_pass wwwgmo-php-fpm:9000;
|
||||
fastcgi_pass php-fpm:9000;
|
||||
#fastcgi_pass archivescacm-php-fpm:9000;
|
||||
include fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
|
||||
@ -1,22 +1,23 @@
|
||||
# site
|
||||
SITE_TITLE="Stack GMo - PHP-FPM - MariaDB - Elasticsearch"
|
||||
# must be the same that DOCKER_IMAGE_VERSION define in .env
|
||||
SITE_VERSION="3.25"
|
||||
SITE_VERSION=${DOCKER_IMAGE_VERSION}
|
||||
# db
|
||||
DB_NAME=wwwgmo
|
||||
DB_USER=wwwgmo
|
||||
DB_PASSWORD=password
|
||||
DB_HOST=wwwgmo-mariadb
|
||||
DB_HOST=mariadb
|
||||
DB_PORT=3306
|
||||
DB_TABLE=tbl_email
|
||||
# PMA
|
||||
# the port must be the same as PMA_PORT_WEB define in .env on root project path
|
||||
PMA_URL=http://gmoadm.gmolab.net:8084
|
||||
KIBANA_URL=http://gmoadm.gmolab.net:5601
|
||||
PMA_URL=https://docker1.gmolab.net:8084
|
||||
KIBANA_URL=https://docker1.gmolab.net:5601
|
||||
# Elsaticsearch/kibana
|
||||
ES_HOST=wwwgmo-elasticsearch:9200
|
||||
ES_HOST=elasticsearch:9200
|
||||
ES_USER=elastic
|
||||
ES_PASSWORD=pa55w0rd
|
||||
ES_INDEX=wwwgmo_index
|
||||
KIB_PORT=5601
|
||||
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#https://hub.docker.com/r/rhamdeew/docker-php-8-fpm-alpine/dockerfile
|
||||
#https://github.com/elastic/elasticsearch-php
|
||||
|
||||
FROM php:8.2.6-fpm-alpine
|
||||
FROM php:8.4-fpm-alpine3.22
|
||||
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
|
||||
|
||||
12
docker/phpmyadmin/apache-ssl.conf
Normal file
12
docker/phpmyadmin/apache-ssl.conf
Normal file
@ -0,0 +1,12 @@
|
||||
<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
docker/phpmyadmin/config.secret.inc.php
Normal file
1
docker/phpmyadmin/config.secret.inc.php
Normal file
@ -0,0 +1 @@
|
||||
<?php
|
||||
@ -26,4 +26,4 @@ version: 1.0.0
|
||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||
# It is recommended to use it with quotes.
|
||||
# Also set the docker image tag
|
||||
appVersion: "3.25-amd64"
|
||||
appVersion: "3.3.0"
|
||||
|
||||
@ -11,7 +11,7 @@ data:
|
||||
cluster.name: "wwwgmo-es"
|
||||
discovery.type: "single-node"
|
||||
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
|
||||
ELASTIC_USERNAME: elastic
|
||||
ELASTIC_HOST: "service-elasticsearch"
|
||||
xpack.security.enabled: "true"
|
||||
xpack.security.transport.ssl.enabled: "true"
|
||||
xpack.security.transport.ssl.enabled: "false"
|
||||
xpack.security.http.ssl.enabled: "false"
|
||||
|
||||
@ -9,4 +9,8 @@ metadata:
|
||||
{{- include "site.labels" . | nindent 4 }}
|
||||
type: Opaque
|
||||
stringData:
|
||||
ELASTIC_USERNAME: elastic
|
||||
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 }}"
|
||||
|
||||
@ -78,7 +78,22 @@ spec:
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 30
|
||||
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:
|
||||
- name: fix-permissions
|
||||
image: busybox
|
||||
@ -118,14 +133,8 @@ spec:
|
||||
app: elastic
|
||||
tier: elastic
|
||||
spec:
|
||||
{{- if eq "k3s" $.Values.kube }}
|
||||
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 }}
|
||||
accessModes: {{ required ".Values.common.pvc.accessModes entry is required!" .Values.common.pvc.accessModes }}
|
||||
storageClassName: {{ required ".Values.common.pvc.storageClassName entry is required!" .Values.common.pvc.storageClassName }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ required ".Values.elastic.persistentVolumeClaim.storageRequest entry is required!" .Values.elastic.persistentVolumeClaim.storageRequest }}
|
||||
|
||||
@ -7,6 +7,17 @@ metadata:
|
||||
app: site
|
||||
tier: kibana
|
||||
{{- include "site.labels" . | nindent 4 }}
|
||||
# envFrom:
|
||||
# - secretRef:
|
||||
# name: secret-elasticsearch
|
||||
data:
|
||||
ELASTICSEARCH_HOSTS: "{{ required ".Values.kibana.host entry is required!" .Values.kibana.host }}"
|
||||
#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_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 }}"
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ spec:
|
||||
automountServiceAccountToken: false
|
||||
containers:
|
||||
- name: kibana
|
||||
image: docker.elastic.co/kibana/kibana:7.17.10
|
||||
image: docker.elastic.co/kibana/kibana:{{ required ".Values.elastic.imageTag entry is required!" .Values.elastic.imageTag }}
|
||||
imagePullPolicy: IfNotPresent
|
||||
|
||||
envFrom:
|
||||
|
||||
@ -4,17 +4,13 @@ metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
name: ingress-kibana
|
||||
spec:
|
||||
{{- if eq "k3s" $.Values.kube }}
|
||||
ingressClassName: traefik
|
||||
{{- end }}
|
||||
{{- if eq "k8s" $.Values.kube }}
|
||||
ingressClassName: nginx
|
||||
{{- end }}
|
||||
ingressClassName: {{ required ".Values.common.ingress.ingressClassName entry is required!" .Values.common.ingress.ingressClassName }}
|
||||
{{- if .Values.site.tls.enabled }}
|
||||
tls:
|
||||
- hosts:
|
||||
{{ required ".Values.site.ingress.kibana.hosts entry is required!" .Values.site.ingress.kibana.hosts }}
|
||||
{{ required ".Values.site.ingres.kibana.hosts entry is required!" .Values.site.ingress.kibana.hosts }}
|
||||
secretName: secret-ingress-tls
|
||||
|
||||
{{- end }}
|
||||
rules:
|
||||
- host: {{ required ".Values.site.urlKibana entry is required!" .Values.site.urlKibana }}
|
||||
http:
|
||||
@ -26,4 +22,3 @@ spec:
|
||||
name: service-kibana
|
||||
port:
|
||||
number: 5601
|
||||
|
||||
@ -7,4 +7,12 @@ metadata:
|
||||
{{- include "site.labels" . | nindent 4 }}
|
||||
type: Opaque
|
||||
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,7 +8,6 @@ metadata:
|
||||
data:
|
||||
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_PASSWORD: "{{ required ".Values.mariadb.dbPass entry is required!" .Values.mariadb.dbPass }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
|
||||
55
helm/templates/mariadb/job-mariadb.yaml
Normal file
55
helm/templates/mariadb/job-mariadb.yaml
Normal file
@ -0,0 +1,55 @@
|
||||
# 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,16 +8,8 @@ metadata:
|
||||
annotations:
|
||||
helm.sh/resource-policy: keep
|
||||
spec:
|
||||
{{- if eq "k3s" $.Values.kube }}
|
||||
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 }}
|
||||
accessModes: {{ required ".Values.common.pvc.accessModes entry is required!" .Values.common.pvc.accessModes }}
|
||||
storageClassName: {{ required ".Values.common.pvc.storageClassName entry is required!" .Values.common.pvc.storageClassName }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ required ".Values.site.marioadb.persistentVolumeClaim.storageRequest entry is required!" .Values.mariadb.persistentVolumeClaim.storageRequest }}
|
||||
@ -32,16 +24,8 @@ metadata:
|
||||
annotations:
|
||||
helm.sh/resource-policy: keep
|
||||
spec:
|
||||
{{- if eq "k3s" $.Values.kube }}
|
||||
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 }}
|
||||
accessModes: {{ required ".Values.common.pvc.accessModes entry is required!" .Values.common.pvc.accessModes }}
|
||||
storageClassName: {{ required ".Values.common.pvc.storageClassName entry is required!" .Values.common.pvc.storageClassName }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ required ".Values.mariadb.persistentVolumeClaim.backupdDbStorageRequest entry is required!" .Values.mariadb.persistentVolumeClaim.backupdDbStorageRequest }}
|
||||
storage: {{ required ".Values.mariadb.persistentVolumeClaim.backupDbStorageRequest entry is required!" .Values.mariadb.persistentVolumeClaim.backupDbStorageRequest }}
|
||||
|
||||
@ -8,3 +8,4 @@ metadata:
|
||||
type: Opaque
|
||||
stringData:
|
||||
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 }}"
|
||||
|
||||
@ -37,14 +37,20 @@ spec:
|
||||
ports:
|
||||
- containerPort: 3306
|
||||
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:
|
||||
tcpSocket:
|
||||
port: 3306
|
||||
failureThreshold: 12
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
initialDelaySeconds: 10 # waiting time before the first test
|
||||
periodSeconds: 10 # test frequency (every 10 seconds)
|
||||
failureThreshold: 30 # number of failures before considering the container not starting
|
||||
|
||||
# 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:
|
||||
tcpSocket:
|
||||
port: 3306
|
||||
@ -53,13 +59,29 @@ spec:
|
||||
initialDelaySeconds: 0
|
||||
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:
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 3
|
||||
tcpSocket:
|
||||
port: 3306
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: 3306
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 0
|
||||
timeoutSeconds: 5
|
||||
#readinessProbe:
|
||||
# tcpSocket:
|
||||
# port: 3306
|
||||
# periodSeconds: 10
|
||||
# failureThreshold: 3
|
||||
# initialDelaySeconds: 0
|
||||
# timeoutSeconds: 5
|
||||
|
||||
resources:
|
||||
requests:
|
||||
|
||||
@ -13,8 +13,10 @@ data:
|
||||
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_TABLE: "{{ required ".Values.site.phpfpmSite.db.tabl entry is required!" .Values.site.phpfpmSite.db.tabl }}"
|
||||
PMA_URL: "https://{{ required ".Values.site.urlPma entry is required!" .Values.site.urlPma }}"
|
||||
PMA_URL: "{{ required ".Values.site.proto entry is required!" .Values.site.proto }}://{{ 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_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 }}"
|
||||
KIBANA_URL: "https://{{ required ".Values.site.utlKibana entry is required!" .Values.site.urlKibana }}"
|
||||
KIBANA_URL: "{{ required ".Values.site.proto entry is required!" .Values.site.proto }}://{{ required ".Values.site.urlKibana entry is required!" .Values.site.urlKibana }}"
|
||||
#KIBANA_URL: "{{ required ".Values.site.urlKibana entry is required!" .Values.site.urlKibana }}"
|
||||
|
||||
@ -99,7 +99,7 @@ spec:
|
||||
# - ALL
|
||||
|
||||
### Container 2 : PHP-FPM
|
||||
- image: {{ required ".Values.site.phpfpmSite.repository entry is required!" .Values.site.phpfpmSite.repository }}:{{ required ".Chart.AppVersion entry is required!" .Chart.AppVersion }}
|
||||
- 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 }}
|
||||
imagePullPolicy: {{ required ".Values.site.phpfpmSite.pullPolicy entry is required!" .Values.site.phpfpmSite.pullPolicy }}
|
||||
name: phpfpm
|
||||
|
||||
|
||||
@ -22,16 +22,13 @@ metadata:
|
||||
{{- end }}
|
||||
|
||||
spec:
|
||||
{{- if eq "k3s" $.Values.kube }}
|
||||
ingressClassName: traefik
|
||||
{{- end }}
|
||||
{{- if eq "k8s" $.Values.kube }}
|
||||
ingressClassName: nginx
|
||||
{{- end }}
|
||||
ingressClassName: {{ required ".Values.common.ingress.ingressClassName entry is required!" .Values.common.ingress.ingressClassName }}
|
||||
{{- if .Values.site.tls.enabled }}
|
||||
tls:
|
||||
- hosts:
|
||||
{{ required ".Values.site.ingress.site.hosts entry is required!" .Values.site.ingress.site.hosts }}
|
||||
secretName: secret-ingress-tls
|
||||
{{- end }}
|
||||
rules:
|
||||
- host: {{ required ".Values.site.host entry is required!" .Values.site.host }}
|
||||
http:
|
||||
@ -43,4 +40,3 @@ spec:
|
||||
name: service-site
|
||||
port:
|
||||
number: 8080
|
||||
|
||||
@ -10,16 +10,8 @@ metadata:
|
||||
annotations:
|
||||
helm.sh/resource-policy: keep
|
||||
spec:
|
||||
{{- if eq "k3s" $.Values.kube }}
|
||||
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 }}
|
||||
accessModes: {{ required ".Values.common.pvc.accessModes entry is required!" .Values.common.pvc.accessModes }}
|
||||
storageClassName: {{ required ".Values.common.pvc.storageClassName entry is required!" .Values.common.pvc.storageClassName }}
|
||||
resources:
|
||||
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,4 +7,3 @@ kind: Secret
|
||||
metadata:
|
||||
name: secret-ingress-tls
|
||||
namespace: {{ .Release.Namespace }}
|
||||
type: kubernetes.io/tls
|
||||
@ -5,4 +5,3 @@ kind: Secret
|
||||
metadata:
|
||||
name: secret-regcred
|
||||
namespace: {{ .Release.Namespace }}
|
||||
type: kubernetes.io/dockerconfigjson
|
||||
@ -9,4 +9,3 @@ type: Opaque
|
||||
stringData:
|
||||
DB_PASSWORD: "{{ required ".Values.mariadb.dbPass entry is required!" .Values.mariadb.dbPass }}"
|
||||
ES_PASSWORD: "{{ required ".Values.elastic.password entry is required!" .Values.elastic.password }}"
|
||||
|
||||
@ -15,4 +15,3 @@ spec:
|
||||
selector:
|
||||
app: site
|
||||
tier: backend
|
||||
type: ClusterIP
|
||||
@ -10,6 +10,13 @@ metadata:
|
||||
#traefik.ingress.kubernetes.io/rewrite-target: /
|
||||
#traefik.ingress.kubernetes.io/rule-type: PathPrefixStrip
|
||||
{{- 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 }}
|
||||
#kubernetes.io/ingress.allow-http: "false"
|
||||
#nginx.ingress.kubernetes.io/affinity: "cookie"
|
||||
@ -18,16 +25,13 @@ metadata:
|
||||
#nginx.org/client-max-body-size: "32m"
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if eq "k3s" $.Values.kube }}
|
||||
ingressClassName: traefik
|
||||
{{- end }}
|
||||
{{- if eq "k8s" $.Values.kube }}
|
||||
ingressClassName: nginx
|
||||
{{- end }}
|
||||
ingressClassName: {{ required ".Values.common.ingress.ingressClassName entry is required!" .Values.common.ingress.ingressClassName }}
|
||||
{{- if .Values.site.tls.enabled }}
|
||||
tls:
|
||||
- hosts:
|
||||
{{ required ".Values.site.ingress.pma.hosts entry is required!" .Values.site.ingress.pma.hosts }}
|
||||
secretName: secret-ingress-tls
|
||||
{{- end }}
|
||||
rules:
|
||||
- host: {{ required ".Values.site.urlPma entry is required!" .Values.site.urlPma }}
|
||||
http:
|
||||
@ -39,4 +43,3 @@ spec:
|
||||
name: service-pma
|
||||
port:
|
||||
number: 80
|
||||
|
||||
@ -11,4 +11,3 @@ spec:
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
||||
@ -5,22 +5,26 @@
|
||||
# elasticsearch
|
||||
elastic:
|
||||
priorityClassName: system-cluster-critical
|
||||
imageTag: 7.17.16
|
||||
imageTag: 9.0.2
|
||||
persistentVolumeClaim:
|
||||
#storageRequest: 1Gi
|
||||
storageRequest: 500M
|
||||
k3sStorageClassName: local-path
|
||||
kindStorageClassName: standard
|
||||
k8sStorageClassName: longhorn
|
||||
host: http://service-elasticsearch:9200
|
||||
|
||||
kibana:
|
||||
username: elastic
|
||||
imageTag: 9.0.2
|
||||
username: kibana_system_user
|
||||
priorityClassName: system-node-critical
|
||||
host: http://statefulset-elasticsearch-0.service-elasticsearch:9200
|
||||
# host: http://service-elasticsearch:9200
|
||||
|
||||
mariadb:
|
||||
repository: mariadb
|
||||
pullPolicy: Always
|
||||
tag: "10.11.7"
|
||||
#tag: "11.2"
|
||||
databaseName: gmo_db
|
||||
innoDbBufferPoolSize: 256M
|
||||
queryCacheSize: 256M
|
||||
@ -38,9 +42,12 @@ mariadb:
|
||||
storageRequest: 500M
|
||||
backupdDbStorageRequest: 500M
|
||||
k3sStorageClassName: local-path
|
||||
kindStorageClassName: standard
|
||||
k8sStorageClassName: longhorn
|
||||
|
||||
site:
|
||||
tls:
|
||||
enabled: false
|
||||
host: wwwgmo.gmolab.net
|
||||
urlPma: wwwgmo-pma.gmolab.net
|
||||
urlKibana: wwwgmo-kibana.gmolab.net
|
||||
@ -77,6 +84,7 @@ site:
|
||||
|
||||
phpfpmSite:
|
||||
repository: gmouchet/wwwgmo-php-fpm
|
||||
imageTag:
|
||||
pullPolicy: Always
|
||||
ressourceRequest:
|
||||
memory: 16M #16 Mo RAM
|
||||
@ -102,8 +110,6 @@ site:
|
||||
persistentVolumeClaim:
|
||||
storageRequest: 500M
|
||||
k3sStorageClassName: local-path
|
||||
kindStorageClassName: standard
|
||||
k8sStorageClassName: longhorn
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
124
helm/values-k8s-configs.yaml
Normal file
124
helm/values-k8s-configs.yaml
Normal file
@ -0,0 +1,124 @@
|
||||
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
|
||||
|
||||
|
||||
|
||||
13
helm/values-k8s-secrets.yaml
Normal file
13
helm/values-k8s-secrets.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
site:
|
||||
ssl_key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ1ZMK0NrbGE4SWwyaFUKSDZOZEtGT2JHd2R3MHZQaG5HTkx1WjdsZFVlMnNoMTRZYmMvS21nUll0c09tRFZYVE9HNWlYWmVQWjlqV2RtdApBV2Nkbk9SME1wMXV1anJWMVIyQkZQN1htbUJuMjNtODVmQk5GS05tbzlVLytIQkFoaW95NjQ1Z2lqZFFJNjAyClNsUEZHSWJ5Tms1TEZlMFA4UnNHQmNZSy9DSyt1ay9WNUpMczV0dGtMa2FIOHBxaXA4Y2VjZURQbGdIS0hadHcKN2ZpelZ1WG9taFRkbmNmd2VTb1R0c0VpSlE3Y2F2cnllNlJnYXFDejE0TkFTSmhadnp5bmdVZS91Q3hqQ0paNQo0RFhqdHUyWDBKSGl3WWRDL0hUU0NjTlI4S0NMc0RMWFY4VmR6ZUM5SzM0RDY0Q2IvaDhhejdzZ2c0WG5SUFVICmRIUk9ab3VmQWdNQkFBRUNnZ0VBRGpNRXRrV0tQUGx1M3ZXS21VeEVTNGY5WTZTckVtSE4wRXIyTDdBWThrVHUKVkhpTElNSksyTDl5OVdiNzlMZUc2SFRkUlBKU2l2bmwrUGNnTnd1cGNYeDd5dFV1SjdvUUE5V0VFcHRKUDdsVApxSmRZdkNLOFpxd3Q3aTBabEsvd1c1dXdsOG12K0JCZE9tOUZSOXQzYjBoSFFyMloxdmJ1SG9XZ0tETFZUOEoxCis1MXlISC9VbGlIb0E4bzkxYUd3K3F5KzllWlJrdGpxSmlOWXpGMUMzVDB5Sk1yQXdxZXU4Z09ic2k3c2kwMWkKZ254d1VISDVVckNjaXZRTzQxWFBjUW5QYzQ5dTE4bkFRSGRxTTZNL05yTzZwWENUTnY0OHY2OEZsaDlmanBqawpvUDVJN0IwRThOTE5ZSDkyMEJUbE1hRFUvYVAwdE9HRXJHblgyWElBY1FLQmdRQzZRbFpJMjAyTmZMWnVSVmhoCjBMN3A4VklXWnE3UEl2US9tRHF4Rlc4WllkQk14RXY2UFZVTTl6VHVsVVh2TlM2SE9ncHAxUGxGVVNHM2dQRzUKZU1nR1piTTZjczJwM1dmOVVjZ1ZQYXM3Q2lGYnRZZXdJS0dYMWY5OHFMTU4ybkFTd2dVU0N5eUQrZER0UVpDWQp1VlRybnhZbUkrOHlBUFpOR3pSVUVNUnh1UUtCZ1FETkRBalpWTmNOeGJaVW1YWkZrMEp1YnNLUGZVMStYZVdrCkxCYkVCaDZwVG5hOWNVTE5Cc0F1ZjI4cEpFS1FQeXc4SVFEUDIwaDJXWUdIQ1FtNFZyMEM1TVN3TFVxNGdsalgKNHJ3bmxSZE44MDNqbjJTVUJjV1lGSGdNc1EyN2ZRT2lvNnVnUnUrZ0U2ZDMwa0lYTW1waUp4eHNuN3V5L0JBOAp1Z0pBc1R6MEZ3S0JnRE56ejlJZ2dyUHJGNW91bmRPbmpwV2hqRU9UNmdaZWFZcUh5dTdRTlBpV0JLeXdMU3piCmRIczRidTdaWFpCTzZLT0NiUTMvUHp6ZXhLbWtmU0gzTTRwUTNjbnZuTkNuME9veGhVd1kxUXhpS0FUbGlLNG0KMVh6VUtOZU80cWVaQ0F5bWZEQVgxaHcvRG0vOEJLMnJ4TUd5R0xSQWlQc1BPUHJqNFBpNENReEJBb0dBTmw0bgpob0N4V095QWtPUHo4VFMvbTRwd3VoMHVUQUJYb0hVMFFCdWpTNThMYXVXNklhVFZsajZoMmRYTWRIVGJwTUhYCmRrV2RiQXdGaFNtSFUwSmtjWHo1RGdHa1cxSHNmcW1XM0NQeS91OHhTdFo3azZnSUlXL2orUEdGUTU0OU5ZV1MKUHpndjExRCt5WTJOaXBzS2pDWDBxblNjRHpRNGxmRjRJWEVkU1ZjQ2dZRUF0VVQ2Y1BYdnYxamM4WVUvN3BjTApXR21WYldjcDNXbW5VK2FoaXBVM2l6YmxEUGkvWUR0aVhKSFVoYUl1TnZySVBKL2VIT1psejRPcVViS015YzFyCjV2blUrajg3MnZOdGViVkphemd1SHBHTzY3SVFrNHdJamp0TlQrQUYybUhjdnJUVTYyay9hWHJFSGN4ekZMMTMKcW1TcHNUVWtJYXFaZ2VMUERWMWNOZWc9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
|
||||
|
||||
mariadb:
|
||||
rootPass: pa55w0rd
|
||||
dbPass: passw0rd
|
||||
|
||||
elastic:
|
||||
password: pa55w0rd
|
||||
|
||||
kibana:
|
||||
password: kibanaPass55w0rd
|
||||
|
||||
124
helm/values-kind-configs.yaml
Normal file
124
helm/values-kind-configs.yaml
Normal file
@ -0,0 +1,124 @@
|
||||
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
|
||||
|
||||
|
||||
|
||||
13
helm/values-kind-secrets.yaml
Normal file
13
helm/values-kind-secrets.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
site:
|
||||
ssl_key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ1ZMK0NrbGE4SWwyaFUKSDZOZEtGT2JHd2R3MHZQaG5HTkx1WjdsZFVlMnNoMTRZYmMvS21nUll0c09tRFZYVE9HNWlYWmVQWjlqV2RtdApBV2Nkbk9SME1wMXV1anJWMVIyQkZQN1htbUJuMjNtODVmQk5GS05tbzlVLytIQkFoaW95NjQ1Z2lqZFFJNjAyClNsUEZHSWJ5Tms1TEZlMFA4UnNHQmNZSy9DSyt1ay9WNUpMczV0dGtMa2FIOHBxaXA4Y2VjZURQbGdIS0hadHcKN2ZpelZ1WG9taFRkbmNmd2VTb1R0c0VpSlE3Y2F2cnllNlJnYXFDejE0TkFTSmhadnp5bmdVZS91Q3hqQ0paNQo0RFhqdHUyWDBKSGl3WWRDL0hUU0NjTlI4S0NMc0RMWFY4VmR6ZUM5SzM0RDY0Q2IvaDhhejdzZ2c0WG5SUFVICmRIUk9ab3VmQWdNQkFBRUNnZ0VBRGpNRXRrV0tQUGx1M3ZXS21VeEVTNGY5WTZTckVtSE4wRXIyTDdBWThrVHUKVkhpTElNSksyTDl5OVdiNzlMZUc2SFRkUlBKU2l2bmwrUGNnTnd1cGNYeDd5dFV1SjdvUUE5V0VFcHRKUDdsVApxSmRZdkNLOFpxd3Q3aTBabEsvd1c1dXdsOG12K0JCZE9tOUZSOXQzYjBoSFFyMloxdmJ1SG9XZ0tETFZUOEoxCis1MXlISC9VbGlIb0E4bzkxYUd3K3F5KzllWlJrdGpxSmlOWXpGMUMzVDB5Sk1yQXdxZXU4Z09ic2k3c2kwMWkKZ254d1VISDVVckNjaXZRTzQxWFBjUW5QYzQ5dTE4bkFRSGRxTTZNL05yTzZwWENUTnY0OHY2OEZsaDlmanBqawpvUDVJN0IwRThOTE5ZSDkyMEJUbE1hRFUvYVAwdE9HRXJHblgyWElBY1FLQmdRQzZRbFpJMjAyTmZMWnVSVmhoCjBMN3A4VklXWnE3UEl2US9tRHF4Rlc4WllkQk14RXY2UFZVTTl6VHVsVVh2TlM2SE9ncHAxUGxGVVNHM2dQRzUKZU1nR1piTTZjczJwM1dmOVVjZ1ZQYXM3Q2lGYnRZZXdJS0dYMWY5OHFMTU4ybkFTd2dVU0N5eUQrZER0UVpDWQp1VlRybnhZbUkrOHlBUFpOR3pSVUVNUnh1UUtCZ1FETkRBalpWTmNOeGJaVW1YWkZrMEp1YnNLUGZVMStYZVdrCkxCYkVCaDZwVG5hOWNVTE5Cc0F1ZjI4cEpFS1FQeXc4SVFEUDIwaDJXWUdIQ1FtNFZyMEM1TVN3TFVxNGdsalgKNHJ3bmxSZE44MDNqbjJTVUJjV1lGSGdNc1EyN2ZRT2lvNnVnUnUrZ0U2ZDMwa0lYTW1waUp4eHNuN3V5L0JBOAp1Z0pBc1R6MEZ3S0JnRE56ejlJZ2dyUHJGNW91bmRPbmpwV2hqRU9UNmdaZWFZcUh5dTdRTlBpV0JLeXdMU3piCmRIczRidTdaWFpCTzZLT0NiUTMvUHp6ZXhLbWtmU0gzTTRwUTNjbnZuTkNuME9veGhVd1kxUXhpS0FUbGlLNG0KMVh6VUtOZU80cWVaQ0F5bWZEQVgxaHcvRG0vOEJLMnJ4TUd5R0xSQWlQc1BPUHJqNFBpNENReEJBb0dBTmw0bgpob0N4V095QWtPUHo4VFMvbTRwd3VoMHVUQUJYb0hVMFFCdWpTNThMYXVXNklhVFZsajZoMmRYTWRIVGJwTUhYCmRrV2RiQXdGaFNtSFUwSmtjWHo1RGdHa1cxSHNmcW1XM0NQeS91OHhTdFo3azZnSUlXL2orUEdGUTU0OU5ZV1MKUHpndjExRCt5WTJOaXBzS2pDWDBxblNjRHpRNGxmRjRJWEVkU1ZjQ2dZRUF0VVQ2Y1BYdnYxamM4WVUvN3BjTApXR21WYldjcDNXbW5VK2FoaXBVM2l6YmxEUGkvWUR0aVhKSFVoYUl1TnZySVBKL2VIT1psejRPcVViS015YzFyCjV2blUrajg3MnZOdGViVkphemd1SHBHTzY3SVFrNHdJamp0TlQrQUYybUhjdnJUVTYyay9hWHJFSGN4ekZMMTMKcW1TcHNUVWtJYXFaZ2VMUERWMWNOZWc9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
|
||||
|
||||
mariadb:
|
||||
rootPass: pa55w0rd
|
||||
dbPass: passw0rd
|
||||
|
||||
elastic:
|
||||
password: pa55w0rd
|
||||
|
||||
kibana:
|
||||
password: kibanaPass55w0rd
|
||||
|
||||
@ -7,4 +7,7 @@ mariadb:
|
||||
|
||||
elastic:
|
||||
password: pa55w0rd
|
||||
|
||||
kibana:
|
||||
password: kibanaPass55w0rd
|
||||
|
||||
|
||||
125
helm/values-vdgkind-configs.yaml
Normal file
125
helm/values-vdgkind-configs.yaml
Normal file
@ -0,0 +1,125 @@
|
||||
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
|
||||
|
||||
|
||||
|
||||
13
helm/values-vdgkind-secrets.yaml
Normal file
13
helm/values-vdgkind-secrets.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
site:
|
||||
ssl_key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ1ZMK0NrbGE4SWwyaFUKSDZOZEtGT2JHd2R3MHZQaG5HTkx1WjdsZFVlMnNoMTRZYmMvS21nUll0c09tRFZYVE9HNWlYWmVQWjlqV2RtdApBV2Nkbk9SME1wMXV1anJWMVIyQkZQN1htbUJuMjNtODVmQk5GS05tbzlVLytIQkFoaW95NjQ1Z2lqZFFJNjAyClNsUEZHSWJ5Tms1TEZlMFA4UnNHQmNZSy9DSyt1ay9WNUpMczV0dGtMa2FIOHBxaXA4Y2VjZURQbGdIS0hadHcKN2ZpelZ1WG9taFRkbmNmd2VTb1R0c0VpSlE3Y2F2cnllNlJnYXFDejE0TkFTSmhadnp5bmdVZS91Q3hqQ0paNQo0RFhqdHUyWDBKSGl3WWRDL0hUU0NjTlI4S0NMc0RMWFY4VmR6ZUM5SzM0RDY0Q2IvaDhhejdzZ2c0WG5SUFVICmRIUk9ab3VmQWdNQkFBRUNnZ0VBRGpNRXRrV0tQUGx1M3ZXS21VeEVTNGY5WTZTckVtSE4wRXIyTDdBWThrVHUKVkhpTElNSksyTDl5OVdiNzlMZUc2SFRkUlBKU2l2bmwrUGNnTnd1cGNYeDd5dFV1SjdvUUE5V0VFcHRKUDdsVApxSmRZdkNLOFpxd3Q3aTBabEsvd1c1dXdsOG12K0JCZE9tOUZSOXQzYjBoSFFyMloxdmJ1SG9XZ0tETFZUOEoxCis1MXlISC9VbGlIb0E4bzkxYUd3K3F5KzllWlJrdGpxSmlOWXpGMUMzVDB5Sk1yQXdxZXU4Z09ic2k3c2kwMWkKZ254d1VISDVVckNjaXZRTzQxWFBjUW5QYzQ5dTE4bkFRSGRxTTZNL05yTzZwWENUTnY0OHY2OEZsaDlmanBqawpvUDVJN0IwRThOTE5ZSDkyMEJUbE1hRFUvYVAwdE9HRXJHblgyWElBY1FLQmdRQzZRbFpJMjAyTmZMWnVSVmhoCjBMN3A4VklXWnE3UEl2US9tRHF4Rlc4WllkQk14RXY2UFZVTTl6VHVsVVh2TlM2SE9ncHAxUGxGVVNHM2dQRzUKZU1nR1piTTZjczJwM1dmOVVjZ1ZQYXM3Q2lGYnRZZXdJS0dYMWY5OHFMTU4ybkFTd2dVU0N5eUQrZER0UVpDWQp1VlRybnhZbUkrOHlBUFpOR3pSVUVNUnh1UUtCZ1FETkRBalpWTmNOeGJaVW1YWkZrMEp1YnNLUGZVMStYZVdrCkxCYkVCaDZwVG5hOWNVTE5Cc0F1ZjI4cEpFS1FQeXc4SVFEUDIwaDJXWUdIQ1FtNFZyMEM1TVN3TFVxNGdsalgKNHJ3bmxSZE44MDNqbjJTVUJjV1lGSGdNc1EyN2ZRT2lvNnVnUnUrZ0U2ZDMwa0lYTW1waUp4eHNuN3V5L0JBOAp1Z0pBc1R6MEZ3S0JnRE56ejlJZ2dyUHJGNW91bmRPbmpwV2hqRU9UNmdaZWFZcUh5dTdRTlBpV0JLeXdMU3piCmRIczRidTdaWFpCTzZLT0NiUTMvUHp6ZXhLbWtmU0gzTTRwUTNjbnZuTkNuME9veGhVd1kxUXhpS0FUbGlLNG0KMVh6VUtOZU80cWVaQ0F5bWZEQVgxaHcvRG0vOEJLMnJ4TUd5R0xSQWlQc1BPUHJqNFBpNENReEJBb0dBTmw0bgpob0N4V095QWtPUHo4VFMvbTRwd3VoMHVUQUJYb0hVMFFCdWpTNThMYXVXNklhVFZsajZoMmRYTWRIVGJwTUhYCmRrV2RiQXdGaFNtSFUwSmtjWHo1RGdHa1cxSHNmcW1XM0NQeS91OHhTdFo3azZnSUlXL2orUEdGUTU0OU5ZV1MKUHpndjExRCt5WTJOaXBzS2pDWDBxblNjRHpRNGxmRjRJWEVkU1ZjQ2dZRUF0VVQ2Y1BYdnYxamM4WVUvN3BjTApXR21WYldjcDNXbW5VK2FoaXBVM2l6YmxEUGkvWUR0aVhKSFVoYUl1TnZySVBKL2VIT1psejRPcVViS015YzFyCjV2blUrajg3MnZOdGViVkphemd1SHBHTzY3SVFrNHdJamp0TlQrQUYybUhjdnJUVTYyay9hWHJFSGN4ekZMMTMKcW1TcHNUVWtJYXFaZ2VMUERWMWNOZWc9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
|
||||
|
||||
mariadb:
|
||||
rootPass: pa55w0rd
|
||||
dbPass: passw0rd
|
||||
|
||||
elastic:
|
||||
password: pa55w0rd
|
||||
|
||||
kibana:
|
||||
password: kibanaPass55w0rd
|
||||
|
||||
125
helm/values-vm-vdglab-configs.yaml
Normal file
125
helm/values-vm-vdglab-configs.yaml
Normal file
@ -0,0 +1,125 @@
|
||||
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
|
||||
|
||||
|
||||
|
||||
13
helm/values-vm-vdglab-secrets.yaml
Normal file
13
helm/values-vm-vdglab-secrets.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
site:
|
||||
ssl_key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ1ZMK0NrbGE4SWwyaFUKSDZOZEtGT2JHd2R3MHZQaG5HTkx1WjdsZFVlMnNoMTRZYmMvS21nUll0c09tRFZYVE9HNWlYWmVQWjlqV2RtdApBV2Nkbk9SME1wMXV1anJWMVIyQkZQN1htbUJuMjNtODVmQk5GS05tbzlVLytIQkFoaW95NjQ1Z2lqZFFJNjAyClNsUEZHSWJ5Tms1TEZlMFA4UnNHQmNZSy9DSyt1ay9WNUpMczV0dGtMa2FIOHBxaXA4Y2VjZURQbGdIS0hadHcKN2ZpelZ1WG9taFRkbmNmd2VTb1R0c0VpSlE3Y2F2cnllNlJnYXFDejE0TkFTSmhadnp5bmdVZS91Q3hqQ0paNQo0RFhqdHUyWDBKSGl3WWRDL0hUU0NjTlI4S0NMc0RMWFY4VmR6ZUM5SzM0RDY0Q2IvaDhhejdzZ2c0WG5SUFVICmRIUk9ab3VmQWdNQkFBRUNnZ0VBRGpNRXRrV0tQUGx1M3ZXS21VeEVTNGY5WTZTckVtSE4wRXIyTDdBWThrVHUKVkhpTElNSksyTDl5OVdiNzlMZUc2SFRkUlBKU2l2bmwrUGNnTnd1cGNYeDd5dFV1SjdvUUE5V0VFcHRKUDdsVApxSmRZdkNLOFpxd3Q3aTBabEsvd1c1dXdsOG12K0JCZE9tOUZSOXQzYjBoSFFyMloxdmJ1SG9XZ0tETFZUOEoxCis1MXlISC9VbGlIb0E4bzkxYUd3K3F5KzllWlJrdGpxSmlOWXpGMUMzVDB5Sk1yQXdxZXU4Z09ic2k3c2kwMWkKZ254d1VISDVVckNjaXZRTzQxWFBjUW5QYzQ5dTE4bkFRSGRxTTZNL05yTzZwWENUTnY0OHY2OEZsaDlmanBqawpvUDVJN0IwRThOTE5ZSDkyMEJUbE1hRFUvYVAwdE9HRXJHblgyWElBY1FLQmdRQzZRbFpJMjAyTmZMWnVSVmhoCjBMN3A4VklXWnE3UEl2US9tRHF4Rlc4WllkQk14RXY2UFZVTTl6VHVsVVh2TlM2SE9ncHAxUGxGVVNHM2dQRzUKZU1nR1piTTZjczJwM1dmOVVjZ1ZQYXM3Q2lGYnRZZXdJS0dYMWY5OHFMTU4ybkFTd2dVU0N5eUQrZER0UVpDWQp1VlRybnhZbUkrOHlBUFpOR3pSVUVNUnh1UUtCZ1FETkRBalpWTmNOeGJaVW1YWkZrMEp1YnNLUGZVMStYZVdrCkxCYkVCaDZwVG5hOWNVTE5Cc0F1ZjI4cEpFS1FQeXc4SVFEUDIwaDJXWUdIQ1FtNFZyMEM1TVN3TFVxNGdsalgKNHJ3bmxSZE44MDNqbjJTVUJjV1lGSGdNc1EyN2ZRT2lvNnVnUnUrZ0U2ZDMwa0lYTW1waUp4eHNuN3V5L0JBOAp1Z0pBc1R6MEZ3S0JnRE56ejlJZ2dyUHJGNW91bmRPbmpwV2hqRU9UNmdaZWFZcUh5dTdRTlBpV0JLeXdMU3piCmRIczRidTdaWFpCTzZLT0NiUTMvUHp6ZXhLbWtmU0gzTTRwUTNjbnZuTkNuME9veGhVd1kxUXhpS0FUbGlLNG0KMVh6VUtOZU80cWVaQ0F5bWZEQVgxaHcvRG0vOEJLMnJ4TUd5R0xSQWlQc1BPUHJqNFBpNENReEJBb0dBTmw0bgpob0N4V095QWtPUHo4VFMvbTRwd3VoMHVUQUJYb0hVMFFCdWpTNThMYXVXNklhVFZsajZoMmRYTWRIVGJwTUhYCmRrV2RiQXdGaFNtSFUwSmtjWHo1RGdHa1cxSHNmcW1XM0NQeS91OHhTdFo3azZnSUlXL2orUEdGUTU0OU5ZV1MKUHpndjExRCt5WTJOaXBzS2pDWDBxblNjRHpRNGxmRjRJWEVkU1ZjQ2dZRUF0VVQ2Y1BYdnYxamM4WVUvN3BjTApXR21WYldjcDNXbW5VK2FoaXBVM2l6YmxEUGkvWUR0aVhKSFVoYUl1TnZySVBKL2VIT1psejRPcVViS015YzFyCjV2blUrajg3MnZOdGViVkphemd1SHBHTzY3SVFrNHdJamp0TlQrQUYybUhjdnJUVTYyay9hWHJFSGN4ekZMMTMKcW1TcHNUVWtJYXFaZ2VMUERWMWNOZWc9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
|
||||
|
||||
mariadb:
|
||||
rootPass: pa55w0rd
|
||||
dbPass: passw0rd
|
||||
|
||||
elastic:
|
||||
password: pa55w0rd
|
||||
|
||||
kibana:
|
||||
password: kibanaPass55w0rd
|
||||
|
||||
@ -31,4 +31,3 @@ function checkindex($user,$password,$host,$index)
|
||||
|
||||
}
|
||||
return checkindex($es_user,$es_password,$es_host,$es_index)
|
||||
?>
|
||||
@ -1,10 +1,5 @@
|
||||
{
|
||||
"config": {
|
||||
"allow-plugins": {
|
||||
"php-http/discovery": true
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"elasticsearch/elasticsearch": "^7.17.2"
|
||||
"elasticsearch/elasticsearch": "^8.18"
|
||||
}
|
||||
}
|
||||
|
||||
1102
src/composer.lock
generated
1102
src/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
require_once "./vendor/autoload.php";
|
||||
use Elasticsearch\ClientBuilder;
|
||||
use Elastic\Elasticsearch\ClientBuilder;
|
||||
|
||||
require_once 'config.php';
|
||||
function connect_es($es_host, $es_user, $es_password)
|
||||
|
||||
@ -13,4 +13,3 @@ function connect($host, $db, $user, $password)
|
||||
}
|
||||
}
|
||||
|
||||
return connect($host, $db, $user, $password);
|
||||
@ -63,4 +63,3 @@ if (($handle = fopen($data_csv_file, "r")) !== FALSE) {
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
1
src/css/bootstrap-grid.css
vendored
1
src/css/bootstrap-grid.css
vendored
@ -2047,4 +2047,3 @@ html {
|
||||
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,4 +327,3 @@ template {
|
||||
[hidden] {
|
||||
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,4 +5,3 @@
|
||||
* 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)
|
||||
*/*,::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,4 +8972,3 @@ a.text-dark:hover, a.text-dark:focus {
|
||||
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,10 +34,31 @@ curl_close($curl);
|
||||
// decode
|
||||
$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
|
||||
echo "<h4>Informations</h4>";
|
||||
echo "<p><b>Name:</b> ".$response['name']."<br>";
|
||||
echo "<h3>Informations</h3>";
|
||||
echo "<h4>Elasticsearch cluster</h4>";
|
||||
echo "<p><b>Node name:</b> ".$response['name']."<br>";
|
||||
echo "<b>Cluster name:</b> ".$response['cluster_name']."<br>";
|
||||
echo "<b>Elasticsearch version:</b> ".$response['version']['number']."<br>";
|
||||
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,4 +2,3 @@
|
||||
<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 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: 684 B After Width: | Height: | Size: 678 B |
@ -1,4 +1,3 @@
|
||||
<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 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: 566 B After Width: | Height: | Size: 560 B |
@ -1,3 +1,2 @@
|
||||
<?php
|
||||
phpinfo();
|
||||
?>
|
||||
@ -39,4 +39,3 @@ if ($CSVvar !== FALSE) {
|
||||
<?php
|
||||
}
|
||||
fclose($CSVvar);
|
||||
?>
|
||||
@ -95,4 +95,3 @@ Yshi;Potte;yshi@yshipotte.ch;
|
||||
Yvan;Descloux;yvan@yvandescloux.ch;
|
||||
Yves;Rogne;yves@yvesrogne.ch;
|
||||
Yves;Vaurien;yves@yvesvaurien.ch;
|
||||
Yvon;Pasbien;yvon@yvonpasbien.ch;
|
||||
|
@ -1,3 +1,2 @@
|
||||
Alex;Kuze;alex@alexkuze.ch;
|
||||
Ali;Gator;ali@aligator.ch;
|
||||
Alphonse;Danltas;alphonse@alphonsedanltas.ch;
|
||||
|
@ -103,4 +103,3 @@ if ($index_status == 200) {
|
||||
else {
|
||||
echo "Problem with index <b>".$es_index."</b> (".$index_status.")";
|
||||
}
|
||||
?>
|
||||
Loading…
x
Reference in New Issue
Block a user