Add a script to copy the content of the custom folder to a running pod
For now it is only labels, but adding anything supported will work (robots.txt, public files, templates, etc) The content will be copied to the /data/gitea/ folder that is a mounted persistent volume https://docs.gitea.io/en-us/customizing-gitea/
This commit is contained in:
parent
0a60d8831c
commit
bbfa3f2964
|
@ -1 +1 @@
|
||||||
/kubernetes/custom/config/
|
/kubernetes/config/
|
||||||
|
|
|
@ -3,6 +3,12 @@
|
||||||
This repository contains configuration files and other assets, that are used to
|
This repository contains configuration files and other assets, that are used to
|
||||||
deploy and operate this Gitea instance.
|
deploy and operate this Gitea instance.
|
||||||
|
|
||||||
|
To upload the customization files to the running pod:
|
||||||
|
|
||||||
|
```
|
||||||
|
./script/copy_customization
|
||||||
|
```
|
||||||
|
|
||||||
Feel free to [open issues] for questions, suggestions, bugs, to-do items, and
|
Feel free to [open issues] for questions, suggestions, bugs, to-do items, and
|
||||||
whatever else you want to discuss or resolve.
|
whatever else you want to discuss or resolve.
|
||||||
|
|
||||||
|
|
|
@ -17,18 +17,13 @@ spec:
|
||||||
image: busybox
|
image: busybox
|
||||||
command: [
|
command: [
|
||||||
'sh', '-c',
|
'sh', '-c',
|
||||||
'mkdir -p /data/gitea/conf && mkdir -p /data/gitea/https && mkdir -p /data/gitea/options/label && cp /root/conf/app.ini /data/gitea/conf/app.ini && chown 1000:1000 /data/gitea/conf/app.ini && chmod 660 /data/gitea/conf/app.ini && cp /root/conf/*.pem /data/gitea/https && chmod 600 /data/gitea/https/*.pem && cp /root/options/label/* /data/gitea/options/label/ && chown -R 1000:1000 /data/gitea'
|
'mkdir -p /data/gitea/conf && mkdir -p /data/gitea/https && cp /root/conf/app.ini /data/gitea/conf/app.ini && chown 1000:1000 /data/gitea/conf/app.ini && chmod 660 /data/gitea/conf/app.ini && cp /root/conf/*.pem /data/gitea/https && chmod 600 /data/gitea/https/*.pem && chown -R 1000:1000 /data/gitea'
|
||||||
]
|
]
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /data
|
- mountPath: /data
|
||||||
name: gitea-server-data
|
name: gitea-server-data
|
||||||
- mountPath: /root/conf
|
- mountPath: /root/conf
|
||||||
name: config
|
name: config
|
||||||
# The labels have been created as a ConfigMap from local files using this command:
|
|
||||||
#
|
|
||||||
# kubectl create configmap gitea-options-label --from-file=custom/options/label/
|
|
||||||
- mountPath: /root/options/label
|
|
||||||
name: label
|
|
||||||
containers:
|
containers:
|
||||||
- name: gitea-server
|
- name: gitea-server
|
||||||
image: gitea/gitea:1.7.2
|
image: gitea/gitea:1.7.2
|
||||||
|
@ -57,9 +52,6 @@ spec:
|
||||||
- key: key.pem
|
- key: key.pem
|
||||||
path: key.pem
|
path: key.pem
|
||||||
mode: 256
|
mode: 256
|
||||||
- name: label
|
|
||||||
configMap:
|
|
||||||
name: gitea-options-label
|
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
for podname in $(kubectl get pods -l name=gitea-server -o json \
|
||||||
|
| jq -r '.items[].metadata.name'); do
|
||||||
|
for path in ./kubernetes/custom/*; do
|
||||||
|
echo "Copying ${path}..."
|
||||||
|
kubectl cp "${path}" "${podname}":"/data/gitea/"
|
||||||
|
done
|
||||||
|
# Fix permissions
|
||||||
|
kubectl exec "${podname}" -- chown -R 1000:1000 /data/gitea/
|
||||||
|
done
|
|
@ -7,7 +7,7 @@ secret = `kubectl get secret gitea-config -o yaml`
|
||||||
yaml = YAML.load(secret)
|
yaml = YAML.load(secret)
|
||||||
|
|
||||||
yaml['data'].each do |key, data|
|
yaml['data'].each do |key, data|
|
||||||
filename = File.join('kubernetes', 'custom', 'config', key)
|
filename = File.join('kubernetes', 'config', key)
|
||||||
File.open(filename, "w+") do |f|
|
File.open(filename, "w+") do |f|
|
||||||
puts "Writing #{filename}"
|
puts "Writing #{filename}"
|
||||||
f.write Base64.decode64(data)
|
f.write Base64.decode64(data)
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
# Delete the gitea-config secrets
|
# Delete the gitea-config secrets
|
||||||
kubectl delete secret gitea-config
|
kubectl delete secret gitea-config
|
||||||
# Replace it from the local files in kubernetes/custom/config/* (acquired by running
|
# Replace it from the local files in kubernetes/config/* (acquired by running
|
||||||
# ./script/get_secrets)
|
# ./script/get_secrets)
|
||||||
kubectl create secret generic gitea-config --from-file=cert.pem=kubernetes/custom/config/cert.pem --from-file=key.pem=kubernetes/custom/config/key.pem --from-file=app.ini=kubernetes/custom/config/app.ini
|
kubectl create secret generic gitea-config --from-file=cert.pem=kubernetes/config/cert.pem --from-file=key.pem=kubernetes/config/key.pem --from-file=app.ini=kubernetes/config/app.ini
|
||||||
# Force the pod to restart by patching the deployment resource
|
# Force the pod to restart by patching the deployment resource
|
||||||
kubectl patch deployment gitea-server -p "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"
|
kubectl patch deployment gitea-server -p "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"
|
||||||
|
|
Reference in New Issue