Skip to content
CAI
Software that uses CAICheck a score

joan38/kubernetes-client

53.5

Adequate · 20 September 2026

2.4k

lines of production code

Scala

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a Kubernetes client library for Scala that provides typed APIs for managing core resources such as Pods, Deployments, and Services. It supports standard configuration loading, resource watching, and operations like pod execution and file transfers. The project has migrated its build infrastructure from SBT to Mill and includes comprehensive integration tests against a live cluster to validate CRUD operations and caching behavior.

Features

Initial project scaffolding with Mill build, Apache 2.0 license, and strict code style

The repository is initialized with a Mill 1.1.0 build system (build.mill, mill launcher) supporting Scala 3.3.4, 2.13.16, and 2.12.20, replacing previous build tooling. An Apache 2.0 license file is added, and the project adopts strict code quality rules via Scalafmt 3.10.6 and Scalafix (disabling vars, nulls, returns, etc.). The README documents usage with http4s and Circe, and the .gitignore is updated to exclude Mill, Scala, and IDE artifacts.

(repo-wide) · high confidence

Initial release of the Kubernetes client library

This change introduces the core components of the Kubernetes client library, including the \KubernetesClient\ entry point, \KubeConfig\ for standard configuration loading (from environment, home directory, or cluster), and a comprehensive set of typed APIs for managing Kubernetes resources such as Pods, Deployments, Services, ConfigMaps, Secrets, Ingresses, and Custom Resources. It also provides utilities for watching resource changes, executing commands in pods, and handling file uploads/downloads.

kubernetes-client · high confidence

Removals

Removal of legacy Kubernetes client implementation

The legacy Kubernetes client implementation located in src/main/scala/com/goyeau/kubernetesclient has been completely removed. This deletion eliminates the previous Akka HTTP-based operations for managing Pods, Deployments, Jobs, CronJobs, and Services, along with the associated KubeConfig parsing and request utilities. Users relying on this specific client package will no longer have access to these Kubernetes resource interactions.

src/main/scala · high confidence

Test coverage

Added integration tests for Kubernetes API resources using mUnit; Added integration tests for Kubernetes resource operations; Added test utilities for Kubernetes client testing; Added tests for AuthorizationCache token retrieval and expiration handling.

Dependencies

Migrate build system from SBT to Mill

The project has switched its build tool from SBT to Mill. This migration replaces the SBT configuration files (build.properties, plugins.sbt) with Mill-specific build definitions (Dependencies.mill, SwaggerModelGenerator.mill, model.mill, package.mill). The build logic for dependency management and the Swagger model code generator has been rewritten in Mill's DSL, and the legacy Scala-based build definitions (Definition.scala, SwaggerModelGenerator.scala) have been removed.

project · high confidence

Migration from SBT to Mill build tool

The project has switched its build system from SBT to Mill. This change removes the SBT build configuration files (build.sbt and project/build.sbt), which previously defined dependencies for Circe, Akka HTTP, and other libraries, in favor of the new Mill-based build structure.

(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

Baseline

  • First survey — no prior run to compare against. CAI 53.

Lenses

  • Code Health 98
  • Architecture 72
  • Maturity 45
  • Readiness 46
  • Security 72

Changes since last survey

  • 300 commits — 289 feature/other, 11 fixes

By area

  • (root) — 120 commits
  • project/Dependencies.sc — 82 commits
  • kubernetes-client/src — 35 commits
  • kubernetes-client/test — 18 commits
  • project/Dependencies.mill — 13 commits
  • src/main — 13 commits
  • .github/workflows — 10 commits
  • project/build.properties — 3 commits
  • src/test — 3 commits
  • project/Definition.scala — 1 commit
  • project/SwaggerModelGenerator.sc — 1 commit
  • project/plugins.sbt — 1 commit

Notable commits

  • fix: Bugfix: Refresh before token expires, not after (#254)
  • fix: Fix Uri building for Proxy (#98)
  • fix: Fix documentation and add KubeConfig.fromFile
  • fix: Fix dynverSonatypeSnapshots
  • fix: Fix in authorization type error in README
  • fix: Fix not displaying Latest version
  • fix: Fix tests (#178)
  • fix: Fix unmoored scaladocs
  • fix: Fix watchable tests (#141)
  • fix: fix #242 (invalid AuthInfoExec#env model)
  • fix: revert parSequence back
  • change: - Refactorings - Support for proxy API
  • change: Add 'Reformat with scalafmt 3.10.5' to .git-blame-ignore-revs
  • change: Add 'Reformat with scalafmt 3.6.1' to .git-blame-ignore-revs
  • change: Add 'Reformat with scalafmt 3.9.0' to .git-blame-ignore-revs
  • change: Add 'Reformat with scalafmt 3.9.8' to .git-blame-ignore-revs
  • change: Add Scala 3.0.1 cross-build (#102)
  • change: Add a way to list and get details of a node.
  • change: Add optional resourceVersion to watch API (#223)
  • change: Add support for Kubernetes Watch API (#12)
  • …and 280 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

joan38/kubernetes-client 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 20 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 934552c001888f929e86cb61090322d6046ec38d — 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-b51f968c9b10.