97 lines
2.7 KiB
YAML
97 lines
2.7 KiB
YAML
{{- if not .Values.jsonServer.seedData.existingConfigMap }}
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: {{ .Release.Name }}-configmap
|
|
data:
|
|
index.html: |
|
|
<html>
|
|
<head>
|
|
<link
|
|
rel="stylesheet"
|
|
href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
|
|
integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay"
|
|
crossorigin="anonymous"
|
|
/>
|
|
<link rel="stylesheet" href="style.css" />
|
|
<title>JSON Server</title>
|
|
</head>
|
|
|
|
<body>
|
|
<header>
|
|
<div class="container">
|
|
<nav>
|
|
<ul>
|
|
<li class="title">
|
|
JSON Server
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
<main>
|
|
<div class="container">
|
|
<h1>Congrats!</h1>
|
|
<p>
|
|
You're successfully running JSON Server
|
|
<br />
|
|
✧*。٩(ˊᗜˋ*)و✧*。
|
|
</p>
|
|
|
|
<div id="resources"></div>
|
|
|
|
</div>
|
|
</main>
|
|
|
|
<footer>
|
|
<div class="container">
|
|
<p>
|
|
Howdy mates!
|
|
</p>
|
|
</div>
|
|
</footer>
|
|
|
|
<script src="script.js"></script>
|
|
</body>
|
|
</html>
|
|
update.sh: |
|
|
#!/bin/bash
|
|
|
|
while getopts u: flag
|
|
do
|
|
case "${flag}" in
|
|
u) URL=${OPTARG};;
|
|
esac
|
|
done
|
|
|
|
[[ $(getent hosts $URL) ]] || {
|
|
echo 'Could not resolve' $URL
|
|
exit 1
|
|
}
|
|
|
|
echo '['$(date "+%Y-%m-%d %H:%M:%S")'] Started polling helm releases with 60 second interval'
|
|
|
|
while sleep 60;
|
|
do
|
|
echo '['$(date "+%Y-%m-%d %H:%M:%S")']' $(curl -ks https://$URL/components | jq length) 'known releases in database'
|
|
|
|
for entry in $(helm list --all-namespaces --output json | jq -r '.[] | @base64'); do
|
|
RELEASE=$(echo $entry | base64 -d | jq -cS '.type="helm" | del(.namespace, .revision, .status)')
|
|
APP_NAME=$(echo $RELEASE | jq -r '.name')
|
|
APP_ID=$(curl -ks https://$URL/components?name=$APP_NAME | jq -r '.[0].id')
|
|
|
|
# Release is not yet in database
|
|
[ "$APP_ID" == null ] && {
|
|
curl -ks -X POST https://$URL/components -H 'Content-Type: application/json' --data "$RELEASE" -o /dev/null
|
|
}
|
|
# Release is already in database
|
|
[ "$APP_ID" != null ] && {
|
|
curl -ks -X PATCH https://$URL/components/$APP_ID -H 'Content-Type: application/json' --data "$RELEASE" -o /dev/null
|
|
}
|
|
done
|
|
|
|
done
|
|
db.json: |
|
|
{{ include "common.tplvalues.render" ( dict "value" .Values.jsonServer.seedData.configInline "context" $) | indent 4 }}
|
|
{{- end -}}
|