Browse Source

Repostajes y otros cambios

main
Celestino Rey 2 years ago
parent
commit
d5c92c2341
21 changed files with 482 additions and 7 deletions
  1. +17
    -1
      Enphase/app/extrae.sh
  2. +11
    -2
      Enphase/creaImagen.sh
  3. +16
    -0
      Enphase/enlighten.py
  4. +17
    -0
      Enphase/sesion.sh
  5. +1
    -1
      HelmCharts/enphase-chart/templates/enphase-cronjob.yaml
  6. +1
    -1
      HelmCharts/homeassistant-chart/templates/homeassistant-deployment.yaml
  7. +5
    -2
      HelmCharts/instala
  8. +23
    -0
      HelmCharts/repostajes-chart/.helmignore
  9. +24
    -0
      HelmCharts/repostajes-chart/Chart.yaml
  10. +24
    -0
      HelmCharts/repostajes-chart/copyRepostajesDB
  11. +76
    -0
      HelmCharts/repostajes-chart/templates/mysql-deployment.yaml
  12. +57
    -0
      HelmCharts/repostajes-chart/templates/php-myadmin-deployment.yaml
  13. +13
    -0
      HelmCharts/repostajes-chart/templates/pv-local-mysql.yaml
  14. +14
    -0
      HelmCharts/repostajes-chart/templates/pv-local-repostajes.yaml
  15. +11
    -0
      HelmCharts/repostajes-chart/templates/registry-secrets.yaml
  16. +70
    -0
      HelmCharts/repostajes-chart/templates/repostajes-deployment.yaml
  17. +10
    -0
      HelmCharts/repostajes-chart/templates/repostajes-secrets.yaml
  18. +82
    -0
      HelmCharts/repostajes-chart/values.yaml
  19. +8
    -0
      PHPMysql/Dockerfile
  20. +2
    -0
      PHPMysql/creaImagen.sh
  21. BIN
      repostajes-20230712.tar.gz

+ 17
- 1
Enphase/app/extrae.sh View File

@ -1,7 +1,23 @@
#!/bin/bash #!/bin/bash
# Datos para la conexión
export ENPHASE_REMOTE_API_USERNAME=creylopez@yahoo.es
export ENPHASE_REMOTE_API_PASSWORD=h769jzYDnqpPog
export ENPHASE_REMOTE_API_SERIALNO=122044072645
# obtener un id de sesión válido
sesion=`curl https://enlighten.enphaseenergy.com/login/login.json -d "user[email]=${ENPHASE_REMOTE_API_USERNAME}&user[password]=${ENPHASE_REMOTE_API_PASSWORD}" | jq -r '.session_id'`
# obtener un token usando el id de sesión
token=`curl "https://enlighten.enphaseenergy.com/entrez-auth-token?serial_num=${ENPHASE_REMOTE_API_SERIALNO}" -H "cookie: _enlighten_4_session=$sesion" | jq -r '.token'`
#echo "La sesión es $sesion y el token es $token"
datos=`curl -k -H "Authorization: Bearer $token" https://192.168.1.141/production.json`
#datos=`curl http://envoy.local/production.json 2>/dev/null` #datos=`curl http://envoy.local/production.json 2>/dev/null`
datos=`curl http://192.168.1.141/production.json 2>/dev/null`
#datos=`curl http://192.168.1.141/production.json 2>/dev/null`
# #
# obtiene datos de producción de inverters # obtiene datos de producción de inverters


+ 11
- 2
Enphase/creaImagen.sh View File

@ -1,2 +1,11 @@
docker build --no-cache -t docker-registry:32000/enphase:2.0 .
docker push docker-registry:32000/enphase:2.0
#!/bin/bash
if [ -z "$1" ]
then
echo "Falta versión"
else
docker build --no-cache -t docker-registry:32000/enphase:$1 .
docker push docker-registry:32000/enphase:$1
fi

+ 16
- 0
Enphase/enlighten.py View File

@ -0,0 +1,16 @@
import json
import requests
# REPLACE ITEMS BELOW
user='creylopez@yahoo.es'
password='h769jzYDnqpPog'
envoy_serial='122044072645'
# DO NOT CHANGE ANYTHING BELOW
data = {'user[email]': user, 'user[password]': password}
response = requests.post('https://enlighten.enphaseenergy.com/login/login.json?',data=data)
response_data = json.loads(response.text)
data = {'session_id': response_data['session_id'], 'serial_num': envoy_serial, 'username':user}
response = requests.post('https://entrez.enphaseenergy.com/tokens', json=data)
token_raw = response.text
print(token_raw)

+ 17
- 0
Enphase/sesion.sh View File

