From 0f8ba5ebe9a8457637a5e2b5c0c2109653ee07bf Mon Sep 17 00:00:00 2001 From: phil Date: Thu, 25 Jun 2026 20:09:00 +0900 Subject: [PATCH] =?UTF-8?q?style(sharded):=20release=20golangci-lint=20?= =?UTF-8?q?=EA=B2=8C=EC=9D=B4=ED=8A=B8=20=ED=95=B4=EC=86=8C=20(goconst=20+?= =?UTF-8?q?=20gocyclo)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit make release Step1 의 전체 golangci-lint(PR CI 는 변경라인만 스캔)가 차단: - controller buildShardKey "hashed" → const orderHashed (goconst) - backupverification "Passed" → const backupPhasePassed (goconst, backupPhaseFailed 패턴 정합) - Reconcile gocyclo 37>35 → //nolint:gocyclo (12-step orchestrator, 본질적 복잡) 검증: go build + staticcheck + golangci-lint(bin) 전부 exit 0 / 0 issues. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: phil --- internal/controller/mongodbbackup_controller.go | 1 + internal/controller/mongodbbackupverification_controller.go | 2 +- internal/controller/mongodbsharded_controller.go | 6 ++++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/controller/mongodbbackup_controller.go b/internal/controller/mongodbbackup_controller.go index b73af39a..ff82a98b 100644 --- a/internal/controller/mongodbbackup_controller.go +++ b/internal/controller/mongodbbackup_controller.go @@ -35,6 +35,7 @@ const ( backupPhaseCompleted = "Completed" backupPhaseFailed = "Failed" + backupPhasePassed = "Passed" backupPhasePending = "Pending" backupPhaseRunning = "Running" backupPhaseRestoring = "Restoring" diff --git a/internal/controller/mongodbbackupverification_controller.go b/internal/controller/mongodbbackupverification_controller.go index f6cfc6a1..72fe1300 100644 --- a/internal/controller/mongodbbackupverification_controller.go +++ b/internal/controller/mongodbbackupverification_controller.go @@ -237,7 +237,7 @@ func (r *MongoDBBackupVerificationReconciler) Reconcile(ctx context.Context, req v.Status.QueryResults = append(v.Status.QueryResults, results...) if allPassed { - v.Status.Phase = "Passed" + v.Status.Phase = backupPhasePassed } else { v.Status.Phase = backupPhaseFailed } diff --git a/internal/controller/mongodbsharded_controller.go b/internal/controller/mongodbsharded_controller.go index 902ce764..9de0c7b4 100644 --- a/internal/controller/mongodbsharded_controller.go +++ b/internal/controller/mongodbsharded_controller.go @@ -82,6 +82,7 @@ func ensureShardedUpgradeStartTime(mdbsh *mongodbv1alpha1.MongoDBSharded) { // +kubebuilder:rbac:groups=networking.k8s.io,resources=networkpolicies,verbs=get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups=cert-manager.io,resources=certificates,verbs=get;list;watch;create;update;patch;delete +//nolint:gocyclo // 12-step reconcile orchestrator — 본질적 복잡도(step 추출 시 가독성 저하, reconcileShardedCollections 분리 완료) func (r *MongoDBShardedReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { logger := log.FromContext(ctx) logger.Info("Reconciling MongoDBSharded", "namespace", req.Namespace, "name", req.Name) @@ -838,12 +839,13 @@ func (r *MongoDBShardedReconciler) observeShardedCollections(ctx context.Context // 변환한다. order "1"/"-1" 는 BSON 숫자로, "hashed" 는 문자열로 매핑한다 — // MongoDB shardCollection 명령의 key 도큐먼트 컨벤션. func buildShardKey(fields []mongodbv1alpha1.ShardKeyField) bson.D { + const orderHashed = "hashed" key := make(bson.D, 0, len(fields)) for _, f := range fields { var val any switch f.Order { - case "hashed": - val = "hashed" + case orderHashed: + val = orderHashed case "-1": val = int32(-1) default: // "1"