diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9de703bd97b5fe5b53a19a02eccc8915bd64b0bf..98e12e0621701bd300ea9a073056be744173ef44 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,43 +1,43 @@ variables: - DOCKER_HOST: "tcp://docker-dind.gitlab-suma:2375" - BUILD_DOCKER_IMAGE: docker:20.10.15 - DEPLOY_KUBERNETES_IMAGE: alpine/k8s:1.22.6 - DOCKER_FPM_IMAGE_NAME: fpm - DOCKER_NGINX_IMAGE_NAME: nginx - DOCKER_NODE_IMAGE_NAME: node + DOCKER_HOST: "tcp://docker-dind.gitlab-suma:2375" + BUILD_DOCKER_IMAGE: docker:20.10.15 + DEPLOY_KUBERNETES_IMAGE: alpine/k8s:1.22.6 + DOCKER_FPM_IMAGE_NAME: fpm + DOCKER_NGINX_IMAGE_NAME: nginx + DOCKER_NODE_IMAGE_NAME: node workflow: rules: - - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "development" && ($CI_COMMIT_TAG || $CI_COMMIT_BRANCH) - variables: - APP_URL: "https://${DOCKER_IMAGE_TAG_PREFIX}.review.metager.de" - APP_ENV: development - DOCKER_IMAGE_TAG_PREFIX: $CI_COMMIT_REF_SLUG - DOCKER_COMPOSER_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-composer-$CI_COMMIT_SHA - DOCKER_FPM_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA - DOCKER_NGINX_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA - DOCKER_NODE_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA - HELM_RELEASE_NAME: review-$DOCKER_IMAGE_TAG_PREFIX - - if: $CI_COMMIT_BRANCH == "master" - variables: - APP_URL: https://metager.de - APP_ENV: production - DOCKER_IMAGE_TAG_PREFIX: $CI_COMMIT_BRANCH - DOCKER_COMPOSER_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-composer-$CI_COMMIT_SHA - DOCKER_FPM_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA - DOCKER_NGINX_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA - DOCKER_NODE_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA - HELM_RELEASE_NAME: $DOCKER_IMAGE_TAG_PREFIX - - if: $CI_COMMIT_BRANCH == "development" - variables: - APP_URL: https://metager3.de - APP_ENV: development - DOCKER_IMAGE_TAG_PREFIX: $CI_COMMIT_BRANCH - DOCKER_COMPOSER_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-composer-$CI_COMMIT_SHA - DOCKER_FPM_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA - DOCKER_NGINX_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA - DOCKER_NODE_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA - HELM_RELEASE_NAME: $DOCKER_IMAGE_TAG_PREFIX + - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "development" && ($CI_COMMIT_TAG || $CI_COMMIT_BRANCH) + variables: + APP_URL: "https://${DOCKER_IMAGE_TAG_PREFIX}.review.metager.de" + APP_ENV: development + DOCKER_IMAGE_TAG_PREFIX: $CI_COMMIT_REF_SLUG + DOCKER_COMPOSER_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-composer-$CI_COMMIT_SHA + DOCKER_FPM_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA + DOCKER_NGINX_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA + DOCKER_NODE_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA + HELM_RELEASE_NAME: review-$DOCKER_IMAGE_TAG_PREFIX + - if: $CI_COMMIT_BRANCH == "master" + variables: + APP_URL: https://metager.de + APP_ENV: production + DOCKER_IMAGE_TAG_PREFIX: $CI_COMMIT_BRANCH + DOCKER_COMPOSER_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-composer-$CI_COMMIT_SHA + DOCKER_FPM_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA + DOCKER_NGINX_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA + DOCKER_NODE_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA + HELM_RELEASE_NAME: $DOCKER_IMAGE_TAG_PREFIX + - if: $CI_COMMIT_BRANCH == "development" + variables: + APP_URL: https://metager3.de + APP_ENV: development + DOCKER_IMAGE_TAG_PREFIX: $CI_COMMIT_BRANCH + DOCKER_COMPOSER_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-composer-$CI_COMMIT_SHA + DOCKER_FPM_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA + DOCKER_NGINX_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA + DOCKER_NODE_IMAGE_TAG: $DOCKER_IMAGE_TAG_PREFIX-$CI_COMMIT_SHA + HELM_RELEASE_NAME: $DOCKER_IMAGE_TAG_PREFIX stages: - build_dependency_images @@ -51,4 +51,4 @@ include: - local: /.gitlab/ci/build_dependencies.yml - local: /.gitlab/ci/build_docker_images.yml - local: /.gitlab/ci/deploy.yml - - local: /.gitlab/ci/integrationtest.yml \ No newline at end of file + - local: /.gitlab/ci/integrationtest.yml diff --git a/.gitlab/deployment_scripts/cleanup_tags_non_revision.sh b/.gitlab/deployment_scripts/cleanup_tags_non_revision.sh index 0b04bc60e7950ee1462636bce0617f2a4408be5e..9fdefd70583ed65d89984ace8a7e205f50bb67e6 100755 --- a/.gitlab/deployment_scripts/cleanup_tags_non_revision.sh +++ b/.gitlab/deployment_scripts/cleanup_tags_non_revision.sh @@ -2,6 +2,9 @@ set -e +HELM_RELEASE_NAME=${HELM_RELEASE_NAME:0:53} +HELM_RELEASE_NAME=${HELM_RELEASE_NAME%%*(-)} + # Get All existing tags for the fpm repo echo "Fetching existing fpm tags..." declare -A existing_tags_fpm @@ -105,10 +108,10 @@ echo "" echo "Fetching Tags from helm revision history to not be deleted..." declare -A revision_tags_fpm declare -A revision_tags_nginx -helm_release_revisions=$(helm -n $KUBE_NAMESPACE history $HELM_RELEASE_NAME -o json | jq -r '.[]["revision"]') +helm_release_revisions=$(helm -n $KUBE_NAMESPACE history ${HELM_RELEASE_NAME} -o json | jq -r '.[]["revision"]') for revision in $helm_release_revisions do - revision_values=$(helm -n $KUBE_NAMESPACE get values $HELM_RELEASE_NAME --revision=$revision -o json | jq -r '.') + revision_values=$(helm -n $KUBE_NAMESPACE get values ${HELM_RELEASE_NAME} --revision=$revision -o json | jq -r '.') revision_tags_fpm[$(echo $revision_values | jq -r '.image.fpm.tag')]=1 revision_tags_nginx[$(echo $revision_values | jq -r '.image.nginx.tag')]=1 done diff --git a/.gitlab/deployment_scripts/cleanup_tags_revision.sh b/.gitlab/deployment_scripts/cleanup_tags_revision.sh index 7af0024ef981bb65b22bbf916c168555650cb05b..39f164dec0e4421c53542124bb8933307fe1b7b3 100755 --- a/.gitlab/deployment_scripts/cleanup_tags_revision.sh +++ b/.gitlab/deployment_scripts/cleanup_tags_revision.sh @@ -2,7 +2,10 @@ # Call script with KEEP_N variable set to specify the amount of releases to keep -helm -n $KUBE_NAMESPACE history $HELM_RELEASE_NAME +HELM_RELEASE_NAME=${HELM_RELEASE_NAME:0:53} +HELM_RELEASE_NAME=${HELM_RELEASE_NAME%%*(-)} + +helm -n $KUBE_NAMESPACE history ${HELM_RELEASE_NAME} if [ $? -ne 0 ] then echo "Release does not exist yet. Nothing to cleanup!" @@ -11,11 +14,11 @@ fi set -e -revision_count=$(helm -n $KUBE_NAMESPACE history $HELM_RELEASE_NAME -o json | jq -r '. | length') +revision_count=$(helm -n $KUBE_NAMESPACE history ${HELM_RELEASE_NAME} -o json | jq -r '. | length') # Get List of revisions to expire (delete the image tags) end_index=$(($KEEP_N > $revision_count ? 0 : $revision_count-$KEEP_N)) -expired_revisions=$(helm -n $KUBE_NAMESPACE history $HELM_RELEASE_NAME -o json | jq -r ".[0:$end_index][][\"revision\"]") +expired_revisions=$(helm -n $KUBE_NAMESPACE history ${HELM_RELEASE_NAME} -o json | jq -r ".[0:$end_index][][\"revision\"]") # Loop through those revisions declare -A expired_fpm_tags @@ -23,7 +26,7 @@ declare -A expired_nginx_tags for revision in $expired_revisions do # Get Values for this revision - revision_values=$(helm -n $KUBE_NAMESPACE get values $HELM_RELEASE_NAME --revision=$revision -ojson) + revision_values=$(helm -n $KUBE_NAMESPACE get values ${HELM_RELEASE_NAME} --revision=$revision -ojson) # Get Image Tags for this revision revision_fpm_tag=$(echo $revision_values | jq -r '.image.fpm.tag') revision_nginx_tag=$(echo $revision_values | jq -r '.image.nginx.tag') diff --git a/.gitlab/deployment_scripts/update_deployment.sh b/.gitlab/deployment_scripts/update_deployment.sh index cf8e586b78b1d9174a09c6677ec58e19bf20cad1..6306a8a9482586075d69da616b454bdcd3ed37e9 100755 --- a/.gitlab/deployment_scripts/update_deployment.sh +++ b/.gitlab/deployment_scripts/update_deployment.sh @@ -1,7 +1,10 @@ #!/bin/bash +HELM_RELEASE_NAME=${HELM_RELEASE_NAME:0:53} +HELM_RELEASE_NAME=${HELM_RELEASE_NAME%%*(-)} + helm -n $KUBE_NAMESPACE upgrade --install \ - $HELM_RELEASE_NAME \ + ${HELM_RELEASE_NAME} \ chart/ \ -f $DEPLOYMENT_HELM_VALUES \ --set environment=$APP_ENV \ diff --git a/.gitlab/deployment_scripts/update_secret.sh b/.gitlab/deployment_scripts/update_secret.sh index dfdc5f3b5b60aa691a2a1ba378f9a22ff279fea3..522e46aca6f2886df03dd4e4f05b518ea4718dba 100755 --- a/.gitlab/deployment_scripts/update_secret.sh +++ b/.gitlab/deployment_scripts/update_secret.sh @@ -2,8 +2,11 @@ set -e +HELM_RELEASE_NAME=${HELM_RELEASE_NAME:0:53} +HELM_RELEASE_NAME=${HELM_RELEASE_NAME%%*(-)} + # Create/Update the secret -kubectl -n $KUBE_NAMESPACE create secret generic $CI_COMMIT_REF_SLUG \ +kubectl -n $KUBE_NAMESPACE create secret generic ${HELM_RELEASE_NAME} \ --from-file=${ENV_PRODUCTION} \ --from-file=${SUMAS} \ --from-file=${SUMASEN} \ diff --git a/build/fpm/configuration/fpm/www_01_development.conf b/build/fpm/configuration/fpm/www_01_development.conf index 15f2a9c2c788aaa2bbeebb529e35e63c38b8da25..d30e5e11a5ae0355056eec54196c6210070f3c7e 100644 --- a/build/fpm/configuration/fpm/www_01_development.conf +++ b/build/fpm/configuration/fpm/www_01_development.conf @@ -3,5 +3,4 @@ access.log = /dev/null ; This File holds custom www pool configurations for development deployments [www] ; Do not limit request length -request_terminate_timeout = 0 -pm.status_path = /fpm-status \ No newline at end of file +request_terminate_timeout = 0 \ No newline at end of file diff --git a/build/fpm/configuration/fpm/www_01_production.conf b/build/fpm/configuration/fpm/www_01_production.conf index cbfceab807674e96c17b87db96530ef4c0d55edb..6c17cb0d0a5112b4bb71d33d9c8147b03a3c5a2d 100644 --- a/build/fpm/configuration/fpm/www_01_production.conf +++ b/build/fpm/configuration/fpm/www_01_production.conf @@ -5,7 +5,7 @@ access.log = /dev/null ; Limit requests to 30 seconds request_terminate_timeout = 30 ; Unlimited max children as kubernetes will scale deployment before no resources are left -pm.max_children = 10000 +pm.max_children = 500 pm.start_servers = 50 pm.min_spare_servers = 25 pm.max_spare_servers = 50 diff --git a/build/nginx/configuration/nginx-default-dev.conf b/build/nginx/configuration/nginx-default-dev.conf index 9fa435e0929903ad5f742cecb146f63785e240e6..4760167a9ed7b08052e155eda9d917aad36a234f 100644 --- a/build/nginx/configuration/nginx-default-dev.conf +++ b/build/nginx/configuration/nginx-default-dev.conf @@ -8,15 +8,6 @@ server { client_max_body_size 30M; - location /fpm-status { - set $fpm_server fpm; - allow 127.0.0.1; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_index index.php; - include fastcgi_params; - fastcgi_pass $fpm_server:9000; - } - location /health-check/nginx { access_log off; default_type text/plain; diff --git a/build/nginx/configuration/nginx-default.conf b/build/nginx/configuration/nginx-default.conf index e1387c71dbd9a19bdb08324342450b1abf0ad66c..d6ab2a512f923b54836718bc19a5a4fa4305494c 100644 --- a/build/nginx/configuration/nginx-default.conf +++ b/build/nginx/configuration/nginx-default.conf @@ -6,14 +6,6 @@ server { client_max_body_size 30M; - location /fpm-status { - allow 127.0.0.1; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_index index.php; - include fastcgi_params; - fastcgi_pass localhost:9000; -} - location /health-check/nginx { access_log off; default_type text/plain; diff --git a/chart/templates/_helpers.tpl b/chart/templates/_helpers.tpl index 5d7a80b422fea357cb573a1ecc9a9ca494b9da7d..b4f90d2fa02f227827d75b834e4f478a7a9e9e89 100644 --- a/chart/templates/_helpers.tpl +++ b/chart/templates/_helpers.tpl @@ -74,5 +74,5 @@ Create the name of the service account to use {{- end -}} {{- define "secret_name" -}} -{{- printf "%s" .Release.Name | replace "review-" " " | trim }} +{{- printf "%s" .Release.Name }} {{- end -}} \ No newline at end of file