Browse Source

Shell de backup de Gitea. GiteaLatest

main
Celestino Rey 10 months ago
parent
commit
18706b7194
24 changed files with 516 additions and 0 deletions
  1. +24
    -0
      Gitea/copyGiteaDB
  2. +45
    -0
      GiteaLatest/010-deployment.yaml
  3. +34
    -0
      GiteaLatest/020-volumes.yaml
  4. +19
    -0
      GiteaLatest/030-network.yaml
  5. +57
    -0
      GiteaLatest/Makefile
  6. +8
    -0
      GiteaLatest/README.md
  7. +96
    -0
      GiteaLatest/app.ini
  8. +2
    -0
      GiteaLatest/creaTodo.sh
  9. +52
    -0
      GiteaLatest/db-deployment.yaml
  10. +17
    -0
      GiteaLatest/db-service.yaml
  11. +1
    -0
      GiteaLatest/entraPsql.sh
  12. +11
    -0
      GiteaLatest/env-prod-db-configmap.yaml
  13. +16
    -0
      GiteaLatest/kustomization.yaml
  14. +34
    -0
      GiteaLatest/nginx-deployment.yaml
  15. +20
    -0
      GiteaLatest/nginx-service.yaml
  16. +4
    -0
      GiteaLatest/nginx/Dockerfile
  17. +11
    -0
      GiteaLatest/nginx/Makefile
  18. +17
    -0
      GiteaLatest/nginx/nginx.conf
  19. +2
    -0
      GiteaLatest/paraTodo.sh
  20. +13
    -0
      GiteaLatest/postgres-data-persistentvolumeclaim.yaml
  21. +11
    -0
      GiteaLatest/pv-local-pg-gitea.yaml
  22. +8
    -0
      GiteaLatest/reg-secret.yaml
  23. +3
    -0
      GiteaLatest/terminapv.sh
  24. +11
    -0
      HelmCharts/nextcloud.md

+ 24
- 0
Gitea/copyGiteaDB View File

@ -0,0 +1,24 @@
# Backup date
today=$(date "+%Y_%m_%d-%H_%M_%S")
echo "Current date: $today"
# build up filename
# destination folder (change to your own needs)
BACKUP_FOLDER=/tmp
file_name=$BACKUP_FOLDER/bkup_gitea
new_name=$file_name-$today.sql
echo "Backup file name: " "$new_name"
kubectl --kubeconfig /home/creylopez/.kube/config -n gitea-repo exec -ti deployment.apps/db -- /usr/lib/postgresql/15/bin/pg_dump --username=creylopez --dbname=gitea > $new_name
message="Backup stored "$today
#sudo -u creylopez cat $new_name | mail -s "Jugar al Pádel backup finished" "creylopez@yahoo.es"
sudo -u creylopez echo "Gitea - backup adjunto" |mail -s "Backup de gitea" creylopez@yahoo.es -A $new_name
#sudo rm $new_name

+ 45
- 0
GiteaLatest/010-deployment.yaml View File

@ -0,0 +1,45 @@
###################################################
# Namespace Gitea
###################################################
apiVersion: v1
kind: Namespace
metadata:
name: gitea-latest
###############################
# Deplyoment Gitea
###############################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: gitea
namespace: gitea-latest
labels:
app: gitea
spec:
replicas: 1
selector:
matchLabels:
app: gitea
template:
metadata:
labels:
app: gitea
spec:
containers:
- name: gitea
image: gitea/gitea:latest
ports:
- containerPort: 3000
name: gitea
- containerPort: 22
name: git-ssh
volumeMounts:
- mountPath: /data
name: git-data
volumes:
- name: git-data
persistentVolumeClaim:
claimName: git-pvc

+ 34
- 0
GiteaLatest/020-volumes.yaml View File

@ -0,0 +1,34 @@
---
###################################################
# Persistence Volume Claim
###################################################
kind: PersistentVolume
apiVersion: v1
metadata:
name: git-pv-latest
namespace: gitea-latest
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
claimRef:
namespace: gitea-latest
name: git-pvc
hostPath:
path: /mnt/Externo/gitea-latest/data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: git-pvc
namespace: gitea-latest
spec:
accessModes:
- ReadWriteOnce
storageClassName: ""
resources:
requests:
storage: 5Gi
volumeName: "git-pv-latest"

+ 19
- 0
GiteaLatest/030-network.yaml View File

@ -0,0 +1,19 @@
###############################
# Service
###############################
---
kind: Service
apiVersion: v1
metadata:
name: gitea
namespace: gitea-latest
spec:
selector:
app: gitea
type: NodePort
ports:
- name: gitea-http
nodePort: 30781
port: 3000
- name: gitea-ssh
port: 22

+ 57
- 0
GiteaLatest/Makefile View File

@ -0,0 +1,57 @@
export ARQUITECTURA := $(shell lscpu |grep itectur | tr -d ' '| cut -f2 -d':')
#export REGISTRY=localhost:5000
export REGISTRY=registry.reymota.es
export IMG_VERSION = 0.27
export IMG_NGINX_VERSION = 2.3
# limpia todo
all: imagen clean install
imagen:
cd ../; make
install:
-kubectl create -f namespace.yaml
-kubectl create -f reg-secret.yaml
-kubectl create -f env-prod-configmap.yaml
-kubectl create -f env-prod-db-configmap.yaml
-kubectl create -f pv-local-jugaralpadel.yaml
-kubectl create -f jugaralpadel-prod-persistentvolumeclaim.yaml
-kubectl create -f static-volume-persistentvolumeclaim.yaml
-kubectl create -f postgres-data-persistentvolumeclaim.yaml
-kubectl create -f db-deployment.yaml
-kubectl create -f db-service.yaml
-envsubst < jugaralpadel-deployment.yaml |kubectl create -f -
-envsubst < nginx-deployment.yaml |kubectl create -f -
-kubectl create -f nginx-service.yaml
clean:
-envsubst < nginx-deployment.yaml |kubectl delete -f -
-kubectl delete -f nginx-service.yaml
-envsubst < jugaralpadel-deployment.yaml |kubectl delete -f -
-kubectl delete -f db-deployment.yaml
-kubectl delete -f db-service.yaml
-kubectl delete -f env-prod-configmap.yaml
-kubectl delete -f env-prod-db-configmap.yaml
-kubectl delete -f postgres-data-persistentvolumeclaim.yaml
-kubectl delete -f static-volume-persistentvolumeclaim.yaml
-kubectl delete -f jugaralpadel-prod-persistentvolumeclaim.yaml
-kubectl delete -f pv-local-jugaralpadel.yaml
-kubectl delete -f reg-secret.yaml
-kubectl delete -f namespace.yaml
nginx:
cd ../nginx; make
verimg:
docker run -it ${REGISTRY}/jugaralpadel-${ARQUITECTURA}:${IMG_VERSION} bash
backup:
kubectl --kubeconfig /home/creylopez/.kube/config -n jugaralpadel exec -ti deployment.apps/db -- /usr/lib/postgresql/15/bin/pg_dump --username=creylopez --dbname=jugaralpadel > jugaralpadel-$(IMG_VERSION).sql

+ 8
- 0
GiteaLatest/README.md View File

@ -0,0 +1,8 @@
# Fuente
https://ralph.blog.imixs.com/2021/02/25/running-gitea-on-kubernetes/
# habilitar ssh
https://docs.github.com/en/authentication/troubleshooting-ssh/error-permission-denied-publickey#verify-the-public-key-is-attached-to-your-account

+ 96
- 0
GiteaLatest/app.ini View File

