pjfanning opened a new pull request, #774: URL: https://github.com/apache/pekko-management/pull/774
part of https://github.com/apache/pekko-management/issues/674 https://github.com/apache/pekko-management/issues/773 is a follow up The Akka PRs are part of https://github.com/akka/akka-management/releases/tag/v1.4.0 which is now available under Apache License, v2.0. ## Summary Ports the following Akka management PRs to Pekko, converting all `akka` references to `pekko`/`org.apache.pekko`, config prefixes from `akka.*` to `pekko.*`, and Kubernetes API groups from `akka.io` to `pekko.apache.org`. Note: PR #1143 (App version k8s revision) was explicitly excluded as it has dependencies not yet present in Pekko. --- ## PR #1134 – Write pod cost to CRD (`rolling-update-kubernetes`) An alternative to directly annotating pods with `controller.kubernetes.io/pod-deletion-cost` is to write to a `PodCost` custom resource (useful when direct pod PATCH is a security concern). Changes: - **`KubernetesSettings.scala`** – added `apiServiceRequestTimeout`, `bodyReadTimeout`, and new `CustomResourceSettings` class (parses `custom-resource.*` config) - **`reference.conf`** – added `api-service-request-timeout` and `custom-resource` section - **`KubernetesApi.scala`** (new) – `KubernetesApi` trait with `updatePodDeletionCostAnnotation`, `readOrCreatePodCostResource`, `updatePodCostResource`; plus `PodCost`, `PodCostResource`, exception classes - **`KubernetesJsonSupport.scala`** (new) – spray-json formats for `PodCostCustomResource`, `Metadata`, `Spec` using `pekko.apache.org/v1` - **`KubernetesApiImpl.scala`** (new) – HTTP implementation; blocking SSL/token/namespace IO done on `DefaultBlockingDispatcherId` via companion `apply` factory - **`PodDeletionCost.scala`** – uses `KubernetesApiImpl`, switched `AtomicReference` → `AtomicBoolean` - **`PodDeletionCostAnnotator.scala`** – supports both direct annotation and PodCost CR; fixed `FiniteDuration` multiplication to avoid unsafe cast - **`ApiRequests.scala`** – deleted (replaced by `KubernetesApiImpl`) - **`PodDeletionCostAnnotatorSpec.scala`** – updated to use new constructor - **`PodDeletionCostAnnotatorCrSpec.scala`** (new) – unit tests for CR-based approach using a mock `KubernetesApi` ## PR #1141 – Improve logging for CI failure - **`integration-test/scripts/rollingupdate-kubernetes-test.sh`** (new) – shell script for rolling update K8s integration test with pod listing and error logging improvements ## PR #1142 – Blocking IO at startup (`discovery-kubernetes-api`) - **`KubernetesApiServiceDiscovery.scala`** – moves all blocking startup IO (token file read, namespace file read, SSL context creation) into `Future`s on `DefaultBlockingDispatcherId`; adds private `KubernetesSetup` case class; fixes logger to use `classOf[KubernetesApiServiceDiscovery]` - Note: `SelfAwareJoinDecider.scala` and `MockDiscovery.scala` already use the correct Pekko `LogSource.fromClass` pattern — no changes needed -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
