Skip to content

ramoncerda2025/ceph-k8s-backup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

¡Pana @RAMON_CERDA ! Desde México, con Termux en la mano y un cluster de Ceph en la mira... vamos a hacer esto bien hecho.¿README o TODO en Termux? → NO. Haz un REPO PROFESIONAL"Termux es tu laboratorio. GitHub es tu vitrina." NO hagas esto:bash

NO: todo en Termux sin versionar

cp backup.py /data/data/com.termux/files/home/

SÍ haz esto:bash

git init ceph-k8s-backup cd ceph-k8s-backup git add . git commit -m "feat: initial ceph backup system" gh repo create RAMON_CERDA/ceph-k8s-backup --public --source=.

Estructura del REPO (como todo un DevOps mexicano)

ceph-k8s-backup/ ├── README.md ← TU CARTA DE PRESENTACIÓN ├── LICENSE ← MIT (o GPL si es para HPC) ├── .github/ │ └── workflows/ │ └── ci.yml ← GitHub Actions: lint + test ├── backup/ │ ├── init.py │ ├── metadata.py │ ├── metrics.py │ ├── backup.py │ └── restic_job.yaml ← Template del Job ├── charts/ │ └── ceph-backup/ ← Helm chart (opcional, pero pro) ├── scripts/ │ └── install-termux.sh ← ¡Para tus carnales con Android! ├── docs/ │ └── architecture.md └── pyproject.toml ← o requirements.txt

README.md (así lo haces viral en X)markdown

Ceph K8s Backup (Restic + Prometheus)

Backups automáticos de volúmenes Ceph RBD en Kubernetes
Hecho en México con Termux, café y pura pasión por el HPC

backup-demo


¿Por qué funciona?

  • Descubre PVCs con anotación cephbackup.hpc.nyu.edu/backup: "true"
  • Respaldos diarios con Restic a S3/MinIO
  • Métricas Prometheus → Grafana
  • Throttling inteligente → 1/24 de backups por hora
  • Limpieza automática de Jobs

Instalación en Termux (Android)

pkg update && pkg install git python clang make
pip install kubernetes prometheus-client opentelemetry-api

# Clona y corre métricas
git clone https://github.com/RAMON_CERDA/ceph-k8s-backup
cd ceph-k8s-backup
python -m backup.metrics --table

Despliegue en Kubernetesyaml

# backup/cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
  name: ceph-backup
  namespace: ceph-backup
spec:
  schedule: "0 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          serviceAccountName: ceph-backup
          containers:
          - name: backup
            image: ghcr.io/ramon_cerda/ceph-k8s-backup:latest
            env:
              - name: RESTIC_REPOSITORY
                valueFrom:
                  secretKeyRef:
                    name: restic
                    key: repository

Métricas en Grafanapromql

rate(volume_backups_due[5m]) > 0
volume_never_backed_up > 0

Autor@RAMON_CERDA
 – DevOps desde el rancho, con Termux y un Galaxy A52"Si Ceph se cae, mis backups no."
LicenciaMIT © 2025

---

## Scripts para Termux (para que lo corras en el camión)

```bash
# scripts/install-termux.sh
#!/bin/bash
pkg update -y
pkg install -y python git openssh
pip install kubernetes prometheus-client opentelemetry-api

echo "Listo! Clona el repo:"
echo "git clone https://github.com/RAMON_CERDA/ceph-k8s-backup"

bash

chmod +x scripts/install-termux.sh
./scripts/install-termux.sh

GitHub Actions (CI)yaml

# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      - run: pip install -r requirements.txt
      - run: python -m backup.metrics --table  # smoke test

¿Qué subes a Docker Hub / GHCR?dockerfile

# Dockerfile
FROM python:3.11-slim
COPY backup/ /app/backup/
COPY requirements.txt /app/
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["python", "-m", "backup.backup"]

bash

docker build -t ghcr.io/ramon_cerda/ceph-k8s-backup:latest .
docker push ghcr.io/ramon_cerda/ceph-k8s-backup:latest

Próximos pasos (para que explotes en X)Graba un TikTok/Reel corriendo esto en Termux
Postea en X con:"Backups de Ceph en Kubernetes... desde mi celular con Termux. México no para."

Agrega badge:markdown

![Termux](https://img.shields.io/badge/Termux-Android-green)
![Ceph](https://img.shields.io/badge/Ceph-RBD-blue)

Resumen: ¿Qué haces AHORA?bash

# 1. Crea el repo
gh repo create RAMON_CERDA/ceph-k8s-backup --public

# 2. Estructura
mkdir -p backup charts scripts docs .github/workflows

# 3. Copia tu código
cp *.py backup/

# 4. README.md (usa el de arriba)

# 5. Commit + push
git add .
git commit -m "feat: initial ceph backup system"
git push origin main

Dime y te ayudo a:Generar el Helm chart
Hacer el video demo
Escribir el post de X que se haga viral

¡Este invierno, tú eres el calor del cluster!  bash

echo "¡Viva México y viva el open source desde Termux!"


# Ceph K8s Backup (Restic + Prometheus)  
**Backups automáticos de volúmenes Ceph RBD en Kubernetes**  
*Hecho en México con Termux, café y pura pasión por el HPC*

![backup-demo](docs/demo.gif)

---

## ¿Por qué funciona?

- **Descubre** PVCs con anotación `cephbackup.hpc.nyu.edu/backup: "true"`
- **Respaldos diarios** con Restic a S3/MinIO
- **Métricas Prometheus** → Grafana
- **Throttling inteligente** → 1/24 de backups por hora
- **Limpieza automática** de Jobs

---

## Instalación en **Termux** (Android)

```bash
pkg update && pkg install git python clang make
pip install kubernetes prometheus-client opentelemetry-api

# Clona y corre métricas
git clone https://github.com/RAMON_CERDA/ceph-k8s-backup
cd ceph-k8s-backup
python -m backup.metrics --table

Autor@RAMON_CERDA

 – DevOps desde el rancho, con Termux y un Galaxy A52"Si Ceph se cae, mis backups no."

git add .
git commit -m "feat: backup metrics con tabla hermosa en Termux - funciona 100% sin cluster"
git push origin main

About

Estructura del REPO (como todo un DevOps mexicano) ceph-k8s-backup/

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published