mirror of
https://github.com/ChristianLight/tutor.git
synced 2024-11-16 10:05:18 +00:00
bb5f10fc16
Kubernetes is currently *not* functional, but it will be, soon!
79 lines
3.7 KiB
Makefile
79 lines
3.7 KiB
Makefile
.PHONY: config volumes services deployments
|
||
.DEFAULT_GOAL := help
|
||
|
||
all: namespace config deploy assets
|
||
|
||
namespace: ## Create the platform namespace
|
||
kubectl create -f namespace.yml
|
||
|
||
config: ## Create configmap objects
|
||
kubectl create configmap nginx-config --from-file=../env/nginx --namespace=openedx
|
||
kubectl create configmap mysql-config --from-env-file=../env/mysql/auth.env --namespace=openedx
|
||
kubectl create configmap openedx-settings-lms --from-file=../env/openedx/settings/lms --namespace=openedx
|
||
kubectl create configmap openedx-settings-cms --from-file=../env/openedx/settings/cms --namespace=openedx
|
||
kubectl create configmap openedx-config --from-file=../env/openedx/config --namespace=openedx
|
||
kubectl create configmap openedx-scripts --from-file=../env/openedx/scripts --namespace=openedx
|
||
|
||
volumes: ## Create volumes
|
||
kubectl create -f volumes/ --recursive=true --namespace=openedx
|
||
deployments: ## Create deployments
|
||
kubectl create -f deployments/ --recursive=true --namespace=openedx
|
||
services: ## Create services
|
||
kubectl create -f services/ --recursive=true --namespace=openedx
|
||
deploy: volumes services deployments
|
||
|
||
upgrade: down deploy
|
||
|
||
down: ## Delete all non-persistent objects
|
||
kubectl delete -f services/ --recursive=true --namespace=openedx
|
||
kubectl delete -f deployments/ --recursive=true --namespace=openedx
|
||
|
||
delete:
|
||
# TODO ask question to make sure user reaaaaaaally want to do this
|
||
kubectl delete namespace openedx
|
||
|
||
|
||
##################### Databases
|
||
|
||
databases: provision-databases migrate #provision-oauth2 ## Bootstrap databases
|
||
provision-databases: ## Create necessary databases and users
|
||
@$(MAKE) lms-exec COMMAND="bash /openedx/scripts/provision.sh"
|
||
provision-oauth2: ## Create users for SSO between services
|
||
@$(MAKE) lms-exec COMMAND="bash /openedx/scripts/oauth2.sh"
|
||
migrate: migrate-openedx #migrate-forum $(extra_migrate_targets) ## Perform all database migrations
|
||
migrate-openedx: ## Perform database migrations on LMS/CMS
|
||
@$(MAKE) lms-exec COMMAND="bash -c 'dockerize -wait tcp://mysql:3306 -timeout 20s && ./manage.py lms --settings=tutor.production migrate'"
|
||
#@$(MAKE) cms-exec COMMAND="bash -c 'dockerize -wait tcp://mysql:3306 -timeout 20s && ./manage.py cms --settings=tutor.production migrate'"
|
||
#$(MAKE) reindex-courses
|
||
#migrate-forum: ## Perform database migrations on discussion forums
|
||
#$(DOCKER_COMPOSE_RUN) forum bash -c "bundle exec rake search:initialize && \
|
||
#bundle exec rake search:rebuild_index"
|
||
#migrate-notes: ## Perform database migrations for the Notes service
|
||
#$(DOCKER_COMPOSE_RUN) notes ./manage.py migrate
|
||
#migrate-xqueue: ## Perform database migrations for the XQueue service
|
||
#$(DOCKER_COMPOSE_RUN) xqueue ./manage.py migrate
|
||
#reindex-courses: ## Refresh course index so they can be found in the LMS search engine
|
||
#$(DOCKER_COMPOSE_RUN) cms ./manage.py cms reindex_course --all --setup
|
||
|
||
##################### Assets
|
||
|
||
assets:
|
||
$(MAKE) pod-exec APP=nginx COMMAND="rm -rf /var/www/openedx/staticfiles"
|
||
kubectl cp openedx/openedx:/openedx/staticfiles openedx/nginx:/var/www/openedx/staticfiles
|
||
|
||
##################### Various commands
|
||
|
||
lms-shell: ## Launch a shell inside an lms pod
|
||
@$(MAKE) lms-exec COMMAND=bash
|
||
lms-exec: ## Execute a command inside an lms pod: make lms-exec COMMAND="..."
|
||
@$(MAKE) pod-exec APP=lms COMMAND=$(COMMAND)
|
||
pod-exec: ## Execute a command inside an arbitrary pod: make pod-exec APP=appname COMMAND="..."
|
||
kubectl exec -n openedx -it $$(kubectl get pods -n openedx --selector=app=$(APP) -o name | head -1 | cut -d '/' -f 2) -- $(COMMAND)
|
||
|
||
ESCAPE =
|
||
help: ## Print this help
|
||
@grep -E '^([a-zA-Z_-]+:.*?## .*|######* .+)$$' Makefile \
|
||
| sed 's/######* \(.*\)/\n $(ESCAPE)[1;31m\1$(ESCAPE)[0m/g' \
|
||
| awk 'BEGIN {FS = ":.*?## "}; {printf "\033[33m%-30s\033[0m %s\n", $$1, $$2}'
|
||
|