Skip to content

Commit

Permalink
switch during deploy, not inside of sources
Browse files Browse the repository at this point in the history
Signed-off-by: razzle <harry@razzle.cloud>
  • Loading branch information
Noxsios committed Mar 20, 2024
1 parent 9a17833 commit eed0129
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 50 deletions.
38 changes: 30 additions & 8 deletions src/pkg/packager/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,29 @@ func (p *Packager) resetRegistryHPA() {
// Deploy attempts to deploy the given PackageConfig.
func (p *Packager) Deploy() (err error) {

filter := filters.Combine(
isInteractive := !config.CommonOptions.Confirm

deployFilter := filters.Combine(
filters.ByLocalOS(runtime.GOOS),
filters.ForDeploy(p.cfg.PkgOpts.OptionalComponents, !config.CommonOptions.Confirm),
filters.ForDeploy(p.cfg.PkgOpts.OptionalComponents, isInteractive),
)

p.cfg.Pkg, p.warnings, err = p.source.LoadPackage(p.layout, filter, true)
if err != nil {
return fmt.Errorf("unable to load the package: %w", err)
if isInteractive {
filter := filters.Empty()

p.cfg.Pkg, p.warnings, err = p.source.LoadPackage(p.layout, filter, true)
if err != nil {
return fmt.Errorf("unable to load the package: %w", err)
}
} else {
p.cfg.Pkg, p.warnings, err = p.source.LoadPackage(p.layout, deployFilter, true)
if err != nil {
return fmt.Errorf("unable to load the package: %w", err)
}

if err := variables.SetVariableMapInConfig(p.cfg); err != nil {
return err
}
}

if err := p.validateLastNonBreakingVersion(); err != nil {
Expand All @@ -71,9 +86,16 @@ func (p *Packager) Deploy() (err error) {
return fmt.Errorf("deployment cancelled")
}

// Set variables and prompt if --confirm is not set
if err := variables.SetVariableMapInConfig(p.cfg); err != nil {
return err
if isInteractive {
p.cfg.Pkg.Components, err = deployFilter.Apply(p.cfg.Pkg)
if err != nil {
return err
}

// Set variables and prompt if --confirm is not set
if err := variables.SetVariableMapInConfig(p.cfg); err != nil {
return err
}
}

p.hpaModified = false
Expand Down
9 changes: 4 additions & 5 deletions src/pkg/packager/dev.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ func (p *Packager) DevDeploy() error {
return fmt.Errorf("unable to validate package: %w", err)
}

if err := variables.SetVariableMapInConfig(p.cfg); err != nil {
return err
}

// If building in yolo mode, strip out all images and repos
if !p.cfg.CreateOpts.NoYOLO {
for idx := range p.cfg.Pkg.Components {
Expand All @@ -72,11 +76,6 @@ func (p *Packager) DevDeploy() error {

message.HeaderInfof("📦 PACKAGE DEPLOY %s", p.cfg.Pkg.Metadata.Name)

// Set variables and prompt if --confirm is not set
if err := variables.SetVariableMapInConfig(p.cfg); err != nil {
return err
}

p.connectStrings = make(types.ConnectStrings)

if !p.cfg.CreateOpts.NoYOLO {
Expand Down
43 changes: 12 additions & 31 deletions src/pkg/packager/sources/oci.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
"github.com/defenseunicorns/zarf/src/pkg/zoci"
"github.com/defenseunicorns/zarf/src/types"
"github.com/mholt/archiver/v3"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
)

var (
Expand All @@ -37,26 +36,21 @@ type OCISource struct {
// LoadPackage loads a package from an OCI registry.
func (s *OCISource) LoadPackage(dst *layout.PackagePaths, filter filters.ComponentFilterStrategy, unarchiveAll bool) (pkg types.ZarfPackage, warnings []string, err error) {
ctx := context.TODO()
layersToPull := []ocispec.Descriptor{}

message.Debugf("Loading package from %q", s.PackageSource)

// pull only needed layers if --confirm is set
if config.CommonOptions.Confirm {
pkg, err = s.FetchZarfYAML(ctx)
if err != nil {
return pkg, nil, err
}
if filter != nil {
pkg.Components, err = filter.Apply(pkg)
if err != nil {
return pkg, nil, err
}
}
layersToPull, err = s.LayersFromRequestedComponents(ctx, pkg.Components)
if err != nil {
return pkg, nil, fmt.Errorf("unable to get published component image layers: %s", err.Error())
}
pkg, err = s.FetchZarfYAML(ctx)
if err != nil {
return pkg, nil, err
}
pkg.Components, err = filter.Apply(pkg)
if err != nil {
return pkg, nil, err
}

layersToPull, err := s.LayersFromRequestedComponents(ctx, pkg.Components)
if err != nil {
return pkg, nil, fmt.Errorf("unable to get published component image layers: %s", err.Error())
}

isPartial := true
Expand All @@ -74,19 +68,6 @@ func (s *OCISource) LoadPackage(dst *layout.PackagePaths, filter filters.Compone
}
dst.SetFromLayers(layersFetched)

// if --confirm is not set, read the zarf.yaml that was pulled
// and apply the filter to the components
if !config.CommonOptions.Confirm {
pkg, warnings, err = dst.ReadZarfYAML()
if err != nil {
return pkg, nil, err
}
pkg.Components, err = filter.Apply(pkg)
if err != nil {
return pkg, nil, err
}
}

if err := dst.MigrateLegacy(); err != nil {
return pkg, nil, err
}
Expand Down
9 changes: 3 additions & 6 deletions src/pkg/packager/sources/tarball.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,9 @@ func (s *TarballSource) LoadPackage(dst *layout.PackagePaths, filter filters.Com
if err != nil {
return pkg, nil, err
}
if filter != nil {
spinner.Stop()
pkg.Components, err = filter.Apply(pkg)
if err != nil {
return pkg, nil, err
}
pkg.Components, err = filter.Apply(pkg)
if err != nil {
return pkg, nil, err
}

if err := dst.MigrateLegacy(); err != nil {
Expand Down

0 comments on commit eed0129

Please sign in to comment.