@ -0,0 +1,17 @@
#!/bin/bash
# Datos para la conexión
export ENPHASE_REMOTE_API_USERNAME=creylopez@yahoo.es
export ENPHASE_REMOTE_API_PASSWORD=h769jzYDnqpPog
export ENPHASE_REMOTE_API_SERIALNO=122044072645
# obtener un id de sesión válido
sesion=`curl https://enlighten.enphaseenergy.com/login/login.json -d "user[email]=${ENPHASE_REMOTE_API_USERNAME}&user[password]=${ENPHASE_REMOTE_API_PASSWORD}" | jq -r '.session_id'`
token=`curl "https://enlighten.enphaseenergy.com/entrez-auth-token?serial_num=${ENPHASE_REMOTE_API_SERIALNO}" -H "cookie: _enlighten_4_session=$sesion" | jq -r '.token'`
echo "La sesión es $sesion y el token es $token"
curl -k -H "Authorization: Bearer $token" https://envoy.local/production.json

+ 1
- 1
HelmCharts/enphase-chart/templates/enphase-cronjob.yaml View File

@ -12,7 +12,7 @@ spec:
spec: spec:
containers: containers:
- name: hello - name: hello
image: docker-registry:32000/enphase:2.0
image: docker-registry:32000/enphase:4.0
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
env: env:
- name: DB_HOST - name: DB_HOST


+ 1
- 1
HelmCharts/homeassistant-chart/templates/homeassistant-deployment.yaml View File

@ -58,7 +58,7 @@ spec:
name: homeassistant name: homeassistant
volumeMounts: volumeMounts:
- name: homeassistant-persistent-storage - name: homeassistant-persistent-storage
mountPath: /data
mountPath: /config
imagePullSecrets: imagePullSecrets:
- name: reg-cred-secret - name: reg-cred-secret
volumes: volumes:


+ 5
- 2
HelmCharts/instala View File

@ -4,12 +4,15 @@ if [ -z "$1" ]
then then
echo "Falta nombre del chart" echo "Falta nombre del chart"
else else
chart=`echo $1 | cut -f1 -d-`
if [ "$2" = "i" ] if [ "$2" = "i" ]
then then
helm install $1 ./$1-chart --namespace=$1 --create-namespace
helm install $chart ./$1 --namespace=$chart --create-namespace
elif [ "$2" = "u" ] elif [ "$2" = "u" ]
then then
helm uninstall $1 -n $1
helm uninstall $chart -n $chart
else else
echo "Falta comando: i=instalar, u=desinstalar" echo "Falta comando: i=instalar, u=desinstalar"
fi fi


+ 23
- 0
HelmCharts/repostajes-chart/.helmignore View File

@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

+ 24
- 0
HelmCharts/repostajes-chart/Chart.yaml View File

@ -0,0 +1,24 @@
apiVersion: v2
name: repostajes-chart
description: A Helm chart for Kubernetes
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.16.0"

+ 24
- 0
HelmCharts/repostajes-chart/copyRepostajesDB View File

@ -0,0 +1,24 @@
# Backup date
today=$(date "+%Y_%m_%d-%H_%M_%S")
echo "Current date: $today"
# build up filename
# destination folder (change to your own needs)
BACKUP_FOLDER=/tmp
file_name=$BACKUP_FOLDER/bkup_repostajes
new_name=$file_name-$today.sql
echo "Backup file name: " "$new_name"
#sudo docker exec `sudo docker container ls | grep mysql_repostajes | cut -f1 -d' '` /usr/bin/mysqldump -u root --password=Dsa-0213 repostajes > $new_name
sudo kubectl --kubeconfig /home/creylopez/.kube/config exec `kubectl --kubeconfig /home/creylopez/.kube/config get pod -n repostajes|grep mysql|cut -f1 -d' '` -n repostajes -- /usr/bin/mariadb-dump -u root --password=Dsa-0213 automoviles > $new_name
message="Backup stored "$today
sudo -u creylopez cat $new_name | mail -s "Repostajes backup finished" "creylopez@yahoo.es"
sudo rm $new_name

+ 76
- 0
HelmCharts/repostajes-chart/templates/mysql-deployment.yaml View File

@ -0,0 +1,76 @@
apiVersion: v1
kind: Service
metadata:
name: repostajes-mysql
namespace: repostajes
labels:
app: repostajes
spec:
type: NodePort
ports:
- name: mysql
port: 3306
nodePort: 30385
targetPort: mysql
selector:
app: repostajes
tier: mysql
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
namespace: repostajes
labels:
app: repostajes
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 25Gi
selector:
matchLabels:
app: mysql
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: repostajes-mysql
namespace: repostajes
labels:
app: repostajes
spec:
selector:
matchLabels:
app: repostajes
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: repostajes
tier: mysql
spec:
containers:
- image: mariadb:latest
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
imagePullSecrets:
- name: reg-cred-secret
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim

+ 57
- 0
HelmCharts/repostajes-chart/templates/php-myadmin-deployment.yaml View File

