Răsfoiți Sursa

Añado contenedor para consola texto

Celestino Rey 6 luni în urmă
părinte
comite
2d2220c290

+ 7 - 0
Consola/Dockerfile

@@ -0,0 +1,7 @@
+FROM postgres:16-alpine
+
+# Opcional: utilidades útiles para debug
+RUN apk add --no-cache bash curl
+
+# Dejar psql como comando por defecto
+CMD ["sleep", "infinity"]

+ 24 - 0
Consola/Makefile

@@ -0,0 +1,24 @@
+export REGISTRY=registry.reymota.es
+export IMG_VERSION=1.1
+export NAMESPACE=clientepsql
+
+imagen:
+
+	echo "Creando imagen con version '${IMG_VERSION}' en el registry '${REGISTRY}'"
+
+	docker build --no-cache -t ${REGISTRY}/clientepsql:${IMG_VERSION} -f Dockerfile .
+	docker push ${REGISTRY}/clientepsql:${IMG_VERSION}
+
+install:
+	-cat reg-secret.yaml| sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f -
+	-cat secreto.yaml| sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f -
+	-cat env-prod-configmap.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f -
+
+	-cat clientepsql-deployment.yaml | sed -e "s/<NS>/${NAMESPACE}/" | sed -e "s/<TAG>/${IMG_VERSION}/" | kubectl create -f -
+
+clean:
+	-cat reg-secret.yaml| sed -e "s/<NS>/${NAMESPACE}/" | kubectl delete -f -
+	-cat secreto.yaml| sed -e "s/<NS>/${NAMESPACE}/" | kubectl delete -f -
+	-cat env-prod-configmap.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl delete -f -
+
+	-cat clientepsql-deployment.yaml | sed -e "s/<NS>/${NAMESPACE}/" | sed -e "s/<TAG>/${IMG_VERSION}/" | kubectl delete -f -

+ 43 - 0
Consola/clientepsql-deployment.yaml

@@ -0,0 +1,43 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: clientepsql
+  namespace: <NS>
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: clientepsql
+  template:
+    metadata:
+      labels:
+        app: clientepsql
+    spec:
+      containers:
+        - name: psql
+          image: registry.reymota.es/clientepsql:<TAG>
+          imagePullPolicy: IfNotPresent
+          env:
+            - name: DATABASE
+              valueFrom:
+                configMapKeyRef:
+                  key: DATABASE
+                  name: env-prod
+            - name: SQL_HOST
+              valueFrom:
+                configMapKeyRef:
+                  key: SQL_HOST
+                  name: env-prod
+            - name: SQL_PORT
+              valueFrom:
+                configMapKeyRef:
+                  key: SQL_PORT
+                  name: env-prod
+            # La contraseña es mejor con Secret (ver abajo)
+          tty: true
+          stdin: true
+          envFrom:
+          - secretRef:
+              name: postgres-secret
+      imagePullSecrets:
+      - name: myregistrykey

+ 10 - 0
Consola/env-prod-configmap.yaml

@@ -0,0 +1,10 @@
+apiVersion: v1
+data:
+  DEBUG: "False"
+  SQL_HOST: postgres-cluster-rw.reymota-pg-cluster.svc.cluster.local
+  SQL_PORT: "5432"
+  DATABASE: postgres
+kind: ConfigMap
+metadata:
+  name: env-prod
+  namespace: <NS>

+ 8 - 0
Consola/reg-secret.yaml

@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: myregistrykey
+  namespace: <NS>
+data:
+  .dockerconfigjson: ewoJImF1dGhzIjogewoJCSJyZWdpc3RyeS5yZXltb3RhLmVzIjogewoJCQkiYXV0aCI6ICJZM0psZVd4dmNHVjZPbEpsZVMweE1UYzIiCgkJfQoJfQp9
+type: kubernetes.io/dockerconfigjson

+ 8 - 0
Consola/secreto.yaml

@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: postgres-secret
+  namespace: <NS>
+type: Opaque
+stringData:
+  PGPASSWORD: Dsa-0213