diff --git a/packages/api/internal/cfg/model.go b/packages/api/internal/cfg/model.go index d6659f4ca4..6e7da8aa06 100644 --- a/packages/api/internal/cfg/model.go +++ b/packages/api/internal/cfg/model.go @@ -11,8 +11,6 @@ import ( "github.com/caarlos0/env/v11" "github.com/golang-jwt/jwt/v5" - - "github.com/e2b-dev/infra/packages/shared/pkg/featureflags" ) const ( @@ -67,9 +65,6 @@ type Config struct { // tokens signed with the old secret for some time. SupabaseJWTSecrets []string `env:"SUPABASE_JWT_SECRETS"` - // Deprecated: Template manager should use its own - DefaultKernelVersion string `env:"DEFAULT_KERNEL_VERSION"` - DefaultPersistentVolumeType string `env:"DEFAULT_PERSISTENT_VOLUME_TYPE"` // SandboxStorageBackend selects the sandbox storage implementation. @@ -138,10 +133,6 @@ func Parse() (Config, error) { return Config{}, err } - if config.DefaultKernelVersion == "" { - config.DefaultKernelVersion = featureflags.DefaultKernelVersion - } - if config.AuthDBConnectionString == "" { config.AuthDBConnectionString = config.PostgresConnectionString } diff --git a/packages/api/internal/handlers/deprecated_template_request_build.go b/packages/api/internal/handlers/deprecated_template_request_build.go index 6072dcc5b9..d732163bd1 100644 --- a/packages/api/internal/handlers/deprecated_template_request_build.go +++ b/packages/api/internal/handlers/deprecated_template_request_build.go @@ -160,10 +160,11 @@ func (a *APIStore) buildTemplate( templateID api.TemplateID, body api.TemplateBuildRequest, ) (*template.RegisterBuildResponse, *api.APIError) { - // TODO(ENG-3852): Stop sending the firecracker version from the API. The orchestrator - // now resolves its own FC version via the FirecrackerVersions feature flag - // (see packages/orchestrator/pkg/template/build/builder.go) + // TODO(ENG-3852): Stop sending the firecracker/kernel versions from the API. + // The orchestrator resolves them itself via the BuildFirecrackerVersion / + // BuildKernelVersion feature flags (see packages/orchestrator/pkg/template/server/create_template.go). firecrackerVersion := a.featureFlags.StringFlag(ctx, featureflags.BuildFirecrackerVersion) + kernelVersion := a.featureFlags.StringFlag(ctx, featureflags.BuildKernelVersion) var alias *string var tags []string @@ -206,7 +207,7 @@ func (a *APIStore) buildTemplate( CpuCount: body.CpuCount, MemoryMB: body.MemoryMB, Version: templates.TemplateV1Version, - KernelVersion: a.config.DefaultKernelVersion, + KernelVersion: kernelVersion, FirecrackerVersion: firecrackerVersion, } diff --git a/packages/api/internal/handlers/template_request_build_v3.go b/packages/api/internal/handlers/template_request_build_v3.go index 8cfd56c98b..8b35e91651 100644 --- a/packages/api/internal/handlers/template_request_build_v3.go +++ b/packages/api/internal/handlers/template_request_build_v3.go @@ -115,10 +115,11 @@ func requestTemplateBuild(ctx context.Context, c *gin.Context, a *APIStore, body } span.End() - // TODO(ENG-3852): Stop sending the firecracker version from the API. The orchestrator - // now resolves its own FC version via the FirecrackerVersions feature flag - // (see packages/orchestrator/pkg/template/build/builder.go) + // TODO(ENG-3852): Stop sending the firecracker/kernel versions from the API. + // The orchestrator resolves them itself via the BuildFirecrackerVersion / + // BuildKernelVersion feature flags (see packages/orchestrator/pkg/template/server/create_template.go). firecrackerVersion := a.featureFlags.StringFlag(ctx, featureflags.BuildFirecrackerVersion) + kernelVersion := a.featureFlags.StringFlag(ctx, featureflags.BuildKernelVersion) buildReq := template.RegisterBuildData{ ClusterID: clusters.WithClusterFallback(team.ClusterID), TemplateID: templateID, @@ -129,7 +130,7 @@ func requestTemplateBuild(ctx context.Context, c *gin.Context, a *APIStore, body CpuCount: body.CpuCount, MemoryMB: body.MemoryMB, Version: templates.TemplateV2LatestVersion, - KernelVersion: a.config.DefaultKernelVersion, + KernelVersion: kernelVersion, FirecrackerVersion: firecrackerVersion, } diff --git a/packages/orchestrator/pkg/template/server/create_template.go b/packages/orchestrator/pkg/template/server/create_template.go index 0e179709a0..ad5a00828b 100644 --- a/packages/orchestrator/pkg/template/server/create_template.go +++ b/packages/orchestrator/pkg/template/server/create_template.go @@ -57,7 +57,7 @@ func (s *ServerStore) TemplateCreate(ctx context.Context, templateRequest *templ featureflags.TeamContext(cfg.GetTeamID()), ) - kernelVersion := featureflags.DefaultKernelVersion + kernelVersion := s.featureFlags.StringFlag(ctx, featureflags.BuildKernelVersion) firecrackerVersion := s.featureFlags.StringFlag(ctx, featureflags.BuildFirecrackerVersion) fcInfo, err := fcversion.New(firecrackerVersion) diff --git a/packages/shared/pkg/featureflags/flags.go b/packages/shared/pkg/featureflags/flags.go index f390e4fe90..b5a71cad5e 100644 --- a/packages/shared/pkg/featureflags/flags.go +++ b/packages/shared/pkg/featureflags/flags.go @@ -238,7 +238,6 @@ func NewStringFlag(name string, fallback string) StringFlag { return flag } -// This is currently not configurable via feature flags. const ( DefaultKernelVersion = "vmlinux-6.1.158" ) @@ -261,6 +260,7 @@ var FirecrackerVersionMap = map[string]string{ // BuildIoEngine Sync is used by default as there seems to be a bad interaction between Async and a lot of io operations. var ( BuildFirecrackerVersion = NewStringFlag("build-firecracker-version", env.GetEnv("DEFAULT_FIRECRACKER_VERSION", DefaultFirecrackerVersion)) + BuildKernelVersion = NewStringFlag("build-kernel-version", env.GetEnv("DEFAULT_KERNEL_VERSION", DefaultKernelVersion)) BuildIoEngine = NewStringFlag("build-io-engine", "Sync") DefaultPersistentVolumeType = NewStringFlag("default-persistent-volume-type", "") BuildNodeInfo = NewJSONFlag("preferred-build-node", ldvalue.Null())