Prechádzať zdrojové kódy

La elección del kubeconfig es ahora interactiva

Tino 3 mesiacov pred
rodič
commit
3cea79e656
2 zmenil súbory, kde vykonal 39 pridanie a 14 odobranie
  1. 4 4
      K8S/.kube/config
  2. 35 10
      K8S/Makefile

+ 4 - 4
K8S/.kube/config

@@ -1,8 +1,8 @@
 apiVersion: v1
 clusters:
 - cluster:
-    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlVENDQVIrZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWtNU0l3SUFZRFZRUUREQmx5YTJVeUxYTmwKY25abGNpMWpZVUF4TnpjeU5EYzRORFU0TUI0WERUSTJNRE13TWpFNU1EY3pPRm9YRFRNMk1ESXlPREU1TURjegpPRm93SkRFaU1DQUdBMVVFQXd3WmNtdGxNaTF6WlhKMlpYSXRZMkZBTVRjM01qUTNPRFExT0RCWk1CTUdCeXFHClNNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJHL2tTa0JJZHM5Q3JKdWZKQ0tGUzdlTWpHaFAxQ2p0d0RNNzZZQWUKbUhBcGM5YTdDTjBaaHVVd3ZMREJ5TE9JMFQ3U052VjVDRzBja29kellNZnBSSCtqUWpCQU1BNEdBMVVkRHdFQgovd1FFQXdJQ3BEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUWtCYTdXSTljQWdlRlpMUXlZCjRnUy9xTkVDVWpBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlFQTNpRFd4Q0Z3VHQzU0dMM29BVitRWFhXNWJVc08KaDVjamV6V1RmK2F4VHFzQ0lBdm1kYkUzcnE3eDkvb3N5NUlOUXBLQWx5ZjVCeTk3dEhZdE1mNjZWTXZ6Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
-    server: https://192.168.1.116:6443
+    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlakNDQVIrZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWtNU0l3SUFZRFZRUUREQmx5YTJVeUxYTmwKY25abGNpMWpZVUF4TnpjeU5UUXpOemN4TUI0WERUSTJNRE13TXpFek1UWXhNVm9YRFRNMk1ESXlPVEV6TVRZeApNVm93SkRFaU1DQUdBMVVFQXd3WmNtdGxNaTF6WlhKMlpYSXRZMkZBTVRjM01qVTBNemMzTVRCWk1CTUdCeXFHClNNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJQRjZNZ0pYUWV2bnk0QzdZNnp6MlBQcVJpd1lxbGNIb01kUGVsaFEKUDAvSFd2UlhQdWx3b0VPcFc3WmxsU1ZCTEViWEltNjhMVlY2dFNNWnkwbEZTNmVqUWpCQU1BNEdBMVVkRHdFQgovd1FFQXdJQ3BEQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCVDlPaDF4NTFNcCtQSmV1Ym1lCmc0Q0JqZDBmL0RBS0JnZ3Foa2pPUFFRREFnTkpBREJHQWlFQXVJZDRYMmV1UkszYjBycEh3WGRqMmJycE5xdmsKZ3lhK2o4SkVyMTlKM2lvQ0lRQ3R4Q3puZnFjWmNiRDVNOFd2bHVuRUFUL3FNYnJDMnN4cFpYN0FkaUtwUkE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
+    server: https://127.0.0.1:6443
   name: default
 contexts:
 - context:
@@ -14,5 +14,5 @@ kind: Config
 users:
 - name: default
   user:
