.
├── ConfigMaps
│ ├── env-prod-configmap-local.yaml
│ ├── env-prod-configmap.yaml
│ └── env-prod-db-configmap.yaml
├── Deployments
│ ├── db-deployment.yaml
│ ├── nginx-deployment.yaml
│ └── reymota-deployment.yaml
├── Makefile
├── namespace.yaml
├── PVC
│ ├── postgres-data-persistentvolumeclaim.yaml
│ ├── reymota-prod-persistentvolumeclaim.yaml
│ └── static-volume-persistentvolumeclaim.yaml
├── reg-secret.yaml
├── Services
│ ├── db-service.yaml
│ ├── nginx-service.yaml
│ ├── reymota-ingress.yaml
│ └── reymota-service.yaml
└── Shells
├── borraNS.sh
├── entraPsql.sh
└── entra.sh
En Rancher está instalado el operador longhorn que se encarga de crear los Persistent Volumes automáticamente cuando se crea una PVC
La primera vez hay que crear las PVC. Si la aplicación cambia, no haría falta volver a crearlas, a no ser que los cambios afecten mucho a la estructura de las base de datos.
kubectl create -f postgres-data-persistentvolumeclaim.yaml
kubectl create -f reymota-prod-persistentvolumeclaim.yaml
kubectl create -f static-volume-persistentvolumeclaim.yaml
make clean ; make install
Si la aplicación hubiese cambiado y tuvieramos que crear una nueva imagen, entonces
make
esto hace todo: la imagen, para los pods y los lanza otra vez
La primera vez, hay que entrar en el pod de vehículos con 'entra.sh', desde el directorio K8S/Shells y
python manage.py makemigrations lyrics python manage.py makemigrations reymotausers python manage.py makemigrations repostajes
python manage.py migrate
Con la shell K8S/Shells/entraPsql.sh:
\l para listar las BD
\c reymota para usar nuestra db
\dt para ver las tablas
Si tenemos un fichero json con los datos de otra instalación, podemos importarlo.
Primero tendríamos que descargar los datos a través del api de la otra instalación.
curl https://reymota.es/usuarios/api/usuarios/ > mediafiles/usuarios.json
curl https://reymota.es/lyrics/api/artistas/ > mediafiles/artistas.json
curl https://reymota.es/lyrics/api/albumes/ > mediafiles/albumes.json
curl https://reymota.es/lyrics/api/canciones/ > mediafiles/canciones.json
curl https://reymota.es/repostajes/api/vehiculos/ > mediafiles/vehiculos.json
curl https://reymota.es/repostajes/api/repostajes/ > mediafiles/repostajes.json
Es importante hacerlo en este orden ya que hay dependencias entre las tablas
./manage.py importar_usuarios mediafiles/usuarios.json
./manage.py importar_artistas mediafiles/artistas.json
./manage.py importar_albumes mediafiles/albumes.json
./manage.py importar_canciones mediafiles/canciones.json
./manage.py importar_vehiculos mediafiles/vehiculos.json
./manage.py importar_repostajes mediafiles/repostajes.json
Ejemplo para copiar las portadas de los álbumes
kubectl -n ranchermota cp /media/creylopez/vmcluster/reymota/media/cover_image/ reymota-b6f9c5bbf-mrvh6:/app/reymota/mediafiles
Si no tenemos datos y vamos a crear una instancia de cero, lo primero que hay que hacer es crear un superusuario
./manage.py createsuperuser
A continuación, desde el interfaz web, se crean los datos.
ALTER SEQUENCE tablename_id_seq RESTART WITH nn;
esto se hace cuando restauro un volcado de la bd sobre una instalación nueva. Si hay índices ya creados, hay que reinciar a partir del último.