Skip to content

Commit 0626661

Browse files
committed
fix: adding security context
1 parent 7c27762 commit 0626661

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

backend/app/services/k8s_worker/worker.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,14 @@ async def ensure_image_pre_puller_daemonset(self) -> None:
344344
init_containers: list[k8s_client.V1Container] = []
345345
all_images = {config.image for lang in RUNTIME_REGISTRY.values() for config in lang.values()}
346346

347+
psa_security_context = k8s_client.V1SecurityContext(
348+
allow_privilege_escalation=False,
349+
capabilities=k8s_client.V1Capabilities(drop=["ALL"]),
350+
run_as_non_root=True,
351+
run_as_user=65534,
352+
seccomp_profile=k8s_client.V1SeccompProfile(type="RuntimeDefault"),
353+
)
354+
347355
for i, image_ref in enumerate(sorted(all_images)):
348356
sanitized_image_ref = image_ref.split("/")[-1].replace(":", "-").replace(".", "-").replace("_", "-")
349357
self.logger.info(f"DAEMONSET: before: {image_ref} -> {sanitized_image_ref}")
@@ -352,6 +360,7 @@ async def ensure_image_pre_puller_daemonset(self) -> None:
352360
image=image_ref,
353361
command=["/bin/sh", "-c", f'echo "Image {image_ref} pulled."'],
354362
image_pull_policy="Always",
363+
security_context=psa_security_context,
355364
))
356365

357366
daemonset = k8s_client.V1DaemonSet(
@@ -366,8 +375,14 @@ async def ensure_image_pre_puller_daemonset(self) -> None:
366375
init_containers=init_containers,
367376
containers=[k8s_client.V1Container(
368377
name="pause", image="registry.k8s.io/pause:3.9",
378+
security_context=psa_security_context,
369379
)],
370380
tolerations=[k8s_client.V1Toleration(operator="Exists")],
381+
security_context=k8s_client.V1PodSecurityContext(
382+
run_as_non_root=True,
383+
run_as_user=65534,
384+
seccomp_profile=k8s_client.V1SeccompProfile(type="RuntimeDefault"),
385+
),
371386
),
372387
),
373388
update_strategy=k8s_client.V1DaemonSetUpdateStrategy(type="RollingUpdate"),

backend/app/services/pod_monitor/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class PodMonitorConfig:
1515
# Watch settings
1616
label_selector: str = "app=integr8s,component=executor"
1717
field_selector: str | None = None
18-
watch_timeout_seconds: int = 300 # 5 minutes
18+
watch_timeout_seconds: int = 30 # 30 seconds — short enough for APScheduler 5s interval
1919

2020
# Monitoring settings
2121
enable_metrics: bool = True

0 commit comments

Comments
 (0)