diff --git a/Forgejo/010-deployment.yaml b/Forgejo/010-deployment.yaml new file mode 100644 index 00000000..fd021d37 --- /dev/null +++ b/Forgejo/010-deployment.yaml @@ -0,0 +1,45 @@ +################################################### +# Namespace Forgejo +################################################### +apiVersion: v1 +kind: Namespace +metadata: + name: forgejo-repo + +############################### +# Deplyoment Forgejo +############################### +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: forgejo + namespace: forgejo-repo + labels: + app: forgejo +spec: + replicas: 1 + selector: + matchLabels: + app: forgejo + template: + metadata: + labels: + app: forgejo + spec: + containers: + - name: forgejo + image: codeberg.org/forgejo/forgejo:10 + ports: + - containerPort: 3000 + name: forgejo + - containerPort: 22 + name: forgejo-ssh + volumeMounts: + - mountPath: /data + name: forgejo-data + volumes: + - name: forgejo-data + persistentVolumeClaim: + claimName: forgejo-pvc + diff --git a/Forgejo/020-volumes.yaml b/Forgejo/020-volumes.yaml new file mode 100644 index 00000000..ff7dcaa9 --- /dev/null +++ b/Forgejo/020-volumes.yaml @@ -0,0 +1,34 @@ +--- +################################################### +# Persistence Volume Claim +################################################### +kind: PersistentVolume +apiVersion: v1 +metadata: + name: forgejo-pv + namespace: forgejo-repo +spec: + capacity: + storage: 5Gi + accessModes: + - ReadWriteOnce + claimRef: + namespace: forgejo-repo + name: forgejo-pvc + hostPath: + path: /mnt/Externo/forgejo/data + +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: forgejo-pvc + namespace: forgejo-repo +spec: + accessModes: + - ReadWriteOnce + storageClassName: "" + resources: + requests: + storage: 5Gi + volumeName: "forgejo-pv" diff --git a/Forgejo/030-network.yaml b/Forgejo/030-network.yaml new file mode 100644 index 00000000..4031d68c --- /dev/null +++ b/Forgejo/030-network.yaml @@ -0,0 +1,19 @@ +############################### +# Service +############################### +--- +kind: Service +apiVersion: v1 +metadata: + name: forgejo + namespace: forgejo-repo +spec: + selector: + app: forgejo + type: NodePort + ports: + - name: forgejo-http + nodePort: 30785 + port: 3000 + - name: forgejo-ssh + port: 22 diff --git a/Forgejo/README.md b/Forgejo/README.md new file mode 100644 index 00000000..b8b506ba --- /dev/null +++ b/Forgejo/README.md @@ -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 diff --git a/Forgejo/copyForgejoDB b/Forgejo/copyForgejoDB new file mode 100755 index 00000000..e2a8a93c --- /dev/null +++ b/Forgejo/copyForgejoDB @@ -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_forgejo +new_name=$file_name-$today.sql +echo "Backup file name: " "$new_name" + +kubectl --kubeconfig /home/creylopez/.kube/config -n forgejo-repo exec -ti deployment.apps/db -- /usr/lib/postgresql/15/bin/pg_dump --username=creylopez --dbname=forgejo > $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 forgejo" creylopez@yahoo.es -A $new_name + +#sudo rm $new_name diff --git a/Forgejo/creaTodo.sh b/Forgejo/creaTodo.sh new file mode 100755 index 00000000..beb0ba44 --- /dev/null +++ b/Forgejo/creaTodo.sh @@ -0,0 +1,2 @@ +kubectl create -f pv-local-pg-forgejo.yaml +kubectl create -k ./ diff --git a/Forgejo/db-deployment.yaml b/Forgejo/db-deployment.yaml new file mode 100644 index 00000000..b99a75e6 --- /dev/null +++ b/Forgejo/db-deployment.yaml @@ -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: forgejo-repo +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 diff --git a/Forgejo/db-service.yaml b/Forgejo/db-service.yaml new file mode 100644 index 00000000..1d53b49e --- /dev/null +++ b/Forgejo/db-service.yaml @@ -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: forgejo-repo +spec: + ports: + - name: "5432" + port: 5432 + targetPort: 5432 + selector: + io.kompose.service: db diff --git a/Forgejo/entraPsql.sh b/Forgejo/entraPsql.sh new file mode 100644 index 00000000..b0bec563 --- /dev/null +++ b/Forgejo/entraPsql.sh @@ -0,0 +1 @@ +kubectl -n forgejo-repo exec -ti deployment.apps/db -- psql --username=creylopez --dbname=forgejo diff --git a/Forgejo/env-prod-db-configmap.yaml b/Forgejo/env-prod-db-configmap.yaml new file mode 100644 index 00000000..21473ee7 --- /dev/null +++ b/Forgejo/env-prod-db-configmap.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + POSTGRES_DB: forgejo + POSTGRES_PASSWORD: Dsa-0213 + POSTGRES_USER: creylopez +kind: ConfigMap +metadata: + labels: + io.kompose.service: db-env-prod-db + name: env-prod-db + namespace: forgejo-repo diff --git a/Forgejo/kustomization.yaml b/Forgejo/kustomization.yaml new file mode 100644 index 00000000..b3a5998c --- /dev/null +++ b/Forgejo/kustomization.yaml @@ -0,0 +1,16 @@ +secretGenerator: +- name: sqlforgejo-pass + namespace: forgejo-repo + 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 diff --git a/Forgejo/paraTodo.sh b/Forgejo/paraTodo.sh new file mode 100755 index 00000000..47a30965 --- /dev/null +++ b/Forgejo/paraTodo.sh @@ -0,0 +1,2 @@ +kubectl delete -k ./ +kubectl delete -f pv-local-pg-forgejo.yaml diff --git a/Forgejo/postgres-data-persistentvolumeclaim.yaml b/Forgejo/postgres-data-persistentvolumeclaim.yaml new file mode 100644 index 00000000..e01f9b50 --- /dev/null +++ b/Forgejo/postgres-data-persistentvolumeclaim.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: postgres-data + name: postgres-data + namespace: forgejo-repo +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi diff --git a/Forgejo/pv-local-pg-forgejo.yaml b/Forgejo/pv-local-pg-forgejo.yaml new file mode 100644 index 00000000..1e3972a0 --- /dev/null +++ b/Forgejo/pv-local-pg-forgejo.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: forgejo-data +spec: + capacity: + storage: 20Gi + accessModes: + - ReadWriteOnce + hostPath: + path: "/mnt/Externo/forgejo/pg" diff --git a/Forgejo/reg-secret.yaml b/Forgejo/reg-secret.yaml new file mode 100644 index 00000000..171b40c7 --- /dev/null +++ b/Forgejo/reg-secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: myregistrykey + namespace: forgejo-repo +data: + .dockerconfigjson: ewoJImF1dGhzIjogewoJCSJyZWdpc3RyeS5yZXltb3RhLmVzIjogewoJCQkiYXV0aCI6ICJZM0psZVd4dmNHVjZPbEpsZVMweE1UYzIiCgkJfQoJfQp9 +type: kubernetes.io/dockerconfigjson diff --git a/Forgejo/terminapv.sh b/Forgejo/terminapv.sh new file mode 100644 index 00000000..26870951 --- /dev/null +++ b/Forgejo/terminapv.sh @@ -0,0 +1,3 @@ + +kubectl patch pv forgejo-folder -p '{"metadata":{"finalizers":null}}' +kubectl patch pv forgejo-data -p '{"metadata":{"finalizers":null}}'