diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 93305053..8cf56b03 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,6 +16,7 @@ variables: PROD_TEMPLATE_GENERATOR: "parr/parr-template-generator" PROD_TEMPLATE_TASK_GENERATOR: "parr/parr-template-task-generator" PROD_JOB_AUTO_CONTROL: "parr/parr-job-auto-control" + PROD_TEMPLATE_MATCHER: "parr/parr-template-matcher" stages: - build @@ -800,4 +801,54 @@ prod_job_auto_control_deploy: matrix: - RUNNER: shell-api-swarm-01 tags: - - ${RUNNER} \ No newline at end of file + - ${RUNNER} + + + +### TEMPLATE MATCHER PROD ### +prod_template_matcher_build: + stage: build + only: + - /^tm[0-9]+\.[0-9]+\.[0-9]+$/ + except: + - branches + services: + - name: docker:20.10.21-dind + command: [ + "--insecure-registry=10.99.253.167:8090", + "--registry-mirror=http://10.99.253.167:8090", + "--insecure-registry=harbor.dvgd.rzd", + "--tls=false" + ] + variables: + DOCKER_HOST: tcp://docker:2375 + DOCKER_DRIVER: overlay2 + DOCKER_TLS_CERTDIR: "" + script: + - APP_VERSION=$(echo $CI_COMMIT_TAG | tr -d tm) + - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/tm/v/g') + - docker build -t $REPO/$PROD_TEMPLATE_MATCHER:$IMAGE_VERSION -t $REPO/$PROD_TEMPLATE_MATCHER:latest -t $PROD_TEMPLATE_MATCHER:$IMAGE_VERSION -t $PROD_TEMPLATE_MATCHER:latest --build-arg app_version=$APP_VERSION -f PARR.TemplateMatcherWorker/Dockerfile . + - docker login -u $HARBOR_PUSH_USER -p $HARBOR_PUSH_PASS $REPO + - docker push --all-tags $REPO/$PROD_TEMPLATE_MATCHER + tags: + - docker + + +prod_template_matcher_deploy: + stage: deploy + environment: + name: parr-template-activator + only: + - /^tm[0-9]+\.[0-9]+\.[0-9]+$/ + except: + - branches + script: + - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/tm/v/g') + - docker login -u $HARBOR_PULL_USER -p $HARBOR_PULL_PASS $REPO + - tag=$IMAGE_VERSION docker stack deploy -c docker-compose.template-matcher.yml parr-template-matcher --with-registry-auth + parallel: + matrix: + - RUNNER: shell-api-swarm-01 + tags: + - ${RUNNER} + diff --git a/PARR.AIHITSyncerWorker/appsettings.Development.json b/PARR.AIHITSyncerWorker/appsettings.Development.json index 04114c4d..4aa89aed 100644 --- a/PARR.AIHITSyncerWorker/appsettings.Development.json +++ b/PARR.AIHITSyncerWorker/appsettings.Development.json @@ -7,5 +7,8 @@ "Microsoft.Hosting.Lifetime": "Information" } } + }, + "MqSettings": { + "HostName": "10.99.253.216" } } \ No newline at end of file diff --git a/PARR.AIHITSyncerWorker/appsettings.json b/PARR.AIHITSyncerWorker/appsettings.json index 9f92ef1e..d91af7a8 100644 --- a/PARR.AIHITSyncerWorker/appsettings.json +++ b/PARR.AIHITSyncerWorker/appsettings.json @@ -30,7 +30,7 @@ "RepeatEvery": "00:10:00" }, "MqSettings": { - "HostName": "10.99.253.216", + "HostName": "parr-rabbitmq", "QueueName": "parr-aihit-data", "User": "aihit_syncer", "Password": "afsdgDGjhfiU76496as42!@", diff --git a/PARR.API/Contracts/V1/Responses/JobGroupResponse.cs b/PARR.API/Contracts/V1/Responses/JobGroupResponse.cs index 48fc2f11..8141617e 100644 --- a/PARR.API/Contracts/V1/Responses/JobGroupResponse.cs +++ b/PARR.API/Contracts/V1/Responses/JobGroupResponse.cs @@ -1,6 +1,4 @@ -using PARR.DAL.Models.Job; - -namespace PARR.API.Contracts.V1.Responses +namespace PARR.API.Contracts.V1.Responses { public class JobGroupBaseResponse { @@ -20,7 +18,7 @@ namespace PARR.API.Contracts.V1.Responses public DateTimeOffset ReferenceDate { get; set; } - public JobGroupTypeResponse GroupType { get; set; } + public required JobGroupTypeResponse GroupType { get; set; } // public bool IsAutoDistributionEnabled { get; set; } diff --git a/PARR.TemplateMatcher/TemplateMatcher.cs b/PARR.TemplateMatcher/TemplateMatcher.cs index 2b487c34..834c8ce0 100644 --- a/PARR.TemplateMatcher/TemplateMatcher.cs +++ b/PARR.TemplateMatcher/TemplateMatcher.cs @@ -46,7 +46,8 @@ namespace PARR.TemplateMatcher var msg = JsonSerializer.Serialize(mqRequest); - var result = new MqSendResult { IsSuccess = true };//TODO await mqService.SendAsync(mqSettings.TemplateGenerator, new[] { msg }); + //var result = new MqSendResult { IsSuccess = true }; + var result = await mqService.SendAsync(mqSettings.TemplateGenerator, new[] { msg }); if (result.IsSuccess) logger.LogInformation($"Отправлен запрос на создание шаблона: {msg}"); diff --git a/docker-compose.template-matcher.yml b/docker-compose.template-matcher.yml new file mode 100644 index 00000000..582388b8 --- /dev/null +++ b/docker-compose.template-matcher.yml @@ -0,0 +1,28 @@ +version: '3.9' + +#TEMPLATE MATCHER +services: + parr-template-matcher: + image: harbor.dvgd.rzd/parr/parr-template-matcher:${tag:-latest} + environment: + - ASPNETCORE_ENVIRONMENT=Production + - TZ=Europe/Moscow + logging: + driver: fluentd + options: + fluentd-address: dvgd-efk-01.dvgd.oao.rzd:24224 + fluentd-retry-wait: '10s' + fluentd-max-retries: '30' + fluentd-async: 'true' + fluentd-buffer-limit: '52428800' + tag: parr.template-matcher.serilog + deploy: + replicas: 4 + networks: + - parr-network + + +networks: + parr-network: + driver: overlay + external: true