@ -0,0 +1,96 @@
APP_NAME = Gitea: Git with a cup of tea
RUN_MODE = prod
RUN_USER = git
[repository]
ROOT = /data/git/repositories
[repository.local]
LOCAL_COPY_PATH = /data/gitea/tmp/local-repo
[repository.upload]
TEMP_PATH = /data/gitea/uploads
[server]
APP_DATA_PATH = /data/gitea
DOMAIN = gitea.reymota.es
SSH_DOMAIN = gitea.reymota.es
HTTP_PORT = 3000
ROOT_URL = http://gitea.reymota.es/
DISABLE_SSH = false
SSH_PORT = 22
SSH_LISTEN_PORT = 22
LFS_START_SERVER = true
LFS_CONTENT_PATH = /data/git/lfs
LFS_JWT_SECRET = 6ModusVwufuDW1L7Zc0qpTzKpPvUgUvrLoSL06Rjnzw
OFFLINE_MODE = false
[database]
PATH = /data/gitea/gitea.db
DB_TYPE = postgres
HOST = db
NAME = gitea
USER = creylopez
PASSWD = Dsa-0213
LOG_SQL = false
SCHEMA =
SSL_MODE = disable
CHARSET = utf8
[indexer]
ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve
[session]
PROVIDER_CONFIG = /data/gitea/sessions
PROVIDER = file
[picture]
AVATAR_UPLOAD_PATH = /data/gitea/avatars
REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/repo-avatars
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = true
[attachment]
PATH = /data/gitea/attachments
[log]
MODE = console
LEVEL = info
REDIRECT_MACARON_LOG = true
MACARON = console
ROUTER = console
ROOT_PATH = /data/gitea/log
[security]
INSTALL_LOCK = true
SECRET_KEY = dQGbKrt11gvXjFhgQBii8GEHcSeOvwnYgzOZzDWCYEkYCK2VBen3leTCrm4wj51C
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3MjQzMTY3NzB9.OIOG6TZy5BggmK13E03esKO3pSwNnGm7Xpu4lrXtNu4
[service]
DISABLE_REGISTRATION = false
REQUIRE_SIGNIN_VIEW = false
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.gitea.reymota.es
[oauth2]
JWT_SECRET = N01RzNp7lfiQuJyCpWYPzQwriBAFYwtZ-Gjt7XaW3Qw
[mailer]
ENABLED = true
FROM = "Administrador de Gitea" <celestino_rey@ymail.com>
HOST = smtp.mail.yahoo.com:465
SMTP_ADDR = smtp.mail.yahoo.com
SMTP_PORT = 465
USER = celestino_rey@ymail.com
PASSWD = 'kbryvwxkockqckss'
[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = true

+ 2
- 0
GiteaLatest/creaTodo.sh View File

@ -0,0 +1,2 @@
kubectl create -f pv-local-pg-gitea.yaml
kubectl create -k ./

+ 52
- 0
GiteaLatest/db-deployment.yaml View File

@ -0,0 +1,52 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: db
name: db
namespace: gitea-latest
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: db
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: db
spec:
containers:
- env:
- name: POSTGRES_DB
valueFrom:
configMapKeyRef:
key: POSTGRES_DB
name: env-prod-db
- name: POSTGRES_PASSWORD
valueFrom:
configMapKeyRef:
key: POSTGRES_PASSWORD
name: env-prod-db
- name: POSTGRES_USER
valueFrom:
configMapKeyRef:
key: POSTGRES_USER
name: env-prod-db
image: postgres:15
name: db
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: postgres-data
restartPolicy: Always
volumes:
- name: postgres-data
persistentVolumeClaim:
claimName: postgres-data

+ 17
- 0
GiteaLatest/db-service.yaml View File

@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: db
name: db
namespace: gitea-latest
spec:
ports:
- name: "5432"
port: 5432
targetPort: 5432
selector:
io.kompose.service: db

+ 1
- 0
GiteaLatest/entraPsql.sh View File

@ -0,0 +1 @@
kubectl -n gitea-latest exec -ti deployment.apps/db -- psql --username=creylopez --dbname=gitea

+ 11
- 0
GiteaLatest/env-prod-db-configmap.yaml View File

@ -0,0 +1,11 @@
apiVersion: v1
data:
POSTGRES_DB: gitea
POSTGRES_PASSWORD: Dsa-0213
POSTGRES_USER: creylopez
kind: ConfigMap
metadata:
labels:
io.kompose.service: db-env-prod-db
name: env-prod-db
namespace: gitea-latest

+ 16
- 0
GiteaLatest/kustomization.yaml View File

@ -0,0 +1,16 @@
secretGenerator:
- name: sqlgitea-pass
namespace: gitea-latest
literals:
- password=Dsa-0213
- db_user=root
- db_passwd=Dsa-0213
resources:
- reg-secret.yaml
- env-prod-db-configmap.yaml
- postgres-data-persistentvolumeclaim.yaml
- db-deployment.yaml
- db-service.yaml
- 010-deployment.yaml
- 020-volumes.yaml
- 030-network.yaml

+ 34
- 0
GiteaLatest/nginx-deployment.yaml View File

@ -0,0 +1,34 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nginx
name: nginx
namespace: gitea-latest
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nginx
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nginx
spec:
containers:
- image: registry.reymota.es/nginx-gitea-x86_64:1.18
name: nginx
ports:
- containerPort: 80
protocol: TCP
imagePullSecrets:
- name: myregistrykey
restartPolicy: Always

+ 20
- 0
GiteaLatest/nginx-service.yaml View File

@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nginx
name: nginx
namespace: gitea-latest
spec:
type: NodePort
ports:
- name: "80"
port: 80
nodePort: 30780
targetPort: 80
selector:
io.kompose.service: nginx

+ 4
- 0
GiteaLatest/nginx/Dockerfile View File

@ -0,0 +1,4 @@
FROM nginx:1.25
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx/conf.d

+ 11
- 0
GiteaLatest/nginx/Makefile View File

@ -0,0 +1,11 @@
export ARQUITECTURA := $(shell lscpu |grep itectur | tr -d ' '| cut -f2 -d':')
export IMG_NGINX_VERSION = 1.18
install:
echo "Creando imagen con version ${IMG_NGINX_VERSION} para la arquitectura ${ARQUITECTURA}"
docker build --no-cache -t registry.reymota.es/nginx-gitea-${ARQUITECTURA}:${IMG_NGINX_VERSION} .
docker push registry.reymota.es/nginx-gitea-${ARQUITECTURA}:${IMG_NGINX_VERSION}

+ 17
- 0
GiteaLatest/nginx/nginx.conf View File

@ -0,0 +1,17 @@
upstream gitea {
server gitea:3000;
}
server {
listen 80;
location / {
proxy_pass http://gitea;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
client_max_body_size 100M;
}
}

+ 2
- 0
GiteaLatest/paraTodo.sh View File

@ -0,0 +1,2 @@
kubectl delete -k ./
kubectl delete -f pv-local-pg-gitea.yaml

+ 13
- 0
GiteaLatest/postgres-data-persistentvolumeclaim.yaml View File

@ -0,0 +1,13 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: postgres-data
name: postgres-data
namespace: gitea-latest
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi

+ 11
- 0
GiteaLatest/pv-local-pg-gitea.yaml View File

@ -0,0 +1,11 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: gitea-data-latest
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/Externo/gitea-latest/pg"

+ 8
- 0
GiteaLatest/reg-secret.yaml View File

@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: myregistrykey
namespace: gitea-latest
data:
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSJyZWdpc3RyeS5yZXltb3RhLmVzIjogewoJCQkiYXV0aCI6ICJZM0psZVd4dmNHVjZPbEpsZVMweE1UYzIiCgkJfQoJfQp9
type: kubernetes.io/dockerconfigjson

+ 3
- 0
GiteaLatest/terminapv.sh View File

@ -0,0 +1,3 @@
kubectl patch pv gitea-folder -p '{"metadata":{"finalizers":null}}'
kubectl patch pv gitea-data -p '{"metadata":{"finalizers":null}}'

+ 11
- 0
HelmCharts/nextcloud.md View File

@ -0,0 +1,11 @@
# Habilitar IP bloqueada por multiples reintentos.
## Entrar en el pod
kubectl -n nextcloud exec -ti deployment.apps/nextcloud-server -- /bin/bash
## Desbloquear IP
(tiene que ser la ip publica - https://www.cualesmiip.com)
php /var/www/nextcloud/occ security:bruteforce:reset 95.21.128.141

Loading…
Cancel
Save