@ -0,0 +1,57 @@
apiVersion: v1
kind: Service
metadata:
name: phpmyadmin-repostajes
namespace: repostajes
labels:
app: repostajes
spec:
selector:
app: repostajes
tier: phpmyadmin
type: NodePort
ports:
- name: phpadmin
port: 80
nodePort: 30386
targetPort: phpmyadm
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: phpmyadmin-repostajes
namespace: repostajes
labels:
app: repostajes
spec:
selector:
matchLabels:
app: repostajes
tier: phpmyadmin
strategy:
type: Recreate
template:
metadata:
labels:
app: repostajes
tier: phpmyadmin
spec:
containers:
- name: phpmyadmin
image: phpmyadmin
ports:
- containerPort: 80
name: phpmyadm
env:
- name: PMA_HOST
value: repostajes-mysql
- name: PMA_PORT
value: "3306"
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
imagePullSecrets:
- name: reg-cred-secret

+ 13
- 0
HelmCharts/repostajes-chart/templates/pv-local-mysql.yaml View File

@ -0,0 +1,13 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: repostajes-data
labels:
app: mysql
spec:
capacity:
storage: 25Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/Externo/repostajes/repostajes-db"

+ 14
- 0
HelmCharts/repostajes-chart/templates/pv-local-repostajes.yaml View File

@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: repostajes-app-folder
labels:
app: repostajes
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/Externo/repostajes/repostajes-app"

+ 11
- 0
HelmCharts/repostajes-chart/templates/registry-secrets.yaml View File

@ -0,0 +1,11 @@
apiVersion: v1
data:
.dockerconfigjson: eyJhdXRocyI6eyJkb2NrZXItcmVnaXN0cnk6MzIwMDAiOnsidXNlcm5hbWUiOiJjcmV5bG9wZXoiLCJwYXNzd29yZCI6IlJleS0xMTc2IiwiYXV0aCI6IlkzSmxlV3h2Y0dWNk9sSmxlUzB4TVRjMiJ9fX0=
kind: Secret
metadata:
creationTimestamp: "2023-01-29T10:54:14Z"
name: reg-cred-secret
namespace: repostajes
resourceVersion: "19890385"
uid: 66b3b7c5-26c1-4e5a-af4e-dc973aaafe4b
type: kubernetes.io/dockerconfigjson

+ 70
- 0
HelmCharts/repostajes-chart/templates/repostajes-deployment.yaml View File

@ -0,0 +1,70 @@
apiVersion: v1
kind: Service
metadata:
name: repostajes
namespace: repostajes
labels:
app: repostajes
spec:
type: NodePort
ports:
- port: 80
nodePort: 30080
targetPort: repostajes
selector:
app: repostajes
tier: frontend
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: repostajes-pv-claim
namespace: repostajes
labels:
app: repostajes
spec:
accessModes:
- ReadWriteOnce
storageClassName: ""
resources:
requests:
storage: 5Gi
selector:
matchLabels:
app: repostajes
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: repostajes
namespace: repostajes
labels:
app: repostajes
spec:
selector:
matchLabels:
app: repostajes
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: repostajes
tier: frontend
spec:
containers:
- image: docker-registry:32000/phpmysql:1.0
name: repostajes
ports:
- containerPort: 80
name: repostajes
volumeMounts:
- name: repostajes-persistent-storage
mountPath: /var/www/html
imagePullSecrets:
- name: reg-cred-secret
volumes:
- name: repostajes-persistent-storage
persistentVolumeClaim:
claimName: repostajes-pv-claim

+ 10
- 0
HelmCharts/repostajes-chart/templates/repostajes-secrets.yaml View File

@ -0,0 +1,10 @@
apiVersion: v1
kind: Secret
metadata:
name: mysql-pass
namespace: repostajes
type: Opaque
stringData:
db_password: Dsa-0213
password: Dsa-0213
db_user: root

+ 82
- 0
HelmCharts/repostajes-chart/values.yaml View File

@ -0,0 +1,82 @@
# Default values for repostajes-chart.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: nginx
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: ""
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
ingress:
enabled: false
className: ""
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: chart-example.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
nodeSelector: {}
tolerations: []
affinity: {}

+ 8
- 0
PHPMysql/Dockerfile View File

@ -0,0 +1,8 @@
FROM php:8.2-apache
LABEL maintainer="Celestino Rey <creylopez@yahoo.es>"
# Install any necessary packages
WORKDIR /var/www/html
RUN apt-get update
RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN docker-php-ext-enable mysqli

+ 2
- 0
PHPMysql/creaImagen.sh View File

@ -0,0 +1,2 @@
docker build --no-cache -t docker-registry:32000/phpmysql:1.0 .
docker push docker-registry:32000/phpmysql:1.0

BIN
repostajes-20230712.tar.gz View File


Loading…
Cancel
Save