# 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 # 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.