in internal/pkg/cli/svc_package.go [198:258]
func (o *packageSvcOpts) Execute() error {
if !o.clientConfigured {
if err := o.configureClients(); err != nil {
return err
}
}
if !o.allowWkldDowngrade {
if err := validateWkldVersion(o.svcVersionGetter, o.name, o.templateVersion); err != nil {
return err
}
}
if o.outputDir != "" {
if err := o.setOutputFileWriters(); err != nil {
return err
}
}
targetEnv, err := o.getTargetEnv()
if err != nil {
return nil
}
gen, err := o.getStackGenerator(targetEnv)
if err != nil {
return err
}
stack, err := o.getWorkloadStack(gen)
if err != nil {
return err
}
if o.showDiff {
if err := diff(gen, stack.template, o.diffWriter); err != nil {
var errHasDiff *errHasDiff
if errors.As(err, &errHasDiff) {
return err
}
return &errDiffNotAvailable{
parentErr: err,
}
}
return nil
}
if err := o.writeAndClose(o.templateWriter, stack.template); err != nil {
return err
}
if err := o.writeAndClose(o.paramsWriter, stack.parameters); err != nil {
return err
}
addonsTemplate, err := gen.AddonsTemplate()
switch {
case err != nil:
return fmt.Errorf("retrieve addons template: %w", err)
case addonsTemplate == "":
return nil
}
// Addons template won't show up without setting --output-dir flag.
if o.outputDir != "" {
if err := o.setAddonsFileWriter(); err != nil {
return err
}
}
return o.writeAndClose(o.addonsWriter, addonsTemplate)
}