Generate a temporary merged YAML file locally before copying to the server. This reduces the number of SSH/SCP commands from multiple to two, minimizing password prompts and connection overhead.
37 lines
1.4 KiB
Makefile
37 lines
1.4 KiB
Makefile
IMG := mkm-admin
|
|
|
|
build:
|
|
podman build -t $(IMG) .
|
|
|
|
# Server configuration (Change these to your actual server details)
|
|
SERVER_USER := user
|
|
SERVER_IP := 192.168.100.105
|
|
SERVER_PATH := /var/www/mkm-admin
|
|
|
|
deploy: build
|
|
@echo "Cleaning up existing deployment if any..."
|
|
-podman kube down k8s/deployment.yaml
|
|
@echo "Generating merged deployment with ConfigMap..."
|
|
kubectl create configmap mkm-admin-config --from-env-file=.env --dry-run=client -o yaml > k8s/merged_deployment.yaml
|
|
@echo "---" >> k8s/merged_deployment.yaml
|
|
@cat k8s/deployment.yaml >> k8s/merged_deployment.yaml
|
|
@echo "Deploying via podman kube play..."
|
|
podman kube play k8s/merged_deployment.yaml
|
|
@rm k8s/merged_deployment.yaml
|
|
|
|
deploy-server:
|
|
@echo "Deploying to remote server $(SERVER_IP)..."
|
|
@# Generate temporary merged YAML for server
|
|
@kubectl create configmap mkm-admin-config --from-env-file=.env --dry-run=client -o yaml > k8s/server_deploy.yaml
|
|
@echo "---" >> k8s/server_deploy.yaml
|
|
@cat k8s/deployment.yaml >> k8s/server_deploy.yaml
|
|
@# Single SCP/SSH call to reduce password prompts
|
|
scp k8s/server_deploy.yaml $(SERVER_USER)@$(SERVER_IP):/tmp/server_deploy.yaml
|
|
ssh $(SERVER_USER)@$(SERVER_IP) "kubectl apply -f /tmp/server_deploy.yaml && rm /tmp/server_deploy.yaml"
|
|
@rm k8s/server_deploy.yaml
|
|
|
|
stop:
|
|
-podman kube down k8s/deployment.yaml >/dev/null 2>&1
|
|
|
|
.PHONY: build deploy deploy-server stop
|