From 0ebae2587742d9093aaadf327ec86cd1bbde579a Mon Sep 17 00:00:00 2001 From: Naeel Date: Thu, 19 Mar 2026 13:51:27 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20event-dispatcher=20v0.1.0=20=E2=80=94?= =?UTF-8?q?=20Dockerfile,=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D0=B9=20=D0=B2?= =?UTF-8?q?=20=D0=BA=D0=BB=D0=B0=D1=81=D1=82=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile.event-dispatcher | 25 +++++++++++++++++++++++++ doc/progress.md | 15 ++++++++------- 2 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 Dockerfile.event-dispatcher diff --git a/Dockerfile.event-dispatcher b/Dockerfile.event-dispatcher new file mode 100644 index 0000000..fa26d9c --- /dev/null +++ b/Dockerfile.event-dispatcher @@ -0,0 +1,25 @@ +# Изменено: 2026-03-19 +# Multi-stage build для event-dispatcher. +# Stage 1: сборка бинаря +# Stage 2: минимальный образ (нужен ca-certificates для TLS к RabbitMQ и k8s API) +FROM golang:1.25-alpine AS builder +ARG TARGETOS +ARG TARGETARCH + +WORKDIR /workspace +COPY go.mod go.mod +COPY go.sum go.sum +RUN go mod download + +COPY api/ api/ +COPY services/event-dispatcher/ services/event-dispatcher/ + +RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} \ + go build -a -o event-dispatcher ./services/event-dispatcher/ + +FROM alpine:3.19 +RUN apk add --no-cache ca-certificates +WORKDIR / +COPY --from=builder /workspace/event-dispatcher . +USER 65532:65532 +ENTRYPOINT ["/event-dispatcher"] diff --git a/doc/progress.md b/doc/progress.md index 5c7a008..3b40bb6 100644 --- a/doc/progress.md +++ b/doc/progress.md @@ -9,13 +9,14 @@ | 1 | Аудит кластера — удаление мусора | ✅ | Удалены: event-monitor/writer/cleaner, pg-* тестовые функции, failed build jobs, orphan namespaces b1e4df2d/b794a3c4 | | 2 | Managed RabbitMQ через Terraform | ✅ | `terraform/RABBIT/`, ns `1dbfe9da-...`, host: `rabbitmqk8s.1dbfe9da-...svc.cluster.local` | | 3 | Архитектура event-trigger задокументирована | ✅ | `doc/decisions/log.md` — выбран Вариант A (отдельный event-dispatcher) | -| 4 | trigger_types.go: +TriggerTypeEvent, +Queue | 🔄 | В работе | -| 5 | internal/config: +RabbitMQURL | ⏳ | | -| 6 | services/event-dispatcher/ | ⏳ | | -| 7 | controllers/trigger_controller.go: +reconcileEvent | ⏳ | | -| 8 | deployments/k8s/event-dispatcher.yaml | ⏳ | | -| 9 | Обновить sless-operator-secret (RABBITMQ_URL) | ⏳ | | -| 10 | Коммит + пуш | ⏳ | | +| 4 | trigger_types.go: +TriggerTypeEvent, +Queue | ✅ | | +| 5 | internal/config: +RabbitMQURL | ✅ | | +| 6 | services/event-dispatcher/ | ✅ | Go-сервис: dispatcher.go, watcher.go, main.go | +| 7 | controllers/trigger_controller.go: +reconcileEvent | ✅ | Создаёт Service, обновляет status | +| 8 | deployments/k8s/event-dispatcher.yaml | ✅ | ServiceAccount + ClusterRole + Deployment | +| 9 | Образ naeel/sless-event-dispatcher:v0.1.0 | ✅ | Собран, запушен в DockerHub | +| 10 | RABBITMQ_URL в sless-operator-secret | ✅ | managed rabbit (1dbfe9da namespace) | +| 11 | event-dispatcher задеплоен в кластер | ✅ | Running в sless namespace |