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 |