132 lines
4.5 KiB
YAML
132 lines
4.5 KiB
YAML
image:
|
|
repository: serverlein/tsn-ranksystem-webserver
|
|
pullPolicy: IfNotPresent
|
|
tag: latest@sha256:a6e549fc701e2eb9aac7f3ae74031aec9521d82548a04fe1a26500c33817e58b
|
|
|
|
securityContext:
|
|
container:
|
|
readOnlyRootFilesystem: false
|
|
|
|
ranksystem:
|
|
cron_enabled: true
|
|
cron_schedule: "*/5 * * * *"
|
|
|
|
workload:
|
|
main:
|
|
podSpec:
|
|
initContainers:
|
|
download-ranksystem:
|
|
enabled: true
|
|
type: init
|
|
imageSelector: "image"
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
args:
|
|
- |
|
|
web_location={{ .Values.persistence.web.targetSelector.main.main.mountPath }}
|
|
indexFile=${web_location}/index.php
|
|
|
|
if [ ! -f "${indexFile}" ]; then
|
|
# download with curl as git & wget not available
|
|
# automatically fetch newest version
|
|
LOCATION=$(curl -s https://api.github.com/repos/Newcomer1989/TSN-Ranksystem/releases/latest \
|
|
| grep "tarball_url" \
|
|
| awk '{ print $2 }' \
|
|
| sed 's/,$//' \
|
|
| sed 's/"//g' ) \
|
|
; curl -sL -o ${web_location}/ranksystem.tar.gz $LOCATION
|
|
# unzip file
|
|
tar -xzf ${web_location}/ranksystem.tar.gz
|
|
# get topfolder
|
|
top_folder=$(find ${web_location} -type d -name "Newcomer*" -exec basename \{} .po \;)
|
|
# move to topfolder
|
|
mv ${top_folder}/* ${web_location}
|
|
# delete obsolete folders & files
|
|
rm -rf ${web_location}/ranksystem.tar.gz ${top_folder}
|
|
|
|
webinterface_location=${web_location}/webinterface
|
|
navFile=${webinterface_location}/_nav.php
|
|
workerFile=${web_location}/worker.php
|
|
|
|
# remove annoying SSL message (doesnt work with traefik/ingress)
|
|
sed -i "$(($(wc -l < ${navFile})-4)),$(($(wc -l < ${navFile})))d" ${navFile}
|
|
|
|
# change help() to check() in worker.php
|
|
sed -i "s/\bhelp();/check();/g" ${workerFile}
|
|
echo "Files downloaded and installed."
|
|
echo "Folder :$PWD"
|
|
echo "Files:"
|
|
ls
|
|
else
|
|
echo "Files Located. No action needed."
|
|
fi
|
|
containers:
|
|
main:
|
|
lifecycle:
|
|
postStart:
|
|
type: exec
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
web_location={{ .Values.persistence.web.targetSelector.main.main.mountPath }}
|
|
if [ -f "${web_location}/install.php" ]; then
|
|
curl -v -X POST -d "dbtype=mysql&dbhost={{ .Values.mariadb.creds.plainhost | trimAll "\"" }}&dbname={{ .Values.mariadb.mariadbDatabase }}&dbuser={{ .Values.mariadb.mariadbUsername }}&dbpass={{ .Values.mariadb.creds.mariadbPassword | trimAll "\"" }}&install=&installchecked=" http://localhost/install.php
|
|
sleep 1;
|
|
curl -v -X POST -d "user=ranksystem&pass=ranksystem&confweb=" http://localhost/install.php
|
|
echo "Install script executed."
|
|
else
|
|
echo "Install script doesnt exists, no further action is needed."
|
|
fi
|
|
ranksystem-cron:
|
|
enabled: "{{ .Values.ranksystem.cron_enabled }}"
|
|
type: CronJob
|
|
schedule: "{{ .Values.ranksystem.cron_schedule }}"
|
|
podSpec:
|
|
restartPolicy: OnFailure
|
|
containers:
|
|
ranksystem-cron:
|
|
primary: true
|
|
enabled: true
|
|
imageSelector: "image"
|
|
probes:
|
|
liveness:
|
|
enabled: false
|
|
readiness:
|
|
enabled: false
|
|
startup:
|
|
enabled: false
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
name={{ include "tc.v1.common.lib.chart.names.fullname" $ }}
|
|
port={{ .Values.service.main.ports.main.port }}
|
|
while ! curl -s -o -v /dev/null http://${name}:${port}/worker.php; do sleep 1; done && \
|
|
curl -v -X GET -d "action=run_command" http://${name}:${port}/worker.php
|
|
|
|
service:
|
|
main:
|
|
ports:
|
|
main:
|
|
targetPort: 80
|
|
port: 9300
|
|
persistence:
|
|
web:
|
|
enabled: true
|
|
targetSelector:
|
|
main:
|
|
main:
|
|
mountPath: /var/www/html
|
|
download-ranksystem:
|
|
mountPath: /var/www/html
|
|
mariadb:
|
|
enabled: true
|
|
includeCommon: true
|
|
mariadbUsername: ranksystem
|
|
mariadbDatabase: ranksystem
|
|
portal:
|
|
open:
|
|
enabled: true
|