1- # Add utility functions and scripts to the container
1+ # Include utility functions and scripts
22include scripts/makefile/*.mk
33
44.PHONY : all fast allfast provision si exec exec0 down clean dev drush info phpcs phpcbf hooksymlink clang cinsp compval watchdogval drupalrectorval upgradestatusval behat sniffers tests front front-install front-build clear-front lintval lint storybook back behatdl behatdi browser_driver browser_driver_stop statusreportval contentgen newlineeof localize local-settings redis-settings content patchval diff
@@ -10,9 +10,14 @@ include scripts/makefile/*.mk
1010
1111# Prepare enviroment variables from defaults
1212$(shell false | cp -i \.env.default \.env 2>/dev/null)
13- $(shell false | cp -i \.\/docker\/docker-compose\.override\.yml\.default \.\/docker\/docker-compose\.override\.yml 2>/dev/null)
1413include .env
1514
15+ # Sanitize PROJECT_NAME input
16+ COMPOSE_PROJECT_NAME := $(shell echo "$(PROJECT_NAME ) " | tr -cd '[a-zA-Z0-9]' | tr '[:upper:]' '[:lower:]')
17+
18+ kk :
19+ helm install --kubeconfig=/etc/rancher/k3s/k3s.yaml --set projectName=$(COMPOSE_PROJECT_NAME ) sdc ./helm/
20+
1621# Get user/group id to manage permissions between host and containers
1722LOCAL_UID := $(shell id -u)
1823LOCAL_GID := $(shell id -g)
@@ -24,7 +29,7 @@ CGID ?= $(LOCAL_GID)
2429# Define network name.
2530COMPOSE_NET_NAME := $(COMPOSE_PROJECT_NAME ) _front
2631
27- SDC_SERVICES =$(shell docker-compose config --services)
32+ # SDC_SERVICES=$(shell docker-compose config --services) # TODO: Replace or remove
2833# Determine database data directory if defined
2934DB_MOUNT_DIR =$(shell cd docker && realpath $(DB_DATA_DIR ) ) /
3035ifeq ($(findstring mysql,$(SDC_SERVICES ) ) ,mysql)
@@ -38,10 +43,15 @@ endif
3843CURDIR =$(shell pwd)
3944
4045# Execute php container as regular user
41- php = docker-compose exec -T --user $( CUID ) : $( CGID ) php ${1}
46+ php = kubectl exec -it deploy/sdc -c php -- su -s /bin/ash www-data -c " ${1}"
4247# Execute php container as root user
43- php-0 = docker-compose exec -T --user 0:0 php ${1}
48+ php-0 = kubectl exec -it deploy/sdc -c php -- ${1}
49+
50+ killall :
51+ /usr/local/bin/k3s-killall.sh
52+ /usr/local/bin/k3s-uninstall.sh
4453
54+ # Variables
4555ADDITIONAL_PHP_PACKAGES := tzdata graphicsmagick # php7-intl php7-redis wkhtmltopdf gnu-libiconv php7-pdo_pgsql postgresql-client postgresql-contrib
4656DC_MODULES := project_default_content better_normalizers default_content hal serialization
4757MG_MODULES := migrate_generator migrate migrate_plus migrate_source_csv migrate_tools
@@ -63,17 +73,25 @@ provision:
6373# Check if enviroment variables has been defined
6474ifeq ($(strip $(COMPOSE_PROJECT_NAME ) ) ,projectname)
6575 $(info Project name can not be default, please enter project name.)
66- $(eval COMPOSE_PROJECT_NAME = $(strip $(shell read -p "Project name: " REPLY;echo -n $$REPLY)))
76+ $(eval COMPOSE_PROJECT_NAME = $(strip $(shell read -p "Project name: " REPLY;echo -n $$REPLY))) # TODO: Sanitize lowercase/nospecialchar
6777 $(shell sed -i -e '/COMPOSE_PROJECT_NAME=/ s/=.*/=$(COMPOSE_PROJECT_NAME)/' .env)
6878 $(info Please review your project settings and run `make all` again.)
6979 exit 1
7080endif
7181ifdef DB_MOUNT_DIR
7282 $(shell [ ! -d $(DB_MOUNT_DIR) ] && mkdir -p $(DB_MOUNT_DIR) && chmod 777 $(DB_MOUNT_DIR))
7383endif
74- make -s down
84+ # make -s down
85+ @echo "Downloading and installing container orchestrator..."
86+ curl -sfL https://get.k3s.io | K3S_NODE_NAME=sdc K3S_KUBECONFIG_MODE="644" sh - # TODO: Check behavior if k3s already install + lock version
87+ curl -sfL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | sh - # TODO: rm $(which helm)
88+ # kubectl config view --raw >~/.kube/config # TODO: Simlink to /etc/rancher/k3s/k3s.yaml OR use helm install --kubeconfig=/etc/rancher/k3s/k3s.yaml sdc ./kubernetes/sdc-chart
7589 @echo "Build and run containers..."
76- docker-compose up -d --remove-orphans
90+ # TODO: Rename file
91+ # kubectl apply -f kubernetes/sdc.yaml
92+ helm install --kubeconfig=/etc/rancher/k3s/k3s.yaml --set projectName=$(COMPOSE_PROJECT_NAME) sdc ./helm/
93+ # helm install --kubeconfig=/etc/rancher/k3s/k3s.yaml sdc ./helm/ # https://github.com/k3s-io/k3s/issues/1126#issuecomment-567591888
94+ for i in {1..50}; do echo "Waiting for PHP container..." && kubectl exec -it deploy/sdc -c php -- "whoami" &> /dev/null && break || sleep 1; done; echo "Container is up !"
7795 # Set composer2 as default
7896 $(call php-0, ln -fs composer2 /usr/bin/composer)
7997ifneq ($(strip $(ADDITIONAL_PHP_PACKAGES ) ) ,)
@@ -157,37 +175,31 @@ localize:
157175info :
158176 $(info )
159177 $(info Containers for "$(COMPOSE_PROJECT_NAME ) " info:)
160- $(eval CONTAINERS = $(shell docker ps -f name=$(COMPOSE_PROJECT_NAME ) --format "{{ .ID }}" -f 'label=traefik.enable=true') )
161- $(foreach CONTAINER, $(CONTAINERS ) ,$(info http://$(shell printf '% -19s \n' $(shell docker inspect --format='{{(index .NetworkSettings.Networks "$(COMPOSE_NET_NAME ) ") .IPAddress}}:{{index .Config.Labels "traefik.port"}} {{range $$p, $$conf := .NetworkSettings.Ports}}{{$$p}}{{end}} {{.Name}}' $(CONTAINER ) | rev | sed "s/pct\//,pct:/g" | sed "s/,//" | rev | awk '{ print $0}') ) ) )
162178 $(info )
163179ifdef REVIEW_DOMAIN
164180 $(eval BASE_URL := $(MAIN_DOMAIN_NAME))
165181else
166- $(eval BASE_URL := $(shell docker inspect --format= '{{(index .NetworkSettings.Networks "$(COMPOSE_NET_NAME)").IPAddress}}:{{index .Config.Labels "traefik.port "}}' $(COMPOSE_PROJECT_NAME)_web ))
182+ $(eval BASE_URL := $(shell kubectl get pods -l name=sdc --template '{{range .items}}{{.status.podIP}}{{"\n "}}{{end}}' ))
167183endif
168- $(info Login as System Admin: http://$(shell printf '%-19s \n' $(shell echo "$(BASE_URL)"$(shell $(call php, drush user:login --name="$(ADMIN_NAME)" /admin/content/ | awk -F "default" '{print $$2}')))))
169- $(info Login as Contributor: http://$(shell printf '%-19s \n' $(shell echo "$(BASE_URL)"$(shell $(call php, drush user:login --name="$(TESTER_NAME)" /admin/content/ | awk -F "default" '{print $$2}')))))
184+ $(info Login as System Admin: http://$(shell printf '%-19s \n' $(shell echo "$(BASE_URL)"$(shell $(call php, drush user:login --name="$(ADMIN_NAME)" /admin/content/ | awk -F "default" '{print \ $$2}')))))
185+ $(info Login as Contributor: http://$(shell printf '%-19s \n' $(shell echo "$(BASE_URL)"$(shell $(call php, drush user:login --name="$(TESTER_NAME)" /admin/content/ | awk -F "default" '{print \ $$2}')))))
170186 $(info )
171187ifneq ($(shell diff .env .env.default -q) ,)
172188 @echo -e "\x1b[33mWARNING\x1b[0m - .env and .env.default files differ. Use 'make diff' to see details."
173189endif
174- ifneq ($(shell diff docker/docker-compose.override.yml docker/docker-compose.override.yml.default -q) ,)
175- @echo -e "\x1b[33mWARNING\x1b[0m - docker/docker-compose.override.yml and docker/docker-compose.override.yml.default files differ. Use 'make diff' to see details."
176- endif
177190
178191# # Output diff between local and versioned files
179192diff :
180193 diff -u0 --color .env .env.default || true ; echo " "
181- diff -u0 --color docker/docker-compose.override.yml docker/docker-compose.override.yml.default || true ; echo " "
182194
183195
184196# # Run shell in PHP container as regular user
185197exec :
186- docker-compose exec --user $( CUID ) : $( CGID ) php ash
198+ kubectl exec -it deploy/sdc -c php -- su -s /bin/ash www-data -c ash
187199
188200# # Run shell in PHP container as root
189201exec0 :
190- docker-compose exec --user 0:0 php ash
202+ kubectl exec -it deploy/sdc -c php -- ash
191203
192204down :
193205 @echo " Removing network & containers for $( COMPOSE_PROJECT_NAME) "
232244drush :
233245 $(call php, $(filter-out "$@ ",$(MAKECMDGOALS ) ) )
234246 $(info "To pass arguments use double dash: "make drush en devel -- -y"")
247+
248+ logs :
249+ kubectl logs -f deploy/sdc --all-containers=true
0 commit comments