Skip to content
Snippets Groups Projects
Commit 242076f6 authored by Dominik Hebeler's avatar Dominik Hebeler
Browse files

Merge branch '1193-implement-prometheus-export-for-fpm-status' into 'development'

Resolve "Implement Prometheus export for fpm status"

Closes #1193

See merge request !1979
parents 091577a5 af0e2456
No related branches found
No related tags found
1 merge request!1979Resolve "Implement Prometheus export for fpm status"
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
......@@ -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
......
......@@ -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')
......
#!/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 \
......
......@@ -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} \
......
......@@ -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
......@@ -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
......
......@@ -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;
......
......@@ -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;
......
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment