From a23cbcdf9325b26f632a74572cb1c0409b1f07a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 23 Nov 2025 22:03:49 +0000 Subject: [PATCH] repo refactoring continuous-deploy prep --- README.md | 37 +++++++++++- deploy-scripts/apply-app.sh | 14 +++++ deploy-scripts/apply-infra.sh | 12 ++++ deploy-scripts/apply.sh | 0 deploy/README.md | 60 ------------------- deploy/setup.sh | 9 --- docs/backups.md | 2 +- {deploy => helm}/values.yaml | 0 .../app}/borgbackup-sidekick.yaml | 0 .../backups/backup-borg-offsite-cronjob.yaml | 0 .../cronjobs}/backups/backup-pbs-cronjob.yaml | 0 .../cronjobs/backups/secrets.template.yaml | 7 +-- manifests/infra/namespace.yaml | 6 ++ {deploy => manifests/infra}/ssh-ingress.yaml | 0 14 files changed, 70 insertions(+), 77 deletions(-) create mode 100755 deploy-scripts/apply-app.sh create mode 100755 deploy-scripts/apply-infra.sh create mode 100755 deploy-scripts/apply.sh delete mode 100644 deploy/README.md delete mode 100755 deploy/setup.sh rename {deploy => helm}/values.yaml (100%) rename {deploy/backups => manifests/app}/borgbackup-sidekick.yaml (100%) rename {deploy => manifests/app/cronjobs}/backups/backup-borg-offsite-cronjob.yaml (100%) rename {deploy => manifests/app/cronjobs}/backups/backup-pbs-cronjob.yaml (100%) rename deploy/backups/backup-secrets.yaml => manifests/app/cronjobs/backups/secrets.template.yaml (85%) create mode 100644 manifests/infra/namespace.yaml rename {deploy => manifests/infra}/ssh-ingress.yaml (100%) diff --git a/README.md b/README.md index e548369..c72a6cd 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,43 @@ Welcome to public repository of my [Git Server](https://git.limbosolutions.com) Using [gitea](https://git.limbosolutions.com/kb/gitea) as git server. -- [Deploy and Setup](#deploy-and-setup) +- [Deploy](#deploy) + - [App Deploy](#app-deploy) + - [Continuous Deploy](#continuous-deploy) + - [Infra Deploy](#infra-deploy) + - [Deploy all](#deploy-all) - [Backups](#backups) -## Deploy and Setup +## Deploy -for more information [check readme](./deploy/README.md). +### App Deploy + +[Requires environment variables](./manifests/app/cronjobs/backups/.env.example). +*Can be set creating file ./manifests/app/cronjobs/backups/.env with values.* + +```bash +./deploy-scripts/apply-app.sh +``` + +- [Manifests](/manifests/infra) + +### Continuous Deploy + +Executes [App Deploy](#app-deploy) using an [Gitea workflow](./.gitea/workflows/app-deploy.yaml). + +### Infra Deploy + +```bash +./deploy-scripts/apply-infra.sh +``` + +- [Manifests](/manifests/app) + +### Deploy all + +```bash +./deploy-scripts/apply.sh +``` ## Backups diff --git a/deploy-scripts/apply-app.sh b/deploy-scripts/apply-app.sh new file mode 100755 index 0000000..e34ce25 --- /dev/null +++ b/deploy-scripts/apply-app.sh @@ -0,0 +1,14 @@ +# set -a +# source ./backups/.env +# set +a +# envsubst < ./backups/backup-secrets.yaml | kubectl apply -n git-limbosolutions-com -f - + +# SSH_ID_RSA=$(echo -n "$SSH_ID_RSA" | base64 -w 0) +# BORG_KEY=$(echo -n "$BORG_KEY" | base64 -w 0) + +# kubectl patch secret gitea-backup-secret --patch "{\"data\":{\"ssh_id_rsa\":\"$SSH_ID_RSA\"}}" -n git-limbosolutions-com +# kubectl patch secret gitea-backup-secret --patch "{\"data\":{\"borg_key\":\"$BORG_KEY\"}}" -n git-limbosolutions-com + + +# kubectl apply -f ./backups/backup-pbs-cronjob.yaml -n git-limbosolutions-com +# kubectl apply -f ./backups/backup-borg-offsite-cronjob.yaml -n git-limbosolutions-com \ No newline at end of file diff --git a/deploy-scripts/apply-infra.sh b/deploy-scripts/apply-infra.sh new file mode 100755 index 0000000..0800f79 --- /dev/null +++ b/deploy-scripts/apply-infra.sh @@ -0,0 +1,12 @@ +kubectl apply -f manifests/infra/namespace.yaml + + +helm repo add gitea-charts https://dl.gitea.com/charts/ +helm repo update + +helm upgrade --install gitea gitea-charts/gitea \ +--values helm/values.yaml \ +--values helm/values.private.yaml \ +--namespace=git-limbosolutions-com + +kubectl apply -f manifests/infra/ssh-ingress.yaml \ No newline at end of file diff --git a/deploy-scripts/apply.sh b/deploy-scripts/apply.sh new file mode 100755 index 0000000..e69de29 diff --git a/deploy/README.md b/deploy/README.md deleted file mode 100644 index b1e3a41..0000000 --- a/deploy/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# Deploy - -- [kubernetes Namespace](#kubernetes-namespace) -- [Backups](#backups) - - [secrets](#secrets) - - [Proxmox Backup Server (kubernetes cron job)](#proxmox-backup-server-kubernetes-cron-job) - - [Borg and Offsite sync (kubernetes cron job)](#borg-and-offsite-sync-kubernetes-cron-job) - -```bash -# run for setup/update -# using helm chart -./setup.sh -``` - -## kubernetes Namespace - -```yaml -apiVersion: v1 -kind: Namespace -metadata: - name: git-limbosolutions-com - labels: - name: git-limbosolutions-com - -``` - -## Backups - -### secrets - -```bash -set -a -source ./backups/.env -set +a -envsubst < ./backups/backup-secrets.yaml | kubectl apply -n git-limbosolutions-com -f - - -SSH_ID_RSA=$(echo -n "$SSH_ID_RSA" | base64 -w 0) -BORG_KEY=$(echo -n "$BORG_KEY" | base64 -w 0) - -kubectl patch secret gitea-backup-secret --patch "{\"data\":{\"ssh_id_rsa\":\"$SSH_ID_RSA\"}}" -n git-limbosolutions-com -kubectl patch secret gitea-backup-secret --patch "{\"data\":{\"borg_key\":\"$BORG_KEY\"}}" -n git-limbosolutions-com -``` - -### Proxmox Backup Server (kubernetes cron job) - -```bash -# deploy cronjon -kubectl apply -f ./backups/backup-pbs-cronjob.yaml -n git-limbosolutions-com -``` - -[kubernetes cron job](./backups/backup-pbs-cronjob.yaml) - -### Borg and Offsite sync (kubernetes cron job) - -```bash -# deploy cronjon -kubectl apply -f ./backups/backup-borg-offsite-cronjob.yaml -n git-limbosolutions-com -``` - -[kubernetes cron job](./backups/borgbackup-offsite-cronjob.yaml) diff --git a/deploy/setup.sh b/deploy/setup.sh deleted file mode 100755 index 46de766..0000000 --- a/deploy/setup.sh +++ /dev/null @@ -1,9 +0,0 @@ -helm repo add gitea-charts https://dl.gitea.com/charts/ -helm repo update - -helm upgrade --install gitea gitea-charts/gitea \ ---values ./values.yaml \ ---values ./values.private.yaml \ ---namespace=git-limbosolutions-com - -kubectl apply -f ./ssh-ingress.yaml \ No newline at end of file diff --git a/docs/backups.md b/docs/backups.md index 1420b40..153b082 100644 --- a/docs/backups.md +++ b/docs/backups.md @@ -3,7 +3,7 @@ **Create borgbackup-sidekick pod:** ```bash -kubectl apply -f ../deploy/backups/borgbackup-sidekick.yaml +kubectl apply -f manifests/borgbackup-sidekick.yaml ``` **Remove borgbackup-sidekick pod:** diff --git a/deploy/values.yaml b/helm/values.yaml similarity index 100% rename from deploy/values.yaml rename to helm/values.yaml diff --git a/deploy/backups/borgbackup-sidekick.yaml b/manifests/app/borgbackup-sidekick.yaml similarity index 100% rename from deploy/backups/borgbackup-sidekick.yaml rename to manifests/app/borgbackup-sidekick.yaml diff --git a/deploy/backups/backup-borg-offsite-cronjob.yaml b/manifests/app/cronjobs/backups/backup-borg-offsite-cronjob.yaml similarity index 100% rename from deploy/backups/backup-borg-offsite-cronjob.yaml rename to manifests/app/cronjobs/backups/backup-borg-offsite-cronjob.yaml diff --git a/deploy/backups/backup-pbs-cronjob.yaml b/manifests/app/cronjobs/backups/backup-pbs-cronjob.yaml similarity index 100% rename from deploy/backups/backup-pbs-cronjob.yaml rename to manifests/app/cronjobs/backups/backup-pbs-cronjob.yaml diff --git a/deploy/backups/backup-secrets.yaml b/manifests/app/cronjobs/backups/secrets.template.yaml similarity index 85% rename from deploy/backups/backup-secrets.yaml rename to manifests/app/cronjobs/backups/secrets.template.yaml index e865d38..105aaf1 100644 --- a/deploy/backups/backup-secrets.yaml +++ b/manifests/app/cronjobs/backups/secrets.template.yaml @@ -5,13 +5,12 @@ metadata: name: gitea-backup-secret namespace: git-limbosolutions-com type: Opaque -stringData: +data: pbs_repository: ${PBS_REPOSITORY} pbs_password: ${PBS_PASSWORD} pbs_fingerprint: ${PBS_FINGERPRINT} borg_repo: ${BORG_REPO} borg_passphrase: ${BORG_PASSPHRASE} offsite_target_folder: ${OFFSITE_TARGET_FOLDER} - #SSH_ID_RSA: "" - #BORG_KEY: "" - \ No newline at end of file + ssh_id_rsa: ${SSH_ID_RSA} + borg_key: ${BORG_KEY} diff --git a/manifests/infra/namespace.yaml b/manifests/infra/namespace.yaml new file mode 100644 index 0000000..2493f59 --- /dev/null +++ b/manifests/infra/namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: git-limbosolutions-com + labels: + name: git-limbosolutions-com \ No newline at end of file diff --git a/deploy/ssh-ingress.yaml b/manifests/infra/ssh-ingress.yaml similarity index 100% rename from deploy/ssh-ingress.yaml rename to manifests/infra/ssh-ingress.yaml