| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- 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
- BUILT_VERSION := $(shell cat .current_version 2>/dev/null || echo "$(IMG_VERSION)")
- export IMG_VERSION
- help:
- @echo ""
- @echo "Comandos disponibles:"
- @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: ## Selecciona un kubeconfig de forma interactiva
- @mkdir -p $(KUBECONFIG_DIR)
- @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 \
- 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)
- imagen: ## Crea la imagen
- @echo "Building image with version: $(IMG_VERSION)"
- @# Store current version for other targets to use
- @echo "$(IMG_VERSION)" > .current_version
- cd ../; make
- @# Increment version for next build
- @echo "$(IMG_VERSION)" | sed 's/alpine-\([0-9]*\)/alpine-\1/' | awk -F'-' '{print "alpine-" $$2+1}' > $(VERSION_FILE)
- @echo "Next version will be: $$(cat $(VERSION_FILE))"
- ns: ## Crea el namespace
- -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 --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 --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 --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 --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 --kubeconfig=$(KUBECONFIG) create -f -
- servicelb: ## Crea el servicio con LoadBalancer
- -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 --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 --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 --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 --kubeconfig=$(KUBECONFIG) create -f jugaralpadel-db.yaml
|