Skip to content

Commit e3f9841

Browse files
authored
Allow setting a custom labelSelector in the k8s health api (#119)
1 parent 9effe50 commit e3f9841

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed
Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
package com.devsisters.shardcake
22

3-
import com.coralogix.zio.k8s.client.model.K8sNamespace
3+
import com.coralogix.zio.k8s.client.model.{ K8sNamespace, LabelSelector }
44
import zio._
55

66
/**
77
* Configuration for K8sPodsHealth
88
* @param cacheSize how many items we keep in the pod status cache
99
* @param cacheDuration how long we keep items in the pod status cache
1010
* @param namespace namespace to query pods from (if None, query all namespaces)
11+
* @param labelSelector allows to filter pods by k8s labels
1112
*/
12-
case class K8sConfig(cacheSize: Int, cacheDuration: Duration, namespace: Option[K8sNamespace])
13+
case class K8sConfig(
14+
cacheSize: Int,
15+
cacheDuration: Duration,
16+
namespace: Option[K8sNamespace],
17+
labelSelector: Option[LabelSelector]
18+
)
1319

1420
object K8sConfig {
15-
val default: K8sConfig = K8sConfig(500, 3 seconds, None)
21+
val default: K8sConfig = K8sConfig(500, 3 seconds, None, None)
1622
}

health-k8s/src/main/scala/com/devsisters/shardcake/K8sPodsHealth.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import com.coralogix.zio.k8s.client.{
1414
Unauthorized,
1515
UndefinedField
1616
}
17-
import com.coralogix.zio.k8s.client.model.FieldSelector
17+
import com.coralogix.zio.k8s.client.model.{ FieldSelector, LabelSelector }
1818
import com.coralogix.zio.k8s.client.v1.pods.Pods
1919
import com.coralogix.zio.k8s.model.pkg.apis.meta.v1.Status
2020
import com.devsisters.shardcake.interfaces.PodsHealth
@@ -42,7 +42,8 @@ object K8sPodsHealth {
4242
.getAll(
4343
config.namespace,
4444
1,
45-
Some(FieldSelector.FieldEquals(Chunk("status", "podIP"), podAddress.host))
45+
Some(FieldSelector.FieldEquals(Chunk("status", "podIP"), podAddress.host)),
46+
config.labelSelector
4647
)
4748
.runHead
4849
.map(_.isDefined)

0 commit comments

Comments
 (0)