1
- # Add utility functions and scripts to the container
1
+ # Include utility functions and scripts
2
2
include scripts/makefile/*.mk
3
3
4
4
.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
10
10
11
11
# Prepare enviroment variables from defaults
12
12
$(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)
14
13
include .env
15
14
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
+
16
21
# Get user/group id to manage permissions between host and containers
17
22
LOCAL_UID := $(shell id -u)
18
23
LOCAL_GID := $(shell id -g)
@@ -24,7 +29,7 @@ CGID ?= $(LOCAL_GID)
24
29
# Define network name.
25
30
COMPOSE_NET_NAME := $(COMPOSE_PROJECT_NAME ) _front
26
31
27
- SDC_SERVICES =$(shell docker-compose config --services)
32
+ # SDC_SERVICES=$(shell docker-compose config --services) # TODO: Replace or remove
28
33
# Determine database data directory if defined
29
34
DB_MOUNT_DIR =$(shell cd docker && realpath $(DB_DATA_DIR ) ) /
30
35
ifeq ($(findstring mysql,$(SDC_SERVICES ) ) ,mysql)
@@ -38,10 +43,15 @@ endif
38
43
CURDIR =$(shell pwd)
39
44
40
45
# 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}"
42
47
# 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
44
53
54
+ # Variables
45
55
ADDITIONAL_PHP_PACKAGES := tzdata graphicsmagick # php7-intl php7-redis wkhtmltopdf gnu-libiconv php7-pdo_pgsql postgresql-client postgresql-contrib
46
56
DC_MODULES := project_default_content better_normalizers default_content hal serialization
47
57
MG_MODULES := migrate_generator migrate migrate_plus migrate_source_csv migrate_tools
@@ -63,17 +73,25 @@ provision:
63
73
# Check if enviroment variables has been defined
64
74
ifeq ($(strip $(COMPOSE_PROJECT_NAME ) ) ,projectname)
65
75
$(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
67
77
$(shell sed -i -e '/COMPOSE_PROJECT_NAME=/ s/=.*/=$(COMPOSE_PROJECT_NAME)/' .env)
68
78
$(info Please review your project settings and run `make all` again.)
69
79
exit 1
70
80
endif
71
81
ifdef DB_MOUNT_DIR
72
82
$(shell [ ! -d $(DB_MOUNT_DIR) ] && mkdir -p $(DB_MOUNT_DIR) && chmod 777 $(DB_MOUNT_DIR))
73
83
endif
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
75
89
@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 !"
77
95
# Set composer2 as default
78
96
$(call php-0, ln -fs composer2 /usr/bin/composer)
79
97
ifneq ($(strip $(ADDITIONAL_PHP_PACKAGES ) ) ,)
@@ -157,37 +175,31 @@ localize:
157
175
info :
158
176
$(info )
159
177
$(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}') ) ) )
162
178
$(info )
163
179
ifdef REVIEW_DOMAIN
164
180
$(eval BASE_URL := $(MAIN_DOMAIN_NAME))
165
181
else
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}}' ))
167
183
endif
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}')))))
170
186
$(info )
171
187
ifneq ($(shell diff .env .env.default -q) ,)
172
188
@echo -e "\x1b[33mWARNING\x1b[0m - .env and .env.default files differ. Use 'make diff' to see details."
173
189
endif
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
177
190
178
191
# # Output diff between local and versioned files
179
192
diff :
180
193
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 " "
182
194
183
195
184
196
# # Run shell in PHP container as regular user
185
197
exec :
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
187
199
188
200
# # Run shell in PHP container as root
189
201
exec0 :
190
- docker-compose exec --user 0:0 php ash
202
+ kubectl exec -it deploy/sdc -c php -- ash
191
203
192
204
down :
193
205
@echo " Removing network & containers for $( COMPOSE_PROJECT_NAME) "
232
244
drush :
233
245
$(call php, $(filter-out "$@ ",$(MAKECMDGOALS ) ) )
234
246
$(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