Skip to content

Commit 980c262

Browse files
authored
feat: configure k8s watcher according to enableV1Services (#968)
Closes #962. Also, add logging at startup (will list clusters and resources to watch).
1 parent 75ac361 commit 980c262

3 files changed

Lines changed: 25 additions & 3 deletions

File tree

bases/renku_data_services/k8s_cache/config.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,19 @@ def from_env(cls) -> "_ImageBuilderConfig":
5050
return cls(enabled=enabled)
5151

5252

53+
@dataclass
54+
class _V1ServicesConfig:
55+
"""Configuration for v1 services."""
56+
57+
enabled: bool
58+
59+
@classmethod
60+
def from_env(cls) -> "_V1ServicesConfig":
61+
"""Load values from environment variables."""
62+
enabled = os.environ.get("V1_SERVICES_ENABLED", "false").lower() == "true"
63+
return cls(enabled=enabled)
64+
65+
5366
@dataclass
5467
class Config:
5568
"""K8s cache config."""
@@ -58,19 +71,20 @@ class Config:
5871
k8s: _K8sConfig
5972
metrics: _MetricsConfig
6073
image_builders: _ImageBuilderConfig
74+
v1_services: _V1ServicesConfig
6175

6276
@classmethod
6377
def from_env(cls) -> "Config":
6478
"""Create a config from environment variables."""
6579
db = DBConfig.from_env()
6680
k8s = _K8sConfig.from_env()
6781
metrics = _MetricsConfig.from_env()
68-
6982
image_builders = _ImageBuilderConfig.from_env()
70-
83+
v1_services = _V1ServicesConfig.from_env()
7184
return cls(
7285
db=db,
7386
k8s=k8s,
7487
metrics=metrics,
7588
image_builders=image_builders,
89+
v1_services=v1_services,
7690
)

bases/renku_data_services/k8s_cache/main.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,14 @@ async def main() -> None:
2727
api=kr8s_api,
2828
cluster_rp=dm.cluster_repo(),
2929
)
30+
logger.info(f"Clusters: {[str(c) for c in clusters]}")
3031

31-
kinds = [AMALTHEA_SESSION_GVK, JUPYTER_SESSION_GVK]
32+
kinds = [AMALTHEA_SESSION_GVK]
33+
if dm.config.v1_services.enabled:
34+
kinds.append(JUPYTER_SESSION_GVK)
3235
if dm.config.image_builders.enabled:
3336
kinds.extend([BUILD_RUN_GVK, TASK_RUN_GVK])
37+
logger.info(f"Resources: {kinds}")
3438
watcher = K8sWatcher(
3539
handler=k8s_object_handler(dm.k8s_cache, dm.metrics, rp_repo=dm.rp_repo),
3640
clusters={c.id: c for c in clusters},

components/renku_data_services/k8s/models.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,10 @@ async def get_ingress_parameters(
171171

172172
return base_server_path, base_server_url, base_server_https_url, host, tls_secret, ingress_annotations
173173

174+
def __str__(self) -> str:
175+
api_url = repr(self.api.auth.server)
176+
return f"{self.__class__.__name__}(id={self.id}, namespace={self.namespace}, api_url={api_url})"
177+
174178

175179
@dataclass(kw_only=True, frozen=True)
176180
class GVK:

0 commit comments

Comments
 (0)