-    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrakNDQVRpZ0F3SUJBZ0lJUTdPWEwzMFFJUTB3Q2dZSUtvWkl6ajBFQXdJd0pERWlNQ0FHQTFVRUF3d1oKY210bE1pMWpiR2xsYm5RdFkyRkFNVGMzTWpRM09EUTFPREFlRncweU5qQXpNREl4T1RBM016aGFGdzB5TnpBegpNREl4T1RBM016aGFNREF4RnpBVkJnTlZCQW9URG5ONWMzUmxiVHB0WVhOMFpYSnpNUlV3RXdZRFZRUURFd3h6CmVYTjBaVzA2WVdSdGFXNHdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUTZuUWYrT0RKTXA4cS8KSEtaYmhPVXNQWEZuQTBwRXVaMGhlbWhxQUVtU0hQbWxCVzg4bE4rVXBoZk1VVjNZRjAwSnE4RHl0NXluTzJiVwpKY3NHN3RteW8wZ3dSakFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3Ckh3WURWUjBqQkJnd0ZvQVUzaU5SM2djRDBMV1dJSkhoTDRUSVRXeUNSQll3Q2dZSUtvWkl6ajBFQXdJRFNBQXcKUlFJaEFOcFpVSTVFWmtkcWQzVDlyQWFWYnAxYnYxS3pRY2JSSVpnMUIxTGN1ZGsyQWlCWHVzSUU3ZC92RlQ4dQo4ZnFxUGYvWCsxaDBFZzVqRWJtNXQwK2F4eVIxbVE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlCZVRDQ0FSK2dBd0lCQWdJQkFEQUtCZ2dxaGtqT1BRUURBakFrTVNJd0lBWURWUVFEREJseWEyVXlMV05zCmFXVnVkQzFqWVVBeE56Y3lORGM0TkRVNE1CNFhEVEkyTURNd01qRTVNRGN6T0ZvWERUTTJNREl5T0RFNU1EY3oKT0Zvd0pERWlNQ0FHQTFVRUF3d1pjbXRsTWkxamJHbGxiblF0WTJGQU1UYzNNalEzT0RRMU9EQlpNQk1HQnlxRwpTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCT3ZHWWhueGhRMkVQNjI3YTRhODkzSUpKRWRIa29iakVrMVNvOElmCkQ5RTdTbXVQcjMveUdheGNCY2hMQlNkU01qdjJwZTlpMUhIVGxIZ1QwNXdVR1VHalFqQkFNQTRHQTFVZER3RUIKL3dRRUF3SUNwREFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQjBHQTFVZERnUVdCQlRlSTFIZUJ3UFF0Wllna2VFdgpoTWhOYklKRUZqQUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpRUF2NWx0MldXRUZWcmZDV3NMdUhVdFRaTVo5U0lTClIyNkFpZW1SQkpxbFVaZ0NJQ05oTUtVRnYrZk5VOWVMRTFjYXRYeVkrTGNRQnp5b2haNmlZTWlwTldlLwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
-    client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUVoTUt4OS9kNjVId1RLZnBLVjVXdG01M2g5OVlCS0RnQjduUHo1ZXJ5Vk9vQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFT3AwSC9qZ3lUS2ZLdnh5bVc0VGxMRDF4WndOS1JMbWRJWHBvYWdCSmtoejVwUVZ2UEpUZgpsS1lYekZGZDJCZE5DYXZBOHJlY3B6dG0xaVhMQnU3WnNnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
+    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrakNDQVRpZ0F3SUJBZ0lJZlhIb3h6ZXRUajB3Q2dZSUtvWkl6ajBFQXdJd0pERWlNQ0FHQTFVRUF3d1oKY210bE1pMWpiR2xsYm5RdFkyRkFNVGMzTWpVME16YzNNVEFlRncweU5qQXpNRE14TXpFMk1URmFGdzB5TnpBegpNRE14TXpFMk1URmFNREF4RnpBVkJnTlZCQW9URG5ONWMzUmxiVHB0WVhOMFpYSnpNUlV3RXdZRFZRUURFd3h6CmVYTjBaVzA2WVdSdGFXNHdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVltUTNFZmtjWkdiTWYKSzNxVktRbFo1eVBGSnJ0TjNzelhuYnI2L3VhbWcxWDVuNUVtSmRMSTBNRjFzOU1CVGtpNFNldVN3ai9zb3c5QgpzRmVIMXFDYm8wZ3dSakFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3Ckh3WURWUjBqQkJnd0ZvQVVlblRDcmpsSE5MQXlIUFEwYWM2SWs1RXFhMzB3Q2dZSUtvWkl6ajBFQXdJRFNBQXcKUlFJaEFMNGh4VEFrazM0QnBLZWVBMjJBYUZrai94dUpLNUNmTFprRnEyeEVJYVd6QWlBRUpIb0E5UlpvSjFuSQpsV0dsbGgxcGczRE02SzFlcHZlY1BnNDZib3FrL0E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlCZVRDQ0FSK2dBd0lCQWdJQkFEQUtCZ2dxaGtqT1BRUURBakFrTVNJd0lBWURWUVFEREJseWEyVXlMV05zCmFXVnVkQzFqWVVBeE56Y3lOVFF6TnpjeE1CNFhEVEkyTURNd016RXpNVFl4TVZvWERUTTJNREl5T1RFek1UWXgKTVZvd0pERWlNQ0FHQTFVRUF3d1pjbXRsTWkxamJHbGxiblF0WTJGQU1UYzNNalUwTXpjM01UQlpNQk1HQnlxRwpTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCS205OEUxMWNLSjZEOGM4T3dwcU5hTkhtaEpMOEZKbThiUUhFQzRJCm5UdzY2aHp0NXJWZEEwaFpUL2NObk8xSHpuOWVNbGJrQmZQYUhwL1VITStOUGRlalFqQkFNQTRHQTFVZER3RUIKL3dRRUF3SUNwREFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQjBHQTFVZERnUVdCQlI2ZE1LdU9VYzBzREljOURScAp6b2lUa1NwcmZUQUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpRUE5c2Fud0d4b3ZreWppT1ZMMEZJUWJ3VUtPRk1HCkxvMHRHUU1FeDNWZVJ5VUNJRnJkdUMrSmZLSmlPdlBpQXhhNS9vaFFXU21rZ0tsY2pQd2dsVW15c3hOUgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
+    client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUQ0RHlXTmZsZzBXOWhPc25VVlZUeTR5NHpaa09kdWpaZ3F2UVhoMk5nWExvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFR0prTnhINUhHUm16SHl0NmxTa0pXZWNqeFNhN1RkN00xNTI2K3Y3bXBvTlYrWitSSmlYUwp5TkRCZGJQVEFVNUl1RW5ya3NJLzdLTVBRYkJYaDlhZ213PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=

