Compare commits

..

No commits in common. "main" and "feat-namespace-per-deployment" have entirely different histories.

2 changed files with 0 additions and 42 deletions

View File

@ -31,7 +31,6 @@ from stack_orchestrator.deploy.k8s.helpers import (
envs_from_environment_variables_map, envs_from_environment_variables_map,
envs_from_compose_file, envs_from_compose_file,
merge_envs, merge_envs,
translate_sidecar_service_names,
) )
from stack_orchestrator.deploy.deploy_util import ( from stack_orchestrator.deploy.deploy_util import (
parsed_pod_files_map_from_file_names, parsed_pod_files_map_from_file_names,
@ -440,12 +439,6 @@ class ClusterInfo:
if "environment" in service_info if "environment" in service_info
else self.environment_variables.map else self.environment_variables.map
) )
# Translate docker-compose service names to localhost for sidecars
# All services in the same pod share the network namespace
sibling_services = [s for s in services.keys() if s != service_name]
merged_envs = translate_sidecar_service_names(
merged_envs, sibling_services
)
envs = envs_from_environment_variables_map(merged_envs) envs = envs_from_environment_variables_map(merged_envs)
if opts.o.debug: if opts.o.debug:
print(f"Merged envs: {envs}") print(f"Merged envs: {envs}")

View File

@ -942,41 +942,6 @@ def envs_from_compose_file(
return result return result
def translate_sidecar_service_names(
envs: Mapping[str, str], sibling_service_names: List[str]
) -> Mapping[str, str]:
"""Translate docker-compose service names to localhost for sidecar containers.
In docker-compose, services can reference each other by name (e.g., 'db:5432').
In Kubernetes, when multiple containers are in the same pod (sidecars), they
share the same network namespace and must use 'localhost' instead.
This function replaces service name references with 'localhost' in env values.
"""
import re
if not sibling_service_names:
return envs
result = {}
for env_var, env_val in envs.items():
if env_val is None:
result[env_var] = env_val
continue
new_val = str(env_val)
for service_name in sibling_service_names:
# Match service name followed by optional port (e.g., 'db:5432', 'db')
# Handle URLs like: postgres://user:pass@db:5432/dbname
# and simple refs like: db:5432 or just db
pattern = rf"\b{re.escape(service_name)}(:\d+)?\b"
new_val = re.sub(pattern, lambda m: f'localhost{m.group(1) or ""}', new_val)
result[env_var] = new_val
return result
def envs_from_environment_variables_map( def envs_from_environment_variables_map(
map: Mapping[str, str] map: Mapping[str, str]
) -> List[client.V1EnvVar]: ) -> List[client.V1EnvVar]: