Эх сурвалжийг харах

Ahora se puede elegir el kubeconfig en el Makefile

Tino 3 сар өмнө
parent
commit
0936d277db
2 өөрчлөгдсөн 63 нэмэгдсэн , 18 устгасан
  1. 18 0
      K8S/.kube/config
  2. 45 18
      K8S/Makefile

+ 18 - 0
K8S/.kube/config

@@ -0,0 +1,18 @@
+apiVersion: v1
+clusters:
+- cluster:
+    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlVENDQVIrZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWtNU0l3SUFZRFZRUUREQmx5YTJVeUxYTmwKY25abGNpMWpZVUF4TnpjeU5EYzRORFU0TUI0WERUSTJNRE13TWpFNU1EY3pPRm9YRFRNMk1ESXlPREU1TURjegpPRm93SkRFaU1DQUdBMVVFQXd3WmNtdGxNaTF6WlhKMlpYSXRZMkZBTVRjM01qUTNPRFExT0RCWk1CTUdCeXFHClNNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJHL2tTa0JJZHM5Q3JKdWZKQ0tGUzdlTWpHaFAxQ2p0d0RNNzZZQWUKbUhBcGM5YTdDTjBaaHVVd3ZMREJ5TE9JMFQ3U052VjVDRzBja29kellNZnBSSCtqUWpCQU1BNEdBMVVkRHdFQgovd1FFQXdJQ3BEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUWtCYTdXSTljQWdlRlpMUXlZCjRnUy9xTkVDVWpBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlFQTNpRFd4Q0Z3VHQzU0dMM29BVitRWFhXNWJVc08KaDVjamV6V1RmK2F4VHFzQ0lBdm1kYkUzcnE3eDkvb3N5NUlOUXBLQWx5ZjVCeTk3dEhZdE1mNjZWTXZ6Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
+    server: https://192.168.1.116:6443
+  name: default
+contexts:
+- context:
+    cluster: default
+    user: default
+  name: default
+current-context: default
+kind: Config
+users:
+- name: default
+  user:
+    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrakNDQVRpZ0F3SUJBZ0lJUTdPWEwzMFFJUTB3Q2dZSUtvWkl6ajBFQXdJd0pERWlNQ0FHQTFVRUF3d1oKY210bE1pMWpiR2xsYm5RdFkyRkFNVGMzTWpRM09EUTFPREFlRncweU5qQXpNREl4T1RBM016aGFGdzB5TnpBegpNREl4T1RBM016aGFNREF4RnpBVkJnTlZCQW9URG5ONWMzUmxiVHB0WVhOMFpYSnpNUlV3RXdZRFZRUURFd3h6CmVYTjBaVzA2WVdSdGFXNHdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUTZuUWYrT0RKTXA4cS8KSEtaYmhPVXNQWEZuQTBwRXVaMGhlbWhxQUVtU0hQbWxCVzg4bE4rVXBoZk1VVjNZRjAwSnE4RHl0NXluTzJiVwpKY3NHN3RteW8wZ3dSakFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3Ckh3WURWUjBqQkJnd0ZvQVUzaU5SM2djRDBMV1dJSkhoTDRUSVRXeUNSQll3Q2dZSUtvWkl6ajBFQXdJRFNBQXcKUlFJaEFOcFpVSTVFWmtkcWQzVDlyQWFWYnAxYnYxS3pRY2JSSVpnMUIxTGN1ZGsyQWlCWHVzSUU3ZC92RlQ4dQo4ZnFxUGYvWCsxaDBFZzVqRWJtNXQwK2F4eVIxbVE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlCZVRDQ0FSK2dBd0lCQWdJQkFEQUtCZ2dxaGtqT1BRUURBakFrTVNJd0lBWURWUVFEREJseWEyVXlMV05zCmFXVnVkQzFqWVVBeE56Y3lORGM0TkRVNE1CNFhEVEkyTURNd01qRTVNRGN6T0ZvWERUTTJNREl5T0RFNU1EY3oKT0Zvd0pERWlNQ0FHQTFVRUF3d1pjbXRsTWkxamJHbGxiblF0WTJGQU1UYzNNalEzT0RRMU9EQlpNQk1HQnlxRwpTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCT3ZHWWhueGhRMkVQNjI3YTRhODkzSUpKRWRIa29iakVrMVNvOElmCkQ5RTdTbXVQcjMveUdheGNCY2hMQlNkU01qdjJwZTlpMUhIVGxIZ1QwNXdVR1VHalFqQkFNQTRHQTFVZER3RUIKL3dRRUF3SUNwREFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQjBHQTFVZERnUVdCQlRlSTFIZUJ3UFF0Wllna2VFdgpoTWhOYklKRUZqQUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpRUF2NWx0MldXRUZWcmZDV3NMdUhVdFRaTVo5U0lTClIyNkFpZW1SQkpxbFVaZ0NJQ05oTUtVRnYrZk5VOWVMRTFjYXRYeVkrTGNRQnp5b2haNmlZTWlwTldlLwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
+    client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUVoTUt4OS9kNjVId1RLZnBLVjVXdG01M2g5OVlCS0RnQjduUHo1ZXJ5Vk9vQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFT3AwSC9qZ3lUS2ZLdnh5bVc0VGxMRDF4WndOS1JMbWRJWHBvYWdCSmtoejVwUVZ2UEpUZgpsS1lYekZGZDJCZE5DYXZBOHJlY3B6dG0xaVhMQnU3WnNnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=

