diff --git a/deployment/helm/predator/templates/NOTES.txt b/deployment/helm/predator/templates/NOTES.txt index 125ddc87a..06ea55045 100644 --- a/deployment/helm/predator/templates/NOTES.txt +++ b/deployment/helm/predator/templates/NOTES.txt @@ -17,5 +17,5 @@ {{- else if contains "ClusterIP" .Values.service.type }} export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "predator.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") echo "Visit http://127.0.0.1:80 to use your application" - kubectl port-forward $POD_NAME 80:80 + kubectl port-forward $POD_NAME 8080:80 --namespace {{ .Release.Namespace }} {{- end }} diff --git a/deployment/helm/predator/templates/deployment.yaml b/deployment/helm/predator/templates/deployment.yaml index 105bf5a45..16f198c6e 100644 --- a/deployment/helm/predator/templates/deployment.yaml +++ b/deployment/helm/predator/templates/deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "predator.fullname" . }} - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} labels: app.kubernetes.io/name: {{ include "predator.name" . }} helm.sh/chart: {{ include "predator.chart" . }} @@ -10,7 +10,7 @@ metadata: app.kubernetes.io/managed-by: {{ .Release.Service }} spec: replicas: 1 - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} selector: matchLabels: app.kubernetes.io/name: {{ include "predator.name" . }} @@ -48,13 +48,17 @@ spec: - name: KUBERNETES_URL value: {{ .Values.KUBERNETES_URL }} - name: KUBERNETES_NAMESPACE - value: {{ .Values.namespace }} + value: {{ .Release.Namespace }} - name: GRAFANA_URL value: {{ .Values.GRAFANA_URL }} - name: METRICS_PLUGIN_NAME value: {{ .Values.METRICS_PLUGIN_NAME }} - name: METRICS_EXPORT_CONFIG value: {{ .Values.METRICS_EXPORT_CONFIG }} + - name: INTERNAL_ADDRESS + value: http://{{ include "predator.fullname" . }}.{{ .Release.Namespace }}:{{ .Values.service.port }} + - name: EXTERNAL_ADDRESS + value: {{ .Values.EXTERNAL_ADDRESS }} ports: - name: http containerPort: 80 diff --git a/deployment/helm/predator/values.yaml b/deployment/helm/predator/values.yaml index 90200ebcd..d31949477 100644 --- a/deployment/helm/predator/values.yaml +++ b/deployment/helm/predator/values.yaml @@ -47,8 +47,6 @@ tolerations: [] affinity: {} -namespace: predator - JOB_PLATFORM: KUBERNETES KUBERNETES_URL: https://kubernetes.default.svc KUBERNETES_TOKEN: @@ -62,6 +60,9 @@ DATABASE_USERNAME: MY_ADDRESS: DOCKER_NAME: zooz/predator-runner:latest +INTERNAL_ADDRESS: +EXTERNAL_ADDRESS: + METRICS_PLUGIN_NAME: METRICS_EXPORT_CONFIG: GRAFANA_URL: \ No newline at end of file diff --git a/src/config/serviceConfig.js b/src/config/serviceConfig.js index c44099455..5df4dd27f 100644 --- a/src/config/serviceConfig.js +++ b/src/config/serviceConfig.js @@ -1,6 +1,7 @@ let config = { grafanaUrl: process.env.GRAFANA_URL, - myAddress: process.env.MY_ADDRESS, + externalAddress: process.env.EXTERNAL_ADDRESS || process.env.INTERNAL_ADDRESS, + internalAddress: process.env.INTERNAL_ADDRESS, concurrencyLimit: process.env.CONCURRENCY_LIMIT || 500, dockerName: process.env.DOCKER_NAME || 'zooz/predator-runner:latest', jobPlatform: process.env.JOB_PLATFORM, diff --git a/src/env.js b/src/env.js index a862671f6..35182c95d 100644 --- a/src/env.js +++ b/src/env.js @@ -30,7 +30,8 @@ env.init = function () { } let mandatoryVars = [ - 'JOB_PLATFORM' + 'JOB_PLATFORM', + 'INTERNAL_ADDRESS' ]; mandatoryVars = mandatoryVars.concat(BY_PLATFORM_MANDATORY_VARS[process.env.JOB_PLATFORM]); diff --git a/src/jobs/models/jobManager.js b/src/jobs/models/jobManager.js index d17d484c1..30fb0ea47 100644 --- a/src/jobs/models/jobManager.js +++ b/src/jobs/models/jobManager.js @@ -176,7 +176,7 @@ function createJobRequest(jobId, runId, jobBody, dockerImage) { RUN_ID: runId.toString(), ENVIRONMENT: jobBody.environment, TEST_ID: jobBody.test_id, - PREDATOR_URL: config.myAddress, + PREDATOR_URL: config.internalAddress, ARRIVAL_RATE: arrivalRatePerRunner.toString(), DURATION: jobBody.duration.toString() }; diff --git a/src/reports/models/reportsManager.js b/src/reports/models/reportsManager.js index c4cd24ad4..5a16b68a1 100644 --- a/src/reports/models/reportsManager.js +++ b/src/reports/models/reportsManager.js @@ -48,7 +48,7 @@ function getReportResponse(summaryRow) { let testConfiguration = summaryRow.test_configuration ? JSON.parse(summaryRow.test_configuration) : {}; let lastStats = summaryRow.last_stats ? JSON.parse(summaryRow.last_stats) : {}; - let htmlReportUrl = serviceConfig.myAddress + `/v1/tests/${summaryRow.test_id}/reports/${summaryRow.report_id}/html`; + let htmlReportUrl = serviceConfig.externalAddress + `/v1/tests/${summaryRow.test_id}/reports/${summaryRow.report_id}/html`; let grafanaReportUrl = encodeURI(serviceConfig.grafanaUrl + `?var-Name=${summaryRow.test_name}&from=${new Date(summaryRow.start_time).getTime()}`); if (summaryRow.end_time) { diff --git a/src/reports/models/statsConsumer.js b/src/reports/models/statsConsumer.js index b72eef6e3..c70afce7b 100644 --- a/src/reports/models/statsConsumer.js +++ b/src/reports/models/statsConsumer.js @@ -95,7 +95,7 @@ async function handleDone(report, job, stats, statsTime, statsData, grafanaRepor await databaseConnector.insertStats(report.test_id, report.report_id, uuidv4(), statsTime, report.phase, 'aggregate', stats.data); await databaseConnector.updateReport(report.test_id, report.report_id, 'finished', report.phase, stats.data, statsTime); - const htmlReportUrl = serviceConfig.myAddress + `/v1/tests/${report.test_id}/reports/${report.report_id}/html`; + const htmlReportUrl = serviceConfig.externalAddress + `/v1/tests/${report.test_id}/reports/${report.report_id}/html`; let webhookMessage = `😎 *Test ${report.test_name} with id: ${report.test_id} is finished.*\n${statsFromatter.getStatsFormatted('aggregate', statsData)}\n<${htmlReportUrl}|View final html report>\n`; if (grafanaReportUrl) { @@ -114,7 +114,7 @@ async function handleAbort(report, job, stats, statsTime, grafanaReportUrl) { await databaseConnector.updateReport(report.test_id, report.report_id, 'aborted', report.phase, undefined, statsTime); if (job.webhooks) { - const htmlReportUrl = serviceConfig.myAddress + `/v1/tests/${report.test_id}/reports/${report.report_id}/html`; + const htmlReportUrl = serviceConfig.externalAddress + `/v1/tests/${report.test_id}/reports/${report.report_id}/html`; let webhookMessage = `😢 *Test ${report.test_name} with id: ${report.test_id} was aborted.*\n<${htmlReportUrl}|View final html report>\n`; if (grafanaReportUrl) { webhookMessage += `<${grafanaReportUrl}|View final grafana dashboard report>`; diff --git a/tests/configurations/commonConfiguration.sh b/tests/configurations/commonConfiguration.sh index 96a8be99d..f60d45a34 100755 --- a/tests/configurations/commonConfiguration.sh +++ b/tests/configurations/commonConfiguration.sh @@ -13,4 +13,5 @@ export SMTP_HOST=$RUNNER_IP export SMTP_PORT=1025 export SMTP_PASSWORD=password export SMTP_USERNAME=username -export DOCKER_NAME='zooz/predator-runner:latest' \ No newline at end of file +export DOCKER_NAME='zooz/predator-runner:latest' +export INTERNAL_ADDRESS='http://localhost:80' \ No newline at end of file diff --git a/tests/integration-tests/runLocal.sh b/tests/integration-tests/runLocal.sh index 99a23054a..f900c0c31 100755 --- a/tests/integration-tests/runLocal.sh +++ b/tests/integration-tests/runLocal.sh @@ -1,7 +1,7 @@ #!/bin/bash -e -LOCAL_TEST=true DATABASE_TYPE=cassandra PLATFORM_TYPE=kubernetes ./tests/integration-tests/run.sh -LOCAL_TEST=true DATABASE_TYPE=mysql PLATFORM_TYPE=kubernetes ./tests/integration-tests/run.sh -LOCAL_TEST=true DATABASE_TYPE=sqlite PLATFORM_TYPE=kubernetes ./tests/integration-tests/run.sh -LOCAL_TEST=true DATABASE_TYPE=postgres PLATFORM_TYPE=metronome ./tests/integration-tests/run.sh -LOCAL_TEST=true DATABASE_TYPE=sqlite PLATFORM_TYPE=docker ./tests/integration-tests/run.sh \ No newline at end of file +LOCAL_TEST=true DATABASE_TYPE=cassandra JOB_PLATFORM=kubernetes ./tests/integration-tests/run.sh +LOCAL_TEST=true DATABASE_TYPE=mysql JOB_PLATFORM=kubernetes ./tests/integration-tests/run.sh +LOCAL_TEST=true DATABASE_TYPE=sqlite JOB_PLATFORM=kubernetes ./tests/integration-tests/run.sh +LOCAL_TEST=true DATABASE_TYPE=postgres JOB_PLATFORM=metronome ./tests/integration-tests/run.sh +LOCAL_TEST=true DATABASE_TYPE=sqlite JOB_PLATFORM=docker ./tests/integration-tests/run.sh \ No newline at end of file diff --git a/tests/unit-tests/jobs/models/jobManager-test.js b/tests/unit-tests/jobs/models/jobManager-test.js index 1c4bbcce7..fbc9509c5 100644 --- a/tests/unit-tests/jobs/models/jobManager-test.js +++ b/tests/unit-tests/jobs/models/jobManager-test.js @@ -189,7 +189,7 @@ describe('Manager tests', function () { describe('Create new job', function () { before(() => { manager.__set__('config.baseUrl', ''); - manager.__set__('config.myAddress', 'localhost:80'); + manager.__set__('config.internalAddress', 'localhost:80'); manager.__set__('config.environment', ''); manager.__set__('config.concurrencyLimit', '100'); uuidStub.returns('5a9eee73-cf56-47aa-ac77-fad59e961aaf');