+ 35 - 10
K8S/Makefile

@@ -28,18 +28,43 @@ kubeconfig-list: ## Lista los kubeconfig disponibles en $HOME/.kube
 		echo "   $$f"; \
 	done
 
-kubeconfig-set: ## Copia el kubeconfig al directorio local .kube (uso: make kubeconfig-set KUBECONFIG_SOURCE=config-main)
+kubeconfig-set: ## Selecciona un kubeconfig de forma interactiva
 	@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)"; \
+	@if [ -n "$(KUBECONFIG_SOURCE)" ]; then \
+		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; \
 	else \
-		echo "Error: No se encontró el kubeconfig '$(KUBECONFIG_SOURCE)'"; \
-		echo "Usa 'make kubeconfig-list' para ver los disponibles"; \
-		exit 1; \
+		bash -c '\
+			configs=($$(ls -1 $(KUBECONFIG_HOME)/config* 2>/dev/null)); \
+			if [ $${#configs[@]} -eq 0 ]; then \
+				echo "No se encontraron kubeconfigs en $(KUBECONFIG_HOME)"; \
+				exit 1; \
+			fi; \
+			echo ""; \
+			echo "Selecciona un kubeconfig:"; \
+			for i in "$${!configs[@]}"; do \
+				echo "  $$((i+1))) $${configs[$$i]}"; \
+			done; \
+			echo ""; \
+			read -p "Introduce el número (1-$${#configs[@]}): " num; \
+			if [[ "$$num" =~ ^[0-9]+$$ ]] && [ "$$num" -ge 1 ] && [ "$$num" -le "$${#configs[@]}" ]; then \
+				idx=$$((num-1)); \
+				cp "$${configs[$$idx]}" $(KUBECONFIG_DIR)/config; \
+				echo "Kubeconfig copiado de $${configs[$$idx]} a $(KUBECONFIG)"; \
+			else \
+				echo "Error: Selección inválida"; \
+				exit 1; \
+			fi; \
+		'; \
 	fi
 
 all: imagen clean install ## Crea todo (excepto las claims)