Compare commits

...

2 Commits

Author SHA1 Message Date
Simon Belmas
0b156f5b48 allow to run without checking out a repository 2024-07-29 17:55:15 +02:00
Simon Belmas
9efb2a0a15 Use tsp instad of podaffinity + version optional quotas 2024-07-29 16:19:08 +02:00
5 changed files with 53 additions and 36 deletions

View File

@@ -11,7 +11,7 @@ Ingress fqdn has to be configured by either:
*replicas* and *content-git-repo* in *config* folder can be customized by modifying files or applying kustomize patch *replicas* and *content-git-repo* in *config* folder can be customized by modifying files or applying kustomize patch
Connntent git will be displayed in an iframe with node name on top. Content git will be displayed in an iframe with node name on top. If it's empty, it will display a blank page with node name.
Node name is displayed on the top of the page and also in kube-node.json and on kube-node.txt Node name is displayed on the top of the page and also in kube-node.json and on kube-node.txt

View File

@@ -1,19 +1,23 @@
#!/bin/sh #!/bin/sh
git_retries=20 git_retries=20
try=0 try=0
export GIT_SSH_COMMAND='ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"' if [ -n "${CONTENT_GIT_REPO}" ] ; then
until timeout 10 git clone --recurse-submodules ${CONTENT_GIT_REPO} /app ; do export GIT_SSH_COMMAND='ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"'
echo "Retry git pull after error ($try / $git_retries)" until timeout 10 git clone --recurse-submodules ${CONTENT_GIT_REPO} /app ; do
try=$((try+1)) echo "Retry git pull after error ($try / $git_retries)"
if [ $try -eq $git_retries ]; then try=$((try+1))
exit 1 if [ $try -eq $git_retries ]; then
fi exit 1
sleep 1 fi
done sleep 1
done
fi
cd /app cd /app
if [ -e index.html ] ; then if [ -e index.html ] ; then
mv index.html index-embedded.html mv index.html index-embedded.html
fi fi
cat <<EOF >index.html cat <<EOF >index.html
<html> <html>
<head> <head>
@@ -24,15 +28,26 @@ cat <<EOF >index.html
From node ${KUBE_NODE_NAME}<br /> From node ${KUBE_NODE_NAME}<br />
as <a href="./kube-node.json">json</a> - <a href="./kube-node.txt">text</a> as <a href="./kube-node.json">json</a> - <a href="./kube-node.txt">text</a>
</p> </p>
EOF
if [ -n "${CONTENT_GIT_REPO}" ] ; then
cat <<EOF >>index.html
<iframe <iframe
id="embeddedcontent" id="embeddedcontent"
title="embeddedcontent" title="embeddedcontent"
width="100%" width="100%"
height="90%" height="90%"
src="./index-embedded.html" /> src="./index-embedded.html" />
EOF
fi
cat <<EOF >>index.html
</body> </body>
</html> </html>
EOF EOF
ls -l
cat index.html
echo '{"node": "'${KUBE_NODE_NAME}'"}' > kube-node.json echo '{"node": "'${KUBE_NODE_NAME}'"}' > kube-node.json
echo -n ${KUBE_NODE_NAME} > kube-node.txt echo -n ${KUBE_NODE_NAME} > kube-node.txt

View File

@@ -7,22 +7,27 @@ spec:
replicas: 1 replicas: 1
template: template:
spec: spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/instance
operator: In
values:
- html-kube-tester
topologyKey: kubernetes.io/hostname
securityContext: securityContext:
runAsNonRoot: true runAsNonRoot: true
seccompProfile: seccompProfile:
type: RuntimeDefault type: RuntimeDefault
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app.kubernetes.io/instance: html-kube-tester
matchLabelKeys:
- pod-template-hash
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app.kubernetes.io/instance: html-kube-tester
matchLabelKeys:
- pod-template-hash
initContainers: initContainers:
- name: content-generator - name: content-generator
image: quay.io/simbelmas/alpine-tools:stable image: quay.io/simbelmas/alpine-tools:stable
@@ -61,21 +66,9 @@ spec:
protocol: TCP protocol: TCP
resources: resources:
requests: requests:
cpu: 1m cpu: 10m
memory: 10Mi
limits: limits:
cpu: 100m cpu: 40m
memory: 50Mi
livenessProbe: &html-kube-tester-probe
httpGet:
path: /
port: 8080
timeoutSeconds: 5
periodSeconds: 15
failureThreshold: 10
readinessProbe:
<<: *html-kube-tester-probe
periodSeconds: 2
volumes: volumes:
- name: init - name: init
configMap: configMap:

View File

@@ -18,6 +18,7 @@ resources:
- deployment.yaml - deployment.yaml
- service.yaml - service.yaml
- ingress.yaml - ingress.yaml
#- resourceQuotas.yaml
replacements: replacements:
- source: - source:

8
resourceQuotas.yaml Normal file
View File

@@ -0,0 +1,8 @@
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-resources
spec:
hard:
requests.cpu: "100m"
limits.cpu: "50m"