Compare commits
42
Commits
68672c72e9
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b09d0ee42b | ||
|
|
53bcbcb33c | ||
|
|
7f4627d010 | ||
|
|
8b303929bd | ||
|
|
62792853ba | ||
|
|
24e6e82904 | ||
|
|
eab5336e87 | ||
|
|
899a900319 | ||
|
|
14cfd247b2 | ||
|
|
12a9a6f7a9 | ||
|
|
f85dd6b013 | ||
|
|
4743b8544d | ||
|
|
36557148c1 | ||
|
|
59db74dd59 | ||
|
|
7aaf30843e | ||
|
|
62c3f8a1f7 | ||
|
|
41bf810de9 | ||
|
|
329002fa9b | ||
|
|
454f72ebfe | ||
|
|
eabf8d7459 | ||
|
|
6193d9a065 | ||
|
|
f3a7e5aa9a | ||
|
|
e9e925b04a | ||
|
|
c0803f6243 | ||
|
|
fe2d4de8bf | ||
|
|
e95256daf5 | ||
|
|
7f595b51f2 | ||
|
|
8e7abf411d | ||
|
|
58efc45bf4 | ||
|
|
8f0e97dacf | ||
|
|
7dca7da51d | ||
|
|
3d52eab41d | ||
|
|
370b5a894f | ||
|
|
3e81b4454d | ||
|
|
f599d2d897 | ||
|
|
52b86ab8e8 | ||
|
|
a584fb4462 | ||
|
|
a8060444c1 | ||
|
|
b4cb3a7255 | ||
|
|
2f99f8d3d6 | ||
|
|
9c01076092 | ||
|
|
c354876178 |
@@ -0,0 +1,57 @@
|
||||
name: build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
concurrency:
|
||||
group: build-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
REGISTRY: forgejo.riotpiao.com
|
||||
IMAGE: forgejo.riotpiao.com/rock/kmsvc-manage
|
||||
|
||||
jobs:
|
||||
push:
|
||||
name: Build and push image
|
||||
runs-on: golang
|
||||
container:
|
||||
image: docker:27-cli
|
||||
volumes:
|
||||
- /docker-certs/client:/docker-certs/client:ro
|
||||
env:
|
||||
DOCKER_HOST: tcp://localhost:2376
|
||||
DOCKER_TLS_VERIFY: "1"
|
||||
DOCKER_CERT_PATH: /docker-certs/client
|
||||
steps:
|
||||
- name: install node (required by JS-based actions)
|
||||
run: apk add --no-cache nodejs git
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Get short SHA
|
||||
id: sha
|
||||
run: |
|
||||
SHORT_SHA=$(git rev-parse --short HEAD)
|
||||
echo "short_sha=${SHORT_SHA}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Registry login
|
||||
run: |
|
||||
echo "${REGISTRY_PAT}" | docker login "${REGISTRY}" \
|
||||
--username rock --password-stdin
|
||||
env:
|
||||
REGISTRY_PAT: ${{ secrets.REGISTRY_PAT }}
|
||||
|
||||
- name: Build image
|
||||
run: |
|
||||
docker build \
|
||||
--build-arg "VERSION=${{ steps.sha.outputs.short_sha }}" \
|
||||
-t "${IMAGE}:${{ steps.sha.outputs.short_sha }}" \
|
||||
-t "${IMAGE}:latest" \
|
||||
.
|
||||
|
||||
- name: Push image
|
||||
run: |
|
||||
docker push "${IMAGE}:${{ steps.sha.outputs.short_sha }}"
|
||||
docker push "${IMAGE}:latest"
|
||||
@@ -3,6 +3,7 @@ name: ci
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
tags: ["v*"]
|
||||
pull_request:
|
||||
|
||||
concurrency:
|
||||
@@ -11,12 +12,13 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: docker
|
||||
runs-on: golang
|
||||
container:
|
||||
image: golang:1.25
|
||||
image: golang:1.26
|
||||
env:
|
||||
GOPRIVATE: forgejo.riotpiao.homelab.com
|
||||
GOPRIVATE: forgejo.riotpiao.com
|
||||
GOFLAGS: -mod=readonly
|
||||
REGISTRY_PAT: ${{ secrets.REGISTRY_PAT }}
|
||||
steps:
|
||||
- name: install node (required by JS-based actions)
|
||||
run: apt-get update && apt-get install -y --no-install-recommends nodejs ca-certificates git
|
||||
@@ -25,19 +27,7 @@ jobs:
|
||||
|
||||
- name: configure git auth for private module fetch
|
||||
run: |
|
||||
git config --global url."https://oauth2:${FORGEJO_PAT}@forgejo.riotpiao.homelab.com".insteadOf "https://forgejo.riotpiao.homelab.com"
|
||||
env:
|
||||
FORGEJO_PAT: ${{ secrets.FORGEJO_PAT }}
|
||||
|
||||
- name: cache go modules + build cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cache/go-build
|
||||
~/go/pkg/mod
|
||||
key: go-${{ runner.os }}-${{ hashFiles('go.sum') }}
|
||||
restore-keys: |
|
||||
go-${{ runner.os }}-
|
||||
git config --global url."https://oauth2:${REGISTRY_PAT}@forgejo.riotpiao.com".insteadOf "https://forgejo.riotpiao.com"
|
||||
|
||||
- name: gofmt
|
||||
run: |
|
||||
@@ -59,9 +49,3 @@ jobs:
|
||||
|
||||
- name: coverage summary
|
||||
run: go tool cover -func=coverage.out | tail -1
|
||||
|
||||
- name: upload coverage
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: coverage
|
||||
path: coverage.out
|
||||
@@ -33,3 +33,15 @@ Client Service Pod N ----/ ↓
|
||||
- Horizontal scaling: add more `kmsvc` service replicas—Kafka rebalances automatically
|
||||
- HA: Redis Sentinel/Cluster recommended for production (design.md §9) — currently standalone
|
||||
- Monitoring: Kafka consumer-group lag, Redis pending/inflight keys, visibility timeouts
|
||||
|
||||
## Temporal Namespace Registration — Always Automatic, Never Manual
|
||||
|
||||
**Never manually run `temporal operator namespace create` (or the CLI/UI equivalent) for a namespace that a Queue's `temporal.io/namespace` label will reference.** `queue-operator`'s `reconcileTemporalWorker` (`internal/operator/queue_controller.go`) registers the Temporal namespace itself — idempotently, via `TemporalNamespaceRegisterer.RegisterNamespace` (`internal/operator/temporal_namespace.go`, real impl in `internal/temporal/client.go`) — before creating the `TemporalWorker` CR. This runs on every reconcile of every Queue carrying that label, so the namespace and its worker always exist together.
|
||||
|
||||
**The only steps to bring up a new Temporal namespace + worker are:**
|
||||
1. Apply a `Queue` CR with `metadata.labels["temporal.io/namespace"] = "<namespace>"`.
|
||||
2. That's it. `queue-operator` registers the namespace, creates `TemporalWorker/worker-<namespace>` in the `temporal` namespace, and its backing Deployment.
|
||||
|
||||
**Why this matters:** before this existed, a Queue's `temporal.io/namespace` label was trusted as-is with no verification — a typo'd or never-registered namespace silently produced a worker pod polling a namespace that doesn't exist, with no error surfaced anywhere until someone noticed workflows never executing. Manually pre-creating the namespace masks this — don't do it, let the operator own it.
|
||||
|
||||
One `TemporalWorker` per Temporal namespace serves *all* Queues labeled with that namespace (not one worker per Queue) — see the type doc on `TemporalWorkerSpec` in `apis/kmsvc/v1/temporalworker_types.go`.
|
||||
|
||||
+6
-7
@@ -1,17 +1,16 @@
|
||||
FROM golang:1.26 AS build
|
||||
FROM --platform=$BUILDPLATFORM golang:1.26 AS build
|
||||
ARG TARGETOS
|
||||
ARG TARGETARCH
|
||||
WORKDIR /src
|
||||
ENV GOPRIVATE=forgejo.riotpiao.homelab.com
|
||||
# forgejo.riotpiao.homelab.com's cert is signed by a homelab-private CA, not
|
||||
# a public one -- without this, `go mod download` can't fetch kmsvc-proto.
|
||||
COPY hack/homelab-ca.pem /usr/local/share/ca-certificates/homelab-ca.crt
|
||||
RUN update-ca-certificates
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
COPY . .
|
||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -o /out/kmsvc-server ./cmd/server
|
||||
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -trimpath -o /out/kmsvc-server ./cmd/server
|
||||
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -trimpath -o /out/queue-operator ./cmd/queue-operator
|
||||
|
||||
FROM gcr.io/distroless/static-debian12:nonroot
|
||||
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||
COPY --from=build /out/kmsvc-server /kmsvc-server
|
||||
COPY --from=build /out/queue-operator /queue-operator
|
||||
USER nonroot:nonroot
|
||||
ENTRYPOINT ["/kmsvc-server"]
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# Test trigger for CI with Go 1.26 runner
|
||||
# Test run 2 - with proper secret auth
|
||||
# Test with FORGEJO_TOKEN
|
||||
# Test with GITHUB_TOKEN secret
|
||||
# Final test with REGISTRY_PAT
|
||||
# Test without cache
|
||||
# Final test - clean cache removal
|
||||
# Final CI validation - Forgejo ready
|
||||
# CI cleanup - removed upload-artifact
|
||||
@@ -20,9 +20,10 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/log/zap"
|
||||
"sigs.k8s.io/controller-runtime/pkg/reconcile"
|
||||
|
||||
kmsvcv1 "github.com/rockliang/kafka-management-service/apis/kmsvc/v1"
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
"github.com/rockliang/kafka-management-service/internal/operator"
|
||||
kmsvcv1 "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/apis/kmsvc/v1"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/operator"
|
||||
kmsvctemporal "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/temporal"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -66,11 +67,17 @@ func main() {
|
||||
exitf("connecting to redis at %s: %v", redisAddr, err)
|
||||
}
|
||||
|
||||
temporalClient, err := kmsvctemporal.NewClient(getEnv("KMSVC_TEMPORAL_FRONTEND_ADDRESS", "temporal-frontend.temporal.svc.cluster.local:7233"))
|
||||
if err != nil {
|
||||
exitf("creating temporal client: %v", err)
|
||||
}
|
||||
|
||||
reconciler := &operator.QueueReconciler{
|
||||
Client: mgr.GetClient(),
|
||||
Admin: admin,
|
||||
Redis: rdb,
|
||||
Now: time.Now,
|
||||
Client: mgr.GetClient(),
|
||||
Admin: admin,
|
||||
Redis: rdb,
|
||||
Now: time.Now,
|
||||
Temporal: temporalClient,
|
||||
Zones: &operator.ZoneLocator{
|
||||
// GetAPIReader(), not GetClient(): the latter is cache-backed and
|
||||
// would make controller-runtime List+Watch all Pods/Nodes
|
||||
|
||||
+8
-18
@@ -16,19 +16,17 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
kafkamgmtv1 "forgejo.riotpiao.homelab.com/rock/kmsvc-proto/gen/kafkamgmt/v1"
|
||||
kafkamgmtv1 "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-proto/gen/kafkamgmt/v1"
|
||||
"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/api/handlers"
|
||||
"github.com/rockliang/kafka-management-service/internal/api/interceptors"
|
||||
"github.com/rockliang/kafka-management-service/internal/auth"
|
||||
"github.com/rockliang/kafka-management-service/internal/config"
|
||||
"github.com/rockliang/kafka-management-service/internal/core/queue"
|
||||
"github.com/rockliang/kafka-management-service/internal/core/reaper"
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/api/handlers"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/config"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/core/queue"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/core/reaper"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
// queueDiscoveryInterval is how often the server rescans Redis for newly
|
||||
@@ -66,11 +64,6 @@ func run() error {
|
||||
}
|
||||
defer producer.Close()
|
||||
|
||||
validator, err := auth.NewValidator(ctx, cfg.AuthentikIssuerURL, cfg.AuthentikAudience)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
router := &queue.ShardRouter{Redis: rdb}
|
||||
|
||||
svc := &handlers.QueueService{
|
||||
@@ -88,10 +81,7 @@ func run() error {
|
||||
}
|
||||
defer svc.Consumers.Close()
|
||||
|
||||
grpcSrv := grpc.NewServer(
|
||||
grpc.ChainUnaryInterceptor(interceptors.UnaryServerInterceptor(validator)),
|
||||
grpc.ChainStreamInterceptor(interceptors.StreamServerInterceptor(validator)),
|
||||
)
|
||||
grpcSrv := grpc.NewServer()
|
||||
kafkamgmtv1.RegisterQueueServiceServer(grpcSrv, svc)
|
||||
|
||||
mux := runtime.NewServeMux()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,6 +12,18 @@ rules:
|
||||
- apiGroups: ["kmsvc.io"]
|
||||
resources: ["queues/finalizers"]
|
||||
verbs: ["update"]
|
||||
- apiGroups: ["kmsvc.io"]
|
||||
resources: ["temporalworkers"]
|
||||
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
|
||||
- apiGroups: ["kmsvc.io"]
|
||||
resources: ["temporalworkers/status"]
|
||||
verbs: ["get", "update", "patch"]
|
||||
- apiGroups: ["kmsvc.io"]
|
||||
resources: ["temporalworkers/finalizers"]
|
||||
verbs: ["update"]
|
||||
- apiGroups: ["apps"]
|
||||
resources: ["deployments"]
|
||||
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
|
||||
- apiGroups: ["coordination.k8s.io"]
|
||||
resources: ["leases"]
|
||||
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
|
||||
|
||||
+720
@@ -0,0 +1,720 @@
|
||||
mode: atomic
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:44.76,46.16 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:46.16,48.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:49.2,49.9 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:49.9,51.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:53.2,54.16 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:54.16,56.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:58.2,59.33 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:59.33,61.17 2 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:61.17,63.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:65.3,65.25 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:66.35,67.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:68.34,69.58 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:69.58,71.5 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:72.4,72.11 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:73.40,74.11 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:77.2,77.19 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:83.113,84.51 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:84.51,86.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:87.2,92.12 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:99.87,101.19 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:101.19,103.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:104.2,106.6 3 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:106.6,107.10 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:108.21,109.10 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:110.19,111.76 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/reaper/reaper.go:111.76,113.5 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:22.63,25.2 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:33.55,35.9 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:35.9,37.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:38.2,39.22 2 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:39.22,41.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:42.2,44.40 3 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:44.40,46.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:47.2,47.48 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:52.83,53.112 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:53.112,55.17 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:55.17,57.4 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:58.3,59.17 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:59.17,61.4 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:62.3,62.74 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:68.85,69.108 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:69.108,71.17 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:71.17,73.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:74.3,75.17 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:75.17,77.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:78.3,78.128 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/interceptors/auth.go:87.57,89.2 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:38.94,40.16 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:40.16,42.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:43.2,43.22 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:43.22,45.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:47.2,50.24 3 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:50.24,52.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:54.2,55.9 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:55.9,58.28 3 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:58.28,61.4 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:62.3,63.17 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:63.17,65.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:66.3,68.26 3 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:71.2,72.27 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:72.27,73.26 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:73.26,76.4 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:78.2,78.24 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:78.24,80.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:81.2,81.25 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:86.36,89.33 3 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/consumer_registry.go:89.33,91.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:40.136,47.16 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:47.16,49.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:50.2,53.8 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:56.151,58.41 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:58.41,65.17 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:65.17,67.12 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:69.3,69.120 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:71.2,71.18 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:74.145,76.16 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:76.16,78.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:83.2,96.16 3 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:96.16,98.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:100.2,101.25 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:101.25,109.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:110.2,110.64 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:113.142,114.96 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:114.96,116.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:117.2,117.50 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:120.157,122.41 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:122.41,123.99 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:123.99,125.12 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:127.3,127.94 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:129.2,129.18 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:132.172,134.119 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:134.119,136.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:137.2,137.60 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:145.32,146.16 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:146.16,148.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:149.2,150.9 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:151.42,152.43 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:153.178,154.50 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:155.48,156.51 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/api/handlers/queue_service.go:157.10,158.43 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:18.49,20.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:20.16,22.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:23.2,23.48 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:37.87,45.16 3 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:45.16,47.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:48.2,48.25 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:48.25,49.47 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:49.47,51.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:53.2,53.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:57.70,59.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:59.16,61.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:62.2,62.25 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:62.25,63.48 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:63.48,65.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:67.2,67.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:72.105,74.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:74.16,76.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:77.2,78.33 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:78.33,80.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:81.2,81.49 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:88.86,90.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:90.16,92.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:93.2,94.33 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:94.33,96.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:98.2,100.38 3 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:100.38,101.33 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:101.33,102.17 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:102.17,105.5 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:108.2,108.17 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:115.83,117.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:117.16,119.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:120.2,121.37 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:121.37,122.32 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:122.32,123.20 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:123.20,124.13 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:126.4,126.19 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:129.2,129.17 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:135.86,137.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:137.16,139.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:140.2,141.37 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:141.37,143.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:144.2,144.53 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:152.109,155.16 3 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:155.16,157.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:158.2,158.37 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:158.37,160.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:161.2,161.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:164.25,166.2 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:168.31,168.44 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:170.39,172.2 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:174.40,176.2 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/admin.go:178.48,180.2 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/client.go:10.63,15.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/client.go:15.16,17.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/client.go:18.2,18.16 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/client.go:26.103,33.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/client.go:33.16,35.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/client.go:36.2,36.16 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/consume.go:34.87,41.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/consume.go:41.16,43.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/consume.go:44.2,44.35 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/consume.go:50.48,52.2 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/consume.go:54.28,56.2 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/consume.go:61.64,63.45 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/consume.go:63.45,65.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/consume.go:66.2,67.41 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/consume.go:67.41,75.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/consume.go:76.2,76.17 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/produce.go:18.55,23.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/produce.go:23.16,25.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/produce.go:26.2,26.35 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/produce.go:29.28,31.2 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/produce.go:35.114,37.66 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/produce.go:37.66,39.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/produce.go:40.2,40.24 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:24.73,26.10 2 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:26.10,28.3 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:29.2,29.36 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:34.76,36.10 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:36.10,38.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:39.2,39.48 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:45.45,47.2 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:52.34,62.28 5 6002
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:62.28,73.3 7 12002
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:75.2,75.20 1 6002
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:76.9,78.14 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:79.9,81.14 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:82.9,84.9 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:87.2,91.10 4 6002
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:96.34,98.2 1 6002
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:103.33,105.2 1 6002
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:121.43,123.27 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:123.27,124.43 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:124.43,126.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:128.2,128.15 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:136.67,138.27 2 3000
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:138.27,139.50 1 3000
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:139.50,141.4 1 3000
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:143.2,143.23 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:148.47,150.2 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:157.78,158.29 1 1002
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:158.29,160.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:161.2,161.64 1 1002
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:167.86,168.28 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:168.28,170.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:171.2,171.35 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:171.35,173.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:174.2,174.11 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:174.11,176.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/kafka/topology.go:177.2,177.12 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:25.96,28.16 3 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:28.16,30.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:31.2,32.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:32.16,34.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:35.2,36.38 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:36.38,38.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:40.2,41.64 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:41.64,43.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:44.2,44.18 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:65.76,67.92 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:67.92,69.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:70.2,70.55 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:70.55,72.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:73.2,73.56 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:78.63,80.2 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:88.47,90.2 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/jwks.go:92.65,94.2 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/validator.go:21.88,23.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/validator.go:23.16,25.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/validator.go:26.2,27.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/validator.go:27.16,29.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/validator.go:30.2,30.77 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/validator.go:35.90,37.16 2 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/validator.go:37.16,39.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/validator.go:41.2,48.16 2 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/validator.go:48.16,50.3 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/auth/validator.go:51.2,51.19 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/change_visibility.go:20.145,22.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/change_visibility.go:22.16,24.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/change_visibility.go:25.2,25.9 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/change_visibility.go:25.9,27.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/change_visibility.go:28.2,28.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:31.106,33.16 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:33.16,35.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:36.2,36.9 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:36.9,38.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:40.2,41.16 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:41.16,43.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:44.2,44.43 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:44.43,46.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:48.2,48.48 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:57.125,59.16 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:59.16,61.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:62.2,62.9 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:62.9,64.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:65.2,65.114 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:65.114,67.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:68.2,68.24 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:68.24,70.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:71.2,71.123 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:71.123,73.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/delete_message.go:74.2,74.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/fifo.go:19.153,21.16 2 9
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/fifo.go:21.16,23.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/fifo.go:24.2,24.16 1 9
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:54.112,56.16 2 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:56.16,58.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:59.2,59.9 1 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:59.9,61.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:63.2,64.21 2 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:64.21,66.3 1 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:67.2,68.26 2 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:68.26,70.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:71.2,72.19 2 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:72.19,74.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:76.2,77.16 2 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:77.16,79.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:80.2,81.28 2 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:81.28,83.3 1 10
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:85.2,87.6 3 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:87.6,88.29 1 15
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:88.29,90.18 2 15
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:90.18,92.5 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:93.4,93.15 1 15
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:93.15,94.10 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:96.4,96.26 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:99.3,99.28 1 15
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:99.28,108.38 4 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:108.38,110.5 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:111.4,111.63 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:111.63,113.5 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:114.4,114.32 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:114.32,115.31 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:115.31,116.11 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:118.5,119.15 2 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:119.15,120.14 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:122.5,123.19 2 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:123.19,125.6 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:126.5,126.15 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:126.15,128.6 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:132.3,132.49 1 15
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:132.49,134.4 1 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:135.3,135.10 1 7
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:136.21,137.25 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:138.31,138.31 0 7
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:143.169,145.16 2 15
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:145.16,147.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:148.2,148.9 1 15
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:148.9,150.3 1 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:152.2,153.16 2 7
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:153.16,155.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:156.2,156.9 1 7
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:156.9,160.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:162.2,162.23 1 7
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:162.23,164.17 2 6
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:164.17,166.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:167.3,167.16 1 6
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:167.16,168.88 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:168.88,170.5 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:171.4,171.32 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:175.2,175.100 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:175.100,177.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:178.2,178.98 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:181.188,182.107 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:182.107,184.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:186.2,188.15 3 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:188.15,190.3 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:192.2,200.29 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:200.29,202.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:204.2,204.19 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:204.19,206.17 2 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:206.17,208.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:209.3,209.16 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:209.16,214.95 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:214.95,216.5 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:217.4,217.32 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:221.2,221.99 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/receive_message.go:224.77,226.2 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:50.111,51.40 1 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:51.40,53.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:55.2,56.16 2 7
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:56.16,58.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:59.2,59.9 1 7
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:59.9,61.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:63.2,63.15 1 7
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:63.15,64.30 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:64.30,66.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:67.3,67.38 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:67.38,69.19 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:69.19,71.5 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:72.4,73.18 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:73.18,75.5 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:76.4,76.14 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:76.14,81.5 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:85.2,86.22 2 6
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:86.22,88.3 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:90.2,91.16 2 6
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:91.16,93.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:95.2,97.15 3 6
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:97.15,99.3 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:101.2,102.16 2 6
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:102.16,104.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/send_message.go:106.2,109.8 1 6
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:33.108,35.16 2 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:35.16,37.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:38.2,39.12 2 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:39.12,41.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:42.2,42.19 1 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:48.102,50.16 2 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:50.16,52.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:53.2,54.27 2 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:54.27,55.26 1 10
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:55.26,57.4 1 10
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:59.2,59.17 1 8
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:62.92,64.16 2 16
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:64.16,66.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:67.2,67.29 1 16
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:67.29,69.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/core/queue/shard_router.go:70.2,70.20 1 16
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/client.go:6.61,12.2 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/dedup.go:15.123,17.16 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/dedup.go:17.16,19.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/dedup.go:20.2,20.16 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:28.146,46.16 8 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:46.16,48.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:49.2,49.12 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:54.117,56.16 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:56.16,58.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:59.2,59.17 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:59.17,61.3 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:62.2,74.14 4 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:79.132,81.16 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:81.16,83.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:84.2,84.17 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:84.17,86.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:87.2,88.135 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:88.135,90.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/inflight.go:91.2,91.18 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:7.54,9.2 1 36
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:11.64,13.2 1 11
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:15.66,17.2 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:19.39,21.2 1 31
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:23.54,25.2 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:27.48,29.2 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:31.40,33.2 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:35.39,37.2 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:39.43,41.2 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:43.44,45.2 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:47.40,49.2 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/keys.go:51.40,53.2 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:27.92,30.24 3 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:30.24,32.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:33.2,44.42 4 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:44.42,46.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:47.2,47.12 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:51.98,53.16 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:53.16,55.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:56.2,56.17 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:56.17,58.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:59.2,72.14 6 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:77.82,78.64 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:78.64,80.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:81.2,81.12 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:87.79,91.21 4 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:91.21,93.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:94.2,94.35 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:94.35,96.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/queuemeta.go:97.2,97.19 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:50.123,53.16 3 22
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:53.16,55.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:56.2,56.56 1 22
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:56.56,58.3 1 19
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:60.2,60.29 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:61.22,73.9 3 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:74.28,76.91 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:77.10,78.91 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:91.99,94.16 3 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:94.16,96.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:97.2,97.19 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:97.19,99.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:100.2,100.32 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:106.114,112.16 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:112.16,114.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:115.2,115.21 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:120.120,122.22 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:122.22,124.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:125.2,125.16 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:125.16,127.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:128.2,128.21 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:136.99,137.81 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:137.81,139.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/reaper.go:140.2,140.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:17.100,19.16 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:19.16,21.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:22.2,25.42 4 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:25.42,27.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:28.2,28.12 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:33.101,35.22 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:35.22,37.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:38.2,38.16 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:38.16,40.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:41.2,42.54 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:42.54,44.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:45.2,45.26 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:50.81,51.63 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:51.63,53.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/shardmap.go:54.2,54.12 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:14.117,16.98 2 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:16.98,18.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:19.2,19.12 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:25.132,27.16 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:27.16,29.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:30.2,30.19 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:30.19,32.3 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:33.2,33.39 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:38.119,40.59 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:40.59,42.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:43.2,43.12 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:48.134,50.22 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:50.22,52.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:53.2,53.16 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:53.16,55.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:56.2,57.16 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:57.16,59.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:60.2,60.21 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:66.133,68.16 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:68.16,70.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/redis/watermark.go:71.2,71.16 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_admin.go:20.32,26.2 1 11
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_admin.go:28.95,33.2 4 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_admin.go:35.72,40.2 4 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_admin.go:42.85,46.2 3 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_admin.go:48.88,52.2 3 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_admin.go:54.88,57.35 3 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_admin.go:57.35,59.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_admin.go:60.2,60.24 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_admin.go:63.57,67.2 3 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_admin.go:69.58,73.2 3 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_admin.go:75.49,80.2 4 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_temporal.go:17.38,19.2 1 11
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_temporal.go:21.85,24.18 3 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_temporal.go:24.18,26.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_temporal.go:27.2,28.12 2 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_temporal.go:31.42,35.2 3 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/fake_temporal.go:37.52,41.2 3 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:60.43,61.18 1 20
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:61.18,63.3 1 20
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:64.2,64.19 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:68.88,71.31 3 16
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:71.31,73.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:74.2,74.16 1 16
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:74.16,76.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:78.2,78.39 1 16
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:78.39,80.3 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:82.2,82.113 1 14
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:82.113,84.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:86.2,86.62 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:86.62,88.54 2 10
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:88.54,90.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:93.2,93.35 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:93.35,95.3 1 10
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:97.2,97.57 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:97.57,99.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:101.2,103.55 2 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:103.55,105.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:107.2,107.55 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:107.55,109.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:111.2,111.57 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:111.57,113.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:115.2,115.63 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:115.63,117.3 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:119.2,120.62 2 10
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:120.62,122.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:123.2,123.12 1 10
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:126.118,136.2 1 12
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:138.94,145.40 2 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:145.40,146.42 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:146.42,147.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:149.3,149.64 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:149.64,151.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:153.2,153.12 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:161.96,162.20 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:162.20,164.3 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:165.2,166.37 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:166.37,168.42 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:168.42,169.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:171.3,172.17 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:172.17,174.12 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:176.3,176.26 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:176.26,178.12 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:180.3,181.17 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:181.17,183.12 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:185.3,185.22 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:185.22,187.12 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:189.3,189.30 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:193.114,195.61 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:195.61,197.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:198.2,198.78 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:201.94,210.17 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:210.17,212.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:214.2,215.40 2 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:215.40,216.42 1 15
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:216.42,217.12 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:219.3,225.5 1 14
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:227.2,227.65 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:233.100,234.25 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:234.25,236.3 1 7
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:238.2,239.21 2 6
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:239.21,241.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:243.2,243.42 1 6
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:243.42,245.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:247.2,248.59 2 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:248.59,250.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:252.2,252.69 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:252.69,254.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:256.2,270.81 5 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:270.81,275.3 4 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:275.17,277.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:278.2,278.12 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:281.92,282.61 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:282.61,284.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:285.2,285.40 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:285.40,286.42 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:286.42,287.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:289.3,289.59 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:289.59,291.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:293.2,293.77 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:293.77,295.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:296.2,296.76 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:296.76,298.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:300.2,300.25 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:300.25,302.22 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:302.22,311.85 4 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:311.85,313.5 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:317.2,318.52 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:318.52,320.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:321.2,321.12 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:324.55,326.27 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:326.27,327.58 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:327.58,329.4 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:331.2,331.30 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:334.54,335.49 1 14
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:335.49,337.3 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:338.2,338.31 1 12
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:338.31,339.88 1 321
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:339.88,341.4 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:343.2,343.13 1 9
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:346.48,347.39 1 14
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:347.39,349.3 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:350.2,350.26 1 11
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:350.26,355.15 5 107
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:355.15,357.4 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:358.3,358.38 1 105
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:358.38,360.4 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:361.3,361.35 1 103
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:361.35,363.4 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:365.2,365.12 1 6
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:368.46,369.34 1 7
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:369.34,371.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/queue_controller.go:372.2,372.12 1 7
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:12.47,14.2 1 16
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:20.92,25.40 4 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:25.40,26.43 1 15
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:26.43,28.12 2 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:31.3,32.17 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:32.17,34.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:35.3,35.60 1 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:35.60,37.12 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:40.3,40.59 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:40.59,42.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:43.3,44.25 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_drain.go:46.2,47.12 2 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:17.92,18.26 1 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:18.26,20.3 1 10
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:22.2,23.20 2 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:23.20,25.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:26.2,27.20 2 13
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:27.20,29.3 1 10
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:30.2,33.40 3 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:33.40,34.42 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:34.42,36.4 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:39.2,39.37 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:39.37,41.42 2 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:41.42,42.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:44.3,44.38 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:44.38,45.9 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:47.3,47.92 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:47.92,48.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:51.3,52.17 2 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:52.17,54.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:55.3,58.12 4 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:58.12,59.12 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:61.3,62.19 2 2
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:62.19,63.12 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:65.3,67.39 3 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:67.39,68.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:71.3,83.33 12 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/shard_split.go:85.2,85.12 1 3
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:27.97,30.103 3 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:30.103,31.32 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:31.32,33.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:34.3,34.74 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:37.2,37.40 1 5
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:37.40,39.3 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:41.2,41.77 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:41.77,43.55 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:43.55,45.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:48.2,56.33 3 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:56.33,58.3 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:60.2,61.39 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:61.39,63.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:65.2,65.85 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:65.85,66.103 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:66.103,68.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:70.3,104.35 5 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:104.35,106.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:108.3,110.40 2 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:110.40,112.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:113.3,113.34 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:113.34,115.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:116.3,116.39 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:116.39,118.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:120.3,120.13 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:121.17,124.64 3 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:124.64,126.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:127.3,127.13 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:130.2,132.66 3 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:132.66,134.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:134.8,136.3 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:138.2,138.63 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:138.63,140.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:142.2,142.12 1 4
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:145.111,146.76 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:146.76,148.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:150.2,151.53 2 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:151.53,153.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/temporal_worker_controller.go:154.2,154.12 1 1
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:42.97,43.28 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:43.28,45.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:47.2,49.31 3 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:49.31,51.35 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:51.35,52.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:54.3,55.31 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:55.31,56.12 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:58.3,58.18 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:58.18,61.4 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:63.2,64.19 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:67.94,70.105 3 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:70.105,71.32 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:71.32,73.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:74.3,74.63 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:76.2,76.31 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:79.89,80.47 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:80.47,82.3 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:83.2,84.83 2 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:84.83,85.32 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:85.32,87.4 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:88.3,88.58 1 0
|
||||
forgejo.riotpiao.com/rock/kmsvc-manage/internal/operator/zone_locator.go:90.2,92.18 3 0
|
||||
@@ -1,9 +1,9 @@
|
||||
module github.com/rockliang/kafka-management-service
|
||||
module forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage
|
||||
|
||||
go 1.26.0
|
||||
|
||||
require (
|
||||
forgejo.riotpiao.homelab.com/homelab/kmsvc-proto v1.1.0
|
||||
forgejo.riotpiao.com/riotpiao-poimen/kmsvc-proto v1.4.0
|
||||
github.com/alicebob/miniredis/v2 v2.38.0
|
||||
github.com/google/uuid v1.6.0
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0
|
||||
@@ -12,6 +12,7 @@ require (
|
||||
github.com/twmb/franz-go v1.21.3
|
||||
github.com/twmb/franz-go/pkg/kadm v1.18.0
|
||||
github.com/twmb/franz-go/pkg/kfake v0.0.0-20260615024848-f17c00130060
|
||||
go.temporal.io/api v1.63.3
|
||||
google.golang.org/grpc v1.81.1
|
||||
google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af
|
||||
k8s.io/api v0.36.2
|
||||
@@ -48,6 +49,7 @@ require (
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||
github.com/nexus-rpc/nexus-proto-annotations v0.1.0 // indirect
|
||||
github.com/pierrec/lz4/v4 v4.1.26 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||
github.com/prometheus/client_golang v1.23.2 // indirect
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
forgejo.riotpiao.homelab.com/rock/kmsvc-proto v1.1.0 h1:T7Y0aWFucwtwoOKy0XTCb+MAtay8U5j4SHCgi6PCrQo=
|
||||
forgejo.riotpiao.homelab.com/rock/kmsvc-proto v1.1.0/go.mod h1:pKNhLE2KPpNUeu2BL5BFDgXmPlbyB9LHCfi0G4aE38s=
|
||||
forgejo.riotpiao.com/riotpiao-poimen/kmsvc-proto v1.4.0 h1:4id+KXQhHndnlX6TC0XCYzq0MWhQWWJi09zQq4KPdR8=
|
||||
forgejo.riotpiao.com/riotpiao-poimen/kmsvc-proto v1.4.0/go.mod h1:Tvldxxalok/gCZPaUhPNLxJleRmaF0UIlLCa/MSrHg0=
|
||||
github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
|
||||
github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
|
||||
github.com/alicebob/miniredis/v2 v2.38.0 h1:nZAzCR+Lj+Vxk4ZXzm2NuKq2O33RXj1XxJ2e2uP9jiw=
|
||||
@@ -101,6 +101,8 @@ github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFd
|
||||
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
github.com/nexus-rpc/nexus-proto-annotations v0.1.0 h1:2fELd+9sqUtNu6Fg//pw8YFsxOvp8vZ8hfP0nHhNI80=
|
||||
github.com/nexus-rpc/nexus-proto-annotations v0.1.0/go.mod h1:n3UjF1bPCW8llR8tHvbxJ+27yPWrhpo8w/Yg1IOuY0Y=
|
||||
github.com/onsi/ginkgo/v2 v2.27.4 h1:fcEcQW/A++6aZAZQNUmNjvA9PSOzefMJBerHJ4t8v8Y=
|
||||
github.com/onsi/ginkgo/v2 v2.27.4/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo=
|
||||
github.com/onsi/gomega v1.39.0 h1:y2ROC3hKFmQZJNFeGAMeHZKkjBL65mIZcvrLQBF9k6Q=
|
||||
@@ -166,6 +168,8 @@ go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfC
|
||||
go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A=
|
||||
go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A=
|
||||
go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0=
|
||||
go.temporal.io/api v1.63.3 h1:09yoemfjnk1YHV6g402lMW1vZccUd9Au/NfQBEZC0Eo=
|
||||
go.temporal.io/api v1.63.3/go.mod h1:0k75tRljEuELWGeXjEZZO7zYqBln4+1FrG6+IMOMy7Q=
|
||||
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
||||
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||
|
||||
Executable
+111
@@ -0,0 +1,111 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Smoke test for the queue-operator -> TemporalWorker pipeline:
|
||||
# 1. send/receive/delete a message through each Queue in
|
||||
# k8s/temporal/queues/example-queue.yaml (story-crater-tasks,
|
||||
# story-crater-notifications) via kmsvc-cli.
|
||||
# 2. start a helloworld workflow via the temporal CLI against the
|
||||
# Temporal namespace those queues point at (temporal.io/namespace
|
||||
# label, "production"), on the task queue the auto-created
|
||||
# TemporalWorker polls ("worker-production").
|
||||
#
|
||||
# Workflow execution will not complete -- there is no real worker image
|
||||
# registering a "HelloWorldWorkflow" handler yet (TemporalWorker's Deployment
|
||||
# is running the KMSVC_TEMPORAL_WORKER_IMAGE placeholder). This only proves
|
||||
# the control-plane path: namespace exists, task queue routing works, and
|
||||
# StartWorkflowExecution succeeds end-to-end through the operator-managed
|
||||
# pipeline. `temporal workflow describe` afterward should show it stuck in
|
||||
# Running/WorkflowTaskScheduled, which is the expected signal that this half
|
||||
# of the pipe is wired correctly.
|
||||
#
|
||||
# Env overrides:
|
||||
# NAMESPACE k8s namespace the Queue CRDs + management-service live in (default: sqs)
|
||||
# TEMPORAL_NAMESPACE Temporal namespace the queues are labeled with (default: production)
|
||||
# TASK_QUEUE Temporal task queue the TemporalWorker polls (default: worker-production)
|
||||
# LOCAL_PORT local port for the management-service port-forward (default: 9090)
|
||||
# TEMPORAL_LOCAL_PORT local port for the temporal-frontend port-forward (default: 7233)
|
||||
# AUTHENTIK_TOKEN_URL Authentik OAuth2 token endpoint
|
||||
|
||||
QUEUES=("story-crater-tasks" "story-crater-notifications")
|
||||
NAMESPACE="${NAMESPACE:-sqs}"
|
||||
TEMPORAL_NAMESPACE="${TEMPORAL_NAMESPACE:-production}"
|
||||
TASK_QUEUE="${TASK_QUEUE:-worker-production}"
|
||||
LOCAL_PORT="${LOCAL_PORT:-9090}"
|
||||
TEMPORAL_LOCAL_PORT="${TEMPORAL_LOCAL_PORT:-7233}"
|
||||
SERVER="127.0.0.1:${LOCAL_PORT}"
|
||||
AUTHENTIK_TOKEN_URL="${AUTHENTIK_TOKEN_URL:-https://authentik.riotpiao.homelab.com/application/o/token/}"
|
||||
|
||||
CLIENT_ID=$(talos get cluster/AUTHENTIK_KAFAKA_CLIENT_ID --key AUTHENTIK_KAFAKA_CLIENT_ID)
|
||||
CLIENT_SECRET=$(talos get cluster/AUTHENTIK_KAFAKA_CLIENT_SECRET --key AUTHENTIK_KAFAKA_CLIENT_SECRET)
|
||||
|
||||
TOKEN=$(curl -sf -X POST "${AUTHENTIK_TOKEN_URL}" \
|
||||
-d grant_type=client_credentials \
|
||||
-d client_id="${CLIENT_ID}" \
|
||||
-d client_secret="${CLIENT_SECRET}" \
|
||||
| jq -r '.access_token')
|
||||
|
||||
if [[ -z "${TOKEN}" || "${TOKEN}" == "null" ]]; then
|
||||
echo "FAIL: could not obtain access token from Authentik" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
kubectl port-forward -n "${NAMESPACE}" svc/management-service "${LOCAL_PORT}:9090" >/tmp/kmsvc-port-forward.log 2>&1 &
|
||||
KMSVC_PF_PID=$!
|
||||
kubectl port-forward -n temporal svc/temporal-frontend "${TEMPORAL_LOCAL_PORT}:7233" >/tmp/temporal-port-forward.log 2>&1 &
|
||||
TEMPORAL_PF_PID=$!
|
||||
sleep 2
|
||||
|
||||
cleanup() {
|
||||
kill "${KMSVC_PF_PID}" "${TEMPORAL_PF_PID}" 2>/dev/null || true
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
KMSVC=(kmsvc --server "${SERVER}" --token "${TOKEN}" --insecure)
|
||||
|
||||
for QUEUE_NAME in "${QUEUES[@]}"; do
|
||||
echo "=== ${QUEUE_NAME} ==="
|
||||
|
||||
PHASE=$(kubectl get queue "${QUEUE_NAME}" -n "${NAMESPACE}" -o jsonpath='{.status.phase}' 2>/dev/null || true)
|
||||
if [[ "${PHASE}" != "Ready" ]]; then
|
||||
echo "FAIL: queue ${QUEUE_NAME} phase=${PHASE}, want Ready" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "--- send ---"
|
||||
"${KMSVC[@]}" message send --queue "${QUEUE_NAME}" --body "hello from ${QUEUE_NAME}"
|
||||
|
||||
echo "--- receive ---"
|
||||
RECEIVE_OUT=$("${KMSVC[@]}" message receive --queue "${QUEUE_NAME}" --max-messages 1 --wait 10 --output json)
|
||||
echo "${RECEIVE_OUT}"
|
||||
|
||||
RECEIPT_HANDLE=$(echo "${RECEIVE_OUT}" | jq -r '.[0].receipt_handle // .[0].ReceiptHandle')
|
||||
if [[ -z "${RECEIPT_HANDLE}" || "${RECEIPT_HANDLE}" == "null" ]]; then
|
||||
echo "FAIL: no message received from ${QUEUE_NAME}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "--- delete (ack) ---"
|
||||
"${KMSVC[@]}" message delete --queue "${QUEUE_NAME}" --receipt-handle "${RECEIPT_HANDLE}"
|
||||
|
||||
echo "OK: ${QUEUE_NAME} round-trip succeeded"
|
||||
done
|
||||
|
||||
echo "=== temporal: start helloworld workflow ==="
|
||||
WORKFLOW_ID="hack-helloworld-$(date +%s)"
|
||||
temporal workflow start \
|
||||
--address "127.0.0.1:${TEMPORAL_LOCAL_PORT}" \
|
||||
--namespace "${TEMPORAL_NAMESPACE}" \
|
||||
--task-queue "${TASK_QUEUE}" \
|
||||
--type HelloWorldWorkflow \
|
||||
--workflow-id "${WORKFLOW_ID}" \
|
||||
--input '"hack smoke test"'
|
||||
|
||||
echo "--- describe ---"
|
||||
temporal workflow describe \
|
||||
--address "127.0.0.1:${TEMPORAL_LOCAL_PORT}" \
|
||||
--namespace "${TEMPORAL_NAMESPACE}" \
|
||||
--workflow-id "${WORKFLOW_ID}"
|
||||
|
||||
echo "OK: workflow ${WORKFLOW_ID} started on namespace=${TEMPORAL_NAMESPACE} task-queue=${TASK_QUEUE}"
|
||||
echo "NOTE: it will not complete -- no worker is registering HelloWorldWorkflow yet (placeholder image on worker-production)."
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
"fmt"
|
||||
"sync"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/core/queue"
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/core/queue"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
)
|
||||
|
||||
// ConsumerRegistry lazily creates and caches one Kafka consumer per queue,
|
||||
|
||||
@@ -11,13 +11,13 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
kafkamgmtv1 "forgejo.riotpiao.homelab.com/rock/kmsvc-proto/gen/kafkamgmt/v1"
|
||||
kafkamgmtv1 "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-proto/gen/kafkamgmt/v1"
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/core/queue"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/core/queue"
|
||||
)
|
||||
|
||||
// QueueService implements kafkamgmtv1.QueueServiceServer.
|
||||
|
||||
@@ -5,14 +5,14 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
kafkamgmtv1 "forgejo.riotpiao.homelab.com/rock/kmsvc-proto/gen/kafkamgmt/v1"
|
||||
kafkamgmtv1 "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-proto/gen/kafkamgmt/v1"
|
||||
"github.com/alicebob/miniredis/v2"
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
"github.com/twmb/franz-go/pkg/kfake"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/core/queue"
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/core/queue"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
// newTestKafka starts an in-memory, wire-protocol-compatible fake Kafka
|
||||
|
||||
@@ -50,13 +50,6 @@ func Load() (*Config, error) {
|
||||
cfg.RedisDB = n
|
||||
}
|
||||
|
||||
if cfg.AuthentikIssuerURL == "" {
|
||||
return nil, fmt.Errorf("KMSVC_AUTHENTIK_ISSUER_URL is required")
|
||||
}
|
||||
if cfg.AuthentikAudience == "" {
|
||||
return nil, fmt.Errorf("KMSVC_AUTHENTIK_AUDIENCE is required")
|
||||
}
|
||||
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
type ChangeVisibilityService struct {
|
||||
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
// OffsetCommitter is the subset of kafka.Admin DeleteMessage needs to
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
// acquireFIFOSlot claims the per-group exclusivity gate (design.md §3) so
|
||||
|
||||
@@ -9,8 +9,8 @@ import (
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
"github.com/twmb/franz-go/pkg/kfake"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
// newTestKafka starts an in-memory, wire-protocol-compatible fake Kafka
|
||||
|
||||
@@ -9,8 +9,8 @@ import (
|
||||
"github.com/google/uuid"
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
const defaultPollInterval = 200 * time.Millisecond // design.md §2b
|
||||
|
||||
@@ -8,8 +8,8 @@ import (
|
||||
"github.com/google/uuid"
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
// MaxMessageBodyBytes is the SQS-compatible size cap enforced at
|
||||
|
||||
@@ -9,8 +9,8 @@ import (
|
||||
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
// ShardRouter resolves a routing key to a shard by reading the cached shard
|
||||
|
||||
@@ -10,8 +10,8 @@ import (
|
||||
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/core/queue"
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/core/queue"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -10,9 +10,9 @@ import (
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
"github.com/twmb/franz-go/pkg/kfake"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/core/queue"
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/core/queue"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
// newTestKafka mirrors internal/core/queue's test setup: an in-memory,
|
||||
|
||||
@@ -3,7 +3,7 @@ package operator
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
)
|
||||
|
||||
// TopicAdmin is the subset of internal/kafka.Admin the reconciler needs,
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"sync"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
)
|
||||
|
||||
// fakeAdmin is an in-memory TopicAdmin for reconciler tests — avoids needing
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package operator
|
||||
|
||||
import (
|
||||
"context"
|
||||
"sync"
|
||||
)
|
||||
|
||||
// fakeTemporal is an in-memory TemporalNamespaceRegisterer for reconciler
|
||||
// tests — avoids needing a real Temporal frontend just to exercise reconcile
|
||||
// logic.
|
||||
type fakeTemporal struct {
|
||||
mu sync.Mutex
|
||||
registered map[string]int
|
||||
err error
|
||||
}
|
||||
|
||||
func newFakeTemporal() *fakeTemporal {
|
||||
return &fakeTemporal{registered: map[string]int{}}
|
||||
}
|
||||
|
||||
func (f *fakeTemporal) RegisterNamespace(_ context.Context, namespace string) error {
|
||||
f.mu.Lock()
|
||||
defer f.mu.Unlock()
|
||||
if f.err != nil {
|
||||
return f.err
|
||||
}
|
||||
f.registered[namespace]++
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *fakeTemporal) setErr(err error) {
|
||||
f.mu.Lock()
|
||||
defer f.mu.Unlock()
|
||||
f.err = err
|
||||
}
|
||||
|
||||
func (f *fakeTemporal) count(namespace string) int {
|
||||
f.mu.Lock()
|
||||
defer f.mu.Unlock()
|
||||
return f.registered[namespace]
|
||||
}
|
||||
@@ -18,9 +18,9 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
|
||||
ctrllog "sigs.k8s.io/controller-runtime/pkg/log"
|
||||
|
||||
kmsvcv1 "github.com/rockliang/kafka-management-service/apis/kmsvc/v1"
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
kmsvcv1 "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/apis/kmsvc/v1"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
const finalizerName = "kmsvc.io/queue-operator"
|
||||
@@ -36,10 +36,11 @@ const minInsyncReplicas = 2
|
||||
|
||||
// QueueReconciler reconciles Queue objects (design.md §2a).
|
||||
type QueueReconciler struct {
|
||||
Client client.Client
|
||||
Admin TopicAdmin
|
||||
Redis *goredis.Client
|
||||
Now func() time.Time
|
||||
Client client.Client
|
||||
Admin TopicAdmin
|
||||
Redis *goredis.Client
|
||||
Now func() time.Time
|
||||
Temporal TemporalNamespaceRegisterer
|
||||
|
||||
// Zones resolves shard topics' broker placement to availability zones
|
||||
// (design.md §2a AZ-awareness). Nil disables zone annotation entirely --
|
||||
@@ -248,6 +249,10 @@ func (r *QueueReconciler) reconcileTemporalWorker(ctx context.Context, queue *km
|
||||
return fmt.Errorf("invalid kubernetes name %q: %w", workerName, err)
|
||||
}
|
||||
|
||||
if err := r.Temporal.RegisterNamespace(ctx, namespace); err != nil {
|
||||
return fmt.Errorf("register temporal namespace %s: %w", namespace, err)
|
||||
}
|
||||
|
||||
replicas := int32(1)
|
||||
workerNamespace := getEnvOrDefault("KMSVC_TEMPORAL_NAMESPACE", "temporal")
|
||||
workerImage := getEnvOrDefault("KMSVC_TEMPORAL_WORKER_IMAGE", "story-crater-backend:latest")
|
||||
@@ -257,18 +262,15 @@ func (r *QueueReconciler) reconcileTemporalWorker(ctx context.Context, queue *km
|
||||
Name: workerName,
|
||||
Namespace: workerNamespace,
|
||||
},
|
||||
Spec: kmsvcv1.TemporalWorkerSpec{
|
||||
Namespace: namespace,
|
||||
Image: workerImage,
|
||||
Replicas: &replicas,
|
||||
},
|
||||
}
|
||||
|
||||
if err := controllerutil.SetControllerReference(queue, worker, r.Client.Scheme()); err != nil {
|
||||
return fmt.Errorf("set controller reference: %w", err)
|
||||
}
|
||||
|
||||
// Queue and TemporalWorker live in different namespaces (sqs vs. the Temporal
|
||||
// namespace), so a controller owner reference is disallowed by the API server.
|
||||
// Lifecycle is instead managed explicitly in reconcileDelete.
|
||||
if _, err := controllerutil.CreateOrUpdate(ctx, r.Client, worker, func() error {
|
||||
worker.Spec.Namespace = namespace
|
||||
worker.Spec.Image = workerImage
|
||||
worker.Spec.Replicas = &replicas
|
||||
return nil
|
||||
}); err != nil {
|
||||
return fmt.Errorf("create or update TemporalWorker %s: %w", workerName, err)
|
||||
|
||||
@@ -2,6 +2,8 @@ package operator
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -13,9 +15,9 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client/fake"
|
||||
|
||||
kmsvcv1 "github.com/rockliang/kafka-management-service/apis/kmsvc/v1"
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcredis "github.com/rockliang/kafka-management-service/internal/redis"
|
||||
kmsvcv1 "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/apis/kmsvc/v1"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
kmsvcredis "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/redis"
|
||||
)
|
||||
|
||||
func newTestScheme(t *testing.T) *runtime.Scheme {
|
||||
@@ -40,7 +42,23 @@ func newTestRedis(t *testing.T) *goredis.Client {
|
||||
return goredis.NewClient(&goredis.Options{Addr: mr.Addr()})
|
||||
}
|
||||
|
||||
func newTestSchemeWithAppsV1(t *testing.T) *runtime.Scheme {
|
||||
t.Helper()
|
||||
scheme := newTestScheme(t)
|
||||
appsv1 := runtime.NewScheme()
|
||||
if err := clientgoscheme.AddToScheme(appsv1); err != nil {
|
||||
t.Fatalf("add client-go scheme: %v", err)
|
||||
}
|
||||
return scheme
|
||||
}
|
||||
|
||||
func newTestReconciler(t *testing.T, objs ...client.Object) (*QueueReconciler, *fakeAdmin) {
|
||||
t.Helper()
|
||||
r, admin, _ := newTestReconcilerWithTemporal(t, objs...)
|
||||
return r, admin
|
||||
}
|
||||
|
||||
func newTestReconcilerWithTemporal(t *testing.T, objs ...client.Object) (*QueueReconciler, *fakeAdmin, *fakeTemporal) {
|
||||
t.Helper()
|
||||
scheme := newTestScheme(t)
|
||||
cl := fake.NewClientBuilder().
|
||||
@@ -49,12 +67,14 @@ func newTestReconciler(t *testing.T, objs ...client.Object) (*QueueReconciler, *
|
||||
WithObjects(objs...).
|
||||
Build()
|
||||
admin := newFakeAdmin()
|
||||
temporal := newFakeTemporal()
|
||||
return &QueueReconciler{
|
||||
Client: cl,
|
||||
Admin: admin,
|
||||
Redis: newTestRedis(t),
|
||||
Now: time.Now,
|
||||
}, admin
|
||||
Client: cl,
|
||||
Admin: admin,
|
||||
Redis: newTestRedis(t),
|
||||
Now: time.Now,
|
||||
Temporal: temporal,
|
||||
}, admin, temporal
|
||||
}
|
||||
|
||||
func baseQueue(name string) *kmsvcv1.Queue {
|
||||
@@ -273,3 +293,165 @@ func TestReconcileDrainsClosingShardWhenLagZero(t *testing.T) {
|
||||
t.Errorf("expected drained topic %q to be deleted", topic)
|
||||
}
|
||||
}
|
||||
|
||||
func TestReconcileTemporalWorkerCreatesWhenLabelPresent(t *testing.T) {
|
||||
queue := baseQueue("orders")
|
||||
queue.Labels = map[string]string{"temporal.io/namespace": "default"}
|
||||
r, _, temporal := newTestReconcilerWithTemporal(t, queue)
|
||||
ctx := context.Background()
|
||||
|
||||
if err := r.Reconcile(ctx, "", "orders"); err != nil {
|
||||
t.Fatalf("Reconcile: %v", err)
|
||||
}
|
||||
|
||||
var worker kmsvcv1.TemporalWorker
|
||||
if err := r.Client.Get(ctx, client.ObjectKey{Name: "worker-default", Namespace: "temporal"}, &worker); err != nil {
|
||||
t.Fatalf("expected TemporalWorker to be created: %v", err)
|
||||
}
|
||||
if worker.Spec.Namespace != "default" {
|
||||
t.Errorf("worker namespace = %q, want default", worker.Spec.Namespace)
|
||||
}
|
||||
if got := temporal.count("default"); got != 1 {
|
||||
t.Errorf("RegisterNamespace(%q) called %d times, want 1", "default", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestReconcileTemporalWorkerRegistersNamespaceBeforeCreating(t *testing.T) {
|
||||
queue := baseQueue("orders")
|
||||
queue.Labels = map[string]string{"temporal.io/namespace": "checkout"}
|
||||
r, _, temporal := newTestReconcilerWithTemporal(t, queue)
|
||||
ctx := context.Background()
|
||||
|
||||
if err := r.Reconcile(ctx, "", "orders"); err != nil {
|
||||
t.Fatalf("Reconcile: %v", err)
|
||||
}
|
||||
if got := temporal.count("checkout"); got != 1 {
|
||||
t.Errorf("RegisterNamespace(%q) called %d times, want 1", "checkout", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestReconcileTemporalWorkerFailsWhenNamespaceRegistrationFails(t *testing.T) {
|
||||
queue := baseQueue("orders")
|
||||
queue.Labels = map[string]string{"temporal.io/namespace": "checkout"}
|
||||
r, _, temporal := newTestReconcilerWithTemporal(t, queue)
|
||||
temporal.setErr(fmt.Errorf("frontend unreachable"))
|
||||
ctx := context.Background()
|
||||
|
||||
err := r.Reconcile(ctx, "", "orders")
|
||||
if err == nil {
|
||||
t.Fatal("expected Reconcile to fail when namespace registration fails")
|
||||
}
|
||||
|
||||
var worker kmsvcv1.TemporalWorker
|
||||
getErr := r.Client.Get(ctx, client.ObjectKey{Name: "worker-checkout", Namespace: "temporal"}, &worker)
|
||||
if getErr == nil {
|
||||
t.Error("expected no TemporalWorker to be created when namespace registration fails")
|
||||
}
|
||||
}
|
||||
|
||||
func TestReconcileTemporalWorkerValidatesNamespaceLabel(t *testing.T) {
|
||||
queue := baseQueue("orders")
|
||||
queue.Labels = map[string]string{"temporal.io/namespace": "Foo@Bar"}
|
||||
r, _ := newTestReconciler(t, queue)
|
||||
ctx := context.Background()
|
||||
|
||||
err := r.Reconcile(ctx, "", "orders")
|
||||
if err == nil {
|
||||
t.Fatal("expected Reconcile to fail with invalid namespace label")
|
||||
}
|
||||
if err.Error() == "" || err.Error() == "invalid temporal namespace" {
|
||||
t.Errorf("error message not descriptive: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestReconcileTemporalWorkerValidatesKubernetesName(t *testing.T) {
|
||||
queue := baseQueue("orders")
|
||||
queue.Labels = map[string]string{"temporal.io/namespace": strings.Repeat("a", 250)}
|
||||
r, _ := newTestReconciler(t, queue)
|
||||
ctx := context.Background()
|
||||
|
||||
err := r.Reconcile(ctx, "", "orders")
|
||||
if err == nil {
|
||||
t.Fatal("expected Reconcile to fail with too-long kubernetes name")
|
||||
}
|
||||
}
|
||||
|
||||
func TestReconcileDeleteRemovesTemporalWorker(t *testing.T) {
|
||||
queue := baseQueue("orders")
|
||||
queue.Labels = map[string]string{"temporal.io/namespace": "default"}
|
||||
r, _ := newTestReconciler(t, queue)
|
||||
ctx := context.Background()
|
||||
|
||||
if err := r.Reconcile(ctx, "", "orders"); err != nil {
|
||||
t.Fatalf("initial reconcile: %v", err)
|
||||
}
|
||||
|
||||
var got kmsvcv1.Queue
|
||||
if err := r.Client.Get(ctx, client.ObjectKey{Name: "orders"}, &got); err != nil {
|
||||
t.Fatalf("get queue: %v", err)
|
||||
}
|
||||
|
||||
if err := r.Client.Delete(ctx, &got); err != nil {
|
||||
t.Fatalf("delete queue: %v", err)
|
||||
}
|
||||
if err := r.Reconcile(ctx, "", "orders"); err != nil {
|
||||
t.Fatalf("delete reconcile: %v", err)
|
||||
}
|
||||
|
||||
var worker kmsvcv1.TemporalWorker
|
||||
err := r.Client.Get(ctx, client.ObjectKey{Name: "worker-default", Namespace: "temporal"}, &worker)
|
||||
if err == nil {
|
||||
t.Error("expected TemporalWorker to be deleted")
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsValidTemporalNamespace(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
ns string
|
||||
want bool
|
||||
}{
|
||||
{"valid lowercase", "default", true},
|
||||
{"valid with underscore", "my_namespace", true},
|
||||
{"valid with hyphen", "my-namespace", true},
|
||||
{"valid with digits", "ns123", true},
|
||||
{"invalid uppercase", "MyNamespace", false},
|
||||
{"invalid special chars", "my@namespace", false},
|
||||
{"empty", "", false},
|
||||
{"too long", strings.Repeat("a", 256), false},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := isValidTemporalNamespace(tt.ns); got != tt.want {
|
||||
t.Errorf("isValidTemporalNamespace(%q) = %v, want %v", tt.ns, got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateKubernetesName(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
input string
|
||||
wantOk bool
|
||||
}{
|
||||
{"valid", "worker-default", true},
|
||||
{"valid lowercase digits", "worker-123", true},
|
||||
{"invalid uppercase", "Worker-default", false},
|
||||
{"invalid starts with hyphen", "-worker-default", false},
|
||||
{"invalid ends with hyphen", "worker-default-", false},
|
||||
{"invalid special char", "worker@default", false},
|
||||
{"too long", "worker-" + strings.Repeat("a", 250), false},
|
||||
{"starts with digit", "1worker-default", false},
|
||||
{"empty", "", false},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
err := validateKubernetesName(tt.input)
|
||||
got := err == nil
|
||||
if got != tt.wantOk {
|
||||
t.Errorf("validateKubernetesName(%q) error = %v, want ok=%v", tt.input, err, tt.wantOk)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
kmsvcv1 "github.com/rockliang/kafka-management-service/apis/kmsvc/v1"
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcv1 "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/apis/kmsvc/v1"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
)
|
||||
|
||||
func secondsToDuration(s int32) time.Duration {
|
||||
|
||||
@@ -7,8 +7,8 @@ import (
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
||||
kmsvcv1 "github.com/rockliang/kafka-management-service/apis/kmsvc/v1"
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
kmsvcv1 "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/apis/kmsvc/v1"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
)
|
||||
|
||||
// reconcileSplits samples each Active shard's throughput and splits any shard
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package operator
|
||||
|
||||
import "context"
|
||||
|
||||
// TemporalNamespaceRegisterer registers a Temporal namespace. reconcileTemporalWorker
|
||||
// calls this before creating a TemporalWorker so a Queue's temporal.io/namespace
|
||||
// label always has a real namespace behind it — previously that label was
|
||||
// trusted as-is, and a typo'd or never-registered namespace would only
|
||||
// surface as a silently-stuck worker pod polling a namespace that doesn't
|
||||
// exist.
|
||||
type TemporalNamespaceRegisterer interface {
|
||||
// RegisterNamespace registers namespace, treating AlreadyExists as success.
|
||||
RegisterNamespace(ctx context.Context, namespace string) error
|
||||
}
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
|
||||
ctrllog "sigs.k8s.io/controller-runtime/pkg/log"
|
||||
|
||||
kmsvcv1 "github.com/rockliang/kafka-management-service/apis/kmsvc/v1"
|
||||
kmsvcv1 "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/apis/kmsvc/v1"
|
||||
)
|
||||
|
||||
const temporalWorkerFinalizerName = "kmsvc.io/temporal-worker"
|
||||
|
||||
@@ -0,0 +1,193 @@
|
||||
package operator
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client/fake"
|
||||
|
||||
kmsvcv1 "forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/apis/kmsvc/v1"
|
||||
)
|
||||
|
||||
func newTemporalWorkerTestScheme(t *testing.T) *runtime.Scheme {
|
||||
t.Helper()
|
||||
scheme := runtime.NewScheme()
|
||||
if err := clientgoscheme.AddToScheme(scheme); err != nil {
|
||||
t.Fatalf("add client-go scheme: %v", err)
|
||||
}
|
||||
if err := kmsvcv1.AddToScheme(scheme); err != nil {
|
||||
t.Fatalf("add kmsvc scheme: %v", err)
|
||||
}
|
||||
if err := appsv1.AddToScheme(scheme); err != nil {
|
||||
t.Fatalf("add apps scheme: %v", err)
|
||||
}
|
||||
return scheme
|
||||
}
|
||||
|
||||
func newTemporalWorkerTestReconciler(t *testing.T, objs ...client.Object) (*TemporalWorkerReconciler, client.Client) {
|
||||
t.Helper()
|
||||
scheme := newTemporalWorkerTestScheme(t)
|
||||
cl := fake.NewClientBuilder().
|
||||
WithScheme(scheme).
|
||||
WithStatusSubresource(&kmsvcv1.TemporalWorker{}).
|
||||
WithObjects(objs...).
|
||||
Build()
|
||||
return &TemporalWorkerReconciler{Client: cl}, cl
|
||||
}
|
||||
|
||||
func baseTemporalWorker(name, namespace string) *kmsvcv1.TemporalWorker {
|
||||
replicas := int32(2)
|
||||
return &kmsvcv1.TemporalWorker{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace},
|
||||
Spec: kmsvcv1.TemporalWorkerSpec{
|
||||
Namespace: "default",
|
||||
Image: "story-crater-backend:v1.0.0",
|
||||
Replicas: &replicas,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func TestTemporalWorkerReconcileCreatesDeployment(t *testing.T) {
|
||||
worker := baseTemporalWorker("worker-default", "temporal")
|
||||
r, cl := newTemporalWorkerTestReconciler(t, worker)
|
||||
ctx := context.Background()
|
||||
|
||||
if err := r.Reconcile(ctx, "temporal", "worker-default"); err != nil {
|
||||
t.Fatalf("Reconcile: %v", err)
|
||||
}
|
||||
|
||||
var deploy appsv1.Deployment
|
||||
if err := cl.Get(ctx, client.ObjectKey{Name: "worker-default", Namespace: "temporal"}, &deploy); err != nil {
|
||||
t.Fatalf("expected Deployment to be created: %v", err)
|
||||
}
|
||||
if *deploy.Spec.Replicas != 2 {
|
||||
t.Errorf("replicas = %d, want 2", *deploy.Spec.Replicas)
|
||||
}
|
||||
if deploy.Spec.Template.Spec.Containers[0].Image != "story-crater-backend:v1.0.0" {
|
||||
t.Errorf("image = %q, want story-crater-backend:v1.0.0", deploy.Spec.Template.Spec.Containers[0].Image)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTemporalWorkerReconcileInjectsEnvVars(t *testing.T) {
|
||||
worker := baseTemporalWorker("worker-default", "temporal")
|
||||
r, cl := newTemporalWorkerTestReconciler(t, worker)
|
||||
ctx := context.Background()
|
||||
|
||||
if err := r.Reconcile(ctx, "temporal", "worker-default"); err != nil {
|
||||
t.Fatalf("Reconcile: %v", err)
|
||||
}
|
||||
|
||||
var deploy appsv1.Deployment
|
||||
if err := cl.Get(ctx, client.ObjectKey{Name: "worker-default", Namespace: "temporal"}, &deploy); err != nil {
|
||||
t.Fatalf("get Deployment: %v", err)
|
||||
}
|
||||
|
||||
envVars := deploy.Spec.Template.Spec.Containers[0].Env
|
||||
envMap := make(map[string]string)
|
||||
for _, ev := range envVars {
|
||||
envMap[ev.Name] = ev.Value
|
||||
}
|
||||
|
||||
if envMap["TEMPORAL_FRONTEND_ADDRESS"] != "temporal-frontend.temporal.svc.cluster.local:7233" {
|
||||
t.Errorf("TEMPORAL_FRONTEND_ADDRESS = %q, want temporal-frontend.temporal.svc.cluster.local:7233", envMap["TEMPORAL_FRONTEND_ADDRESS"])
|
||||
}
|
||||
if envMap["TEMPORAL_NAMESPACE"] != "default" {
|
||||
t.Errorf("TEMPORAL_NAMESPACE = %q, want default", envMap["TEMPORAL_NAMESPACE"])
|
||||
}
|
||||
if envMap["TEMPORAL_TASK_QUEUE"] != "worker-default" {
|
||||
t.Errorf("TEMPORAL_TASK_QUEUE = %q, want worker-default", envMap["TEMPORAL_TASK_QUEUE"])
|
||||
}
|
||||
}
|
||||
|
||||
func TestTemporalWorkerReconcileUpdateDeployment(t *testing.T) {
|
||||
replicas := int32(2)
|
||||
worker := baseTemporalWorker("worker-default", "temporal")
|
||||
deploy := &appsv1.Deployment{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "worker-default", Namespace: "temporal"},
|
||||
Spec: appsv1.DeploymentSpec{
|
||||
Replicas: &replicas,
|
||||
Selector: &metav1.LabelSelector{
|
||||
MatchLabels: map[string]string{
|
||||
"app.kubernetes.io/name": "temporal-worker",
|
||||
"app.kubernetes.io/instance": "worker-default",
|
||||
"app.kubernetes.io/managed-by": "kmsvc-temporal-operator",
|
||||
},
|
||||
},
|
||||
Template: corev1.PodTemplateSpec{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Labels: map[string]string{
|
||||
"app.kubernetes.io/name": "temporal-worker",
|
||||
"app.kubernetes.io/instance": "worker-default",
|
||||
"app.kubernetes.io/managed-by": "kmsvc-temporal-operator",
|
||||
},
|
||||
},
|
||||
Spec: corev1.PodSpec{
|
||||
Containers: []corev1.Container{
|
||||
{
|
||||
Name: "worker",
|
||||
Image: "story-crater-backend:v0.9.0",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
r, cl := newTemporalWorkerTestReconciler(t, worker, deploy)
|
||||
ctx := context.Background()
|
||||
|
||||
if err := r.Reconcile(ctx, "temporal", "worker-default"); err != nil {
|
||||
t.Fatalf("Reconcile: %v", err)
|
||||
}
|
||||
|
||||
var updated appsv1.Deployment
|
||||
if err := cl.Get(ctx, client.ObjectKey{Name: "worker-default", Namespace: "temporal"}, &updated); err != nil {
|
||||
t.Fatalf("get Deployment: %v", err)
|
||||
}
|
||||
|
||||
if updated.Spec.Template.Spec.Containers[0].Image != "story-crater-backend:v1.0.0" {
|
||||
t.Errorf("image updated to %q, want story-crater-backend:v1.0.0", updated.Spec.Template.Spec.Containers[0].Image)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTemporalWorkerReconcileUpdatesStatus(t *testing.T) {
|
||||
worker := baseTemporalWorker("worker-default", "temporal")
|
||||
r, cl := newTemporalWorkerTestReconciler(t, worker)
|
||||
ctx := context.Background()
|
||||
|
||||
if err := r.Reconcile(ctx, "temporal", "worker-default"); err != nil {
|
||||
t.Fatalf("Reconcile: %v", err)
|
||||
}
|
||||
|
||||
var updated kmsvcv1.TemporalWorker
|
||||
if err := cl.Get(ctx, client.ObjectKey{Name: "worker-default", Namespace: "temporal"}, &updated); err != nil {
|
||||
t.Fatalf("get TemporalWorker: %v", err)
|
||||
}
|
||||
|
||||
if updated.Status.Phase != kmsvcv1.TemporalWorkerPhasePending {
|
||||
t.Errorf("phase = %v, want Pending", updated.Status.Phase)
|
||||
}
|
||||
if updated.Status.Replicas != 2 {
|
||||
t.Errorf("status.replicas = %d, want 2", updated.Status.Replicas)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTemporalWorkerReconcileDeleteHandlesMarkedForDeletion(t *testing.T) {
|
||||
worker := baseTemporalWorker("worker-default", "temporal")
|
||||
now := metav1.Now()
|
||||
worker.ObjectMeta.DeletionTimestamp = &now
|
||||
worker.ObjectMeta.Finalizers = []string{temporalWorkerFinalizerName}
|
||||
|
||||
r, _ := newTemporalWorkerTestReconciler(t, worker)
|
||||
ctx := context.Background()
|
||||
|
||||
if err := r.Reconcile(ctx, "temporal", "worker-default"); err != nil {
|
||||
t.Fatalf("Reconcile delete should not error: %v", err)
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"github.com/alicebob/miniredis/v2"
|
||||
goredis "github.com/redis/go-redis/v9"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
)
|
||||
|
||||
func newTestClient(t *testing.T) *goredis.Client {
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
|
||||
"github.com/redis/go-redis/v9"
|
||||
|
||||
"github.com/rockliang/kafka-management-service/internal/kafka"
|
||||
"forgejo.riotpiao.com/riotpiao-poimen/kmsvc-manage/internal/kafka"
|
||||
)
|
||||
|
||||
// PutShardMap writes the active shard set for a queue (design.md §4's
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
// Package temporal wraps the narrow slice of Temporal's WorkflowService that
|
||||
// queue-operator needs (namespace registration) directly over gRPC, instead
|
||||
// of pulling in the full Temporal Go SDK for one RPC.
|
||||
package temporal
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"go.temporal.io/api/workflowservice/v1"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/credentials/insecure"
|
||||
"google.golang.org/grpc/status"
|
||||
"google.golang.org/protobuf/types/known/durationpb"
|
||||
)
|
||||
|
||||
// defaultRetentionPeriod is applied to namespaces queue-operator registers on
|
||||
// a Queue's behalf. Namespaces created deliberately by an operator (e.g. via
|
||||
// the temporal CLI) can still override this by re-registering with different
|
||||
// settings — RegisterNamespace on an existing namespace is a no-op here.
|
||||
const defaultRetentionPeriod = 72 * time.Hour
|
||||
|
||||
// Client wraps a Temporal frontend's WorkflowService.
|
||||
type Client struct {
|
||||
svc workflowservice.WorkflowServiceClient
|
||||
}
|
||||
|
||||
// NewClient dials a Temporal frontend at address (e.g.
|
||||
// "temporal-frontend.temporal.svc.cluster.local:7233"). The connection is
|
||||
// plaintext, matching how TemporalWorkerReconciler's worker pods already
|
||||
// talk to the same frontend (see temporal_worker_controller.go).
|
||||
func NewClient(address string) (*Client, error) {
|
||||
conn, err := grpc.NewClient(address, grpc.WithTransportCredentials(insecure.NewCredentials()))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("dial temporal frontend %s: %w", address, err)
|
||||
}
|
||||
return &Client{svc: workflowservice.NewWorkflowServiceClient(conn)}, nil
|
||||
}
|
||||
|
||||
// RegisterNamespace registers namespace, treating AlreadyExists as success.
|
||||
func (c *Client) RegisterNamespace(ctx context.Context, namespace string) error {
|
||||
ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
|
||||
defer cancel()
|
||||
|
||||
_, err := c.svc.RegisterNamespace(ctx, &workflowservice.RegisterNamespaceRequest{
|
||||
Namespace: namespace,
|
||||
WorkflowExecutionRetentionPeriod: durationpb.New(defaultRetentionPeriod),
|
||||
})
|
||||
if err != nil && status.Code(err) != codes.AlreadyExists {
|
||||
return fmt.Errorf("register temporal namespace %s: %w", namespace, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -2,7 +2,7 @@ apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: strimzi-operator
|
||||
namespace: cicd
|
||||
namespace: sqs
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "0"
|
||||
spec:
|
||||
|
||||
@@ -2,14 +2,14 @@ apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: kafka-cluster
|
||||
namespace: cicd
|
||||
namespace: sqs
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "1"
|
||||
spec:
|
||||
project: kmsvc
|
||||
source:
|
||||
repoURL: https://forgejo.riotpiao.homelab.com/rock/kafaka-management-service.git
|
||||
targetRevision: main
|
||||
repoURL: https://forgejo.riotpiao.com/rock/kmsvc-manage.git
|
||||
targetRevision: prod
|
||||
path: k8s/charts/kafka-cluster
|
||||
helm:
|
||||
values: |
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: kmsvc-redis
|
||||
namespace: cicd
|
||||
namespace: sqs
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "1"
|
||||
spec:
|
||||
|
||||
@@ -2,13 +2,18 @@ apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: queue-crd
|
||||
namespace: cicd
|
||||
namespace: sqs
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "2"
|
||||
# ArgoCD Image Updater - auto-update on new image push
|
||||
argocd-image-updater.argoproj.io/image-list: op=forgejo.riotpiao.com/rock/kmsvc-manage
|
||||
argocd-image-updater.argoproj.io/op.update-strategy: newest-build
|
||||
argocd-image-updater.argoproj.io/op.allow-tags: regexp:^[0-9a-f]{7}$
|
||||
argocd-image-updater.argoproj.io/write-back-method: argocd
|
||||
spec:
|
||||
project: kmsvc
|
||||
source:
|
||||
repoURL: https://forgejo.riotpiao.homelab.com/rock/kafaka-management-service.git
|
||||
repoURL: https://forgejo.riotpiao.com/rock/kmsvc-manage.git
|
||||
targetRevision: main
|
||||
path: k8s/charts/queue-crd
|
||||
helm:
|
||||
@@ -17,9 +22,7 @@ spec:
|
||||
kafkaBrokers: "kmsvc-kafka-bootstrap.sqs.svc.cluster.local:9092"
|
||||
redisAddr: "kmsvc-redis-master.sqs.svc.cluster.local:6379"
|
||||
image:
|
||||
repository: forgejo.riotpiao.homelab.com/rock/kafka-management-service-queue-operator
|
||||
# CI (.forgejo/workflows/release.yaml) writes the released git tag
|
||||
# here and pushes the commit -- ArgoCD picks it up on its next sync.
|
||||
repository: forgejo.riotpiao.com/rock/kmsvc-manage
|
||||
tag: latest
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
|
||||
@@ -2,31 +2,36 @@ apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: management-service
|
||||
namespace: cicd
|
||||
namespace: sqs
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "2"
|
||||
# ArgoCD Image Updater - auto-update on new image push
|
||||
argocd-image-updater.argoproj.io/image-list: svc=forgejo.riotpiao.com/rock/kmsvc-manage
|
||||
argocd-image-updater.argoproj.io/svc.update-strategy: newest-build
|
||||
argocd-image-updater.argoproj.io/svc.allow-tags: regexp:^[0-9a-f]{7}$
|
||||
argocd-image-updater.argoproj.io/write-back-method: argocd
|
||||
spec:
|
||||
project: kmsvc
|
||||
source:
|
||||
repoURL: https://forgejo.riotpiao.homelab.com/rock/kafaka-management-service.git
|
||||
repoURL: https://forgejo.riotpiao.com/rock/kmsvc-manage.git
|
||||
targetRevision: main
|
||||
path: k8s/charts/management-service
|
||||
helm:
|
||||
values: |
|
||||
namespace: sqs
|
||||
image:
|
||||
repository: forgejo.riotpiao.homelab.com/rock/kafka-management-service
|
||||
# CI (.forgejo/workflows/release.yaml) writes the released git tag
|
||||
# here and pushes the commit -- ArgoCD picks it up on its next sync.
|
||||
repository: forgejo.riotpiao.com/rock/kmsvc-manage
|
||||
# On prod branch: built on each commit push via CI workflow
|
||||
# Tag is set to the git commit SHA for reproducible deployments
|
||||
tag: latest
|
||||
env:
|
||||
kafkaBrokers: "kmsvc-kafka-bootstrap.sqs.svc.cluster.local:9092"
|
||||
redisAddr: "kmsvc-redis-master.sqs.svc.cluster.local:6379"
|
||||
authentikIssuerURL: "https://authentik.riotpiao.homelab.com/application/o/kafaka/"
|
||||
authentikAudience: "QI0gPtR99ar8VvhK8Tqox4SDkTKzbNU7lbgwBNSc"
|
||||
authentikIssuerURL: ""
|
||||
authentikAudience: ""
|
||||
ingress:
|
||||
enabled: true
|
||||
host: kmsvc.riotpiao.homelab.com
|
||||
host: kmsvc.riotpiao.com
|
||||
clusterIssuer: homelab-ca
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
|
||||
@@ -2,11 +2,11 @@ apiVersion: argoproj.io/v1alpha1
|
||||
kind: AppProject
|
||||
metadata:
|
||||
name: kmsvc
|
||||
namespace: cicd
|
||||
namespace: argocd
|
||||
spec:
|
||||
description: Kafka Management Service (design.md) -- Strimzi/Kafka, Redis, queue-operator, message-plane server
|
||||
sourceRepos:
|
||||
- https://forgejo.riotpiao.homelab.com/rock/kafaka-management-service.git
|
||||
- https://forgejo.riotpiao.com/rock/kmsvc-manage.git
|
||||
- https://strimzi.io/charts/
|
||||
- https://charts.bitnami.com/bitnami
|
||||
destinations:
|
||||
|
||||
@@ -2,18 +2,18 @@ apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: kmsvc-root
|
||||
namespace: cicd
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: kmsvc
|
||||
source:
|
||||
repoURL: https://forgejo.riotpiao.homelab.com/rock/kafaka-management-service.git
|
||||
repoURL: https://forgejo.riotpiao.com/rock/kmsvc-manage.git
|
||||
targetRevision: main
|
||||
path: k8s/argocd/apps
|
||||
directory:
|
||||
recurse: false
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: cicd
|
||||
namespace: sqs
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
|
||||
@@ -2,7 +2,7 @@ namespace: sqs
|
||||
replicaCount: 2
|
||||
|
||||
image:
|
||||
repository: forgejo.riotpiao.homelab.com/rock/kafka-management-service
|
||||
repository: forgejo.riotpiao.com/rock/kmsvc-manage
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
|
||||
|
||||
@@ -18,6 +18,15 @@ rules:
|
||||
- apiGroups: ["kmsvc.io"]
|
||||
resources: ["queues/finalizers"]
|
||||
verbs: ["update"]
|
||||
- apiGroups: ["kmsvc.io"]
|
||||
resources: ["temporalworkers"]
|
||||
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
|
||||
- apiGroups: ["kmsvc.io"]
|
||||
resources: ["temporalworkers/status"]
|
||||
verbs: ["get", "update", "patch"]
|
||||
- apiGroups: ["kmsvc.io"]
|
||||
resources: ["temporalworkers/finalizers"]
|
||||
verbs: ["update"]
|
||||
- apiGroups: ["coordination.k8s.io"]
|
||||
resources: ["leases"]
|
||||
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
|
||||
@@ -27,6 +36,9 @@ rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["pods", "nodes"]
|
||||
verbs: ["get"]
|
||||
- apiGroups: ["apps"]
|
||||
resources: ["deployments"]
|
||||
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
apiVersion: kmsvc.io/v1
|
||||
kind: Queue
|
||||
metadata:
|
||||
name: agent-worker-queue
|
||||
namespace: sqs
|
||||
labels:
|
||||
temporal.io/namespace: production
|
||||
spec:
|
||||
visibilityTimeoutSeconds: 30
|
||||
messageRetentionPeriodSeconds: 345600
|
||||
maxReceiveCount: 5
|
||||
partitionsPerShard: 1
|
||||
minShards: 1
|
||||
maxShards: 1
|
||||
Reference in New Issue
Block a user