Skip to content
CAI
Software that uses CAICheck a score

Trendyol/kubernetes-operator-api

51.1

Adequate · 21 September 2026

1.5k

lines of production code

Java

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Add Kubernetes API adapter with multi-datacenter support

The \KubernetesApiAdapter\ and its mock counterpart \KubernetesApiMockAdapter\ are introduced to implement the \OperatorApiPort\ interface, enabling the system to create, scale, and delete Kubernetes deployments and services. The adapter delegates to a new \KubernetesDeploymentComponent\ which handles the actual K8s API calls. To support multiple cloud providers, a strategy pattern is implemented via \KubernetesClient\ and \KubernetesClientStrategy\, with specific implementations for AWS, Google, and Dummy data centers, each loading distinct kubeconfig files. A \KubernetesYamlConverterComponent\ is also added to parse and template Kubernetes YAML files using a \\\\ placeholder pattern.

src/main/java/com/trendyol/kubernetesoperatorapi/adapter/kubernetes · high confidence

Add REST API endpoints for creating, scaling, and terminating deployments

New REST controllers are introduced to manage deployment lifecycles: a POST to /v1/deployments triggers an asynchronous create operation, a PUT to /v1/deployments handles scaling, and a DELETE to /v1/deployments/{runId}/data-center/{dataCenter} terminates deployments. Additionally, an index controller redirects to the Swagger UI and exposes a basic health check endpoint.

src/main/java/com/trendyol/kubernetesoperatorapi/adapter/rest · high confidence

Add domain models and exception classes for deployment lifecycle

The domain layer now includes command objects for creating, scaling, and terminating deployments, alongside enums for data centers and rollback levels. Additionally, a hierarchy of custom exceptions has been introduced to handle business and client API errors, supporting the new deployment management capabilities.

src/main/java/com/trendyol/kubernetesoperatorapi/domain · high confidence

Added Kubernetes deployment and service configurations for master and worker components

New Kubernetes resource files have been added to the application's resources, including deployment and service YAMLs for both master and worker components, along with a UI service for the master. These files define the container specifications, resource limits, and network endpoints required to run the application in a Kubernetes environment. Additionally, an application configuration file (application.yml) and a messages properties file have been introduced to support the operator API and internationalization.

src/main/resources · medium confidence

Added deployment lifecycle management capabilities

Users can now create, scale, and terminate Kubernetes deployments through new application-layer facades. The system supports creating deployments with automatic rollback on failure, scaling existing deployments, and terminating deployments by deleting associated services and UI components.

src/main/java/com/trendyol/kubernetesoperatorapi/application · high confidence

Adds infrastructure components for error handling, request tracing, and API documentation

The application now includes a global exception handler that standardizes error responses using new DTOs (ErrorDTO, ErrorDetailDTO) and a BaseResponse class. Request tracing is supported via interceptors that populate MDC with correlation IDs, agent names, and executor users. Additionally, Swagger configuration is added to expose API documentation, and a retry mechanism is introduced via a new @RetryOperation annotation and its corresponding AOP aspect.

src/main/java/com/trendyol/kubernetesoperatorapi/infra · high confidence

Introduction of Kubernetes Operator API application entry point

A new Spring Boot application class has been added to serve as the entry point for the Kubernetes Operator API. This change initializes the application with support for Hystrix, retry mechanisms, and Swagger 2 documentation, establishing the foundation for the operator's API layer.

src/main/java/com/trendyol/kubernetesoperatorapi · medium confidence

Test coverage

Added base test classes for the API; Added tests for deployment lifecycle REST adapters; Added unit tests for TerminateDeploymentCommand; Added unit tests for deployment lifecycle facades.

Dependencies

Added Maven build configuration for the Kubernetes operator API

Introduced a new pom.xml file that establishes the project's build structure and dependencies. This includes the Spring Boot 2.7.4 parent, along with specific versions for Spring Cloud, Hystrix, Spring Retry, the Kubernetes Java client, Swagger UI, and various utility libraries like Lombok and Jackson. This change enables the project to be built using Maven and defines the Java 11 runtime and library versions required for the application.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 50 → 51 (+1.1)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 99 → 100 (+0.3)
  • Architecture 100 → 66 (-34.3)
  • Maturity 54 → 59 (+5.5)
  • Readiness 26 → 33 (+7.7)
  • Security 81 → 78 (-3.4)

Resolved (9)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (10 lines × 2) (src/main/java/com/trendyol/kubernetesoperatorapi/infra/common/GlobalControllerExceptionHandler.java)
  • Duplicated block (14 lines × 3) (src/main/java/com/trendyol/kubernetesoperatorapi/adapter/kubernetes/strategy/datacenter/AwsDcStrategy.java)
  • No exposed public API
  • Scanner failed to run — not a clean result
  • Test reliability not included
  • early-stage repository — too few commits for a meaningful bus factor
  • early-stage repository — too little history to judge knowledge freshness

New (24)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no licence statement (README.md)
  • Duplicated block (10 lines × 2) (src/main/java/com/trendyol/kubernetesoperatorapi/infra/common/GlobalControllerExceptionHandler.java)
  • Duplicated block (16 lines × 3) (src/main/java/com/trendyol/kubernetesoperatorapi/adapter/kubernetes/strategy/datacenter/AwsDcStrategy.java)
  • Medium IaC: CKV2_K8S_6 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_14 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_20 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_22 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_23 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_28 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_29 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_30 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_31 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_37 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_38 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_40 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_43 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_8 (src/main/resources/master-deployment.yaml)
  • Medium IaC: CKV_K8S_9 (src/main/resources/master-deployment.yaml)
  • Medium IaC: WD-K8S-0004 (src/main/resources/master-deployment.yaml)
  • …and 4 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

Trendyol/kubernetes-operator-api was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 1e15e859a72d7a57159075f79ad890cb51b092c5 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.