You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
creylopez 9323cd0822 Pequeños ajustes 9 months ago
..
K8S Añado versión de reymota para funcionar con longhorn 9 months ago
nginx Añado versión de reymota para funcionar con longhorn 9 months ago
reymota Añado versión de reymota para funcionar con longhorn 9 months ago
.dockerignore Añado versión de reymota para funcionar con longhorn 9 months ago
Dockerfile Añado versión de reymota para funcionar con longhorn 9 months ago
Makefile Añado versión de reymota para funcionar con longhorn 9 months ago
README.md Pequeños ajustes 9 months ago
entrypoint.sh Añado versión de reymota para funcionar con longhorn 9 months ago
requirements.txt Añado versión de reymota para funcionar con longhorn 9 months ago

README.md

Instalación

Versión para kubernetes y Rancher

Estructura de carpetas en K8S

.
├── 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

Creación de Persistent Volume Claims

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

Despliegue de la aplicación

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

Migraciones

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

Comprobar la base de datos

Con la shell K8S/Shells/entraPsql.sh:

\l para listar las BD

\c reymota para usar nuestra db
\dt para ver las tablas

Importar datos

Si tenemos un fichero json con los datos de otra instalación, podemos importarlo.

Descargar los datos

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

Importar los datos

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

Copiar imágenes desde el host

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

Crear datos

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.

Miscelánea

Cambiar la secuencia de lo sid

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.