mirror of
https://github.com/gsi-upm/senpy
synced 2024-10-31 23:41:41 +00:00
51 lines
1.8 KiB
Makefile
51 lines
1.8 KiB
Makefile
# Deployment with Kubernetes
|
|
|
|
# KUBE_CA_PEM_FILE is the path of a certificate file. It automatically set by GitLab
|
|
# if you enable Kubernetes integration in a project.
|
|
#
|
|
# As of this writing, Kubernetes integration can not be set on a group level, so it has to
|
|
# be manually set in every project.
|
|
# Alternatively, we use a custom KUBE_CA_BUNDLE environment variable, which can be set at
|
|
# the group level. In this case, the variable contains the whole content of the certificate,
|
|
# which we dump to a temporary file
|
|
#
|
|
# Check if the KUBE_CA_PEM_FILE exists. Otherwise, create it from KUBE_CA_BUNDLE
|
|
KUBE_CA_TEMP=false
|
|
ifeq ($(wildcard $(KUBE_CA_PEM_FILE)),)
|
|
KUBE_CA_PEM_FILE:="$$PWD/.ca.crt"
|
|
CREATED:=$(shell echo -e "$$KUBE_CA_BUNDLE" > $(KUBE_CA_PEM_FILE))
|
|
endif
|
|
KUBE_URL?=""
|
|
KUBE_TOKEN?=""
|
|
KUBE_NAMESPACE?=$(NAME)
|
|
KUBECTL=docker run --rm -v $(KUBE_CA_PEM_FILE):/tmp/ca.pem -i lachlanevenson/k8s-kubectl --server="$(KUBE_URL)" --token="$(KUBE_TOKEN)" --certificate-authority="/tmp/ca.pem" -n $(KUBE_NAMESPACE)
|
|
CI_COMMIT_REF_NAME?=master
|
|
|
|
info: ## Print variables. Useful for debugging.
|
|
@echo "#KUBERNETES"
|
|
@echo KUBE_URL=$(KUBE_URL)
|
|
@echo KUBE_CA_PEM_FILE=$(KUBE_CA_PEM_FILE)
|
|
@echo KUBE_CA_BUNDLE=$$KUBE_CA_BUNDLE
|
|
@echo KUBE_TOKEN=$(KUBE_TOKEN)
|
|
@echo KUBE_NAMESPACE=$(KUBE_NAMESPACE)
|
|
@echo KUBECTL=$(KUBECTL)
|
|
|
|
@echo "#CI"
|
|
@echo CI_PROJECT_NAME=$(CI_PROJECT_NAME)
|
|
@echo CI_REGISTRY=$(CI_REGISTRY)
|
|
@echo CI_REGISTRY_USER=$(CI_REGISTRY_USER)
|
|
@echo CI_COMMIT_REF_NAME=$(CI_COMMIT_REF_NAME)
|
|
|
|
#
|
|
# Deployment and advanced features
|
|
#
|
|
|
|
|
|
deploy: ## Deploy to kubernetes using the credentials in KUBE_CA_PEM_FILE (or KUBE_CA_BUNDLE ) and TOKEN
|
|
@cat k8s/{*.yaml,*.yml,*.tmpl} | envsubst | $(KUBECTL) apply -f -
|
|
|
|
deploy-check: ## Get the deployed configuration.
|
|
@$(KUBECTL) get deploy,pods,svc,ingress
|
|
|
|
.PHONY:: info deploy deploy-check
|