@@ -13,25 +13,52 @@ import (
1313 "google.golang.org/protobuf/types/known/timestamppb"
1414
1515 "github.com/e2b-dev/infra/packages/api/internal/api"
16- "github.com/e2b-dev/infra/packages/api/internal/db/types"
16+ teamtypes "github.com/e2b-dev/infra/packages/api/internal/db/types"
1717 "github.com/e2b-dev/infra/packages/api/internal/orchestrator/nodemanager"
1818 "github.com/e2b-dev/infra/packages/api/internal/orchestrator/placement"
1919 "github.com/e2b-dev/infra/packages/api/internal/sandbox"
2020 "github.com/e2b-dev/infra/packages/api/internal/utils"
2121 "github.com/e2b-dev/infra/packages/db/queries"
22+ "github.com/e2b-dev/infra/packages/db/types"
2223 "github.com/e2b-dev/infra/packages/shared/pkg/consts"
2324 "github.com/e2b-dev/infra/packages/shared/pkg/grpc/orchestrator"
2425 "github.com/e2b-dev/infra/packages/shared/pkg/logger"
2526 "github.com/e2b-dev/infra/packages/shared/pkg/telemetry"
2627 ut "github.com/e2b-dev/infra/packages/shared/pkg/utils"
2728)
2829
30+ // buildNetworkConfig constructs the orchestrator network configuration from the input parameters
31+ func buildNetworkConfig (network * types.SandboxNetworkConfig , allowInternetAccess * bool ) * orchestrator.SandboxNetworkConfig {
32+ orchNetwork := & orchestrator.SandboxNetworkConfig {
33+ Egress : & orchestrator.SandboxNetworkEgressConfig {},
34+ }
35+
36+ // Copy network configuration if provided
37+ if network != nil && network .Egress != nil {
38+ if len (network .Egress .AllowedAddresses ) > 0 {
39+ orchNetwork .Egress .AllowedAddresses = network .Egress .AllowedAddresses
40+ }
41+ if len (network .Egress .BlockedAddresses ) > 0 {
42+ orchNetwork .Egress .BlockedAddresses = network .Egress .BlockedAddresses
43+ }
44+ }
45+
46+ // Handle the case where internet access is explicitly disabled
47+ // This should be applied after copying the network config to preserve allowed addresses
48+ if allowInternetAccess != nil && ! * allowInternetAccess {
49+ // Block all internet access - this overrides any other blocked addresses
50+ orchNetwork .Egress .BlockedAddresses = []string {"0.0.0.0/0" }
51+ }
52+
53+ return orchNetwork
54+ }
55+
2956func (o * Orchestrator ) CreateSandbox (
3057 ctx context.Context ,
3158 sandboxID ,
3259 executionID ,
3360 alias string ,
34- team * types .Team ,
61+ team * teamtypes .Team ,
3562 build queries.EnvBuild ,
3663 metadata map [string ]string ,
3764 envVars map [string ]string ,
@@ -44,7 +71,7 @@ func (o *Orchestrator) CreateSandbox(
4471 autoPause bool ,
4572 envdAuthToken * string ,
4673 allowInternetAccess * bool ,
47- firewall * orchestrator. SandboxFirewallConfig ,
74+ network * types. SandboxNetworkConfig ,
4875) (sbx sandbox.Sandbox , apiErr * api.APIError ) {
4976 ctx , childSpan := tracer .Start (ctx , "create-sandbox" )
5077 defer childSpan .End ()
@@ -139,10 +166,7 @@ func (o *Orchestrator) CreateSandbox(
139166 sbxDomain = cluster .SandboxDomain
140167 }
141168
142- if allowInternetAccess != nil && ! * allowInternetAccess {
143- firewall .Egress = firewall .GetEgress ()
144- firewall .Egress .BlockedCidrs = []string {"0.0.0.0/0" }
145- }
169+ orchNetwork := buildNetworkConfig (network , allowInternetAccess )
146170
147171 sbxRequest := & orchestrator.SandboxCreateRequest {
148172 Sandbox : & orchestrator.SandboxConfig {
@@ -166,7 +190,7 @@ func (o *Orchestrator) CreateSandbox(
166190 Snapshot : isResume ,
167191 AutoPause : autoPause ,
168192 AllowInternetAccess : allowInternetAccess ,
169- Firewall : firewall ,
193+ Network : orchNetwork ,
170194 TotalDiskSizeMb : ut .FromPtr (build .TotalDiskSizeMb ),
171195 },
172196 StartTime : timestamppb .New (startTime ),
@@ -244,7 +268,7 @@ func (o *Orchestrator) CreateSandbox(
244268 allowInternetAccess ,
245269 baseTemplateID ,
246270 sbxDomain ,
247- utils . OrchestratorToDBFirewall ( firewall ) ,
271+ network ,
248272 )
249273
250274 o .sandboxStore .Add (ctx , sbx , true )
0 commit comments