+ 45 - 18
K8S/Makefile

@@ -2,6 +2,11 @@ export REGISTRO=harbor.reymota.es\/jugaralpadel
 export NAMESPACE = jugaralpadel
 VERSION_FILE = .version
 
+# Kubeconfig configuration
+KUBECONFIG_DIR ?= $(CURDIR)/.kube
+KUBECONFIG ?= $(KUBECONFIG_DIR)/config
+export KUBECONFIG
+
 # Get current version or default to alpine-1
 IMG_VERSION := $(shell cat $(VERSION_FILE) 2>/dev/null || echo "alpine-1")
 # Get built version for deployment targets
@@ -14,6 +19,28 @@ help:
 	@echo ""
 	@grep "^[[:lower:]]" Makefile | grep -v "^\." | grep "##" | awk -F':.*## ' '{printf "  \033[1m%-20s\033[0m %s\n", $$1, $$2}'
 	@echo ""
+	@echo "Kubeconfig actual: $(KUBECONFIG)"
+
+KUBECONFIG_HOME ?= $(HOME)/.kube
+
+kubeconfig-list: ## Lista los kubeconfig disponibles en $HOME/.kube
+	@ls -1 $(KUBECONFIG_HOME)/config* 2>/dev/null | while read f; do \
+		echo "   $$f"; \
+	done
+
+kubeconfig-set: ## Copia el kubeconfig al directorio local .kube (uso: make kubeconfig-set KUBECONFIG_SOURCE=config-main)
+	@mkdir -p $(KUBECONFIG_DIR)
+	@if [ -f "$(KUBECONFIG_HOME)/$(KUBECONFIG_SOURCE)" ]; then \
+		cp $(KUBECONFIG_HOME)/$(KUBECONFIG_SOURCE) $(KUBECONFIG_DIR)/config; \
+		echo "Kubeconfig copiado de $(KUBECONFIG_HOME)/$(KUBECONFIG_SOURCE) a $(KUBECONFIG)"; \
+	elif [ -f "$(KUBECONFIG_SOURCE)" ]; then \
+		cp $(KUBECONFIG_SOURCE) $(KUBECONFIG_DIR)/config; \
+		echo "Kubeconfig copiado de $(KUBECONFIG_SOURCE) a $(KUBECONFIG)"; \
+	else \
+		echo "Error: No se encontró el kubeconfig '$(KUBECONFIG_SOURCE)'"; \
+		echo "Usa 'make kubeconfig-list' para ver los disponibles"; \
+		exit 1; \
+	fi
 
 all: imagen clean install ## Crea todo (excepto las claims)
 
@@ -28,39 +55,39 @@ imagen: ## Crea la imagen
 
 
 ns: ## Crea el namespace
-	-cat namespace.yaml | sed -e "s/<NS>/${NAMESPACE}/" |kubectl create -f -
+	-cat namespace.yaml | sed -e "s/<NS>/${NAMESPACE}/" |kubectl --kubeconfig=$(KUBECONFIG) create -f -
 
 install: ## Instala todo (excepto las claims)
-	-cat reg-secret.yaml| sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f -
-	-cat env-prod-configmap.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f -
+	-cat reg-secret.yaml| sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) create -f -
+	-cat env-prod-configmap.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) create -f -
 
-	-cat jugaralpadel-deployment.yaml | sed -e "s/<NS>/${NAMESPACE}/" | sed -e "s/<TAG>/${BUILT_VERSION}/" | sed -e "s/<REGISTRO>/${REGISTRO}/" | kubectl create -f -
-	-cat jugaralpadel-ingress.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f -
+	-cat jugaralpadel-deployment.yaml | sed -e "s/<NS>/${NAMESPACE}/" | sed -e "s/<TAG>/${BUILT_VERSION}/" | sed -e "s/<REGISTRO>/${REGISTRO}/" | kubectl --kubeconfig=$(KUBECONFIG) create -f -
+	-cat jugaralpadel-ingress.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) create -f -
 
 clean: ## Borra todo (excepto las claims)
-	-cat jugaralpadel-ingress.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl delete -f -
-	-cat jugaralpadel-deployment.yaml | sed -e "s/<NS>/${NAMESPACE}/" | sed -e "s/<TAG>/${BUILT_VERSION}/" | sed -e "s/<REGISTRO>/${REGISTRO}/" | kubectl delete -f -
+	-cat jugaralpadel-ingress.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) delete -f -
+	-cat jugaralpadel-deployment.yaml | sed -e "s/<NS>/${NAMESPACE}/" | sed -e "s/<TAG>/${BUILT_VERSION}/" | sed -e "s/<REGISTRO>/${REGISTRO}/" | kubectl --kubeconfig=$(KUBECONFIG) delete -f -
 
-	-cat env-prod-configmap.yaml  | sed -e "s/<NS>/${NAMESPACE}/" | kubectl delete -f -
-	-cat reg-secret.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl delete -f -
+	-cat env-prod-configmap.yaml  | sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) delete -f -
+	-cat reg-secret.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) delete -f -
 
 service: ## Crea el servicio con NodePort
-	-cat jugaralpadel-service.yaml| sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f -
+	-cat jugaralpadel-service.yaml| sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) create -f -
 
 servicelb: ## Crea el servicio con LoadBalancer
-	-cat jugaralpadel-service-lb.yaml| sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f -
+	-cat jugaralpadel-service-lb.yaml| sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) create -f -
 
 borraclaims: ## Borra las claims
-	-cat pvc-jugaralpadel.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl delete -f -
-	-cat pvc-static.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl delete -f -
+	-cat pvc-jugaralpadel.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) delete -f -
+	-cat pvc-static.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) delete -f -
 
 claims: ## Crea las claims
-	-cat pvc-jugaralpadel.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f -
-	-cat pvc-static.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f -
+	-cat pvc-jugaralpadel.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) create -f -
+	-cat pvc-static.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl --kubeconfig=$(KUBECONFIG) create -f -
 
 app: ## Despliega la app
-	-cat jugaralpadel-deployment.yaml | sed -e "s/<NS>/${NAMESPACE}/" | sed -e "s/<TAG>/${BUILT_VERSION}/" | sed -e "s/<REGISTRO>/${REGISTRO}/" | kubectl delete -f -
-	-cat jugaralpadel-deployment.yaml | sed -e "s/<NS>/${NAMESPACE}/" | sed -e "s/<TAG>/${BUILT_VERSION}/" | sed -e "s/<REGISTRO>/${REGISTRO}/" | kubectl create -f -
+	-cat jugaralpadel-deployment.yaml | sed -e "s/<NS>/${NAMESPACE}/" | sed -e "s/<TAG>/${BUILT_VERSION}/" | sed -e "s/<REGISTRO>/${REGISTRO}/" | kubectl --kubeconfig=$(KUBECONFIG) delete -f -
+	-cat jugaralpadel-deployment.yaml | sed -e "s/<NS>/${NAMESPACE}/" | sed -e "s/<TAG>/${BUILT_VERSION}/" | sed -e "s/<REGISTRO>/${REGISTRO}/" | kubectl --kubeconfig=$(KUBECONFIG) create -f -
 
 db: ## Crea la base de datos en el cluster
-	-kubectl create -f jugaralpadel-db.yaml
+	-kubectl --kubeconfig=$(KUBECONFIG) create -f jugaralpadel-db.yaml