@@ -248,14 +248,14 @@ def deploy(
248248 cluster : str = typer .Option (
249249 ..., help = "Target cluster name (must match kubectl context)"
250250 ),
251- environment : str = typer .Option (
252- ..., help = "Environment name (dev, prod, etc.) - must be defined in environments.yaml"
253- ),
254251 manifest : str = typer .Option ("manifest.yaml" , help = "Path to the manifest file" ),
255252 namespace : str | None = typer .Option (
256253 None ,
257254 help = "Override Kubernetes namespace (defaults to namespace from environments.yaml)" ,
258255 ),
256+ environment : str | None = typer .Option (
257+ None , help = "Environment name (dev, prod, etc.) - must be defined in environments.yaml. If not provided, the namespace must be set explicitly."
258+ ),
259259 tag : str | None = typer .Option (None , help = "Override the image tag for deployment" ),
260260 repository : str | None = typer .Option (
261261 None , help = "Override the repository for deployment"
@@ -279,12 +279,16 @@ def deploy(
279279
280280 # Validate manifest and environments configuration
281281 try :
282- _ , environments_config = validate_manifest_and_environments (
283- str (manifest_path ),
284- required_environment = environment
285- )
286- agent_env_config = environments_config .get_config_for_env (environment )
287- console .print (f"[green]✓[/green] Environment config validated: { environment } " )
282+ if environment :
283+ _ , environments_config = validate_manifest_and_environments (
284+ str (manifest_path ),
285+ required_environment = environment
286+ )
287+ agent_env_config = environments_config .get_config_for_env (environment )
288+ console .print (f"[green]✓[/green] Environment config validated: { environment } " )
289+ else :
290+ agent_env_config = None
291+ console .print (f"[yellow]⚠[/yellow] No environment provided, skipping environment-specific config" )
288292
289293 except EnvironmentsValidationError as e :
290294 error_msg = generate_helpful_error_message (e , "Environment validation failed" )
@@ -298,13 +302,15 @@ def deploy(
298302 manifest_obj = AgentManifest .from_yaml (str (manifest_path ))
299303
300304 # Use namespace from environment config if not overridden
301- if not namespace :
305+ if not namespace and agent_env_config :
302306 namespace_from_config = agent_env_config .kubernetes .namespace if agent_env_config .kubernetes else None
303307 if namespace_from_config :
304308 console .print (f"[blue]ℹ[/blue] Using namespace from environments.yaml: { namespace_from_config } " )
305309 namespace = namespace_from_config
306310 else :
307311 raise DeploymentError (f"No namespace found in environments.yaml for environment: { environment } , and not passed in as --namespace" )
312+ elif not namespace :
313+ raise DeploymentError ("No namespace provided, and not passed in as --namespace and no environment provided to read from an environments.yaml file" )
308314
309315 # Confirm deployment (only in interactive mode)
310316 console .print ("\n [bold]Deployment Summary:[/bold]" )
0 commit comments