| @ -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 | |||||
| @ -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" | |||||
| @ -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 | |||||
| @ -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 | |||||
| @ -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 | |||||
| @ -0,0 +1,2 @@ | |||||
| kubectl create -f pv-local-pg-forgejo.yaml | |||||
| kubectl create -k ./ | |||||
| @ -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 | |||||
| @ -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 | |||||
| @ -0,0 +1 @@ | |||||
| kubectl -n forgejo-repo exec -ti deployment.apps/db -- psql --username=creylopez --dbname=forgejo | |||||
| @ -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 | |||||
| @ -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 | |||||
| @ -0,0 +1,2 @@ | |||||
| kubectl delete -k ./ | |||||
| kubectl delete -f pv-local-pg-forgejo.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 | |||||
| @ -0,0 +1,11 @@ | |||||
| apiVersion: v1 | |||||
| kind: PersistentVolume | |||||
| metadata: | |||||
| name: forgejo-data | |||||
| spec: | |||||
| capacity: | |||||
| storage: 20Gi | |||||
| accessModes: | |||||
| - ReadWriteOnce | |||||
| hostPath: | |||||
| path: "/mnt/Externo/forgejo/pg" | |||||
| @ -0,0 +1,8 @@ | |||||
| apiVersion: v1 | |||||
| kind: Secret | |||||
| metadata: | |||||
| name: myregistrykey | |||||
| namespace: forgejo-repo | |||||
| data: | |||||
| .dockerconfigjson: ewoJImF1dGhzIjogewoJCSJyZWdpc3RyeS5yZXltb3RhLmVzIjogewoJCQkiYXV0aCI6ICJZM0psZVd4dmNHVjZPbEpsZVMweE1UYzIiCgkJfQoJfQp9 | |||||
| type: kubernetes.io/dockerconfigjson | |||||
| @ -0,0 +1,3 @@ | |||||
| kubectl patch pv forgejo-folder -p '{"metadata":{"finalizers":null}}' | |||||
| kubectl patch pv forgejo-data -p '{"metadata":{"finalizers":null}}' | |||||